Merge "DISALLOW_CONFIG_MOBILE_NETWORKS for Mobile Network" into main
diff --git a/Android.bp b/Android.bp
index 0fd4cb0..8ca60b9 100644
--- a/Android.bp
+++ b/Android.bp
@@ -68,6 +68,9 @@
static_libs: [
// External dependencies
"androidx.navigation_navigation-fragment-ktx",
+ "androidx.slice_slice-builders",
+ "androidx.slice_slice-core",
+ "androidx.slice_slice-view",
"androidx.window_window-java",
"gson",
"guava",
@@ -79,12 +82,10 @@
"android.hardware.dumpstate-V1-java",
"android.hardware.dumpstate-V1.0-java",
"android.hardware.dumpstate-V1.1-java",
- "android.view.accessibility.flags-aconfig-java",
"com_android_server_accessibility_flags_lib",
"net-utils-framework-common",
"notification_flags_lib",
"securebox",
- "android.os.flags-aconfig-java",
"//frameworks/libs/systemui:com_android_systemui_shared_flags_lib",
"WindowManager-Shell-shared-desktopMode",
@@ -100,12 +101,9 @@
"contextualcards",
"development_settings_flag_lib",
"factory_reset_flags_lib",
- "fuelgauge-log-protos-lite",
+ "settings-protos-lite",
"fuelgauge-protos-lite",
- "settings-contextual-card-protos-lite",
- "settings-log-bridge-protos-lite",
"settings-logtags",
- "settings-telephony-protos-lite",
"statslog-settings",
"telephony_flags_core_java_lib",
"setupdesign-lottie-loading-layout",
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index 223b473f..7b79611 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -1370,6 +1370,12 @@
</activity>
<activity
+ android:name=".notification.modes.SetupInterstitialActivity"
+ android:exported="false"
+ android:theme="@style/Theme.Settings.NoActionBar">
+ </activity>
+
+ <activity
android:name=".notification.zen.ZenSuggestionActivity"
android:label="@string/zen_mode_settings_title"
android:icon="@drawable/ic_suggestion_dnd"
diff --git a/aconfig/accessibility/accessibility_flags.aconfig b/aconfig/accessibility/accessibility_flags.aconfig
index 3ed618b..5c81cc9 100644
--- a/aconfig/accessibility/accessibility_flags.aconfig
+++ b/aconfig/accessibility/accessibility_flags.aconfig
@@ -21,6 +21,16 @@
}
flag {
+ name: "check_prebundled_is_preinstalled"
+ namespace: "accessibility"
+ description: "Checks that all 'prebundled' components, used for grouping, are also preinstalled"
+ bug: "353888087"
+ metadata {
+ purpose: PURPOSE_BUGFIX
+ }
+}
+
+flag {
name: "edit_shortcuts_in_full_screen"
namespace: "accessibility"
description: "Show the edit shorcuts screen in full screen, since the shortcut options are increasing."
@@ -42,6 +52,16 @@
}
flag {
+ name: "fix_a11y_settings_search"
+ namespace: "accessibility"
+ description: "Fix the a11y related search items in Settings app"
+ bug: "333437173"
+ metadata {
+ purpose: PURPOSE_BUGFIX
+ }
+}
+
+flag {
name: "hide_magnification_always_on_toggle_when_window_mode_only"
namespace: "accessibility"
description: "Decides whether to hide the magnification always on setting when capabilities is window mode only."
@@ -52,6 +72,16 @@
}
flag {
+ name: "never_restrict_accessibility_activity"
+ namespace: "accessibility"
+ description: "Stops possibly restricting AccessibilityActivityPreferences"
+ bug: "331990900"
+ metadata {
+ purpose: PURPOSE_BUGFIX
+ }
+}
+
+flag {
name: "remove_qs_tooltip_in_suw"
namespace: "accessibility"
description: "Don't show quick settings tooltip in SUW, since the user can't use quick settings there."
diff --git a/aconfig/settings_bluetooth_declarations.aconfig b/aconfig/settings_bluetooth_declarations.aconfig
index b8b9d9f..f6c271c 100644
--- a/aconfig/settings_bluetooth_declarations.aconfig
+++ b/aconfig/settings_bluetooth_declarations.aconfig
@@ -31,3 +31,13 @@
description: "Gates whether to enable bluetooth device details polish"
bug: "343317785"
}
+
+flag {
+ name: "disable_bonding_cancellation_for_orientation_change"
+ namespace: "cross_device_experiences"
+ description: "Stop cancelling bonding process when there is an orientation change"
+ bug: "349542301"
+ metadata {
+ purpose: PURPOSE_BUGFIX
+ }
+}
diff --git a/aconfig/settings_globalintl_flag_declarations.aconfig b/aconfig/settings_globalintl_flag_declarations.aconfig
index 48f3a29..2f046d0 100644
--- a/aconfig/settings_globalintl_flag_declarations.aconfig
+++ b/aconfig/settings_globalintl_flag_declarations.aconfig
@@ -14,3 +14,10 @@
description: "Feature flag for locale notification"
bug: "301380610"
}
+
+flag {
+ name: "accessibility_appearance_settings_backup_enabled"
+ namespace: "globalintl"
+ description: "Feature flag for B&R accessibility appearance settings"
+ bug: "341210043"
+}
diff --git a/protos/Android.bp b/protos/Android.bp
index 560851a..4ab96a7 100644
--- a/protos/Android.bp
+++ b/protos/Android.bp
@@ -1,44 +1,12 @@
package {
default_team: "trendy_team_android_settings_app",
- // See: http://go/android-license-faq
- // A large-scale-change added 'default_applicable_licenses' to import
- // all of the 'license_kinds' from "packages_apps_Settings_license"
- // to get the below license kinds:
- // SPDX-license-identifier-Apache-2.0
default_applicable_licenses: ["packages_apps_Settings_license"],
}
-java_library_static {
- name: "settings-contextual-card-protos-lite",
- host_supported: true,
- proto: {
- type: "lite",
- },
- srcs: ["contextual_card_list.proto"],
-}
-
-java_library_static {
- name: "settings-log-bridge-protos-lite",
- host_supported: true,
- proto: {
- type: "lite",
- },
- srcs: ["settings_log_bridge.proto"],
-}
-
-java_library_static {
- name: "settings-telephony-protos-lite",
- host_supported: true,
- proto: {
- type: "lite",
- },
- srcs: ["network_mode_choices.proto"],
-}
-
java_library {
- name: "fuelgauge-log-protos-lite",
+ name: "settings-protos-lite",
proto: {
type: "lite",
},
- srcs: ["fuelgauge_log.proto"],
+ srcs: ["*.proto"],
}
diff --git a/protos/spa_search_landing.proto b/protos/spa_search_landing.proto
new file mode 100644
index 0000000..02cca79
--- /dev/null
+++ b/protos/spa_search_landing.proto
@@ -0,0 +1,34 @@
+syntax = "proto2";
+
+package com.android.settings.spa;
+
+message SpaSearchLandingKey {
+ oneof page {
+ SpaSearchLandingSpaPage spa_page = 1;
+ SpaSearchLandingFragment fragment = 2;
+ }
+}
+
+message SpaSearchLandingSpaPage {
+ /** The destination of SPA page. */
+ optional string destination = 1;
+}
+
+message SpaSearchLandingFragment {
+ /** The fragment class name. */
+ optional string fragment_name = 1;
+
+ /** The key of the preference to highlight the item. */
+ optional string preference_key = 2;
+
+ /** The arguments passed to the page. */
+ map<string, BundleValue> arguments = 3;
+}
+
+/** A value in an Android Bundle. */
+message BundleValue {
+ oneof value {
+ /** A 32-bit signed integer value. */
+ int32 int_value = 1;
+ }
+}
diff --git a/res-product/values-ar/strings.xml b/res-product/values-ar/strings.xml
index b936938..2a5fce0 100644
--- a/res-product/values-ar/strings.xml
+++ b/res-product/values-ar/strings.xml
@@ -170,24 +170,24 @@
<string name="lock_screen_pin_skip_fingerprint_message" product="default" msgid="3396830571282413409">"يجب ضبط رقم تعريف شخصي لإعداد ميزة \"فتح الجهاز ببصمة الإصبع\".\n\nيحمي رقم التعريف الشخصي الجهاز في حال فقدانه أو سرقته."</string>
<string name="lock_screen_pattern_skip_fingerprint_message" product="default" msgid="2952431330433118050">"يجب ضبط نقش لإعداد ميزة \"فتح الجهاز ببصمة الإصبع\".\n\nيحمي النقش الهاتف في حال فقدانه أو سرقته."</string>
<string name="lock_screen_password_skip_fingerprint_message" product="default" msgid="8499384469890032816">"يجب ضبط كلمة مرور لإعداد ميزة \"فتح الجهاز ببصمة الإصبع\".\n\nتحمي كلمة المرور الهاتف في حال فقدانه أو سرقته."</string>
- <string name="lock_screen_pin_skip_face_message" product="tablet" msgid="657464034320090412">"يجب ضبط رقم تعريف شخصي لإعداد ميزة \"فتح الجهاز بالتعرف على الوجه\".\n\nيحمي رقم التعريف الشخصي الجهاز اللوحي في حال فقدانه أو سرقته."</string>
- <string name="lock_screen_pattern_skip_face_message" product="tablet" msgid="1057921621902514520">"يجب ضبط نقش لإعداد ميزة \"فتح الجهاز بالتعرف على الوجه\".\n\nيحمي النقش الجهاز اللوحي في حال فقدانه أو سرقته."</string>
- <string name="lock_screen_password_skip_face_message" product="tablet" msgid="7178731554533608255">"يجب ضبط كلمة مرور لإعداد ميزة \"فتح الجهاز بالتعرف على الوجه\".\n\nتحمي كلمة المرور الجهاز اللوحي في حال فقدانه أو سرقته."</string>
- <string name="lock_screen_pin_skip_face_message" product="device" msgid="1932467886606343431">"يجب ضبط رقم تعريف شخصي لإعداد ميزة \"فتح الجهاز بالتعرف على الوجه\".\n\nيحمي رقم التعريف الشخصي الجهاز في حال فقدانه أو سرقته."</string>
- <string name="lock_screen_pattern_skip_face_message" product="device" msgid="3670112640345602511">"يجب ضبط نقش لإعداد ميزة \"فتح الجهاز بالتعرف على الوجه\".\n\nيحمي النقش الجهاز في حال فقدانه أو سرقته."</string>
- <string name="lock_screen_password_skip_face_message" product="device" msgid="256847653854178247">"يجب ضبط كلمة مرور لإعداد ميزة \"فتح الجهاز بالتعرف على الوجه\".\n\nتحمي كلمة المرور الجهاز في حال فقدانه أو سرقته."</string>
- <string name="lock_screen_pin_skip_face_message" product="default" msgid="358903382559327157">"يجب ضبط رقم تعريف شخصي لإعداد ميزة \"فتح الجهاز بالتعرف على الوجه\".\n\nيحمي رقم التعريف الشخصي الهاتف في حال فقدانه أو سرقته."</string>
- <string name="lock_screen_pattern_skip_face_message" product="default" msgid="6400426500859622964">"يجب ضبط نقش لإعداد ميزة \"فتح الجهاز بالتعرف على الوجه\".\n\nيحمي النقش الهاتف في حال فقدانه أو سرقته."</string>
- <string name="lock_screen_password_skip_face_message" product="default" msgid="1555954661782997039">"يجب ضبط كلمة مرور لإعداد ميزة \"فتح الجهاز بالتعرف على الوجه\".\n\nتحمي كلمة المرور الهاتف في حال فقدانه أو سرقته."</string>
- <string name="lock_screen_pin_skip_biometrics_message" product="tablet" msgid="6016574209955764097">"يجب ضبط رقم تعريف شخصي لإعداد ميزتَي \"فتح الجهاز ببصمة الإصبع\" و\"فتح الجهاز بالتعرف على الوجه\".\n\nيحمي رقم التعريف الشخصي الجهاز اللوحي في حال فقدانه أو سرقته."</string>
- <string name="lock_screen_pattern_skip_biometrics_message" product="tablet" msgid="5193008948766756870">"يجب ضبط نقش لإعداد ميزتَي \"فتح الجهاز ببصمة الإصبع\" و\"فتح الجهاز بالتعرف على الوجه\".\n\nيحمي النقش الجهاز اللوحي في حال فقدانه أو سرقته."</string>
- <string name="lock_screen_password_skip_biometrics_message" product="tablet" msgid="2157871617774498976">"يجب ضبط كلمة مرور لإعداد ميزتَي \"فتح الجهاز ببصمة الإصبع\" و\"فتح الجهاز بالتعرف على الوجه\".\n\nتحمي كلمة المرور الجهاز اللوحي في حال فقدانه أو سرقته."</string>
- <string name="lock_screen_pin_skip_biometrics_message" product="device" msgid="3023595865822720071">"يجب ضبط رقم تعريف شخصي لإعداد ميزتَي \"فتح الجهاز ببصمة الإصبع\" و\"فتح الجهاز بالتعرف على الوجه\".\n\nيحمي رقم التعريف الشخصي الجهاز في حال فقدانه أو سرقته."</string>
- <string name="lock_screen_pattern_skip_biometrics_message" product="device" msgid="3039110875534893916">"يجب ضبط نقش لإعداد ميزتَي \"فتح الجهاز ببصمة الإصبع\" و\"فتح الجهاز بالتعرف على الوجه\".\n\nيحمي النقش الجهاز في حال فقدانه أو سرقته."</string>
- <string name="lock_screen_password_skip_biometrics_message" product="device" msgid="6506194961404887073">"يجب ضبط كلمة مرور لإعداد ميزتَي \"فتح الجهاز ببصمة الإصبع\" و\"فتح الجهاز بالتعرف على الوجه\".\n\nتحمي كلمة المرور الجهاز في حال فقدانه أو سرقته."</string>
- <string name="lock_screen_pin_skip_biometrics_message" product="default" msgid="6614355211073480369">"يجب ضبط رقم تعريف شخصي لإعداد ميزتَي \"فتح الجهاز ببصمة الإصبع\" و\"فتح الجهاز بالتعرف على الوجه\".\n\nيحمي رقم التعريف الشخصي الهاتف في حال فقدانه أو سرقته."</string>
- <string name="lock_screen_pattern_skip_biometrics_message" product="default" msgid="969489650005656159">"يجب ضبط نقش لإعداد ميزتَي \"فتح الجهاز ببصمة الإصبع\" و\"فتح الجهاز بالتعرف على الوجه\".\n\nيحمي النقش الهاتف في حال فقدانه أو سرقته."</string>
- <string name="lock_screen_password_skip_biometrics_message" product="default" msgid="2934343185175325368">"يجب ضبط كلمة مرور لإعداد ميزتَي \"فتح الجهاز ببصمة الإصبع\" و\"فتح الجهاز بالتعرف على الوجه\".\n\nتحمي كلمة المرور الهاتف في حال فقدانه أو سرقته."</string>
+ <string name="lock_screen_pin_skip_face_message" product="tablet" msgid="657464034320090412">"يجب ضبط رقم تعريف شخصي لإعداد ميزة \"فتح الجهاز ببصمة الوجه\".\n\nيحمي رقم التعريف الشخصي الجهاز اللوحي في حال فقدانه أو سرقته."</string>
+ <string name="lock_screen_pattern_skip_face_message" product="tablet" msgid="1057921621902514520">"يجب ضبط نقش لإعداد ميزة \"فتح الجهاز ببصمة الوجه\".\n\nيحمي النقش الجهاز اللوحي في حال فقدانه أو سرقته."</string>
+ <string name="lock_screen_password_skip_face_message" product="tablet" msgid="7178731554533608255">"يجب ضبط كلمة مرور لإعداد ميزة \"فتح الجهاز ببصمة الوجه\".\n\nتحمي كلمة المرور الجهاز اللوحي في حال فقدانه أو سرقته."</string>
+ <string name="lock_screen_pin_skip_face_message" product="device" msgid="1932467886606343431">"يجب ضبط رقم تعريف شخصي لإعداد ميزة \"فتح الجهاز ببصمة الوجه\".\n\nيحمي رقم التعريف الشخصي الجهاز في حال فقدانه أو سرقته."</string>
+ <string name="lock_screen_pattern_skip_face_message" product="device" msgid="3670112640345602511">"يجب ضبط نقش لإعداد ميزة \"فتح الجهاز ببصمة الوجه\".\n\nيحمي النقش الجهاز في حال فقدانه أو سرقته."</string>
+ <string name="lock_screen_password_skip_face_message" product="device" msgid="256847653854178247">"يجب ضبط كلمة مرور لإعداد ميزة \"فتح الجهاز ببصمة الوجه\".\n\nتحمي كلمة المرور الجهاز في حال فقدانه أو سرقته."</string>
+ <string name="lock_screen_pin_skip_face_message" product="default" msgid="358903382559327157">"يجب ضبط رقم تعريف شخصي لإعداد ميزة \"فتح الجهاز ببصمة الوجه\".\n\nيحمي رقم التعريف الشخصي الهاتف في حال فقدانه أو سرقته."</string>
+ <string name="lock_screen_pattern_skip_face_message" product="default" msgid="6400426500859622964">"يجب ضبط نقش لإعداد ميزة \"فتح الجهاز ببصمة الوجه\".\n\nيحمي النقش الهاتف في حال فقدانه أو سرقته."</string>
+ <string name="lock_screen_password_skip_face_message" product="default" msgid="1555954661782997039">"يجب ضبط كلمة مرور لإعداد ميزة \"فتح الجهاز ببصمة الوجه\".\n\nتحمي كلمة المرور الهاتف في حال فقدانه أو سرقته."</string>
+ <string name="lock_screen_pin_skip_biometrics_message" product="tablet" msgid="6016574209955764097">"يجب ضبط رقم تعريف شخصي لإعداد ميزتَي \"فتح الجهاز ببصمة الإصبع\" و\"فتح الجهاز ببصمة الوجه\".\n\nيحمي رقم التعريف الشخصي الجهاز اللوحي في حال فقدانه أو سرقته."</string>
+ <string name="lock_screen_pattern_skip_biometrics_message" product="tablet" msgid="5193008948766756870">"يجب ضبط نقش لإعداد ميزتَي \"فتح الجهاز ببصمة الإصبع\" و\"فتح الجهاز ببصمة الوجه\".\n\nيحمي النقش الجهاز اللوحي في حال فقدانه أو سرقته."</string>
+ <string name="lock_screen_password_skip_biometrics_message" product="tablet" msgid="2157871617774498976">"يجب ضبط كلمة مرور لإعداد ميزتَي \"فتح الجهاز ببصمة الإصبع\" و\"فتح الجهاز ببصمة الوجه\".\n\nتحمي كلمة المرور الجهاز اللوحي في حال فقدانه أو سرقته."</string>
+ <string name="lock_screen_pin_skip_biometrics_message" product="device" msgid="3023595865822720071">"يجب ضبط رقم تعريف شخصي لإعداد ميزتَي \"فتح الجهاز ببصمة الإصبع\" و\"فتح الجهاز ببصمة الوجه\".\n\nيحمي رقم التعريف الشخصي الجهاز في حال فقدانه أو سرقته."</string>
+ <string name="lock_screen_pattern_skip_biometrics_message" product="device" msgid="3039110875534893916">"يجب ضبط نقش لإعداد ميزتَي \"فتح الجهاز ببصمة الإصبع\" و\"فتح الجهاز ببصمة الوجه\".\n\nيحمي النقش الجهاز في حال فقدانه أو سرقته."</string>
+ <string name="lock_screen_password_skip_biometrics_message" product="device" msgid="6506194961404887073">"يجب ضبط كلمة مرور لإعداد ميزتَي \"فتح الجهاز ببصمة الإصبع\" و\"فتح الجهاز ببصمة الوجه\".\n\nتحمي كلمة المرور الجهاز في حال فقدانه أو سرقته."</string>
+ <string name="lock_screen_pin_skip_biometrics_message" product="default" msgid="6614355211073480369">"يجب ضبط رقم تعريف شخصي لإعداد ميزتَي \"فتح الجهاز ببصمة الإصبع\" و\"فتح الجهاز ببصمة الوجه\".\n\nيحمي رقم التعريف الشخصي الهاتف في حال فقدانه أو سرقته."</string>
+ <string name="lock_screen_pattern_skip_biometrics_message" product="default" msgid="969489650005656159">"يجب ضبط نقش لإعداد ميزتَي \"فتح الجهاز ببصمة الإصبع\" و\"فتح الجهاز بببصمة الوجه\".\n\nيحمي النقش الهاتف في حال فقدانه أو سرقته."</string>
+ <string name="lock_screen_password_skip_biometrics_message" product="default" msgid="2934343185175325368">"يجب ضبط كلمة مرور لإعداد ميزتَي \"فتح الجهاز ببصمة الإصبع\" و\"فتح الجهاز ببصمة الوجه\".\n\nتحمي كلمة المرور الهاتف في حال فقدانه أو سرقته."</string>
<string name="fingerprint_v2_delete_message" product="default" msgid="8723083814238510088">"يؤدي هذا الإجراء إلى حذف النموذج والصور المرتبطة ببصمة الإصبع \"<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>\"، والتي تم تخزينها على هاتفك"</string>
<string name="fingerprint_v2_delete_message" product="tablet" msgid="527375244730792698">"يؤدي هذا الإجراء إلى حذف النموذج والصور المرتبطة ببصمة الإصبع \"<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>\"، والتي تم تخزينها على جهازك اللوحي"</string>
<string name="fingerprint_v2_delete_message" product="device" msgid="4549780655045100171">"يؤدي هذا الإجراء إلى حذف النموذج والصور المرتبطة ببصمة الإصبع \"<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>\"، والتي تم تخزينها على جهازك"</string>
diff --git a/res-product/values-bn/strings.xml b/res-product/values-bn/strings.xml
index e7187b6..0732871 100644
--- a/res-product/values-bn/strings.xml
+++ b/res-product/values-bn/strings.xml
@@ -52,7 +52,7 @@
<string name="security_settings_face_enroll_introduction_message" product="default" msgid="847716059867943459">"আপনার ফোন আনলক, কেনাকাটা অনুমোদন বা অ্যাপগুলিতে সাইন-ইন করতে আপনার ফেস ব্যবহার করুন।"</string>
<string name="security_settings_face_enroll_introduction_message" product="tablet" msgid="3976493376026067375">"আপনার ট্যাবলেট আনলক, কেনাকাটা অনুমোদন বা অ্যাপে সাইন-ইন করতে আপনার ফেস ব্যবহার করুন।"</string>
<string name="security_settings_face_enroll_introduction_message" product="device" msgid="6432265830098806034">"আপনার ডিভাইস আনলক, কেনাকাটা অনুমোদন বা অ্যাপে সাইন-ইন করতে আপনার ফেস ব্যবহার করুন।"</string>
- <string name="security_settings_face_enroll_introduction_message_class3" product="default" msgid="8492576130109033451">"আপনার ফেস ব্যবহার করে ফোন আনলক অথবা অ্যাপে যাচাই করুন, যেমন অ্যাপে সাইন-ইন করা অথবা কেনাকাটা অনুমোদন করার সময়"</string>
+ <string name="security_settings_face_enroll_introduction_message_class3" product="default" msgid="8492576130109033451">"অ্যাপে সাইন-ইন করা বা কেনাকাটায় অনুমতি দেওয়ার মতো বিভিন্ন কাজে, আপনার ফেস ব্যবহার করে ফোন আনলক অথবা অ্যাপে যাচাই করুন"</string>
<string name="security_settings_face_enroll_introduction_message_class3" product="tablet" msgid="8736497842795690098">"আপনার ফেস ব্যবহার করে ট্যাবলেট আনলক অথবা অ্যাপে যাচাই করুন, যেমন অ্যাপে সাইন-ইন করা অথবা কেনাকাটা অনুমোদন করার সময়"</string>
<string name="security_settings_face_enroll_introduction_message_class3" product="device" msgid="2558057312718921078">"আপনার ফেস ব্যবহার করে ডিভাইস আনলক অথবা অ্যাপে যাচাই করুন, যেমন অ্যাপে সাইন-ইন করা অথবা কেনাকাটা অনুমোদন করার সময়"</string>
<string name="security_settings_face_enroll_introduction_consent_message_0" product="default" msgid="9086377203303858619">"নিজের ফোন আনলক করার জন্য আপনার সন্তানকে তার মুখ ব্যবহার করার অনুমতি দেওয়া"</string>
@@ -106,7 +106,7 @@
<string name="security_settings_face_settings_footer_class3_attention_not_supported" product="default" msgid="5512898803063743303">"আপনার ফোন আনলক করতে অথবা নিজের পরিচয় যাচাই করার সময় আপনার ফেস ব্যবহার করুন, যেমন সাইন-ইন করা ও কোনও কেনাকাটায় অনুমোদন দেওয়া।\n\nমনে রাখবেন:\nএকবারে শুধুমাত্র একটি ফেস সেট-আপ করতে পারবেন। অন্য কোনও ফেস যোগ করতে, বর্তমানে থাকা ফেস মুছে দিন।\n\nফোনের দিকে তাকালে, আপনি না চাইলেও সেটি আনলক হয়ে যেতে পারে।\n\nঅন্য কেউ আপনার মুখের সামনে ধরে রেখে ফোন আনলক করতে পারেন, এমনকী আপনার চোখ বন্ধ করা থাকলেও।\n\nঅনেকটা আপনার মতো দেখতে কেউ, যেমন যমজ ভাই বা বোন, আপনার ফোন আনলক করতে পারেন।"</string>
<string name="security_settings_face_settings_footer_class3_attention_not_supported" product="tablet" msgid="6790505667764631343">"আপনার ট্যাবলেট আনলক করতে অথবা নিজের পরিচয় যাচাই করার সময় আপনার ফেস ব্যবহার করুন, যেমন সাইন-ইন করা ও কোনও কেনাকাটায় অনুমোদন দেওয়া।\n\nমনে রাখবেন:\nএকবারে শুধুমাত্র একটি ফেস সেট-আপ করতে পারবেন। অন্য কোনও ফেস যোগ করতে, বর্তমানে থাকা ফেস মুছে দিন।\n\nট্যাবলেটের দিকে তাকালে, আপনি না চাইলেও সেটি আনলক হয়ে যেতে পারে।\n\nঅন্য কেউ আপনার মুখের সামনে ধরে রেখে ট্যাবলেট আনলক করতে পারেন, এমনকী আপনার চোখ বন্ধ করা থাকলেও।\n\nঅনেকটা আপনার মতো দেখতে কেউ, যেমন যমজ ভাই বা বোন, আপনার ট্যাবলেট আনলক করতে পারেন।"</string>
<string name="security_settings_face_settings_footer_class3_attention_not_supported" product="device" msgid="7858917821957779752">"আপনার ডিভাইস আনলক করতে অথবা নিজের পরিচয় যাচাই করার সময় আপনার ফেস ব্যবহার করুন, যেমন সাইন-ইন করা ও কোনও কেনাকাটায় অনুমোদন দেওয়া।\n\nমনে রাখবেন:\nএকবারে শুধুমাত্র একটি ফেস সেট-আপ করতে পারবেন। অন্য কোনও ফেস যোগ করতে, বর্তমানে থাকা ফেস মুছে দিন।\n\nডিভাইসের দিকে তাকালে, আপনি না চাইলেও সেটি আনলক হয়ে যেতে পারে।\n\nঅন্য কেউ আপনার মুখের সামনে ধরে রেখে ডিভাইস আনলক করতে পারেন, এমনকী আপনার চোখ বন্ধ করা থাকলেও।\n\nঅনেকটা আপনার মতো দেখতে কেউ, যেমন যমজ ভাই বা বোন, আপনার ডিভাইস আনলক করতে পারেন।"</string>
- <string name="security_settings_fingerprint_enroll_introduction_v3_message" msgid="2145273491174234191">"অ্যাপে সাইন-ইন বা কেনাকাটা অনুমোদন করার মতোই ফিঙ্গারপ্রিন্ট ব্যবহার করে <xliff:g id="DEVICENAME">%s</xliff:g> আনলক বা নিজের পরিচয় যাচাই করুন"</string>
+ <string name="security_settings_fingerprint_enroll_introduction_v3_message" msgid="2145273491174234191">"অ্যাপে সাইন-ইন করা বা কেনাকাটায় অনুমতি দেওয়ার মতো বিভিন্ন কাজে, ফিঙ্গারপ্রিন্ট ব্যবহার করে <xliff:g id="DEVICENAME">%s</xliff:g> আনলক বা নিজের পরিচয় যাচাই করুন"</string>
<string name="security_settings_fingerprint_enroll_introduction_consent_message" product="default" msgid="5101253231118659496">"ফোন আনলক বা নিজের পরিচয় যাচাই করার জন্য আপনার সন্তানকে ফিঙ্গারপ্রিন্ট ব্যবহার করার অনুমতি দিন। কোনও অ্যাপে সে সাইন-ইন করার সময়, কেনাকাটায় অনুমতি দেওয়ার সময় এবং আরও অন্য ক্ষেত্রে এটি হয়ে থাকে।"</string>
<string name="security_settings_fingerprint_enroll_introduction_consent_message" product="tablet" msgid="3063978167545799342">"ট্যাবলেট আনলক বা নিজের পরিচয় যাচাই করার জন্য আপনার সন্তানকে ফিঙ্গারপ্রিন্ট ব্যবহার করার অনুমতি দিন। কোনও অ্যাপে সাইন-ইন করা, কেনাকাটায় অনুমতি দেওয়া এবং আরও অন্য ক্ষেত্রে এটি হয়ে থাকে।"</string>
<string name="security_settings_fingerprint_enroll_introduction_consent_message" product="device" msgid="4399560001732497632">"ডিভাইস আনলক বা নিজের পরিচয় যাচাই করার জন্য আপনার সন্তানকে ফিঙ্গারপ্রিন্ট ব্যবহার করার অনুমতি দিন। কোনও অ্যাপে সাইন-ইন করা, কেনাকাটায় অনুমতি দেওয়া এবং আরও অন্য ক্ষেত্রে এটি হয়ে থাকে।"</string>
diff --git a/res-product/values-bs/strings.xml b/res-product/values-bs/strings.xml
index 69460e5..c2690d1 100644
--- a/res-product/values-bs/strings.xml
+++ b/res-product/values-bs/strings.xml
@@ -100,13 +100,13 @@
<string name="security_settings_face_settings_footer_attention_not_supported" product="default" msgid="8266896471278294942">"Koristite lice da otključate telefon ili izvršite autentifikaciju u aplikacijama, npr. kada se prijavljujete ili odobravate kupovinu.\n\nImajte na umu:\nu datom trenutku možete imati postavljeno samo jedno lice. Da dodate drugo lice, izbrišite postojeće.\n\nTelefon možete otključati ako pogledate u njega čak i ako vam to nije bila namjera.\n\nTelefon može otključati i neko drugi ako ga prinese vašem licu, čak i dok su vam oči zatvorene.\n\nTelefon može otključati osoba koja mnogo liči na vas, npr. identični blizanac."</string>
<string name="security_settings_face_settings_footer_attention_not_supported" product="tablet" msgid="6932278790700490818">"Koristite lice da otključate tablet ili izvršite autentifikaciju u aplikacijama, npr. kada se prijavljujete ili odobravate kupovinu.\n\nImajte na umu:\nu datom trenutku možete imati postavljeno samo jedno lice. Da dodate drugo lice, izbrišite postojeće.\n\nTablet možete otključati ako pogledate u njega čak i ako vam to nije bila namjera.\n\nTablet može otključati i neko drugi ako ga prinese vašem licu, čak i dok su vam oči zatvorene.\n\nTablet može otključati osoba koja mnogo liči na vas, npr. identični blizanac."</string>
<string name="security_settings_face_settings_footer_attention_not_supported" product="device" msgid="2559602951942339212">"Koristite lice da otključate uređaj ili izvršite autentifikaciju u aplikacijama, npr. kada se prijavljujete ili odobravate kupovinu.\n\nImajte na umu:\nu datom trenutku možete imati postavljeno samo jedno lice. Da dodate drugo lice, izbrišite postojeće.\n\nUređaj možete otključati ako pogledate u njega čak i ako vam to nije bila namjera.\n\nUređaj može otključati i neko drugi ako ga prinese vašem licu, čak i dok su vam oči zatvorene.\n\nUređaj može otključati osoba koja mnogo liči na vas, npr. identični blizanac."</string>
- <string name="security_settings_face_settings_footer_class3" product="default" msgid="7050076350282827484">"Koristite lice da otključate telefon ili potvrdite identitet, npr. kada se prijavljujete u aplikacije ili odobravate kupovinu.\n\nImajte na umu:\nu datom trenutku možete imati postavljeno samo jedno lice. Da dodate drugo lice, izbrišite postojeće.\n\nTelefon možete otključati ako pogledate u njega čak i ako vam to nije bila namjera.\n\nTelefon može otključati i neko drugi ako ga prinese vašem licu.\n\nTelefon može otključati osoba koja mnogo liči na vas, npr. identični blizanac."</string>
- <string name="security_settings_face_settings_footer_class3" product="tablet" msgid="8013245173915280810">"Koristite lice da otključate tablet ili potvrdite identitet, npr. kada se prijavljujete u aplikacije ili odobravate kupovinu.\n\nImajte na umu:\nu datom trenutku možete imati postavljeno samo jedno lice. Da dodate drugo lice, izbrišite postojeće.\n\nTablet možete otključati ako pogledate u njega čak i ako vam to nije bila namjera.\n\nTablet može otključati i neko drugi ako ga prinese vašem licu.\n\nTablet može otključati osoba koja mnogo liči na vas, npr. identični blizanac."</string>
- <string name="security_settings_face_settings_footer_class3" product="device" msgid="4411845832787210264">"Koristite lice da otključate uređaj ili potvrdite identitet, npr. kada se prijavljujete u aplikacije ili odobravate kupovinu.\n\nImajte na umu:\nu datom trenutku možete imati postavljeno samo jedno lice. Da dodate drugo lice, izbrišite postojeće.\n\nUređaj možete otključati ako pogledate u njega čak i ako vam to nije bila namjera.\n\nUređaj može otključati i neko drugi ako ga prinese vašem licu.\n\nUređaj može otključati osoba koja mnogo liči na vas, npr. identični blizanac."</string>
- <string name="security_settings_face_settings_footer_class3_attention_not_supported" product="default" msgid="5512898803063743303">"Koristite lice da otključate telefon ili potvrdite identitet, npr. kada se prijavljujete u aplikacije ili odobravate kupovinu.\n\nImajte na umu:\nu datom trenutku možete imati postavljeno samo jedno lice. Da dodate drugo lice, izbrišite postojeće.\n\nTelefon možete otključati ako pogledate u njega čak i ako vam to nije bila namjera.\n\nTelefon može otključati i neko drugi ako ga prinese vašem licu, čak i dok su vam oči zatvorene.\n\nTelefon može otključati osoba koja mnogo liči na vas, npr. identični blizanac."</string>
- <string name="security_settings_face_settings_footer_class3_attention_not_supported" product="tablet" msgid="6790505667764631343">"Koristite lice da otključate tablet ili potvrdite identitet, npr. kada se prijavljujete u aplikacije ili odobravate kupovinu.\n\nImajte na umu:\nu datom trenutku možete imati postavljeno samo jedno lice. Da dodate drugo lice, izbrišite postojeće.\n\nTablet možete otključati ako pogledate u njega čak i ako vam to nije bila namjera.\n\nTablet može otključati i neko drugi ako ga prinese vašem licu, čak i dok su vam oči zatvorene.\n\nTablet može otključati osoba koja mnogo liči na vas, npr. identični blizanac."</string>
- <string name="security_settings_face_settings_footer_class3_attention_not_supported" product="device" msgid="7858917821957779752">"Koristite lice da otključate uređaj ili potvrdite identitet, npr. kada se prijavljujete u aplikacije ili odobravate kupovinu.\n\nImajte na umu:\nu datom trenutku možete imati postavljeno samo jedno lice. Da dodate drugo lice, izbrišite postojeće.\n\nUređaj možete otključati ako pogledate u njega čak i ako vam to nije bila namjera.\n\nUređaj može otključati i neko drugi ako ga prinese vašem licu, čak i dok su vam oči zatvorene.\n\nUređaj može otključati osoba koja mnogo liči na vas, npr. identični blizanac."</string>
- <string name="security_settings_fingerprint_enroll_introduction_v3_message" msgid="2145273491174234191">"Pomoću otiska prsta otključajte uređaj <xliff:g id="DEVICENAME">%s</xliff:g> ili potvrdite svoj identitet, naprimjer kada se prijavljujete u aplikacije ili odobravate kupovinu"</string>
+ <string name="security_settings_face_settings_footer_class3" product="default" msgid="7050076350282827484">"Koristite lice da otključate telefon ili potvrdite identitet, npr. prilikom prijave u aplikacije ili odobravanje kupovine.\n\nImajte na umu:\nu datom trenutku možete imati postavljeno samo jedno lice. Da dodate drugo lice, izbrišite postojeće.\n\nTelefon možete otključati ako pogledate u njega čak i ako vam to nije bila namjera.\n\nTelefon može otključati i neko drugi ako ga prinese vašem licu.\n\nTelefon može otključati osoba koja mnogo liči na vas, npr. identični blizanac."</string>
+ <string name="security_settings_face_settings_footer_class3" product="tablet" msgid="8013245173915280810">"Koristite lice da otključate tablet ili potvrdite identitet, npr. prilikom prijave u aplikacije ili odobravanje kupovine.\n\nImajte na umu:\nu datom trenutku možete imati postavljeno samo jedno lice. Da dodate drugo lice, izbrišite postojeće.\n\nTablet možete otključati ako pogledate u njega čak i ako vam to nije bila namjera.\n\nTablet može otključati i neko drugi ako ga prinese vašem licu.\n\nTablet može otključati osoba koja mnogo liči na vas, npr. identični blizanac."</string>
+ <string name="security_settings_face_settings_footer_class3" product="device" msgid="4411845832787210264">"Koristite lice da otključate uređaj ili potvrdite identitet, npr. prilikom prijave u aplikacije ili odobravanje kupovine.\n\nImajte na umu:\nu datom trenutku možete imati postavljeno samo jedno lice. Da dodate drugo lice, izbrišite postojeće.\n\nUređaj možete otključati ako pogledate u njega čak i ako vam to nije bila namjera.\n\nUređaj može otključati i neko drugi ako ga prinese vašem licu.\n\nUređaj može otključati osoba koja mnogo liči na vas, npr. identični blizanac."</string>
+ <string name="security_settings_face_settings_footer_class3_attention_not_supported" product="default" msgid="5512898803063743303">"Koristite lice da otključate telefon ili potvrdite identitet, npr. prilikom prijave u aplikacije ili odobravanje kupovine.\n\nImajte na umu:\nu datom trenutku možete imati postavljeno samo jedno lice. Da dodate drugo lice, izbrišite postojeće.\n\nTelefon možete otključati ako pogledate u njega čak i ako vam to nije bila namjera.\n\nTelefon može otključati i neko drugi ako ga prinese vašem licu, čak i dok su vam oči zatvorene.\n\nTelefon može otključati osoba koja mnogo liči na vas, npr. identični blizanac."</string>
+ <string name="security_settings_face_settings_footer_class3_attention_not_supported" product="tablet" msgid="6790505667764631343">"Koristite lice da otključate tablet ili potvrdite identitet, npr. prilikom prijave u aplikacije ili odobravanje kupovine.\n\nImajte na umu:\nu datom trenutku možete imati postavljeno samo jedno lice. Da dodate drugo lice, izbrišite postojeće.\n\nTablet možete otključati ako pogledate u njega čak i ako vam to nije bila namjera.\n\nTablet može otključati i neko drugi ako ga prinese vašem licu, čak i dok su vam oči zatvorene.\n\nTablet može otključati osoba koja mnogo liči na vas, npr. identični blizanac."</string>
+ <string name="security_settings_face_settings_footer_class3_attention_not_supported" product="device" msgid="7858917821957779752">"Koristite lice da otključate uređaj ili potvrdite identitet, npr. prilikom prijave u aplikacije ili odobravanje kupovine.\n\nImajte na umu:\nu datom trenutku možete imati postavljeno samo jedno lice. Da dodate drugo lice, izbrišite postojeće.\n\nUređaj možete otključati ako pogledate u njega čak i ako vam to nije bila namjera.\n\nUređaj može otključati i neko drugi ako ga prinese vašem licu, čak i dok su vam oči zatvorene.\n\nUređaj može otključati osoba koja mnogo liči na vas, npr. identični blizanac."</string>
+ <string name="security_settings_fingerprint_enroll_introduction_v3_message" msgid="2145273491174234191">"Pomoću otiska prsta otključajte uređaj <xliff:g id="DEVICENAME">%s</xliff:g> ili potvrdite svoj identitet, npr. prilikom prijave u aplikacije ili odobravanje kupovine"</string>
<string name="security_settings_fingerprint_enroll_introduction_consent_message" product="default" msgid="5101253231118659496">"Dozvolite djetetu da koristi otisak prsta da otključa telefon ili potvrdi identitet. To će se dešavati prilikom prijava u aplikacije, odobravanja kupovina i drugih radnji."</string>
<string name="security_settings_fingerprint_enroll_introduction_consent_message" product="tablet" msgid="3063978167545799342">"Dozvolite djetetu da koristi otisak prsta da otključa tablet ili potvrdi identitet. To će se dešavati prilikom prijava u aplikacije, odobravanja kupovina i drugih radnji."</string>
<string name="security_settings_fingerprint_enroll_introduction_consent_message" product="device" msgid="4399560001732497632">"Dozvolite djetetu da koristi otisak prsta da otključa uređaj ili potvrdi identitet. To će se dešavati prilikom prijava u aplikacije, odobravanja kupovina i drugih radnji."</string>
@@ -131,9 +131,9 @@
<string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_consent_5" product="default" msgid="6556725426776167791">"Telefon vašeg djeteta se može otključati kada to djetetu nije namjera, npr. kada ga neko prinese prstu djeteta."</string>
<string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_consent_5" product="tablet" msgid="5156581794964551571">"Tablet vašeg djeteta se može otključati kada to djetetu nije namjera, npr. kada ga neko prinese prstu djeteta."</string>
<string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_consent_5" product="device" msgid="8309101436391515400">"Uređaj vašeg djeteta se može otključati kada to djetetu nije namjera, npr. kada ga neko prinese prstu djeteta."</string>
- <string name="security_settings_fingerprint_v2_home_screen_text" product="tablet" msgid="5074447304036758639">"Otiskom prsta otključajte tablet ili potvrdite identitet, npr. kada se prijavljujete u aplikacije"</string>
- <string name="security_settings_fingerprint_v2_home_screen_text" product="device" msgid="7398339851724524558">"Otiskom prsta otključajte uređaj ili potvrdite identitet, npr. kada se prijavljujete u aplikacije"</string>
- <string name="security_settings_fingerprint_v2_home_screen_text" product="default" msgid="5376408603508393038">"Otiskom prsta otključajte telefon ili potvrdite identitet, npr. kada se prijavljujete u aplikacije"</string>
+ <string name="security_settings_fingerprint_v2_home_screen_text" product="tablet" msgid="5074447304036758639">"Otiskom prsta otključajte tablet ili potvrdite identitet, npr. prilikom prijave u aplikacije"</string>
+ <string name="security_settings_fingerprint_v2_home_screen_text" product="device" msgid="7398339851724524558">"Otiskom prsta otključajte uređaj ili potvrdite identitet, npr. prilikom prijave u aplikacije"</string>
+ <string name="security_settings_fingerprint_v2_home_screen_text" product="default" msgid="5376408603508393038">"Otiskom prsta otključajte telefon ili potvrdite identitet, npr. prilikom prijave u aplikacije"</string>
<string name="biometric_settings_hand_back_to_guardian" product="tablet" msgid="9034560319613439593">"Vrati tablet roditelju"</string>
<string name="biometric_settings_hand_back_to_guardian" product="device" msgid="2149647165743006307">"Vrati telefon roditelju"</string>
<string name="biometric_settings_hand_back_to_guardian" product="default" msgid="2060265104488529949">"Vrati telefon roditelju"</string>
@@ -146,9 +146,9 @@
<string name="security_settings_sfps_enroll_find_sensor_message" product="tablet" msgid="2006739081527422127">"Senzor za otisak prsta je na dugmetu za uključivanje. To je ravno dugme pored izdignutog dugmeta za jačinu zvuka na rubu tableta."</string>
<string name="security_settings_sfps_enroll_find_sensor_message" product="device" msgid="1209233633252372907">"Senzor za otisak prsta je na dugmetu za uključivanje. To je ravno dugme pored izdignutog dugmeta za jačinu zvuka na rubu uređaja."</string>
<string name="security_settings_sfps_enroll_find_sensor_message" product="default" msgid="6862493139500275821">"Senzor za otisak prsta je na dugmetu za uključivanje. To je ravno dugme pored izdignutog dugmeta za jačinu zvuka na rubu telefona."</string>
- <string name="security_settings_fingerprint_enroll_finish_v2_message" product="tablet" msgid="2012126789397819713">"Sada pomoću otiska prsta možete otključati tablet ili potvrditi svoj identitet, naprimjer kada se prijavljujete u aplikacije ili odobravate kupovinu"</string>
- <string name="security_settings_fingerprint_enroll_finish_v2_message" product="device" msgid="7119860465479161782">"Sada pomoću otiska prsta možete otključati uređaj ili potvrditi svoj identitet, naprimjer kada se prijavljujete u aplikacije ili odobravate kupovinu"</string>
- <string name="security_settings_fingerprint_enroll_finish_v2_message" product="default" msgid="8255422287180693200">"Sada pomoću otiska prsta možete otključati telefon ili potvrditi svoj identitet, naprimjer kada se prijavljujete u aplikacije ili odobravate kupovinu"</string>
+ <string name="security_settings_fingerprint_enroll_finish_v2_message" product="tablet" msgid="2012126789397819713">"Sada pomoću otiska prsta možete otključati tablet ili potvrditi svoj identitet, npr. prilikom prijave u aplikacije ili odobravanje kupovine"</string>
+ <string name="security_settings_fingerprint_enroll_finish_v2_message" product="device" msgid="7119860465479161782">"Sada pomoću otiska prsta možete otključati uređaj ili potvrditi svoj identitet, npr. prilikom prijave u aplikacije ili odobravanje kupovine"</string>
+ <string name="security_settings_fingerprint_enroll_finish_v2_message" product="default" msgid="8255422287180693200">"Sada pomoću otiska prsta možete otključati telefon ili potvrditi svoj identitet, npr. prilikom prijave u aplikacije ili odobravanja kupovine"</string>
<string name="security_settings_fingerprint_enroll_finish_v2_add_fingerprint_message" product="tablet" msgid="7814892482046294464">"Sada pomoću otiska prsta možete otključati tablet ili potvrditi identitet, naprimjer prilikom prijave u aplikacije ili odobravanja kupovine. \n\nDodajte drugi otisak prsta da vam je lakše otključati tablet kada ga držite na drugi način."</string>
<string name="security_settings_fingerprint_enroll_finish_v2_add_fingerprint_message" product="device" msgid="8418220207105495988">"Sada pomoću otiska prsta možete otključati uređaj ili potvrditi identitet, naprimjer prilikom prijave u aplikacije ili odobravanja kupovine.\n\nDodajte drugi otisak prsta da vam je lakše otključati uređaj kada ga držite na drugi način."</string>
<string name="security_settings_fingerprint_enroll_finish_v2_add_fingerprint_message" product="default" msgid="3545300825124248359">"Sada pomoću otiska prsta možete otključati telefon ili potvrditi identitet, naprimjer prilikom prijave u aplikacije ili odobravanja kupovine.\n\nDodajte drugi otisak prsta da vam je lakše otključati telefon kada ga držite na drugi način."</string>
diff --git a/res-product/values-de/strings.xml b/res-product/values-de/strings.xml
index 22613bf..01f0e51 100644
--- a/res-product/values-de/strings.xml
+++ b/res-product/values-de/strings.xml
@@ -128,15 +128,15 @@
<string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_5" product="default" msgid="6272159089589340181">"Es kann passieren, dass dein Smartphone unbeabsichtigt entsperrt wird, wenn es z. B. von jemandem gegen deinen Finger gehalten wird."</string>
<string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_5" product="tablet" msgid="2420109998272019149">"Es kann passieren, dass dein Tablet entsperrt wird, wenn du es nicht möchtest, z. B. wenn es von jemandem gegen deinen Finger gehalten wird."</string>
<string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_5" product="device" msgid="5915844445830045866">"Es kann passieren, dass dein Gerät entsperrt wird, wenn du es nicht möchtest, z. B. wenn es von jemandem gegen deinen Finger gehalten wird."</string>
- <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_consent_5" product="default" msgid="6556725426776167791">"Das Smartphone deines Kindes kann entsperrt werden, selbst wenn es das nicht beabsichtigt. Dazu kann es z. B. an seinen Finger gehalten werden."</string>
- <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_consent_5" product="tablet" msgid="5156581794964551571">"Das Tablet deines Kindes kann auch unbeabsichtigt entsperrt werden, z. B. wenn jemand es an seinen Finger hält."</string>
+ <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_consent_5" product="default" msgid="6556725426776167791">"Das Smartphone deines Kindes kann auch entsperrt werden, ohne dass dein Kind das möchte, z. B. wenn jemand das Smartphone an den Finger deines Kindes hält."</string>
+ <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_consent_5" product="tablet" msgid="5156581794964551571">"Das Tablet deines Kindes kann auch entsperrt werden, ohne dass dein Kind das möchte, z. B. wenn jemand das Tablet an den Finger deines Kindes hält."</string>
<string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_consent_5" product="device" msgid="8309101436391515400">"Das Gerät deines Kindes kann auch unbeabsichtigt entsperrt werden, z. B. wenn jemand es an seinen Finger hält."</string>
<string name="security_settings_fingerprint_v2_home_screen_text" product="tablet" msgid="5074447304036758639">"Du kannst deinen Fingerabdruck verwenden, um dein Tablet zu entsperren oder dich zu authentifizieren, beispielsweise um dich in Apps anzumelden"</string>
<string name="security_settings_fingerprint_v2_home_screen_text" product="device" msgid="7398339851724524558">"Du kannst deinen Fingerabdruck verwenden, um dein Gerät zu entsperren oder dich zu authentifizieren, beispielsweise um dich in Apps anzumelden"</string>
<string name="security_settings_fingerprint_v2_home_screen_text" product="default" msgid="5376408603508393038">"Du kannst deinen Fingerabdruck verwenden, um dein Smartphone zu entsperren oder dich zu authentifizieren, beispielsweise um dich in Apps anzumelden"</string>
<string name="biometric_settings_hand_back_to_guardian" product="tablet" msgid="9034560319613439593">"Gib das Tablet an dein Elternteil zurück"</string>
- <string name="biometric_settings_hand_back_to_guardian" product="device" msgid="2149647165743006307">"Gib das Gerät an dein Elternteil zurück"</string>
- <string name="biometric_settings_hand_back_to_guardian" product="default" msgid="2060265104488529949">"Gib das Telefon an dein Elternteil zurück"</string>
+ <string name="biometric_settings_hand_back_to_guardian" product="device" msgid="2149647165743006307">"Gib das Gerät an deinen Elternteil zurück"</string>
+ <string name="biometric_settings_hand_back_to_guardian" product="default" msgid="2060265104488529949">"Gib das Smartphone an deinen Elternteil zurück"</string>
<string name="lock_screen_intro_skip_dialog_text_frp" product="tablet" msgid="7526137517192538870">"Die Schutzfunktionen für dein Mobilgerät werden nicht aktiviert. Du kannst dann nicht verhindern, dass andere Personen dieses Tablet verwenden, falls es verloren geht, gestohlen oder zurückgesetzt wird."</string>
<string name="lock_screen_intro_skip_dialog_text_frp" product="device" msgid="1350434793163709209">"Die Schutzfunktionen für dein Mobilgerät werden nicht aktiviert. Du kannst dann nicht verhindern, dass andere Personen dieses Gerät verwenden, falls es verloren geht, gestohlen oder zurückgesetzt wird."</string>
<string name="lock_screen_intro_skip_dialog_text_frp" product="default" msgid="8367731653387033354">"Die Schutzfunktionen für dein Mobilgerät werden nicht aktiviert. Du kannst dann nicht verhindern, dass andere Personen dieses Smartphone verwenden, falls es verloren geht, gestohlen oder zurückgesetzt wird."</string>
@@ -312,7 +312,7 @@
<string name="user_settings_footer_text" product="tablet" msgid="4749331578207116797">"Wenn auch andere Nutzer dein Tablet verwenden dürfen, kannst du ihm neue Nutzer hinzufügen. Jeder Nutzer erhält auf deinem Tablet sein privates Profil für benutzerdefinierte Startbildschirme, Konten, Apps, Einstellungen usw."</string>
<string name="user_settings_footer_text" product="default" msgid="5440172971747221370">"Wenn du dein Smartphone mit anderen teilen möchtest, kannst du neue Nutzer hinzufügen. Jeder Nutzer erhält auf deinem Smartphone ein privates Profil für eigene Startbildschirme, Konten, Apps, Einstellungen usw."</string>
<string name="user_cannot_manage_message" product="tablet" msgid="5566619500245432179">"Nur der Eigentümer des Tablets kann Nutzer verwalten."</string>
- <string name="user_cannot_manage_message" product="default" msgid="8596259161937605316">"Nur der Eigentümer des Telefons kann Nutzer verwalten."</string>
+ <string name="user_cannot_manage_message" product="default" msgid="8596259161937605316">"Nur der Eigentümer des Smartphones kann Nutzer verwalten."</string>
<string name="user_confirm_remove_self_message" product="tablet" msgid="6880861846664267876">"Dein Profil und deine Daten werden vom Tablet entfernt. Du kannst diese Aktion nicht rückgängig machen."</string>
<string name="user_confirm_remove_self_message" product="default" msgid="3209762447055039706">"Dein Profil und deine Daten werden vom Telefon entfernt. Du kannst diese Aktion nicht rückgängig machen."</string>
<string name="support_summary" product="default" msgid="2044721479256103419">"Hilfeartikel, Telefon- & Chatsupport"</string>
diff --git a/res-product/values-es-feminine/strings.xml b/res-product/values-es-feminine/strings.xml
new file mode 100644
index 0000000..61a55da
--- /dev/null
+++ b/res-product/values-es-feminine/strings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2022 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="security_settings_face_settings_footer_class3_attention_not_supported" product="default" msgid="5512898803063743303">"Usa la cara para desbloquear tu teléfono o verificar que eres tú (por ejemplo, al iniciar sesión en aplicaciones o para aprobar compras).\n\nTen en cuenta lo siguiente:\nSolo puedes tener registrada una cara. Si quieres añadir otra, debes eliminar la que ya está registrada.\n\nEs posible que el teléfono se desbloquee si lo miras, aunque no sea tu intención.\n\nOtra persona puede desbloquear el teléfono si lo pone frente a tu cara, incluso si tienes los ojos cerrados.\n\nEs posible que una persona que se parezca mucho a ti (como una gemela) pueda desbloquear el teléfono."</string>
+</resources>
diff --git a/res-product/values-es-masculine/strings.xml b/res-product/values-es-masculine/strings.xml
new file mode 100644
index 0000000..54f55d6
--- /dev/null
+++ b/res-product/values-es-masculine/strings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2022 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="security_settings_face_settings_footer_class3_attention_not_supported" product="default" msgid="5512898803063743303">"Usa la cara para desbloquear tu teléfono o verificar que eres tú (por ejemplo, al iniciar sesión en aplicaciones o para aprobar compras).\n\nTen en cuenta lo siguiente:\nSolo puedes tener registrada una cara. Si quieres añadir otra, debes eliminar la que ya está registrada.\n\nEs posible que el teléfono se desbloquee si lo miras, aunque no sea tu intención.\n\nOtra persona puede desbloquear el teléfono si lo pone frente a tu cara, incluso si tienes los ojos cerrados.\n\nEs posible que una persona que se parezca mucho a ti (como un gemelo) pueda desbloquear el teléfono."</string>
+</resources>
diff --git a/res-product/values-es-neuter/strings.xml b/res-product/values-es-neuter/strings.xml
new file mode 100644
index 0000000..54f55d6
--- /dev/null
+++ b/res-product/values-es-neuter/strings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2022 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="security_settings_face_settings_footer_class3_attention_not_supported" product="default" msgid="5512898803063743303">"Usa la cara para desbloquear tu teléfono o verificar que eres tú (por ejemplo, al iniciar sesión en aplicaciones o para aprobar compras).\n\nTen en cuenta lo siguiente:\nSolo puedes tener registrada una cara. Si quieres añadir otra, debes eliminar la que ya está registrada.\n\nEs posible que el teléfono se desbloquee si lo miras, aunque no sea tu intención.\n\nOtra persona puede desbloquear el teléfono si lo pone frente a tu cara, incluso si tienes los ojos cerrados.\n\nEs posible que una persona que se parezca mucho a ti (como un gemelo) pueda desbloquear el teléfono."</string>
+</resources>
diff --git a/res-product/values-es-rUS/strings.xml b/res-product/values-es-rUS/strings.xml
index 41adf52..27961e6 100644
--- a/res-product/values-es-rUS/strings.xml
+++ b/res-product/values-es-rUS/strings.xml
@@ -55,12 +55,12 @@
<string name="security_settings_face_enroll_introduction_message_class3" product="default" msgid="8492576130109033451">"Usa tu rostro para desbloquear el teléfono o autenticarte en apps, como cuando accedes o apruebas compras"</string>
<string name="security_settings_face_enroll_introduction_message_class3" product="tablet" msgid="8736497842795690098">"Usa tu rostro para desbloquear la tablet o autenticarte en apps, como cuando accedes o apruebas compras"</string>
<string name="security_settings_face_enroll_introduction_message_class3" product="device" msgid="2558057312718921078">"Usa tu rostro para desbloquear el dispositivo o autenticarte en apps, como cuando accedes o apruebas compras"</string>
- <string name="security_settings_face_enroll_introduction_consent_message_0" product="default" msgid="9086377203303858619">"Permite que tu hijo desbloquee su teléfono con el rostro"</string>
- <string name="security_settings_face_enroll_introduction_consent_message_0" product="tablet" msgid="4560949471246282574">"Permite que tu hijo desbloquee su tablet con el rostro"</string>
- <string name="security_settings_face_enroll_introduction_consent_message_0" product="device" msgid="1156063265854416046">"Permite que tu hijo desbloquee su dispositivo con el rostro"</string>
+ <string name="security_settings_face_enroll_introduction_consent_message_0" product="default" msgid="9086377203303858619">"Permite que tu hijo o hija desbloquee su teléfono con el rostro"</string>
+ <string name="security_settings_face_enroll_introduction_consent_message_0" product="tablet" msgid="4560949471246282574">"Permite que tu hijo o hija desbloquee su tablet con el rostro"</string>
+ <string name="security_settings_face_enroll_introduction_consent_message_0" product="device" msgid="1156063265854416046">"Permite que tu hijo o hija desbloquee su dispositivo con el rostro"</string>
<string name="security_settings_face_enroll_introduction_consent_message_0_class3" product="default" msgid="5082581184108528408">"Permite que tu hijo o hija use su rostro para desbloquear el teléfono o verificar su identidad. Permitirá el acceso a apps, aprobar compras y mucho más."</string>
<string name="security_settings_face_enroll_introduction_consent_message_0_class3" product="tablet" msgid="5932555218164668532">"Permite que tu hijo o hija use su rostro para desbloquear la tablet o verificar su identidad. Permitirá el acceso a apps, aprobar compras y mucho más."</string>
- <string name="security_settings_face_enroll_introduction_consent_message_0_class3" product="device" msgid="8943878265098867810">"Permite que tu hijo o hija use su rostro para desbloquear el dispositivo o verificar su identidad. Permitirá el acceso a apps, aprobar compras y mucho más."</string>
+ <string name="security_settings_face_enroll_introduction_consent_message_0_class3" product="device" msgid="8943878265098867810">"Permite que tu hijo o hija use su rostro para desbloquear el dispositivo o verificar su identidad. Permitirá acceder a apps, aprobar compras y mucho más."</string>
<string name="security_settings_face_enroll_introduction_consent_message" product="default" msgid="3698558920963989416">"Usar el desbloqueo facial para que tu hijo acceda a su teléfono puede ser menos seguro que usar un buen patrón o un PIN."</string>
<string name="security_settings_face_enroll_introduction_consent_message" product="tablet" msgid="2689983368730833505">"Usar el desbloqueo facial para que tu hijo acceda a su tablet puede ser menos seguro que usar un buen patrón o un PIN."</string>
<string name="security_settings_face_enroll_introduction_consent_message" product="device" msgid="5768077532130409820">"Usar el desbloqueo facial para que tu hijo acceda a su dispositivo puede ser menos seguro que usar un buen patrón o un PIN."</string>
@@ -107,9 +107,9 @@
<string name="security_settings_face_settings_footer_class3_attention_not_supported" product="tablet" msgid="6790505667764631343">"Usa tu rostro para desbloquear la tablet o verificar tu identidad, por ejemplo, cuando accedes a apps o apruebas compras.\n\nTen en cuenta lo siguiente:\nSolo puedes configurar un rostro por vez. Para agregar otro rostro, borra el actual.\n\nPuedes desbloquear la tablet aunque no lo desees cuando la miras.\n\nUn tercero puede desbloquear la tablet si la sostiene frente a tu rostro, incluso aunque tengas los ojos cerrados.\n\nTambién puede desbloquearla cualquier persona que se parezca a ti, como un hermano gemelo."</string>
<string name="security_settings_face_settings_footer_class3_attention_not_supported" product="device" msgid="7858917821957779752">"Usa tu rostro para desbloquear el dispositivo o verificar tu identidad, por ejemplo, cuando accedes a apps o apruebas compras.\n\nTen en cuenta lo siguiente:\nSolo puedes configurar un rostro por vez. Para agregar otro rostro, borra el actual.\n\nPuedes desbloquear el dispositivo aunque no lo desees cuando lo miras.\n\nUn tercero puede desbloquear el dispositivo si lo sostiene frente a tu rostro, incluso aunque tengas los ojos cerrados.\n\nTambién puede desbloquearlo cualquier persona que se parezca a ti, como un hermano gemelo."</string>
<string name="security_settings_fingerprint_enroll_introduction_v3_message" msgid="2145273491174234191">"Usa tu huella dactilar para desbloquear el dispositivo <xliff:g id="DEVICENAME">%s</xliff:g> o verificar tu identidad, como cuando accedes a apps o apruebas compras."</string>
- <string name="security_settings_fingerprint_enroll_introduction_consent_message" product="default" msgid="5101253231118659496">"Permite que tu hijo use su huella dactilar para desbloquear el teléfono o verificar su identidad. Eso le permitirá acceder a apps, aprobar compras y mucho más."</string>
- <string name="security_settings_fingerprint_enroll_introduction_consent_message" product="tablet" msgid="3063978167545799342">"Permite que tu hijo use su huella dactilar para desbloquear la tablet o verificar su identidad. Eso le permitirá acceder a apps, aprobar compras y mucho más."</string>
- <string name="security_settings_fingerprint_enroll_introduction_consent_message" product="device" msgid="4399560001732497632">"Permite que tu hijo use su huella dactilar para desbloquear el dispositivo o verificar su identidad. Eso le permitirá acceder a apps, aprobar compras y mucho más."</string>
+ <string name="security_settings_fingerprint_enroll_introduction_consent_message" product="default" msgid="5101253231118659496">"Permite que tu hijo o hija use su huella dactilar para desbloquear el teléfono o verificar su identidad. Eso le permitirá acceder a apps, aprobar compras y mucho más."</string>
+ <string name="security_settings_fingerprint_enroll_introduction_consent_message" product="tablet" msgid="3063978167545799342">"Permite que tu hijo o hija use su huella dactilar para desbloquear la tablet o verificar su identidad. Eso le permitirá acceder a apps, aprobar compras y mucho más."</string>
+ <string name="security_settings_fingerprint_enroll_introduction_consent_message" product="device" msgid="4399560001732497632">"Permite que tu hijo o hija use su huella dactilar para desbloquear el dispositivo o verificar su identidad. Eso le permitirá acceder a apps, aprobar compras y mucho más."</string>
<string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_1" product="default" msgid="8488497844109768268">"Es posible que el desbloqueo con huella dactilar sea menos seguro que un patrón o un PIN eficaz"</string>
<string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_1" product="tablet" msgid="5688664190282817312">"El uso de la huella dactilar para desbloquear la tablet puede ser menos seguro que un patrón o PIN confiables"</string>
<string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_1" product="device" msgid="2814616139536479018">"El uso de la huella dactilar para desbloquear el dispositivo puede ser menos seguro que un patrón o PIN confiables"</string>
@@ -128,9 +128,9 @@
<string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_5" product="default" msgid="6272159089589340181">"Tu teléfono se puede desbloquear aunque no lo desees, por ejemplo, si alguien lo acerca a tu dedo."</string>
<string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_5" product="tablet" msgid="2420109998272019149">"Tu tablet se puede desbloquear aunque no lo desees, por ejemplo, cuando alguien la sostiene frente a tu dedo."</string>
<string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_5" product="device" msgid="5915844445830045866">"Tu dispositivo se puede desbloquear aunque no lo desees, por ejemplo, cuando alguien lo sostiene frente a tu dedo."</string>
- <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_consent_5" product="default" msgid="6556725426776167791">"El teléfono de tu hijo puede desbloquearse sin que así lo quisiera, por ejemplo, porque alguien se lo acercó al dedo."</string>
+ <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_consent_5" product="default" msgid="6556725426776167791">"El teléfono de tu hijo o hija puede desbloquearse de manera no intencional, por ejemplo, si alguien se lo acerca al dedo."</string>
<string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_consent_5" product="tablet" msgid="5156581794964551571">"La tablet de tu hijo puede desbloquearse de manera no intencional, por ejemplo, si alguien se la acerca al dedo."</string>
- <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_consent_5" product="device" msgid="8309101436391515400">"El dispositivo de tu hijo puede desbloquearse de manera no intencional, por ejemplo, si alguien se lo acerca al dedo."</string>
+ <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_consent_5" product="device" msgid="8309101436391515400">"El dispositivo de tu hijo o hija puede desbloquearse de manera no intencional, por ejemplo, si alguien se lo acerca al dedo."</string>
<string name="security_settings_fingerprint_v2_home_screen_text" product="tablet" msgid="5074447304036758639">"Usa tu huella dactilar para desbloquear la tablet o verificar tu identidad, por ejemplo, cuando accedes a apps."</string>
<string name="security_settings_fingerprint_v2_home_screen_text" product="device" msgid="7398339851724524558">"Usa tu huella dactilar para desbloquear el dispositivo o verificar tu identidad, por ejemplo, cuando accedes a apps"</string>
<string name="security_settings_fingerprint_v2_home_screen_text" product="default" msgid="5376408603508393038">"Usa tu huella dactilar para desbloquear el teléfono o verificar tu identidad, como cuando accedes a apps"</string>
@@ -243,7 +243,7 @@
<string name="storage_wizard_init_v2_internal_title" product="default" msgid="2049551739429034707">"Formatear tarjeta SD como almacenamiento interno"</string>
<string name="storage_wizard_init_v2_internal_summary" product="default" msgid="4395040788668914783">"Almacenar apps y contenido multimedia para usar solo en este teléfono. <a href=https://support.google.com/android/answer/12153449>Más información para configurar una tarjeta SD</a>."</string>
<string name="storage_wizard_init_v2_internal_action" product="default" msgid="560506072518373839">"Formatear"</string>
- <string name="storage_wizard_migrate_v2_body" product="tablet" msgid="7539293889421540797">"Puedes transferir archivos, contenido multimedia y determinadas apps a este <xliff:g id="NAME">^1</xliff:g>. \n\nSi lo haces, podrás liberar hasta <xliff:g id="SIZE">^2</xliff:g> de almacenamiento en tu tablet. El proceso llevará aproximadamente <xliff:g id="DURATION">^3</xliff:g>."</string>
+ <string name="storage_wizard_migrate_v2_body" product="tablet" msgid="7539293889421540797">"Puedes transferir archivos, contenido multimedia y determinadas apps a \"<xliff:g id="NAME">^1</xliff:g>\". \n\nSi lo haces, podrás liberar hasta <xliff:g id="SIZE">^2</xliff:g> de almacenamiento en tu tablet. El proceso tardará aproximadamente <xliff:g id="DURATION">^3</xliff:g>."</string>
<string name="storage_wizard_migrate_v2_body" product="default" msgid="3807501187945770401">"Puedes transferir archivos, contenido multimedia y algunas apps a este <xliff:g id="NAME">^1</xliff:g>. \n\nSi lo haces, podrás liberar hasta <xliff:g id="SIZE">^2</xliff:g> de almacenamiento en tu teléfono. El proceso llevará aproximadamente <xliff:g id="DURATION">^3</xliff:g>."</string>
<string name="storage_wizard_migrate_v2_checklist_battery" product="tablet" msgid="5326017162943304749">"Mantén la tablet cargada"</string>
<string name="storage_wizard_migrate_v2_checklist_battery" product="default" msgid="8041162611685970218">"Mantén el teléfono cargado"</string>
@@ -272,9 +272,9 @@
<string name="install_all_warning" product="tablet" msgid="1732116924846572063">"Tu tablet y tus datos personales son más vulnerables a los ataques de apps desconocidas. Si instalas apps de esta fuente, serás responsable de los daños que sufra tu tablet y la pérdida de datos debido al uso de estas apps."</string>
<string name="install_all_warning" product="default" msgid="4597256179485325694">"Tu teléfono y tus datos personales son más vulnerables a los ataques de apps desconocidas. Si instalas apps de esta fuente, serás responsable de los daños que sufra tu teléfono y la pérdida de datos que pueda derivar de su uso."</string>
<string name="install_all_warning" product="device" msgid="6293002353591632851">"Tu dispositivo y tus datos personales son más vulnerables a los ataques de apps desconocidas. Si instalas apps de esta fuente, serás responsable de los daños que sufra el dispositivo o de la pérdida de datos que se pueda derivar de su uso."</string>
- <string name="runningservicedetails_stop_dlg_text" product="tablet" msgid="6321057186549848774">"Si detienes este servicio, algunas funciones de la tablet podrían dejar de ejecutarse correctamente hasta que lo apagues y enciendas nuevamente."</string>
+ <string name="runningservicedetails_stop_dlg_text" product="tablet" msgid="6321057186549848774">"Si detienes este servicio, algunas funciones de la tablet podrían dejar de ejecutarse correctamente hasta que la reinicies."</string>
<string name="runningservicedetails_stop_dlg_text" product="default" msgid="6869998550403667737">"Si detienes este servicio, algunas funciones del dispositivo podrían dejar de ejecutarse correctamente hasta que lo apagues y enciendas nuevamente."</string>
- <string name="testing_phone_info" product="tablet" msgid="8267746802132630741">"Información del tablet"</string>
+ <string name="testing_phone_info" product="tablet" msgid="8267746802132630741">"Información de la tablet"</string>
<string name="testing_phone_info" product="default" msgid="7507506297352160191">"Información del dispositivo"</string>
<string name="accessibility_text_reading_confirm_dialog_message" product="default" msgid="1773409172676594981">"Se restablecerán las preferencias de tamaño de visualización y texto de la pantalla a las de la configuración original del teléfono"</string>
<string name="accessibility_text_reading_confirm_dialog_message" product="tablet" msgid="2547948891207211388">"Se restablecerán las preferencias de tamaño de visualización y texto de la pantalla a las de la configuración original de la tablet."</string>
@@ -312,7 +312,7 @@
<string name="user_settings_footer_text" product="tablet" msgid="4749331578207116797">"Agrega nuevos usuarios para compartir tu tablet. Cada usuario tendrá un espacio propio en la tablet con pantalla principal, cuentas, apps y opciones de configuración personalizadas, y mucho más."</string>
<string name="user_settings_footer_text" product="default" msgid="5440172971747221370">"Agrega nuevos usuarios para compartir tu teléfono. Cada usuario tendrá un espacio propio en el teléfono con pantalla principal, cuentas, apps y opciones de configuración personalizadas, y mucho más."</string>
<string name="user_cannot_manage_message" product="tablet" msgid="5566619500245432179">"Solo los propietarios de la tablet pueden administrar los usuarios."</string>
- <string name="user_cannot_manage_message" product="default" msgid="8596259161937605316">"Solo los propietarios del dispositivo pueden administrar los usuarios."</string>
+ <string name="user_cannot_manage_message" product="default" msgid="8596259161937605316">"Solo el propietario del teléfono puede administrar usuarios."</string>
<string name="user_confirm_remove_self_message" product="tablet" msgid="6880861846664267876">"Perderás tu espacio y tus datos en esta tablet. No puedes deshacer esta acción."</string>
<string name="user_confirm_remove_self_message" product="default" msgid="3209762447055039706">"Perderás tu espacio y tus datos en este dispositivo. No puedes deshacer esta acción."</string>
<string name="support_summary" product="default" msgid="2044721479256103419">"Artículos de ayuda, teléfono y chat"</string>
diff --git a/res-product/values-es/strings.xml b/res-product/values-es/strings.xml
index 1633891..ac2b31b 100644
--- a/res-product/values-es/strings.xml
+++ b/res-product/values-es/strings.xml
@@ -56,8 +56,8 @@
<string name="security_settings_face_enroll_introduction_message_class3" product="tablet" msgid="8736497842795690098">"Usa la cara para desbloquear tu tablet o autenticarte en aplicaciones, como al iniciar sesión o aprobar compras"</string>
<string name="security_settings_face_enroll_introduction_message_class3" product="device" msgid="2558057312718921078">"Usa la cara para desbloquear tu dispositivo o autenticarte en aplicaciones, como al iniciar sesión o aprobar compras"</string>
<string name="security_settings_face_enroll_introduction_consent_message_0" product="default" msgid="9086377203303858619">"Permitir que tu hijo/a use el reconocimiento facial para desbloquear su teléfono"</string>
- <string name="security_settings_face_enroll_introduction_consent_message_0" product="tablet" msgid="4560949471246282574">"Permitir que tu hijo/a use el reconocimiento facial para desbloquear su tablet"</string>
- <string name="security_settings_face_enroll_introduction_consent_message_0" product="device" msgid="1156063265854416046">"Permitir que tu hijo/a use el reconocimiento facial para desbloquear su dispositivo"</string>
+ <string name="security_settings_face_enroll_introduction_consent_message_0" product="tablet" msgid="4560949471246282574">"Permite que tu hijo/a use el reconocimiento facial para desbloquear su tablet"</string>
+ <string name="security_settings_face_enroll_introduction_consent_message_0" product="device" msgid="1156063265854416046">"Permite que tu hijo/a use el reconocimiento facial para desbloquear su dispositivo"</string>
<string name="security_settings_face_enroll_introduction_consent_message_0_class3" product="default" msgid="5082581184108528408">"Permite que tu hijo/a pueda desbloquear su teléfono o verificar su identidad mediante su cara, por ejemplo, para iniciar sesión en aplicaciones, aprobar compras, etc."</string>
<string name="security_settings_face_enroll_introduction_consent_message_0_class3" product="tablet" msgid="5932555218164668532">"Permite que tu hijo/a pueda desbloquear su tablet o verificar su identidad mediante su cara, por ejemplo, para iniciar sesión en aplicaciones, aprobar compras, etc."</string>
<string name="security_settings_face_enroll_introduction_consent_message_0_class3" product="device" msgid="8943878265098867810">"Permite que tu hijo/a pueda desbloquear su dispositivo o verificar su identidad mediante su cara, por ejemplo, para iniciar sesión en aplicaciones, aprobar compras, etc."</string>
@@ -94,27 +94,27 @@
<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">"Usa la cara para desbloquear tu teléfono o autenticarte en aplicaciones (por ejemplo, para iniciar sesión o autorizar compras).\n\nTen en cuenta lo siguiente:\nSolo puedes tener registrada una cara. Si quieres añadir otra, debes eliminar la que ya esté registrada.\n\nEs posible que el teléfono se desbloquee si lo miras, aunque no sea tu intención.\n\nOtra persona puede desbloquear el teléfono si lo pone frente a tu cara.\n\nEs posible que una persona que se parezca mucho a ti (como un gemelo) pueda desbloquear el teléfono."</string>
- <string name="security_settings_face_settings_footer" product="tablet" msgid="3467711032275909082">"Usa la cara para desbloquear tu tablet o autenticarte en aplicaciones (por ejemplo, para iniciar sesión o autorizar compras).\n\nTen en cuenta lo siguiente:\nSolo puedes tener registrada una cara. Si quieres añadir otra, debes eliminar la que ya esté registrada.\n\nEs posible que la tablet se desbloquee si la miras, aunque no sea tu intención.\n\nOtra persona puede desbloquear la tablet si la pone frente a tu cara.\n\nEs posible que una persona que se parezca mucho a ti (como un gemelo) pueda desbloquear la tablet."</string>
+ <string name="security_settings_face_settings_footer" product="default" msgid="3036403896485044957">"Usa la cara para desbloquear tu teléfono o autenticarte en aplicaciones (por ejemplo, para iniciar sesión o autorizar compras).\n\nTen en cuenta lo siguiente:\nSolo puedes tener registrada una cara. Si quieres añadir otra, debes eliminar la que ya está registrada.\n\nEs posible que el teléfono se desbloquee si lo miras, aunque no sea tu intención.\n\nOtra persona puede desbloquear el teléfono si lo pone frente a tu cara.\n\nEs posible que una persona que se parezca mucho a ti (como un gemelo) pueda desbloquear el teléfono."</string>
+ <string name="security_settings_face_settings_footer" product="tablet" msgid="3467711032275909082">"Usa la cara para desbloquear tu tablet o autenticarte en aplicaciones (por ejemplo, para iniciar sesión o autorizar compras).\n\nTen en cuenta lo siguiente:\nSolo puedes tener registrada una cara. Si quieres añadir otra, debes eliminar la que ya está registrada.\n\nEs posible que la tablet se desbloquee si la miras, aunque no sea tu intención.\n\nOtra persona puede desbloquear la tablet si la pone frente a tu cara.\n\nEs posible que una persona que se parezca mucho a ti (como un gemelo) pueda desbloquear la tablet."</string>
<string name="security_settings_face_settings_footer" product="device" msgid="6237815625247917310">"Usa la cara para desbloquear tu dispositivo o autenticarte en aplicaciones (por ejemplo, para iniciar sesión o autorizar compras).\n\nTen en cuenta lo siguiente:\nSolo puedes tener registrada una cara. Si quieres añadir otra, debes eliminar la que ya está registrada.\n\nEs posible que el dispositivo se desbloquee si lo miras, aunque no sea tu intención.\n\nOtra persona puede desbloquear el dispositivo si lo pone frente a tu cara.\n\nEs posible que una persona que se parezca mucho a ti (como un gemelo) pueda desbloquear el dispositivo."</string>
- <string name="security_settings_face_settings_footer_attention_not_supported" product="default" msgid="8266896471278294942">"Usa la cara para desbloquear tu teléfono o autenticarte en aplicaciones (por ejemplo, para iniciar sesión o autorizar compras).\n\nTen en cuenta lo siguiente:\nSolo puedes tener registrada una cara. Si quieres añadir otra, debes eliminar la que ya esté registrada.\n\nEs posible que el teléfono se desbloquee si lo miras, aunque no sea tu intención.\n\nOtra persona puede desbloquear el teléfono si lo pone frente a tu cara, incluso si tienes los ojos cerrados.\n\nEs posible que una persona que se parezca mucho a ti (como un gemelo) pueda desbloquear el teléfono."</string>
- <string name="security_settings_face_settings_footer_attention_not_supported" product="tablet" msgid="6932278790700490818">"Usa la cara para desbloquear tu tablet o autenticarte en aplicaciones (por ejemplo, para iniciar sesión o autorizar compras).\n\nTen en cuenta lo siguiente:\nSolo puedes tener registrada una cara. Si quieres añadir otra, debes eliminar la que ya esté registrada.\n\nEs posible que la tablet se desbloquee si la miras, aunque no sea tu intención.\n\nOtra persona puede desbloquear la tablet si la pone frente a tu cara, incluso si tienes los ojos cerrados.\n\nEs posible que una persona que se parezca mucho a ti (como un gemelo) pueda desbloquear la tablet."</string>
- <string name="security_settings_face_settings_footer_attention_not_supported" product="device" msgid="2559602951942339212">"Usa la cara para desbloquear tu dispositivo o autenticarte en aplicaciones (por ejemplo, para iniciar sesión o autorizar compras).\n\nTen en cuenta lo siguiente:\nSolo puedes tener registrada una cara. Si quieres añadir otra, debes eliminar la que ya esté registrada.\n\nEs posible que el dispositivo se desbloquee si lo miras, aunque no sea tu intención.\n\nOtra persona puede desbloquear el dispositivo si lo pone frente a tu cara, incluso si tienes los ojos cerrados.\n\nEs posible que una persona que se parezca mucho a ti (como un gemelo) pueda desbloquear el dispositivo."</string>
+ <string name="security_settings_face_settings_footer_attention_not_supported" product="default" msgid="8266896471278294942">"Usa la cara para desbloquear tu teléfono o autenticarte en aplicaciones (por ejemplo, para iniciar sesión o autorizar compras).\n\nTen en cuenta lo siguiente:\nSolo puedes tener registrada una cara. Si quieres añadir otra, debes eliminar la que ya está registrada.\n\nEs posible que el teléfono se desbloquee si lo miras, aunque no sea tu intención.\n\nOtra persona puede desbloquear el teléfono si lo pone frente a tu cara, incluso si tienes los ojos cerrados.\n\nEs posible que una persona que se parezca mucho a ti (como un gemelo) pueda desbloquear el teléfono."</string>
+ <string name="security_settings_face_settings_footer_attention_not_supported" product="tablet" msgid="6932278790700490818">"Usa la cara para desbloquear tu tablet o autenticarte en aplicaciones (por ejemplo, para iniciar sesión o autorizar compras).\n\nTen en cuenta lo siguiente:\nSolo puedes tener registrada una cara. Si quieres añadir otra, debes eliminar la que ya está registrada.\n\nEs posible que la tablet se desbloquee si la miras, aunque no sea tu intención.\n\nOtra persona puede desbloquear la tablet si la pone frente a tu cara, incluso si tienes los ojos cerrados.\n\nEs posible que una persona que se parezca mucho a ti (como un gemelo) pueda desbloquear la tablet."</string>
+ <string name="security_settings_face_settings_footer_attention_not_supported" product="device" msgid="2559602951942339212">"Usa la cara para desbloquear tu dispositivo o autenticarte en aplicaciones (por ejemplo, para iniciar sesión o autorizar compras).\n\nTen en cuenta lo siguiente:\nSolo puedes tener registrada una cara. Si quieres añadir otra, debes eliminar la que ya está registrada.\n\nEs posible que el dispositivo se desbloquee si lo miras, aunque no sea tu intención.\n\nOtra persona puede desbloquear el dispositivo si lo pone frente a tu cara, incluso si tienes los ojos cerrados.\n\nEs posible que una persona que se parezca mucho a ti (como un gemelo) pueda desbloquear el dispositivo."</string>
<string name="security_settings_face_settings_footer_class3" product="default" msgid="7050076350282827484">"Usa la cara para desbloquear tu teléfono o verificar que eres tú (por ejemplo, al iniciar sesión en aplicaciones o para aprobar compras).\n\nTen en cuenta lo siguiente:\nSolo puedes tener registrada una cara. Si quieres añadir otra, debes eliminar la que ya está registrada.\n\nEs posible que el teléfono se desbloquee si lo miras, aunque no sea tu intención.\n\nOtra persona puede desbloquear el teléfono si lo pone frente a tu cara.\n\nEs posible que una persona que se parezca mucho a ti (como un gemelo) pueda desbloquear el teléfono."</string>
- <string name="security_settings_face_settings_footer_class3" product="tablet" msgid="8013245173915280810">"Usa la cara para desbloquear tu tablet o verificar que eres tú (por ejemplo, al iniciar sesión en aplicaciones o para aprobar compras).\n\nTen en cuenta lo siguiente:\nSolo puedes tener registrada una cara. Si quieres añadir otra, debes eliminar la que ya esté registrada.\n\nEs posible que la tablet se desbloquee si la miras, aunque no sea tu intención.\n\nOtra persona puede desbloquear la tablet si la pone frente a tu cara.\n\nEs posible que una persona que se parezca mucho a ti (como un gemelo) pueda desbloquear la tablet."</string>
- <string name="security_settings_face_settings_footer_class3" product="device" msgid="4411845832787210264">"Usa la cara para desbloquear tu dispositivo o verificar que eres tú (por ejemplo, al iniciar sesión en aplicaciones o para aprobar compras).\n\nTen en cuenta lo siguiente:\nSolo puedes tener registrada una cara. Si quieres añadir otra, debes eliminar la que ya esté registrada.\n\nEs posible que el dispositivo se desbloquee si lo miras, aunque no sea tu intención.\n\nOtra persona puede desbloquear el dispositivo si lo pone frente a tu cara.\n\nEs posible que una persona que se parezca mucho a ti (como un gemelo) pueda desbloquear el dispositivo."</string>
- <string name="security_settings_face_settings_footer_class3_attention_not_supported" product="default" msgid="5512898803063743303">"Usa la cara para desbloquear tu teléfono o verificar que eres tú (por ejemplo, al iniciar sesión en aplicaciones o para aprobar compras).\n\nTen en cuenta lo siguiente:\nSolo puedes tener registrada una cara. Si quieres añadir otra, debes eliminar la que ya esté registrada.\n\nEs posible que el teléfono se desbloquee si lo miras, aunque no sea tu intención.\n\nOtra persona puede desbloquear el teléfono si lo pone frente a tu cara, incluso si tienes los ojos cerrados.\n\nEs posible que una persona que se parezca mucho a ti (como un gemelo) pueda desbloquear el teléfono."</string>
- <string name="security_settings_face_settings_footer_class3_attention_not_supported" product="tablet" msgid="6790505667764631343">"Usa la cara para desbloquear tu tablet o verificar que eres tú (por ejemplo, al iniciar sesión en aplicaciones o para aprobar compras).\n\nTen en cuenta lo siguiente:\nSolo puedes tener registrada una cara. Si quieres añadir otra, debes eliminar la que ya esté registrada.\n\nEs posible que la tablet se desbloquee si la miras, aunque no sea tu intención.\n\nOtra persona puede desbloquear la tablet si la pone frente a tu cara, incluso si tienes los ojos cerrados.\n\nEs posible que una persona que se parezca mucho a ti (como un gemelo) pueda desbloquear la tablet."</string>
- <string name="security_settings_face_settings_footer_class3_attention_not_supported" product="device" msgid="7858917821957779752">"Usa la cara para desbloquear tu dispositivo o verificar que eres tú (por ejemplo, al iniciar sesión en aplicaciones o para aprobar compras).\n\nTen en cuenta lo siguiente:\nSolo puedes tener registrada una cara. Si quieres añadir otra, debes eliminar la que ya esté registrada.\n\nEs posible que el dispositivo se desbloquee si lo miras, aunque no sea tu intención.\n\nOtra persona puede desbloquear el dispositivo si lo pone frente a tu cara, incluso si tienes los ojos cerrados.\n\nEs posible que una persona que se parezca mucho a ti (como un gemelo) pueda desbloquear el dispositivo."</string>
+ <string name="security_settings_face_settings_footer_class3" product="tablet" msgid="8013245173915280810">"Usa la cara para desbloquear tu tablet o verificar que eres tú (por ejemplo, al iniciar sesión en aplicaciones o para aprobar compras).\n\nTen en cuenta lo siguiente:\nSolo puedes tener registrada una cara. Si quieres añadir otra, debes eliminar la que ya está registrada.\n\nEs posible que la tablet se desbloquee si la miras, aunque no sea tu intención.\n\nOtra persona puede desbloquear la tablet si la pone frente a tu cara.\n\nEs posible que una persona que se parezca mucho a ti (como un gemelo) pueda desbloquear la tablet."</string>
+ <string name="security_settings_face_settings_footer_class3" product="device" msgid="4411845832787210264">"Usa la cara para desbloquear tu dispositivo o verificar que eres tú (por ejemplo, al iniciar sesión en aplicaciones o para aprobar compras).\n\nTen en cuenta lo siguiente:\nSolo puedes tener registrada una cara. Si quieres añadir otra, debes eliminar la que ya está registrada.\n\nEs posible que el dispositivo se desbloquee si lo miras, aunque no sea tu intención.\n\nOtra persona puede desbloquear el dispositivo si lo pone frente a tu cara.\n\nEs posible que una persona que se parezca mucho a ti (como un gemelo) pueda desbloquear el dispositivo."</string>
+ <string name="security_settings_face_settings_footer_class3_attention_not_supported" product="default" msgid="5512898803063743303">"Usa la cara para desbloquear tu teléfono o verificar que eres tú (por ejemplo, al iniciar sesión en aplicaciones o para aprobar compras).\n\nTen en cuenta lo siguiente:\nSolo puedes tener registrada una cara. Si quieres añadir otra, debes eliminar la que ya está registrada.\n\nEs posible que el teléfono se desbloquee si lo miras, aunque no sea tu intención.\n\nOtra persona puede desbloquear el teléfono si lo pone frente a tu cara, incluso si tienes los ojos cerrados.\n\nEs posible que una persona que se parezca mucho a ti (como un gemelo) pueda desbloquear el teléfono."</string>
+ <string name="security_settings_face_settings_footer_class3_attention_not_supported" product="tablet" msgid="6790505667764631343">"Usa la cara para desbloquear tu tablet o verificar que eres tú (por ejemplo, al iniciar sesión en aplicaciones o para aprobar compras).\n\nTen en cuenta lo siguiente:\nSolo puedes tener registrada una cara. Si quieres añadir otra, debes eliminar la que ya está registrada.\n\nEs posible que la tablet se desbloquee si la miras, aunque no sea tu intención.\n\nOtra persona puede desbloquear la tablet si la pone frente a tu cara, incluso si tienes los ojos cerrados.\n\nEs posible que una persona que se parezca mucho a ti (como un gemelo) pueda desbloquear la tablet."</string>
+ <string name="security_settings_face_settings_footer_class3_attention_not_supported" product="device" msgid="7858917821957779752">"Usa la cara para desbloquear tu dispositivo o verificar que eres tú (por ejemplo, al iniciar sesión en aplicaciones o para aprobar compras).\n\nTen en cuenta lo siguiente:\nSolo puedes tener registrada una cara. Si quieres añadir otra, debes eliminar la que ya está registrada.\n\nEs posible que el dispositivo se desbloquee si lo miras, aunque no sea tu intención.\n\nOtra persona puede desbloquear el dispositivo si lo pone frente a tu cara, incluso si tienes los ojos cerrados.\n\nEs posible que una persona que se parezca mucho a ti (como un gemelo) pueda desbloquear el dispositivo."</string>
<string name="security_settings_fingerprint_enroll_introduction_v3_message" msgid="2145273491174234191">"Usa tu huella digital para desbloquear tu <xliff:g id="DEVICENAME">%s</xliff:g> o verificar que eres tú (por ejemplo, al iniciar sesión en aplicaciones o para aprobar compras)"</string>
<string name="security_settings_fingerprint_enroll_introduction_consent_message" product="default" msgid="5101253231118659496">"Permítele a tu hijo/a que, con su huella digital, pueda desbloquear el teléfono o verificar su identidad para iniciar sesión en aplicaciones, aprobar compras, etc."</string>
- <string name="security_settings_fingerprint_enroll_introduction_consent_message" product="tablet" msgid="3063978167545799342">"Permite que tu hijo/a pueda desbloquear su tablet o verificar su identidad mediante su huella digital, por ejemplo, para iniciar sesión en aplicaciones, aprobar compras, etc."</string>
- <string name="security_settings_fingerprint_enroll_introduction_consent_message" product="device" msgid="4399560001732497632">"Permite que tu hijo/a pueda desbloquear su dispositivo o verificar su identidad mediante su huella digital, por ejemplo, para iniciar sesión en aplicaciones, aprobar compras, etc."</string>
+ <string name="security_settings_fingerprint_enroll_introduction_consent_message" product="tablet" msgid="3063978167545799342">"Permite que tu hijo/a pueda desbloquear su tablet o verificar su identidad mediante su huella digital (por ejemplo, para iniciar sesión en aplicaciones o aprobar compras)."</string>
+ <string name="security_settings_fingerprint_enroll_introduction_consent_message" product="device" msgid="4399560001732497632">"Permite que tu hijo/a pueda desbloquear su dispositivo o verificar su identidad mediante su huella digital (por ejemplo, para iniciar sesión en aplicaciones o aprobar compras)."</string>
<string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_1" product="default" msgid="8488497844109768268">"Es posible que usar la huella digital para desbloquear el teléfono sea menos seguro que un buen patrón o PIN"</string>
<string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_1" product="tablet" msgid="5688664190282817312">"Usar la huella digital para desbloquear el tablet puede ser menos seguro que un buen patrón o PIN"</string>
<string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_1" product="device" msgid="2814616139536479018">"Usar la huella digital para desbloquear el dispositivo puede ser menos seguro que un buen patrón o PIN"</string>
<string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_3" product="default" msgid="3334689370761542152">"Cuando usas Pixel Imprint, se utilizan imágenes para actualizar el modelo de tu huella digital. Las imágenes usadas para crear el modelo no se guardan nunca, pero el modelo en sí se almacena de manera segura en tu teléfono y nunca sale de él. Todos los procesos se llevan a cabo de forma segura en el teléfono."</string>
- <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_3" product="tablet" msgid="6142978289780449828">"Cuando usas Pixel Imprint, se usan imágenes para actualizar el modelo de tu huella digital. Las imágenes usadas para crear el modelo no se guardan nunca, pero el modelo sí se almacena de manera segura en tu tablet y nunca sale de él. Todos los procesos se llevan a cabo de forma segura en el tablet."</string>
+ <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_3" product="tablet" msgid="6142978289780449828">"Cuando usas Pixel Imprint, se usan imágenes para actualizar el modelo de tu huella digital. Las imágenes usadas para crear el modelo no se guardan nunca, pero el modelo sí se almacena de manera segura en tu tablet y nunca sale de ella. Todos los procesos se llevan a cabo de forma segura en la tablet."</string>
<string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_3" product="device" msgid="9221017777932077429">"Cuando usas Pixel Imprint, se usan imágenes para actualizar el modelo de tu huella digital. Las imágenes usadas para crear el modelo no se guardan nunca, pero el modelo sí se almacena de manera segura en tu dispositivo y nunca sale de él. Todos los procesos se llevan a cabo de forma segura en el dispositivo."</string>
<string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_consent_3" product="default" msgid="6804981319922169283">"Cuando usa Pixel Imprint, se utilizan imágenes para actualizar el modelo de su huella digital. Las imágenes usadas para crear el modelo de huella digital de tu hijo/a nunca se guardan, pero el modelo en sí se almacena de manera segura en el teléfono y nunca sale de él. Todos los procesos se llevan a cabo de forma segura en el teléfono."</string>
<string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_consent_3" product="tablet" msgid="1426913673720862863">"Cuando usa Pixel Imprint, se usan imágenes para actualizar el modelo de su huella digital. Las imágenes usadas para crear el modelo de huella digital de tu hijo/a nunca se guardan, pero el modelo sí se almacena de manera segura en el tablet y nunca sale de él. Todos los procesos se llevan a cabo de forma segura en el tablet."</string>
@@ -123,26 +123,26 @@
<string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_4" product="tablet" msgid="8207309581266022275">"Puedes eliminar las imágenes y el modelo de tu huella, así como desactivar Desbloqueo con huella digital cuando quieras desde Ajustes. Las imágenes y los modelos de huellas digitales se almacenan en el tablet hasta que los eliminas."</string>
<string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_4" product="device" msgid="2498580070051496133">"Puedes eliminar las imágenes y el modelo de tu huella, así como desactivar Desbloqueo con huella digital cuando quieras desde Ajustes. Las imágenes y los modelos de huellas digitales se almacenan en el dispositivo hasta que los eliminas."</string>
<string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_consent_4" product="default" msgid="5003753461032107715">"Tú y tu hijo/a podéis eliminar el modelo y las imágenes de su huella digital, así como desactivar Desbloqueo con huella digital en cualquier momento desde Ajustes. Los modelos y las imágenes de la huella digital se almacenan en el teléfono hasta que se eliminan."</string>
- <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_consent_4" product="tablet" msgid="8772005555323461143">"Tú y tu hijo/a podéis eliminar el modelo y las imágenes de su huella digital, así como desactivar Desbloqueo con huella digital en cualquier momento desde Ajustes. Los modelos y las imágenes de la huella digital se almacenan en el tablet hasta que se eliminan."</string>
+ <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_consent_4" product="tablet" msgid="8772005555323461143">"Tú y tu hijo/a podéis eliminar el modelo y las imágenes de su huella digital, así como desactivar Desbloqueo con huella digital en cualquier momento desde Ajustes. Los modelos y las imágenes de la huella digital se almacenan en la tablet hasta que se eliminan."</string>
<string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_consent_4" product="device" msgid="7254955922685507093">"Tú y tu hijo/a podéis eliminar el modelo y las imágenes de su huella digital, así como desactivar Desbloqueo con huella digital en cualquier momento desde Ajustes. Los modelos y las imágenes de la huella digital se almacenan en el dispositivo hasta que se eliminan."</string>
<string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_5" product="default" msgid="6272159089589340181">"Tu teléfono puede desbloquearse aunque no sea tu intención (por ejemplo, si alguien lo acerca a tu dedo)."</string>
<string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_5" product="tablet" msgid="2420109998272019149">"Tu tablet puede desbloquearse aunque no sea tu intención (por ejemplo, si alguien la acerca a tu dedo)."</string>
<string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_5" product="device" msgid="5915844445830045866">"Tu dispositivo puede desbloquearse aunque no sea tu intención (por ejemplo, si alguien lo acerca a tu dedo)."</string>
- <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_consent_5" product="default" msgid="6556725426776167791">"El teléfono de tu hijo/a puede desbloquearse sin que quiera, por ejemplo, porque alguien se lo ha acercado al dedo."</string>
- <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_consent_5" product="tablet" msgid="5156581794964551571">"El tablet de tu hijo/a puede desbloquearse sin que quiera, por ejemplo, porque alguien se lo ha acercado al dedo."</string>
- <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_consent_5" product="device" msgid="8309101436391515400">"El dispositivo de tu hijo/a puede desbloquearse sin que quiera, por ejemplo, porque alguien se lo ha acercado al dedo."</string>
+ <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_consent_5" product="default" msgid="6556725426776167791">"El teléfono de tu hijo/a puede desbloquearse sin que quiera (por ejemplo, porque alguien se lo ha acercado al dedo)."</string>
+ <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_consent_5" product="tablet" msgid="5156581794964551571">"La tablet de tu hijo/a puede desbloquearse sin que quiera, por ejemplo, porque alguien se la ha acercado al dedo."</string>
+ <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_consent_5" product="device" msgid="8309101436391515400">"El dispositivo de tu hijo/a puede desbloquearse sin que quiera (por ejemplo, porque alguien se lo ha acercado al dedo)."</string>
<string name="security_settings_fingerprint_v2_home_screen_text" product="tablet" msgid="5074447304036758639">"Usa tu huella digital para desbloquear tu tablet o verificar que eres tú (por ejemplo, al iniciar sesión en aplicaciones)"</string>
<string name="security_settings_fingerprint_v2_home_screen_text" product="device" msgid="7398339851724524558">"Usa tu huella digital para desbloquear tu dispositivo o verificar que eres tú (por ejemplo, al iniciar sesión en aplicaciones)"</string>
<string name="security_settings_fingerprint_v2_home_screen_text" product="default" msgid="5376408603508393038">"Usa tu huella digital para desbloquear tu teléfono o verificar que eres tú (por ejemplo, al iniciar sesión en aplicaciones)"</string>
- <string name="biometric_settings_hand_back_to_guardian" product="tablet" msgid="9034560319613439593">"Pásale el tablet a tu padre o a tu madre"</string>
- <string name="biometric_settings_hand_back_to_guardian" product="device" msgid="2149647165743006307">"Pásale el dispositivo a tu padre o a tu madre"</string>
- <string name="biometric_settings_hand_back_to_guardian" product="default" msgid="2060265104488529949">"Pásale el teléfono a tu padre o a tu madre"</string>
- <string name="lock_screen_intro_skip_dialog_text_frp" product="tablet" msgid="7526137517192538870">"No se activarán las funciones de protección del dispositivo. No podrás evitar que otros usuarios utilicen esta tablet si la pierdes, te la roban o se restablece su estado de fábrica."</string>
- <string name="lock_screen_intro_skip_dialog_text_frp" product="device" msgid="1350434793163709209">"No se activarán las funciones de protección del dispositivo. No podrás evitar que otros usuarios lo utilicen si lo pierdes, te lo roban o se restablecen su estado de fábrica."</string>
- <string name="lock_screen_intro_skip_dialog_text_frp" product="default" msgid="8367731653387033354">"No se activarán las funciones de protección del dispositivo. No podrás evitar que otros usuarios utilicen este teléfono si lo pierdes, te lo roban o se restablecen su estado de fábrica."</string>
- <string name="lock_screen_intro_skip_dialog_text" product="tablet" msgid="1957425614489669582">"No se activarán las funciones de protección del dispositivo. No podrás evitar que otros usuarios utilicen esta tablet si lo pierdes o te lo roban."</string>
+ <string name="biometric_settings_hand_back_to_guardian" product="tablet" msgid="9034560319613439593">"Pásale la tablet a tu padre o a tu madre"</string>
+ <string name="biometric_settings_hand_back_to_guardian" product="device" msgid="2149647165743006307">"Pásale el dispositivo a tu padre o madre"</string>
+ <string name="biometric_settings_hand_back_to_guardian" product="default" msgid="2060265104488529949">"Pásale el teléfono a tu padre o madre"</string>
+ <string name="lock_screen_intro_skip_dialog_text_frp" product="tablet" msgid="7526137517192538870">"No se activarán las funciones de protección del dispositivo. No podrás evitar que otros usuarios utilicen esta tablet si la pierdes, te la roban o la restablecen."</string>
+ <string name="lock_screen_intro_skip_dialog_text_frp" product="device" msgid="1350434793163709209">"No se activarán las funciones de protección del dispositivo. No podrás evitar que otros usuarios lo utilicen si lo pierdes, te lo roban o se restablece su estado de fábrica."</string>
+ <string name="lock_screen_intro_skip_dialog_text_frp" product="default" msgid="8367731653387033354">"No se activarán las funciones de protección del dispositivo. No podrás evitar que otras personas utilicen este teléfono si lo pierdes, te lo roban o restablecen su estado de fábrica."</string>
+ <string name="lock_screen_intro_skip_dialog_text" product="tablet" msgid="1957425614489669582">"No se activarán las funciones de protección del dispositivo. No podrás evitar que otros usuarios utilicen esta tablet si la pierdes o te la roban."</string>
<string name="lock_screen_intro_skip_dialog_text" product="device" msgid="7427748422888413977">"No se activarán las funciones de protección del dispositivo. No podrás evitar que otros usuarios lo utilicen si lo pierdes o te lo roban."</string>
- <string name="lock_screen_intro_skip_dialog_text" product="default" msgid="8970036878014302990">"No se activarán las funciones de protección del dispositivo. No podrás evitar que otros usuarios utilicen este teléfono si lo pierdes o te lo roban."</string>
+ <string name="lock_screen_intro_skip_dialog_text" product="default" msgid="8970036878014302990">"No se activarán las funciones de protección del dispositivo. No podrás evitar que otras personas utilicen este teléfono si lo pierdes o te lo roban."</string>
<string name="security_settings_sfps_enroll_find_sensor_message" product="tablet" msgid="2006739081527422127">"El sensor de huellas digitales está en el botón de encendido. Es el botón plano situado junto al botón de volumen con relieve en el lateral de la tablet."</string>
<string name="security_settings_sfps_enroll_find_sensor_message" product="device" msgid="1209233633252372907">"El sensor de huellas digitales está en el botón de encendido. Es el botón plano situado junto al botón de volumen con relieve en el lateral del dispositivo."</string>
<string name="security_settings_sfps_enroll_find_sensor_message" product="default" msgid="6862493139500275821">"El sensor de huellas digitales está en el botón de encendido. Es el botón plano situado junto al botón de volumen con relieve en el lateral del teléfono."</string>
@@ -152,8 +152,8 @@
<string name="security_settings_fingerprint_enroll_finish_v2_add_fingerprint_message" product="tablet" msgid="7814892482046294464">"Ahora puedes usar tu huella digital para desbloquear tu tablet o verificar que eres tú (por ejemplo, al iniciar sesión en aplicaciones o para aprobar compras). \n\nAñade otra huella digital para que sea más fácil desbloquear la tablet cuando la sujetas de diferentes formas."</string>
<string name="security_settings_fingerprint_enroll_finish_v2_add_fingerprint_message" product="device" msgid="8418220207105495988">"Ahora puedes usar tu huella digital para desbloquear tu dispositivo o verificar que eres tú (por ejemplo, al iniciar sesión en aplicaciones o para aprobar compras).\n\nAñade otra huella digital para que sea más fácil desbloquear el dispositivo cuando lo sujetas de diferentes formas."</string>
<string name="security_settings_fingerprint_enroll_finish_v2_add_fingerprint_message" product="default" msgid="3545300825124248359">"Ahora puedes usar tu huella digital para desbloquear tu teléfono o verificar que eres tú (por ejemplo, al iniciar sesión en aplicaciones o para aprobar compras).\n\nAñade otra huella digital para que sea más fácil desbloquear el teléfono cuando lo sujetas de diferentes formas."</string>
- <string name="lock_screen_pin_skip_message" product="tablet" msgid="2125894016330764666">"El PIN protege tu tablet si lo pierdes o te lo roban"</string>
- <string name="lock_screen_pattern_skip_message" product="tablet" msgid="7022124791463099454">"El patrón protege tu tablet si lo pierdes o te lo roban"</string>
+ <string name="lock_screen_pin_skip_message" product="tablet" msgid="2125894016330764666">"El PIN protege tu tablet si la pierdes o te la roban"</string>
+ <string name="lock_screen_pattern_skip_message" product="tablet" msgid="7022124791463099454">"El patrón protege tu tablet si la pierdes o te la roban"</string>
<string name="lock_screen_password_skip_message" product="tablet" msgid="7117050321575989041">"La contraseña protege tu tablet si la pierdes o te la roban"</string>
<string name="lock_screen_pin_skip_message" product="device" msgid="6028521833666812314">"El PIN protege tu dispositivo si lo pierdes o te lo roban"</string>
<string name="lock_screen_pattern_skip_message" product="device" msgid="8959252397804630340">"El patrón protege tu dispositivo si lo pierdes o te lo roban"</string>
@@ -161,7 +161,7 @@
<string name="lock_screen_pin_skip_message" product="default" msgid="1488786078805713892">"El PIN protege tu teléfono si lo pierdes o te lo roban"</string>
<string name="lock_screen_pattern_skip_message" product="default" msgid="827145253475892869">"El patrón protege tu teléfono si lo pierdes o te lo roban"</string>
<string name="lock_screen_password_skip_message" product="default" msgid="8112387870039469467">"La contraseña protege tu teléfono si lo pierdes o te lo roban"</string>
- <string name="lock_screen_pin_skip_fingerprint_message" product="tablet" msgid="2645508906847445498">"Se necesita un PIN para configurar Desbloqueo con huella digital.\n\nEl PIN protege tu tablet si lo pierdes o te lo roban."</string>
+ <string name="lock_screen_pin_skip_fingerprint_message" product="tablet" msgid="2645508906847445498">"Se necesita un PIN para configurar Desbloqueo con huella digital.\n\nEl PIN protege tu tablet si la pierdes o te la roban."</string>
<string name="lock_screen_pattern_skip_fingerprint_message" product="tablet" msgid="2792582623472935881">"Se necesita un patrón para configurar Desbloqueo con huella digital.\n\nEl patrón protege tu tablet si lo pierdes o te lo roban."</string>
<string name="lock_screen_password_skip_fingerprint_message" product="tablet" msgid="1541137095940752409">"Se necesita una contraseña para configurar Desbloqueo con huella digital.\n\nLa contraseña protege tu tablet si la pierdes o te la roban."</string>
<string name="lock_screen_pin_skip_fingerprint_message" product="device" msgid="7716542198483220546">"Se necesita un PIN para configurar Desbloqueo con huella digital.\n\nEl PIN protege tu dispositivo si lo pierdes o te lo roban."</string>
@@ -170,7 +170,7 @@
<string name="lock_screen_pin_skip_fingerprint_message" product="default" msgid="3396830571282413409">"Se necesita un PIN para configurar Desbloqueo con huella digital.\n\nEl PIN protege tu teléfono si lo pierdes o te lo roban."</string>
<string name="lock_screen_pattern_skip_fingerprint_message" product="default" msgid="2952431330433118050">"Se necesita un patrón para configurar Desbloqueo con huella digital.\n\nEl patrón protege tu teléfono si lo pierdes o te lo roban."</string>
<string name="lock_screen_password_skip_fingerprint_message" product="default" msgid="8499384469890032816">"Se necesita una contraseña para configurar Desbloqueo con huella digital.\n\nLa contraseña protege tu teléfono si lo pierdes o te lo roban."</string>
- <string name="lock_screen_pin_skip_face_message" product="tablet" msgid="657464034320090412">"Se necesita un PIN para configurar Desbloqueo facial.\n\nEl PIN protege tu tablet si lo pierdes o te lo roban."</string>
+ <string name="lock_screen_pin_skip_face_message" product="tablet" msgid="657464034320090412">"Se necesita un PIN para configurar Desbloqueo facial.\n\nEl PIN protege tu tablet si la pierdes o te la roban."</string>
<string name="lock_screen_pattern_skip_face_message" product="tablet" msgid="1057921621902514520">"Se necesita un patrón para configurar Desbloqueo facial.\n\nEl patrón protege tu tablet si lo pierdes o te lo roban."</string>
<string name="lock_screen_password_skip_face_message" product="tablet" msgid="7178731554533608255">"Se necesita una contraseña para configurar Desbloqueo facial.\n\nLa contraseña protege tu tablet si la pierdes o te la roban."</string>
<string name="lock_screen_pin_skip_face_message" product="device" msgid="1932467886606343431">"Se necesita un PIN para configurar Desbloqueo facial.\n\nEl PIN protege tu dispositivo si lo pierdes o te lo roban."</string>
@@ -205,7 +205,7 @@
<string name="biometrics_unlock_title" product="device" msgid="3342994085226864170">"Puedes desbloquear el dispositivo con tu cara o con tu huella digital. Por motivos de seguridad, para utilizar esta opción necesitas un método de bloqueo de pantalla alternativo."</string>
<string name="encrypt_title" product="tablet" msgid="8915795247786124547">"Cifrar tablet"</string>
<string name="encrypt_title" product="default" msgid="511146128799853404">"Cifrar teléfono"</string>
- <string name="suggested_lock_settings_summary" product="tablet" msgid="8821254377043173267">"Añade bloqueo de pantalla para proteger el tablet"</string>
+ <string name="suggested_lock_settings_summary" product="tablet" msgid="8821254377043173267">"Añade un bloqueo de pantalla para proteger la tablet"</string>
<string name="suggested_lock_settings_summary" product="device" msgid="4863929838844014122">"Añade bloqueo de pantalla para proteger el dispositivo"</string>
<string name="suggested_lock_settings_summary" product="default" msgid="8050809409337082738">"Añade bloqueo de pantalla para proteger el teléfono"</string>
<string name="suggested_fingerprint_lock_settings_summary" product="tablet" msgid="8565330205932332157"></string>
@@ -227,9 +227,9 @@
<string name="wifi_add_app_networks_summary" product="tablet" msgid="6433255556506891439">"<xliff:g id="APPNAME">%1$s</xliff:g> quiere guardar estas redes en tu tablet"</string>
<string name="auto_rotate_screen_summary" product="default" msgid="5562937346878935483">"Ajusta automáticamente la orientación de la pantalla cuando cambias tu teléfono de vertical a horizontal"</string>
<string name="auto_rotate_screen_summary" product="tablet" msgid="3163709742477804994">"Ajusta automáticamente la orientación de la pantalla cuando cambias tu tablet de vertical a horizontal"</string>
- <string name="sim_lock_on" product="tablet" msgid="227481196121403470">"Solicitar PIN para utilizar el tablet"</string>
+ <string name="sim_lock_on" product="tablet" msgid="227481196121403470">"Solicitar PIN para usar la tablet"</string>
<string name="sim_lock_on" product="default" msgid="6896034657274595838">"Pide el PIN para usar el teléfono"</string>
- <string name="sim_lock_off" product="tablet" msgid="4619320846576958981">"Solicitar PIN para utilizar el tablet"</string>
+ <string name="sim_lock_off" product="tablet" msgid="4619320846576958981">"Solicitar PIN para utilizar la tablet"</string>
<string name="sim_lock_off" product="default" msgid="2064502270875375541">"Pide el PIN para usar el teléfono"</string>
<string name="status_number" product="tablet" msgid="6746773328312218158">"MDN"</string>
<string name="status_number" product="default" msgid="2333455505912871374">"Número de teléfono"</string>
@@ -245,7 +245,7 @@
<string name="storage_wizard_init_v2_internal_action" product="default" msgid="560506072518373839">"Formatear"</string>
<string name="storage_wizard_migrate_v2_body" product="tablet" msgid="7539293889421540797">"Puedes mover archivos, contenido multimedia y determinadas aplicaciones a tu <xliff:g id="NAME">^1</xliff:g>. \n\nAl hacerlo, se liberarán <xliff:g id="SIZE">^2</xliff:g> del almacenamiento de tu teléfono. El proceso tardará <xliff:g id="DURATION">^3</xliff:g>, aproximadamente."</string>
<string name="storage_wizard_migrate_v2_body" product="default" msgid="3807501187945770401">"Puedes mover archivos, contenido multimedia y determinadas aplicaciones a tu <xliff:g id="NAME">^1</xliff:g>. \n\nAl hacerlo, se liberarán <xliff:g id="SIZE">^2</xliff:g> del almacenamiento de tu teléfono. El proceso tardará <xliff:g id="DURATION">^3</xliff:g>, aproximadamente."</string>
- <string name="storage_wizard_migrate_v2_checklist_battery" product="tablet" msgid="5326017162943304749">"El tablet tiene que estar cargado"</string>
+ <string name="storage_wizard_migrate_v2_checklist_battery" product="tablet" msgid="5326017162943304749">"La tablet tiene que estar cargada"</string>
<string name="storage_wizard_migrate_v2_checklist_battery" product="default" msgid="8041162611685970218">"El teléfono tiene que estar cargado"</string>
<string name="main_clear_desc" product="tablet" msgid="5778614597513856716">"Se borrarán todos los datos del "<b>"almacenamiento interno"</b>" de tu tablet, como:\n\n"<li>"Tu cuenta de Google"</li>\n<li>"Los ajustes y los datos de aplicaciones y del sistema"</li>\n<li>"Las aplicaciones descargadas"</li></string>
<string name="main_clear_desc" product="default" msgid="1888412491866186706">"Se borrarán todos los datos del "<b>"almacenamiento interno"</b>" de tu teléfono, como:\n\n"<li>"Tu cuenta de Google"</li>\n<li>"Los ajustes y los datos de aplicaciones y del sistema"</li>\n<li>"Las aplicaciones descargadas"</li></string>
@@ -274,7 +274,7 @@
<string name="install_all_warning" product="device" msgid="6293002353591632851">"Tu dispositivo y tus datos personales son más vulnerables a los ataques de aplicaciones desconocidas. Al instalar aplicaciones de esta fuente, aceptas ser responsable de cualquier daño que sufra tu dispositivo o de la pérdida de datos que se pueda derivar de su uso."</string>
<string name="runningservicedetails_stop_dlg_text" product="tablet" msgid="6321057186549848774">"Si detienes este servicio, es posible que algunas funciones del tablet dejen de funcionar correctamente hasta que reinicies el dispositivo."</string>
<string name="runningservicedetails_stop_dlg_text" product="default" msgid="6869998550403667737">"Si detienes este servicio, es posible que algunas funciones del teléfono dejen de funcionar correctamente hasta que reinicies el dispositivo."</string>
- <string name="testing_phone_info" product="tablet" msgid="8267746802132630741">"Información del tablet"</string>
+ <string name="testing_phone_info" product="tablet" msgid="8267746802132630741">"Información de la tablet"</string>
<string name="testing_phone_info" product="default" msgid="7507506297352160191">"Información sobre el teléfono"</string>
<string name="accessibility_text_reading_confirm_dialog_message" product="default" msgid="1773409172676594981">"Tus preferencias de tamaño de visualización y del texto se restablecerán a las de la configuración original del teléfono"</string>
<string name="accessibility_text_reading_confirm_dialog_message" product="tablet" msgid="2547948891207211388">"Tus preferencias de tamaño de visualización y del texto se restablecerán a las de la configuración original de la tablet"</string>
@@ -306,20 +306,20 @@
<string name="really_remove_account_message" product="device" msgid="1482438683708606820">"Si quitas esta cuenta, se eliminarán todos sus mensajes, contactos y otros datos del dispositivo."</string>
<string name="data_usage_auto_sync_on_dialog" product="tablet" msgid="7137933271689383781">"Los cambios que hagas en tus cuentas en la Web se copiarán automáticamente en la tablet.\n\nEs posible que algunas cuentas copien los cambios que hagas en la tablet también en la Web. Las cuentas de Google funcionan así."</string>
<string name="data_usage_auto_sync_on_dialog" product="default" msgid="7207326473052484970">"Los cambios que hagas en tus cuentas en la Web se copiarán automáticamente en el teléfono.\n\nEs posible que algunas cuentas copien los cambios que hagas en el teléfono también en la Web. Las cuentas de Google funcionan así."</string>
- <string name="data_usage_limit_dialog_mobile" product="tablet" msgid="5609616352941038118">"El tablet desactivará los datos móviles cuando se alcance el límite que configures.\n\nComo el uso de datos lo calcula el tablet y es posible que tu operador lo mida de forma diferente, se recomienda establecer un límite conservador."</string>
+ <string name="data_usage_limit_dialog_mobile" product="tablet" msgid="5609616352941038118">"Tu tablet desactivará los datos móviles cuando se alcance el límite que configures.\n\nComo el uso de datos lo calcula la tablet y es posible que tu operador lo mida de forma diferente, se recomienda establecer un límite conservador."</string>
<string name="data_usage_limit_dialog_mobile" product="default" msgid="4552449053646826676">"Tu teléfono desactivará los datos móviles cuando se alcance el límite que configures.\n\nComo el uso de datos lo calcula el teléfono y es posible que tu operador lo mida de forma diferente, se recomienda establecer un límite conservador."</string>
<string name="user_settings_footer_text" product="device" msgid="8543171604218174424">"Comparte tu dispositivo añadiendo usuarios. Cada uno tiene su propio espacio personal en el dispositivo con opciones de configuración, aplicaciones, cuentas y pantallas de inicio personalizadas, entre otras cosas."</string>
<string name="user_settings_footer_text" product="tablet" msgid="4749331578207116797">"Comparte tu tablet añadiendo usuarios. Cada uno tiene su propio espacio personal en la tablet con opciones de configuración, aplicaciones, cuentas y pantallas de inicio personalizadas, entre otras cosas."</string>
<string name="user_settings_footer_text" product="default" msgid="5440172971747221370">"Comparte tu teléfono añadiendo usuarios. Cada uno tiene su propio espacio personal en el teléfono para personalizar las pantallas de inicio, las cuentas, las aplicaciones, los ajustes y más."</string>
- <string name="user_cannot_manage_message" product="tablet" msgid="5566619500245432179">"Solo el propietario del tablet puede administrar los usuarios."</string>
- <string name="user_cannot_manage_message" product="default" msgid="8596259161937605316">"Solo el propietario del teléfono puede administrar los usuarios."</string>
+ <string name="user_cannot_manage_message" product="tablet" msgid="5566619500245432179">"Solo el propietario de la tablet puede gestionar usuarios."</string>
+ <string name="user_cannot_manage_message" product="default" msgid="8596259161937605316">"Solo el propietario del teléfono puede gestionar usuarios."</string>
<string name="user_confirm_remove_self_message" product="tablet" msgid="6880861846664267876">"Perderás tu espacio y tus datos en esta tablet. Esta acción no se puede deshacer."</string>
<string name="user_confirm_remove_self_message" product="default" msgid="3209762447055039706">"Perderás tu espacio y tus datos en este teléfono. Esta acción no se puede deshacer."</string>
<string name="support_summary" product="default" msgid="2044721479256103419">"Artículos de ayuda, asistencia por teléfono y chat"</string>
<string name="support_summary" product="tablet" msgid="2588832599234347108">"Artículos de ayuda, tablet y chat"</string>
<string name="support_summary" product="device" msgid="6821511162132497205">"Artículos de ayuda, dispositivo y chat"</string>
<string name="ambient_display_title" product="default" msgid="8027137727044125809">"Doble toque para consultar el teléfono"</string>
- <string name="ambient_display_title" product="tablet" msgid="2347746118188465334">"Doble toque para consultar el tablet"</string>
+ <string name="ambient_display_title" product="tablet" msgid="2347746118188465334">"Doble toque para consultar la tablet"</string>
<string name="ambient_display_title" product="device" msgid="6306105102175823199">"Doble toque para consultar el dispositivo"</string>
<string name="ambient_display_pickup_title" product="default" msgid="6753194901596847876">"Levantar teléfono para consultarlo"</string>
<string name="ambient_display_pickup_title" product="tablet" msgid="1166999144900082897">"Levantar para consultar la tablet"</string>
diff --git a/res-product/values-fr-rCA-feminine/strings.xml b/res-product/values-fr-rCA-feminine/strings.xml
new file mode 100644
index 0000000..3b065d8
--- /dev/null
+++ b/res-product/values-fr-rCA-feminine/strings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2022 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="main_clear_accounts" product="default" msgid="3604029744509330786">\n\n"Vous êtes actuellement connectée aux comptes suivants :\n"</string>
+</resources>
diff --git a/res-product/values-fr-rCA-masculine/strings.xml b/res-product/values-fr-rCA-masculine/strings.xml
new file mode 100644
index 0000000..ed2e2ca
--- /dev/null
+++ b/res-product/values-fr-rCA-masculine/strings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2022 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="main_clear_accounts" product="default" msgid="3604029744509330786">\n\n"Vous êtes actuellement connecté aux comptes suivants :\n"</string>
+</resources>
diff --git a/res-product/values-fr-rCA-neuter/strings.xml b/res-product/values-fr-rCA-neuter/strings.xml
new file mode 100644
index 0000000..6b27fad
--- /dev/null
+++ b/res-product/values-fr-rCA-neuter/strings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2022 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="main_clear_accounts" product="default" msgid="3604029744509330786">\n\n"Votre connexion aux comptes suivants est actuellement active :\n"</string>
+</resources>
diff --git a/res-product/values-fr-rCA/strings.xml b/res-product/values-fr-rCA/strings.xml
index 8ae77c6..680c2f7 100644
--- a/res-product/values-fr-rCA/strings.xml
+++ b/res-product/values-fr-rCA/strings.xml
@@ -56,13 +56,13 @@
<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="tablet" msgid="4560949471246282574">"Autorisez 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 applis, 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 confirmer qu\'il s\'agit bien de votre enfant. Cette situation se produit lorsque votre enfant 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_0_class3" product="device" msgid="8943878265098867810">"Autorisez votre enfant à utiliser son visage pour déverrouiller son appareil ou confirmer 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" 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 robuste."</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 robuste."</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>
<string name="security_settings_face_enroll_introduction_info_looking" product="default" msgid="6532489273492650716"></string>
<string name="security_settings_face_enroll_introduction_info_looking" product="tablet" msgid="6532489273492650716"></string>
@@ -96,16 +96,16 @@
<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 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" 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 votre jumeau ou jumelle 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 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_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 confirmer 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 votre jumeau ou jumelle 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 confirmer 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 votre jumeau ou jumelle 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 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>
@@ -312,7 +312,7 @@
<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_cannot_manage_message" product="default" msgid="8596259161937605316">"Seule la personne 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>
<string name="user_confirm_remove_self_message" product="default" msgid="3209762447055039706">"Votre espace et vos données vont être supprimés de ce téléphone. Cette action est irréversible."</string>
<string name="support_summary" product="default" msgid="2044721479256103419">"Articles d\'aide, téléphone et clavardage"</string>
@@ -344,7 +344,7 @@
<string name="lockpassword_confirm_your_pin_details_frp" product="default" msgid="2027547169650312092">"Téléphone réinitialisé aux paramètres par défaut Pour l\'utiliser, entrez votre ancien NIP."</string>
<string name="lockpassword_confirm_your_pin_details_frp" product="tablet" msgid="8264086895022779707">"Tablette réinitialisée aux paramètres par défaut. Pour l\'utiliser, entrez votre ancien NIP."</string>
<string name="lockpassword_confirm_your_pin_details_frp" product="device" msgid="1654340132011802578">"Appareil réinitialisé aux paramètres par défaut. Pour l\'utiliser, entrez votre ancien NIP."</string>
- <string name="lockpassword_confirm_your_password_details_frp" product="default" msgid="1465326741724776281">"Téléphone réinitialisé aux paramètres par défaut Pour l\'utiliser, entrez votre ancien mot de passe."</string>
+ <string name="lockpassword_confirm_your_password_details_frp" product="default" msgid="1465326741724776281">"Téléphone réinitialisé aux paramètres par défaut. Pour l\'utiliser, entrez votre ancien mot de passe."</string>
<string name="lockpassword_confirm_your_password_details_frp" product="tablet" msgid="1333164951750797865">"Tablette réinitialisée aux paramètres par défaut. Pour l\'utiliser, entrez votre ancien mot de passe."</string>
<string name="lockpassword_confirm_your_password_details_frp" product="device" msgid="116667646012224967">"Appareil réinitialisé aux paramètres par défaut. Pour l\'utiliser, entrez votre ancien mot de passe."</string>
<string name="battery_tip_incompatible_charging_message" product="default" msgid="5097154279720383707">"Votre téléphone pourrait se recharger lentement ou ne pas se recharger. Pour une recharge plus rapide, utilisez un adaptateur et un câble recommandés."</string>
diff --git a/res-product/values-fr/strings.xml b/res-product/values-fr/strings.xml
index 4f4032b..5555136 100644
--- a/res-product/values-fr/strings.xml
+++ b/res-product/values-fr/strings.xml
@@ -309,8 +309,8 @@
<string name="data_usage_limit_dialog_mobile" product="tablet" msgid="5609616352941038118">"Les données mobiles sont désactivées sur votre tablette lorsque la limite de consommation des données que vous avez définie est atteinte.\n\nLa consommation mesurée par votre tablette pouvant différer de celle mesurée par votre opérateur, nous vous recommandons de définir une limite stricte."</string>
<string name="data_usage_limit_dialog_mobile" product="default" msgid="4552449053646826676">"Votre téléphone désactivera les données mobiles lorsqu\'elles auront atteint la limite définie.\n\nLa consommation mesurée par votre téléphone pouvant différer de celle mesurée par votre opérateur, nous vous recommandons de définir une limite prudente."</string>
<string name="user_settings_footer_text" product="device" msgid="8543171604218174424">"Partagez votre appareil en ajoutant des utilisateurs. Chacun dispose ainsi de son propre espace sur l\'appareil pour les écrans d\'accueil personnalisés, les comptes, les applications, les paramètres et autres."</string>
- <string name="user_settings_footer_text" product="tablet" msgid="4749331578207116797">"Partagez votre tablette en ajoutant des utilisateurs. Chacun dispose ainsi de son propre espace sur l\'appareil pour les écrans d\'accueil personnalisés, les comptes, les applications, les paramètres et autres."</string>
- <string name="user_settings_footer_text" product="default" msgid="5440172971747221370">"Partagez votre téléphone en ajoutant des utilisateurs. Chacun dispose de son propre espace sur votre téléphone pour ses réglages (écran d\'accueil, comptes, applis, paramètres, etc.)."</string>
+ <string name="user_settings_footer_text" product="tablet" msgid="4749331578207116797">"Partagez votre tablette en ajoutant des utilisateurs. Chacun dispose ainsi de son propre espace sur l\'appareil pour ses réglages (écran d\'accueil, comptes, applis, paramètres, etc.)."</string>
+ <string name="user_settings_footer_text" product="default" msgid="5440172971747221370">"Partagez votre téléphone en ajoutant des utilisateurs. Chacun dispose ainsi de son propre espace sur l\'appareil pour ses réglages (écran d\'accueil, comptes, applis, paramètres, etc.)."</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 du téléphone peut gérer les utilisateurs."</string>
<string name="user_confirm_remove_self_message" product="tablet" msgid="6880861846664267876">"Votre espace et vos données vont être supprimés de cette tablette. Cette action est irréversible."</string>
diff --git a/res-product/values-hi/strings.xml b/res-product/values-hi/strings.xml
index 9acaddc..c0bdfe4 100644
--- a/res-product/values-hi/strings.xml
+++ b/res-product/values-hi/strings.xml
@@ -309,8 +309,8 @@
<string name="data_usage_limit_dialog_mobile" product="tablet" msgid="5609616352941038118">"जैसे ही आपका टैबलेट डेटा, आपकी सेट की हुई सीमा पर पहुंचेगा, आपका टैबलेट उसे बंद कर देगा.\n\nचूंकि डेटा खर्च आपके टैबलेट से मापा जाता है और आपकी मोबाइल और इंटरनेट सेवा देने वाली कंपनी, इस्तेमाल किए गए डेटा का हिसाब अलग तरीके से लगा सकती है. इसलिए, सीमा को कम पर सेट कर सकते हैं."</string>
<string name="data_usage_limit_dialog_mobile" product="default" msgid="4552449053646826676">"जैसे ही आपका मोबाइल डेटा आपकी सेट की हुई सीमा पर पहुंचेगा, आपका फ़ोन उसे बंद कर देगा.\n\nडेटा खर्च आपके फ़ोन से मापा जाता है और आपकी मोबाइल और इंटरनेट सेवा देने वाली कंपनी, इस्तेमाल किए गए डेटा का हिसाब अलग तरीके से लगा सकती है. इसलिए, सीमा को कम पर सेट करें."</string>
<string name="user_settings_footer_text" product="device" msgid="8543171604218174424">"अपना डिवाइस शेयर करने के लिए नए उपयोगकर्ता जोड़ें. आपके डिवाइस पर हर उपयोगकर्ता की एक निजी जगह होगी जिसमें वे अपने मुताबिक होम स्क्रीन, खाते, ऐप्लिकेशन और सेटिंग के साथ-साथ कई चीज़ें रख सकते हैं."</string>
- <string name="user_settings_footer_text" product="tablet" msgid="4749331578207116797">"अपना टैबलेट शेयर करने के लिए नए उपयोगकर्ता जोड़ें. आपके टैबलेट पर हर उपयोगकर्ता की एक निजी जगह होगी जिसमें वे अपने मुताबिक होम स्क्रीन, खाते, ऐप्लिकेशन और सेटिंग के साथ-साथ कई चीज़ें रख सकते हैं."</string>
- <string name="user_settings_footer_text" product="default" msgid="5440172971747221370">"नए उपयोगकर्ता जोड़कर अपना फ़ोन शेयर करें. आपके फ़ोन पर हर उपयोगकर्ता की अपनी एक निजी जगह होगी, जिसमें वह अपनी ज़रूरत के मुताबिक होम स्क्रीन, खाते, ऐप्लिकेशन, सेटिंग वगैरह रख सकता है."</string>
+ <string name="user_settings_footer_text" product="tablet" msgid="4749331578207116797">"नए उपयोगकर्ता जोड़कर अपना टैबलेट शेयर करें. आपके टैबलेट पर हर उपयोगकर्ता की एक निजी प्रोफ़ाइल होगी, जिसमें वह अपनी ज़रूरत के मुताबिक होम स्क्रीन, खाते, ऐप्लिकेशन, सेटिंग वगैरह रख सकता है."</string>
+ <string name="user_settings_footer_text" product="default" msgid="5440172971747221370">"नए उपयोगकर्ता जोड़कर अपना फ़ोन शेयर करें. आपके फ़ोन पर हर उपयोगकर्ता की एक निजी प्रोफ़ाइल होगी, जिसमें वह अपनी ज़रूरत के मुताबिक होम स्क्रीन, खाते, ऐप्लिकेशन, सेटिंग वगैरह रख सकता है."</string>
<string name="user_cannot_manage_message" product="tablet" msgid="5566619500245432179">"केवल टैबलेट का स्वामी उपयोगकर्ताओं को प्रबंधित कर सकता है."</string>
<string name="user_cannot_manage_message" product="default" msgid="8596259161937605316">"केवल फ़ोन का स्वामी उपयोगकर्ताओं को प्रबंधित कर सकता है."</string>
<string name="user_confirm_remove_self_message" product="tablet" msgid="6880861846664267876">"आप इस टैबलेट पर जगह और डेटा को खो देंगे. आप इस कार्रवाई को पहले जैसा नहीं कर सकते."</string>
diff --git a/res-product/values-it-feminine/strings.xml b/res-product/values-it-feminine/strings.xml
new file mode 100644
index 0000000..d7f3aa0
--- /dev/null
+++ b/res-product/values-it-feminine/strings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2022 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="main_clear_other_users_present" product="default" msgid="7750368595882863399">\n\n"Sono presenti altre utenti su questo dispositivo.\n"</string>
+</resources>
diff --git a/res-product/values-it-masculine/strings.xml b/res-product/values-it-masculine/strings.xml
new file mode 100644
index 0000000..d4e98e4
--- /dev/null
+++ b/res-product/values-it-masculine/strings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2022 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="main_clear_other_users_present" product="default" msgid="7750368595882863399">\n\n"Sono presenti altri utenti su questo dispositivo.\n"</string>
+</resources>
diff --git a/res-product/values-it-neuter/strings.xml b/res-product/values-it-neuter/strings.xml
new file mode 100644
index 0000000..160a6d9
--- /dev/null
+++ b/res-product/values-it-neuter/strings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2022 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="main_clear_other_users_present" product="default" msgid="7750368595882863399">\n\n"Sono presenti altrɜ utenti su questo dispositivo.\n"</string>
+</resources>
diff --git a/res-product/values-it/strings.xml b/res-product/values-it/strings.xml
index af01cae..ed3fa64 100644
--- a/res-product/values-it/strings.xml
+++ b/res-product/values-it/strings.xml
@@ -55,10 +55,10 @@
<string name="security_settings_face_enroll_introduction_message_class3" product="default" msgid="8492576130109033451">"Usa il tuo volto per sbloccare lo smartphone o per l\'autenticazione nelle app, ad esempio per accedere alle app o approvare un acquisto"</string>
<string name="security_settings_face_enroll_introduction_message_class3" product="tablet" msgid="8736497842795690098">"Usa il tuo volto per sbloccare il tablet o per l\'autenticazione nelle app, ad esempio per accedere alle app o approvare un acquisto"</string>
<string name="security_settings_face_enroll_introduction_message_class3" product="device" msgid="2558057312718921078">"Usa il tuo volto per sbloccare il dispositivo o per l\'autenticazione nelle app, ad esempio per accedere alle app o approvare un acquisto"</string>
- <string name="security_settings_face_enroll_introduction_consent_message_0" product="default" msgid="9086377203303858619">"Consenti a tuo figlio di usare il suo volto per sbloccare il suo telefono"</string>
+ <string name="security_settings_face_enroll_introduction_consent_message_0" product="default" msgid="9086377203303858619">"Consenti a tuo figlio di usare il suo volto per sbloccare lo smartphone"</string>
<string name="security_settings_face_enroll_introduction_consent_message_0" product="tablet" msgid="4560949471246282574">"Consenti a tuo figlio di usare il suo volto per sbloccare il suo tablet"</string>
<string name="security_settings_face_enroll_introduction_consent_message_0" product="device" msgid="1156063265854416046">"Consenti a tuo figlio di usare il suo volto per sbloccare il suo dispositivo"</string>
- <string name="security_settings_face_enroll_introduction_consent_message_0_class3" product="default" msgid="5082581184108528408">"Consenti a tuo figlio di usare il volto per sbloccare il suo telefono o verificare la sua identità. Questo si verifica quando accede alle app, approva un acquisto e altro ancora."</string>
+ <string name="security_settings_face_enroll_introduction_consent_message_0_class3" product="default" msgid="5082581184108528408">"Consenti a tuo figlio di usare il volto per sbloccare il suo smartphone o verificare la sua identità. Questo si verifica quando accede alle app, approva un acquisto e altro ancora."</string>
<string name="security_settings_face_enroll_introduction_consent_message_0_class3" product="tablet" msgid="5932555218164668532">"Consenti a tuo figlio di usare il volto per sbloccare il suo tablet o verificare la sua identità. Questo si verifica quando accede alle app, approva un acquisto e altro ancora."</string>
<string name="security_settings_face_enroll_introduction_consent_message_0_class3" product="device" msgid="8943878265098867810">"Consenti a tuo figlio di usare il volto per sbloccare il suo dispositivo o verificare la sua identità. Questo si verifica quando accede alle app, approva un acquisto e altro ancora."</string>
<string name="security_settings_face_enroll_introduction_consent_message" product="default" msgid="3698558920963989416">"L\'uso del volto di tuo figlio per sbloccare il suo telefono potrebbe essere meno sicuro di una sequenza o un PIN efficaci."</string>
@@ -107,7 +107,7 @@
<string name="security_settings_face_settings_footer_class3_attention_not_supported" product="tablet" msgid="6790505667764631343">"Usa il tuo volto per sbloccare il tablet o verificare la tua identità, ad esempio quando vuoi accedere alle app o approvare un acquisto.\n\nTieni presente che:\nPuoi configurare un solo volto alla volta. Per aggiungere un altro volto devi eliminare quello attuale.\n\nSe guardi direttamente il tablet, potresti sbloccarlo anche senza volerlo.\n\nIl tuo tablet può essere sbloccato da un\'altra persona se viene rivolto verso il tuo viso, anche se hai gli occhi chiusi.\n\nIl tuo tablet può essere sbloccato da qualcuno che ti assomiglia molto, ad esempio un gemello o una gemella."</string>
<string name="security_settings_face_settings_footer_class3_attention_not_supported" product="device" msgid="7858917821957779752">"Usa il tuo volto per sbloccare il dispositivo o verificare la tua identità, ad esempio quando vuoi accedere alle app o approvare un acquisto.\n\nTieni presente che:\nPuoi configurare un solo volto alla volta. Per aggiungere un altro volto devi eliminare quello attuale.\n\nSe guardi direttamente il dispositivo, potresti sbloccarlo anche senza volerlo.\n\nIl tuo dispositivo può essere sbloccato da un\'altra persona se viene rivolto verso il tuo viso, anche se hai gli occhi chiusi.\n\nIl tuo dispositivo può essere sbloccato da qualcuno che ti assomiglia molto, ad esempio un gemello o una gemella."</string>
<string name="security_settings_fingerprint_enroll_introduction_v3_message" msgid="2145273491174234191">"Usa l\'impronta per sbloccare <xliff:g id="DEVICENAME">%s</xliff:g> o per verificare la tua identità, ad esempio per accedere alle app o approvare un acquisto"</string>
- <string name="security_settings_fingerprint_enroll_introduction_consent_message" product="default" msgid="5101253231118659496">"Consenti a tuo figlio di usare l\'impronta per sbloccare il suo telefono o verificare la sua identità. Questo si verifica quando accedono alle app, approvano un acquisto e altro ancora."</string>
+ <string name="security_settings_fingerprint_enroll_introduction_consent_message" product="default" msgid="5101253231118659496">"Consenti a tuo figlio di usare l\'impronta per sbloccare il suo smartphone o verificare la sua identità. Questo si verifica quando accede alle app, approva un acquisto e altro ancora."</string>
<string name="security_settings_fingerprint_enroll_introduction_consent_message" product="tablet" msgid="3063978167545799342">"Consenti a tuo figlio di usare l\'impronta per sbloccare il suo tablet o verificare la sua identità. Questo si verifica quando accede alle app, approva un acquisto e altro ancora."</string>
<string name="security_settings_fingerprint_enroll_introduction_consent_message" product="device" msgid="4399560001732497632">"Consenti a tuo figlio di usare l\'impronta per sbloccare il suo dispositivo o verificare la sua identità. Questo si verifica quando accede alle app, approva un acquisto e altro ancora."</string>
<string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_1" product="default" msgid="8488497844109768268">"L\'uso dell\'impronta per sbloccare il telefono potrebbe essere meno sicuro dell\'uso di una sequenza o un PIN efficaci"</string>
@@ -122,13 +122,13 @@
<string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_4" product="default" msgid="1354488801088258040">"Puoi eliminare le immagini e il modello dell\'impronta o disattivare lo Sblocco con l\'Impronta in qualsiasi momento nelle Impostazioni. Le immagini e i modelli delle impronte rimangono memorizzati sullo smartphone finché non li elimini."</string>
<string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_4" product="tablet" msgid="8207309581266022275">"Puoi eliminare le immagini e il modello dell\'impronta o disattivare lo Sblocco con l\'Impronta in qualsiasi momento nelle Impostazioni. Le immagini e i modelli delle impronte rimangono memorizzati sul tablet finché non li elimini."</string>
<string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_4" product="device" msgid="2498580070051496133">"Puoi eliminare le immagini e il modello dell\'impronta o disattivare lo Sblocco con l\'Impronta in qualsiasi momento nelle Impostazioni. Le immagini e i modelli delle impronte rimangono memorizzati sul dispositivo finché non li elimini."</string>
- <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_consent_4" product="default" msgid="5003753461032107715">"Tu e tuo figlio potete eliminare le immagini e il modello dell\'impronta o disattivare lo Sblocco con l\'Impronta in qualsiasi momento nelle Impostazioni. Le immagini e i modelli delle impronte rimangono memorizzati sul telefono finché non vengono eliminati."</string>
+ <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_consent_4" product="default" msgid="5003753461032107715">"Tu e tuo figlio potete eliminare le immagini e il modello dell\'impronta o disattivare lo Sblocco con l\'Impronta in qualsiasi momento nelle Impostazioni. Le immagini e i modelli delle impronte rimangono memorizzati sullo smartphone finché non vengono eliminati."</string>
<string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_consent_4" product="tablet" msgid="8772005555323461143">"Tu e tuo figlio potete eliminare le immagini e il modello dell\'impronta o disattivare lo Sblocco con l\'Impronta in qualsiasi momento nelle Impostazioni. Le immagini e i modelli delle impronte rimangono memorizzati sul tablet finché non vengono eliminati."</string>
<string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_consent_4" product="device" msgid="7254955922685507093">"Tu e tuo figlio potete eliminare le immagini e il modello dell\'impronta o disattivare lo Sblocco con l\'Impronta in qualsiasi momento nelle Impostazioni. Le immagini e i modelli delle impronte rimangono memorizzati sul dispositivo finché non vengono eliminati."</string>
<string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_5" product="default" msgid="6272159089589340181">"Il tuo smartphone può essere sbloccato anche quando non hai intenzione di farlo, ad esempio se qualcuno te lo avvicina al dito."</string>
<string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_5" product="tablet" msgid="2420109998272019149">"Il tuo tablet può essere sbloccato anche quando non hai intenzione di farlo, ad esempio se qualcuno lo avvicina al tuo dito."</string>
<string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_5" product="device" msgid="5915844445830045866">"Il tuo dispositivo può essere sbloccato anche quando non hai intenzione di farlo, ad esempio se qualcuno lo avvicina al tuo dito."</string>
- <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_consent_5" product="default" msgid="6556725426776167791">"Il telefono di tuo figlio può essere sbloccato anche quando non vuole farlo intenzionalmente, ad esempio se qualcuno lo rivolge verso il suo dito."</string>
+ <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_consent_5" product="default" msgid="6556725426776167791">"Lo smartphone di tuo figlio può essere sbloccato anche quando non vuole farlo intenzionalmente, ad esempio se qualcuno lo rivolge verso il suo dito."</string>
<string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_consent_5" product="tablet" msgid="5156581794964551571">"Il tablet di tuo figlio può essere sbloccato anche quando non vuole farlo intenzionalmente, ad esempio se qualcuno lo rivolge verso il suo dito."</string>
<string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_consent_5" product="device" msgid="8309101436391515400">"Il dispositivo di tuo figlio può essere sbloccato anche quando non vuole farlo intenzionalmente, ad esempio se qualcuno lo rivolge verso il suo dito."</string>
<string name="security_settings_fingerprint_v2_home_screen_text" product="tablet" msgid="5074447304036758639">"Usa l\'impronta per sbloccare il tablet o verificare la tua identità, ad esempio per accedere alle app"</string>
@@ -312,7 +312,7 @@
<string name="user_settings_footer_text" product="tablet" msgid="4749331578207116797">"Condividi il tuo tablet aggiungendo nuovi utenti. Ogni utente dispone di uno spazio personale sul tablet per impostare schermate Home personalizzate, account, app, impostazioni e altro ancora."</string>
<string name="user_settings_footer_text" product="default" msgid="5440172971747221370">"Condividi il tuo smartphone aggiungendo nuovi utenti. Ogni utente dispone di uno spazio personale sullo smartphone per impostare schermate Home personalizzate, account, app, impostazioni e altro ancora."</string>
<string name="user_cannot_manage_message" product="tablet" msgid="5566619500245432179">"Solo il proprietario del tablet può gestire gli utenti."</string>
- <string name="user_cannot_manage_message" product="default" msgid="8596259161937605316">"Solo il proprietario del telefono può gestire gli utenti."</string>
+ <string name="user_cannot_manage_message" product="default" msgid="8596259161937605316">"Solo il proprietario dello smartphone può gestire gli utenti."</string>
<string name="user_confirm_remove_self_message" product="tablet" msgid="6880861846664267876">"Perderai il tuo spazio e i tuoi dati sul tablet. Non è possibile annullare l\'azione."</string>
<string name="user_confirm_remove_self_message" product="default" msgid="3209762447055039706">"Perderai il tuo spazio e i tuoi dati sul telefono. Non è possibile annullare l\'azione."</string>
<string name="support_summary" product="default" msgid="2044721479256103419">"Articoli del Centro assistenza, telefono e chat"</string>
diff --git a/res-product/values-kn/strings.xml b/res-product/values-kn/strings.xml
index 03d3fe8..01fbbb6 100644
--- a/res-product/values-kn/strings.xml
+++ b/res-product/values-kn/strings.xml
@@ -52,7 +52,7 @@
<string name="security_settings_face_enroll_introduction_message" product="default" msgid="847716059867943459">"ನಿಮ್ಮ ಫೋನ್ ಅನ್ಲಾಕ್ ಮಾಡಲು, ಖರೀದಿಗಳನ್ನು ದೃಢೀಕರಿಸಲು ಅಥವಾ ಅಪ್ಲಿಕೇಶನ್ಗಳಿಗೆ ಸೈನ್ ಇನ್ ಮಾಡಲು ನಿಮ್ಮ ಮುಖವನ್ನು ಬಳಸಿ."</string>
<string name="security_settings_face_enroll_introduction_message" product="tablet" msgid="3976493376026067375">"ನಿಮ್ಮ ಟ್ಯಾಬ್ಲೆಟ್ ಅನ್ನು ಅನ್ಲಾಕ್ ಮಾಡಲು, ಖರೀದಿಗಳನ್ನು ದೃಢೀಕರಿಸಲು ಅಥವಾ ಆ್ಯಪ್ಗಳಿಗೆ ಸೈನ್ ಇನ್ ಮಾಡಲು ನಿಮ್ಮ ಮುಖವನ್ನು ಬಳಸಿ."</string>
<string name="security_settings_face_enroll_introduction_message" product="device" msgid="6432265830098806034">"ನಿಮ್ಮ ಸಾಧನವನ್ನು ಅನ್ಲಾಕ್ ಮಾಡಲು, ಖರೀದಿಗಳನ್ನು ದೃಢೀಕರಿಸಲು ಅಥವಾ ಆ್ಯಪ್ಗಳಿಗೆ ಸೈನ್ ಇನ್ ಮಾಡಲು ನಿಮ್ಮ ಮುಖವನ್ನು ಬಳಸಿ."</string>
- <string name="security_settings_face_enroll_introduction_message_class3" product="default" msgid="8492576130109033451">"ನಿಮ್ಮ ಫೋನ್ ಅನ್ನು ಅನ್ಲಾಕ್ ಮಾಡಲು ಅಥವಾ ಆ್ಯಪ್ಗಳಲ್ಲಿ ದೃಢೀಕರಣಕ್ಕಾಗಿ ನಿಮ್ಮ ಮುಖವನ್ನು ಬಳಸಿ, ಅಂದರೆ, ನೀವು ಆ್ಯಪ್ಗಳಿಗೆ ಸೈನ್ ಇನ್ ಮಾಡುವಾಗ ಅಥವಾ ಖರೀದಿಯನ್ನು ಅನುಮೋದಿಸುವಾಗ"</string>
+ <string name="security_settings_face_enroll_introduction_message_class3" product="default" msgid="8492576130109033451">"ನಿಮ್ಮ ಫೋನ್ ಅನ್ನು ಅನ್ಲಾಕ್ ಮಾಡಲು ಅಥವಾ ನೀವು ಆ್ಯಪ್ಗಳಿಗೆ ಸೈನ್ ಇನ್ ಮಾಡುವ ಅಥವಾ ಖರೀದಿಯನ್ನು ಅನುಮೋದಿಸುವ ಸಂದರ್ಭಗಳಲ್ಲಿ ಆ್ಯಪ್ಗಳಲ್ಲಿ ದೃಢೀಕರಣಕ್ಕಾಗಿ ನಿಮ್ಮ ಮುಖವನ್ನು ಬಳಸಿ"</string>
<string name="security_settings_face_enroll_introduction_message_class3" product="tablet" msgid="8736497842795690098">"ನಿಮ್ಮ ಟ್ಯಾಬ್ಲೆಟ್ ಅನ್ನು ಅನ್ಲಾಕ್ ಮಾಡಲು ಅಥವಾ ಆ್ಯಪ್ಗಳಲ್ಲಿ ದೃಢೀಕರಣಕ್ಕಾಗಿ ನಿಮ್ಮ ಮುಖವನ್ನು ಬಳಸಿ, ಅಂದರೆ, ನೀವು ಆ್ಯಪ್ಗಳಿಗೆ ಸೈನ್ ಇನ್ ಮಾಡುವಾಗ ಅಥವಾ ಖರೀದಿಯನ್ನು ಅನುಮೋದಿಸುವಾಗ"</string>
<string name="security_settings_face_enroll_introduction_message_class3" product="device" msgid="2558057312718921078">"ನಿಮ್ಮ ಸಾಧನವನ್ನು ಅನ್ಲಾಕ್ ಮಾಡಲು ಅಥವಾ ಆ್ಯಪ್ಗಳಲ್ಲಿ ದೃಢೀಕರಣಕ್ಕಾಗಿ ನಿಮ್ಮ ಮುಖವನ್ನು ಬಳಸಿ, ಅಂದರೆ, ನೀವು ಆ್ಯಪ್ಗಳಿಗೆ ಸೈನ್ ಇನ್ ಮಾಡುವಾಗ ಅಥವಾ ಖರೀದಿಯನ್ನು ಅನುಮೋದಿಸುವಾಗ"</string>
<string name="security_settings_face_enroll_introduction_consent_message_0" product="default" msgid="9086377203303858619">"ನಿಮ್ಮ ಮಗುವಿಗೆ ತಮ್ಮ ಫೋನ್ ಅನ್ನು ಅನ್ಲಾಕ್ ಮಾಡಲು ಅವರ ಮುಖವನ್ನು ಬಳಸಲು ಅನುಮತಿಸಿ"</string>
diff --git a/res-product/values-ko/strings.xml b/res-product/values-ko/strings.xml
index 15da50b939..69d6e25 100644
--- a/res-product/values-ko/strings.xml
+++ b/res-product/values-ko/strings.xml
@@ -52,7 +52,7 @@
<string name="security_settings_face_enroll_introduction_message" product="default" msgid="847716059867943459">"얼굴로 휴대전화를 잠금 해제하거나 구매를 승인하거나 앱에 로그인하세요."</string>
<string name="security_settings_face_enroll_introduction_message" product="tablet" msgid="3976493376026067375">"태블릿을 잠금 해제하거나 구매를 승인하거나 앱에 로그인할 때 얼굴 인식을 사용합니다."</string>
<string name="security_settings_face_enroll_introduction_message" product="device" msgid="6432265830098806034">"기기를 잠금 해제하거나 구매를 승인하거나 앱에 로그인할 때 얼굴 인식을 사용합니다."</string>
- <string name="security_settings_face_enroll_introduction_message_class3" product="default" msgid="8492576130109033451">"휴대전화를 잠금 해제하거나 앱에서 인증할 때(예: 앱 로그인 또는 구매 승인 시) 얼굴 인식을 사용하세요"</string>
+ <string name="security_settings_face_enroll_introduction_message_class3" product="default" msgid="8492576130109033451">"휴대전화를 잠금 해제하거나 앱 로그인 및 구매 승인 등 앱에서 인증이 필요할 때 얼굴 인식을 사용하세요."</string>
<string name="security_settings_face_enroll_introduction_message_class3" product="tablet" msgid="8736497842795690098">"태블릿을 잠금 해제하거나 앱에서 인증할 때(예: 앱 로그인 또는 구매 승인 시) 얼굴 인식을 사용하세요"</string>
<string name="security_settings_face_enroll_introduction_message_class3" product="device" msgid="2558057312718921078">"기기를 잠금 해제하거나 앱에서 인증할 때(예: 앱 로그인 또는 구매 승인 시) 얼굴 인식을 사용하세요"</string>
<string name="security_settings_face_enroll_introduction_consent_message_0" product="default" msgid="9086377203303858619">"자녀가 얼굴 인식을 사용하여 휴대전화를 잠금 해제할 수 있도록 허용합니다."</string>
@@ -310,7 +310,7 @@
<string name="data_usage_limit_dialog_mobile" product="default" msgid="4552449053646826676">"설정한 모바일 데이터 한도에 도달하면 휴대전화에서 모바일 데이터를 사용 중지합니다.\n\n데이터 사용량은 휴대전화에서 측정되며 이동통신사에서 사용량을 다르게 계산할 수 있으므로 한도를 낮게 설정해 보세요."</string>
<string name="user_settings_footer_text" product="device" msgid="8543171604218174424">"새 사용자를 추가하여 기기를 공유합니다. 사용자마다 기기에서 맞춤 홈 화면, 계정, 앱, 설정 등을 이용할 수 있는 자신만의 공간을 갖게 됩니다."</string>
<string name="user_settings_footer_text" product="tablet" msgid="4749331578207116797">"새 사용자를 추가하여 태블릿을 공유합니다. 사용자마다 태블릿에서 맞춤 홈 화면, 계정, 앱, 설정 등을 이용할 수 있는 자신만의 공간을 갖게 됩니다."</string>
- <string name="user_settings_footer_text" product="default" msgid="5440172971747221370">"새 사용자를 추가하여 휴대전화를 공유합니다. 사용자마다 휴대전화에서 맞춤 홈 화면, 계정, 앱, 설정 등을 이용할 수 있는 자신만의 공간을 갖게 됩니다."</string>
+ <string name="user_settings_footer_text" product="default" msgid="5440172971747221370">"새 사용자를 추가하여 휴대전화를 공유합니다. 사용자마다 휴대전화에서 맞춤 홈 화면, 계정, 앱, 설정 등을 이용할 수 있는 개인 프로필을 갖게 됩니다."</string>
<string name="user_cannot_manage_message" product="tablet" msgid="5566619500245432179">"태블릿의 소유자만 사용자를 관리할 수 있습니다."</string>
<string name="user_cannot_manage_message" product="default" msgid="8596259161937605316">"휴대전화의 소유자만 사용자를 관리할 수 있습니다."</string>
<string name="user_confirm_remove_self_message" product="tablet" msgid="6880861846664267876">"이 태블릿에 있는 내 저장 공간 및 데이터가 삭제됩니다. 이 작업은 실행취소할 수 없습니다."</string>
diff --git a/res-product/values-ky/strings.xml b/res-product/values-ky/strings.xml
index 7eb25de..0b0b7c6 100644
--- a/res-product/values-ky/strings.xml
+++ b/res-product/values-ky/strings.xml
@@ -308,9 +308,9 @@
<string name="data_usage_auto_sync_on_dialog" product="default" msgid="7207326473052484970">"Вебсайтта аккаунттарга киргизилген өзгөрүүлөр автоматтык түрдө телефонуңузга көчүрүлүп турат.\n\nАйрым учурларда, тескерисинче, телефонуңуздан вебсайтка көчүрүлөт. Кыскасы, Google аккаунту ушинтип иштейт."</string>
<string name="data_usage_limit_dialog_mobile" product="tablet" msgid="5609616352941038118">"Белгиленген чекке жеткенде, планшетиңиз мобилдик Интернетти өчүрөт.\n\nПланшетиңиздин статистикасы менен байланыш операторунун статистикасы аздыр-көптүр айырмалангандыктан, чекти кабелтең коюңуз."</string>
<string name="data_usage_limit_dialog_mobile" product="default" msgid="4552449053646826676">"Белгиленген чекке жеткенде, телефонуңуз мобилдик Интернетти өчүрөт.\n\nТелефонуңуздун статистикасы менен байланыш операторунун статистикасы аздыр-көптүр айырмалангандыктан, чекти кабелтең коюңуз."</string>
- <string name="user_settings_footer_text" product="device" msgid="8543171604218174424">"Телефонуңузду бир нече адам менен чогуу пайдалансаңыз болот. Ал үчүн алардын ар бирине профиль түзүп бериңиз. Ар бир колдонуучу өз профилин өзү каалагандай тууралап алышат (башкы экранын өзгөртүп, аккаунттарын жана колдонмолорун кошуп)."</string>
- <string name="user_settings_footer_text" product="tablet" msgid="4749331578207116797">"Телефонуңузду бир нече адам менен чогуу пайдалансаңыз болот. Ал үчүн алардын ар бирине профиль түзүп бериңиз. Ар бир колдонуучу өз профилин өзү каалагандай тууралап алышат (башкы экранын өзгөртүп, аккаунттарын жана колдонмолорун кошуп)."</string>
- <string name="user_settings_footer_text" product="default" msgid="5440172971747221370">"Телефонуңузду бир нече адам менен чогуу пайдалансаңыз болот. Ал үчүн алардын ар бирине профиль түзүп бериңиз. Ар бир колдонуучу өз профилин өзү каалагандай тууралап алышат (башкы экранын өзгөртүп, аккаунттарын жана колдонмолорун кошуп)."</string>
+ <string name="user_settings_footer_text" product="device" msgid="8543171604218174424">"Телефонуңузду бир нече адам менен пайдалансаңыз болот. Ал үчүн алардын ар бирине профиль түзүп беришиңиз керек. Ар бир колдонуучу өз профилин өзү каалагандай тууралап алат (башкы экранын өзгөртүп, аккаунттарын жана колдонмолорун кошуп)."</string>
+ <string name="user_settings_footer_text" product="tablet" msgid="4749331578207116797">"Телефонуңузду бир нече адам менен пайдалансаңыз болот. Ал үчүн алардын ар бирине профиль түзүп беришиңиз керек. Ар бир колдонуучу өз профилин өзү каалагандай тууралап алат (башкы экранын өзгөртүп, аккаунттарын жана колдонмолорун кошуп)."</string>
+ <string name="user_settings_footer_text" product="default" msgid="5440172971747221370">"Телефонуңузду бир нече адам менен пайдалансаңыз болот. Ал үчүн алардын ар бирине профиль түзүп беришиңиз керек. Ар бир колдонуучу өз профилин өзү каалагандай тууралап алат (башкы экранын өзгөртүп, аккаунттарын жана колдонмолорун кошуп)."</string>
<string name="user_cannot_manage_message" product="tablet" msgid="5566619500245432179">"Планшеттин ээси гана колдонуучуларды башкара алат."</string>
<string name="user_cannot_manage_message" product="default" msgid="8596259161937605316">"Телефондун ээси гана колдонуучуларды башкара алат."</string>
<string name="user_confirm_remove_self_message" product="tablet" msgid="6880861846664267876">"Сиз бул планшеттеги мейкиндигиңизди жана берилиштериңизди жоготосуз. Сиз муну артка кайтара албайсыз."</string>
diff --git a/res-product/values-mr/strings.xml b/res-product/values-mr/strings.xml
index ef8e745..d5a673e 100644
--- a/res-product/values-mr/strings.xml
+++ b/res-product/values-mr/strings.xml
@@ -309,7 +309,7 @@
<string name="data_usage_limit_dialog_mobile" product="tablet" msgid="5609616352941038118">"आपल्या टॅबलेटने तुम्ही सेट केलेली मर्यादा गाठताच तो मोबाइल डेटा बंद करेल.\n\nआपल्या टॅबलेटद्वारे डेटा वापर मोजला जात असल्याने आणि तुमचा वाहक वापराची गणना वेगळ्या प्रकारे करू शकत असल्याने, कमी मर्यादा सेट करणे विचारात घ्या."</string>
<string name="data_usage_limit_dialog_mobile" product="default" msgid="4552449053646826676">"मोबाइल डेटावर घातलेली मर्यादा गाठल्यावर तुमचा फोन मोबाइल डेटा बंद करेल.\n\nतुमचा डेटा वापर तुमच्या फोनद्वारे मोजला जात असल्याने आणि वाहक वापराची गणना वेगळ्या प्रकारे होत असल्याने, कमी मर्यादा सेट करण्याची शिफारस केली जाते."</string>
<string name="user_settings_footer_text" product="device" msgid="8543171604218174424">"नवीन वापरकर्त्यांना जोडून तुमचे डिव्हाइस शेअर करा. प्रत्येक वापरकर्त्याला कस्टम होम स्क्रीन, खाती, अॅप्स, सेटिंग्ज आणि बर्याच गोष्टीसाठी तुमच्या डिव्हाइसवर वैयक्तिक जागा आहे."</string>
- <string name="user_settings_footer_text" product="tablet" msgid="4749331578207116797">"नवीन वापरकर्त्यांना जोडून तुमचा टॅबलेट शेअर करा. प्रत्येक वापरकर्त्याला कस्टम होम स्क्रीन, खाती अॅप्स, सेटिंग्ज आणि बर्याच गोष्टीसाठी तुमच्या टॅबलेटवर वैयक्तिक जागा आहे."</string>
+ <string name="user_settings_footer_text" product="tablet" msgid="4749331578207116797">"नवीन वापरकर्ते जोडून तुमचा टॅबलेट शेअर करा. प्रत्येक वापरकर्त्याला तुमच्या टॅबलेटवर कस्टम होम स्क्रीन, खाती, अॅप्स, सेटिंग्ज आणि आणखी बर्याच गोष्टींसाठी वैयक्तिक जागा आहे."</string>
<string name="user_settings_footer_text" product="default" msgid="5440172971747221370">"नवीन वापरकर्त्यांना जोडून तुमचा फोन शेअर करा. प्रत्येक वापरकर्त्याला कस्टम होम स्क्रीन, खाती, अॅप्स, सेटिंग्ज आणि बर्याच गोष्टींसाठी तुमच्या फोनवर वैयक्तिक जागा आहे."</string>
<string name="user_cannot_manage_message" product="tablet" msgid="5566619500245432179">"केवळ टॅब्लेटचा मालक वापरकर्त्यांना व्यवस्थापित करु शकतो."</string>
<string name="user_cannot_manage_message" product="default" msgid="8596259161937605316">"केवळ फोनचा मालक वापरकर्त्यांना व्यवस्थापित करु शकतो."</string>
diff --git a/res-product/values-pt-rBR/strings.xml b/res-product/values-pt-rBR/strings.xml
index 79b14c4..f5cecc7 100644
--- a/res-product/values-pt-rBR/strings.xml
+++ b/res-product/values-pt-rBR/strings.xml
@@ -310,7 +310,7 @@
<string name="data_usage_limit_dialog_mobile" product="default" msgid="4552449053646826676">"Seu smartphone desativará os dados móveis quando o limite especificado for atingido.\n\nComo o uso de dados é calculado pelo seu smartphone, e sua operadora pode entender o uso de forma diferente, defina um limite moderado."</string>
<string name="user_settings_footer_text" product="device" msgid="8543171604218174424">"Para compartilhar seu dispositivo, adicione novos usuários. Cada usuário tem um espaço pessoal no dispositivo para telas iniciais personalizadas, contas, apps, configurações e muito mais."</string>
<string name="user_settings_footer_text" product="tablet" msgid="4749331578207116797">"Para compartilhar seu tablet, adicione novos usuários. Cada usuário tem um espaço pessoal no tablet para telas iniciais personalizadas, contas, apps, configurações e muito mais."</string>
- <string name="user_settings_footer_text" product="default" msgid="5440172971747221370">"Para compartilhar seu smartphone, adicione novos usuários. Cada usuário tem um espaço pessoal no smartphone para telas iniciais personalizadas, contas, apps, configurações e muito mais."</string>
+ <string name="user_settings_footer_text" product="default" msgid="5440172971747221370">"Para compartilhar seu smartphone, adicione outros usuários. Cada pessoa vai ter um espaço separado e pode personalizar a tela inicial, conta, configurações, apps e muito mais."</string>
<string name="user_cannot_manage_message" product="tablet" msgid="5566619500245432179">"Somente o proprietário do tablet pode gerenciar os usuários."</string>
<string name="user_cannot_manage_message" product="default" msgid="8596259161937605316">"Somente o proprietário do telefone pode gerenciar os usuários."</string>
<string name="user_confirm_remove_self_message" product="tablet" msgid="6880861846664267876">"Você perderá seu espaço e seus dados no tablet. Não é possível desfazer esta ação."</string>
diff --git a/res-product/values-pt/strings.xml b/res-product/values-pt/strings.xml
index 79b14c4..f5cecc7 100644
--- a/res-product/values-pt/strings.xml
+++ b/res-product/values-pt/strings.xml
@@ -310,7 +310,7 @@
<string name="data_usage_limit_dialog_mobile" product="default" msgid="4552449053646826676">"Seu smartphone desativará os dados móveis quando o limite especificado for atingido.\n\nComo o uso de dados é calculado pelo seu smartphone, e sua operadora pode entender o uso de forma diferente, defina um limite moderado."</string>
<string name="user_settings_footer_text" product="device" msgid="8543171604218174424">"Para compartilhar seu dispositivo, adicione novos usuários. Cada usuário tem um espaço pessoal no dispositivo para telas iniciais personalizadas, contas, apps, configurações e muito mais."</string>
<string name="user_settings_footer_text" product="tablet" msgid="4749331578207116797">"Para compartilhar seu tablet, adicione novos usuários. Cada usuário tem um espaço pessoal no tablet para telas iniciais personalizadas, contas, apps, configurações e muito mais."</string>
- <string name="user_settings_footer_text" product="default" msgid="5440172971747221370">"Para compartilhar seu smartphone, adicione novos usuários. Cada usuário tem um espaço pessoal no smartphone para telas iniciais personalizadas, contas, apps, configurações e muito mais."</string>
+ <string name="user_settings_footer_text" product="default" msgid="5440172971747221370">"Para compartilhar seu smartphone, adicione outros usuários. Cada pessoa vai ter um espaço separado e pode personalizar a tela inicial, conta, configurações, apps e muito mais."</string>
<string name="user_cannot_manage_message" product="tablet" msgid="5566619500245432179">"Somente o proprietário do tablet pode gerenciar os usuários."</string>
<string name="user_cannot_manage_message" product="default" msgid="8596259161937605316">"Somente o proprietário do telefone pode gerenciar os usuários."</string>
<string name="user_confirm_remove_self_message" product="tablet" msgid="6880861846664267876">"Você perderá seu espaço e seus dados no tablet. Não é possível desfazer esta ação."</string>
diff --git a/res-product/values-sl/strings.xml b/res-product/values-sl/strings.xml
index e51fa9b..2cc05fd 100644
--- a/res-product/values-sl/strings.xml
+++ b/res-product/values-sl/strings.xml
@@ -52,7 +52,7 @@
<string name="security_settings_face_enroll_introduction_message" product="default" msgid="847716059867943459">"Uporabljajte obraz za odklepanje telefona, odobritev nakupov ali prijavo v aplikacije."</string>
<string name="security_settings_face_enroll_introduction_message" product="tablet" msgid="3976493376026067375">"Uporabljajte obraz za odklepanje tabličnega računalnika, odobritev nakupov ali prijavo v aplikacije."</string>
<string name="security_settings_face_enroll_introduction_message" product="device" msgid="6432265830098806034">"Uporabljajte obraz za odklepanje naprave, odobritev nakupov ali prijavo v aplikacije."</string>
- <string name="security_settings_face_enroll_introduction_message_class3" product="default" msgid="8492576130109033451">"Z obrazom odklepajte telefon ali preverjajte pristnost v aplikacijah, na primer ob prijavi v aplikacije ali za odobritev nakupa"</string>
+ <string name="security_settings_face_enroll_introduction_message_class3" product="default" msgid="8492576130109033451">"Z obrazom odklenite telefon ali preverite pristnost v aplikacijah, na primer ob prijavi v aplikacije ali za odobritev nakupa."</string>
<string name="security_settings_face_enroll_introduction_message_class3" product="tablet" msgid="8736497842795690098">"Z obrazom odklepajte tablični računalnik ali preverjajte pristnost v aplikacijah, na primer ob prijavi v aplikacije ali za odobritev nakupa"</string>
<string name="security_settings_face_enroll_introduction_message_class3" product="device" msgid="2558057312718921078">"Z obrazom odklepajte napravo ali preverjajte pristnost v aplikacijah, na primer ob prijavi v aplikacije ali za odobritev nakupa"</string>
<string name="security_settings_face_enroll_introduction_consent_message_0" product="default" msgid="9086377203303858619">"Otroku dovolite odklepanje telefona z obrazom."</string>
diff --git a/res-product/values-sw/strings.xml b/res-product/values-sw/strings.xml
index ab5d352..4fd53eb 100644
--- a/res-product/values-sw/strings.xml
+++ b/res-product/values-sw/strings.xml
@@ -309,8 +309,8 @@
<string name="data_usage_limit_dialog_mobile" product="tablet" msgid="5609616352941038118">"Kompyuta kibao yako itazima data ya mtandao wa simu pindi itakapofikia kikomo cha matumizi ulichoweka.\n\nKwa kuwa kompyuta kibao yako ndiyo huwa inapima matumizi ya data, na kampuni inayokupa huduma za mtandao huenda ikahesabu matumizi kwa njia tofauti, unashauriwa kuweka kikomo cha wastani."</string>
<string name="data_usage_limit_dialog_mobile" product="default" msgid="4552449053646826676">"Simu yako itazima data ya mtandao wa simu pindi itakapofikia kikomo cha matumizi ya data ulichoweka. \n\nKwa kuwa simu yako ndiyo huwa inapima matumizi ya data, na kampuni inayokupa huduma za mtandao huenda ikahesabu matumizi kwa njia tofauti, unashauriwa kuweka kikomo cha wastani."</string>
<string name="user_settings_footer_text" product="device" msgid="8543171604218174424">"Shiriki kifaa chako kwa kuongeza watumiaji wapya. Kila mtumiaji ana nafasi ya binafsi kwenye kifaa chako kwa ajili ya Skrini ya kwanza, akaunti, programu, mipangilio na vipengee vingine maalum."</string>
- <string name="user_settings_footer_text" product="tablet" msgid="4749331578207116797">"Shiriki kompyuta yako kibao kwa kuongeza watumiaji wapya. Kila mtumiaji ana nafasi ya binafsi kwenye kompyuta yako kibao kwa ajili ya Skrini ya kwanza, akaunti, programu, mipangilio na vipengee vingine maalum"</string>
- <string name="user_settings_footer_text" product="default" msgid="5440172971747221370">"Shiriki simu yako kwa kuongeza watumiaji wapya. Kila mtumiaji ana nafasi ya binafsi kwenye simu yako ya kuweka Skrini ya Kwanza, akaunti, programu, mipangilio na vipengee vingine maalum kwake."</string>
+ <string name="user_settings_footer_text" product="tablet" msgid="4749331578207116797">"Tumia kishikwambi chako pamoja na wengine kwa kuongeza watumiaji wapya. Kila mtumiaji ana nafasi ya binafsi ya Skrini ya kwanza, akaunti, programu, mipangilio na vipengee vingine maalum kwenye kishikwambi chako"</string>
+ <string name="user_settings_footer_text" product="default" msgid="5440172971747221370">"Tumia simu yako na wengine kwa kuongeza watumiaji wapya. Kila mtumiaji ana nafasi ya binafsi kwenye simu yako ya kuweka Skrini ya Kwanza, akaunti, programu, mipangilio na vipengee vingine maalum kwake."</string>
<string name="user_cannot_manage_message" product="tablet" msgid="5566619500245432179">"Mmiliki wa kompyuta kibao pekee ndiye anayeweza kudhibiti watumiaji."</string>
<string name="user_cannot_manage_message" product="default" msgid="8596259161937605316">"Mmiliki wa simu pekee ndiye anayeweza kudhibiti watumiaji."</string>
<string name="user_confirm_remove_self_message" product="tablet" msgid="6880861846664267876">"Utapoteza nafasi na data yako kwenye kompyuta hii ndogo. Huwezi kutendua kitendo hiki."</string>
diff --git a/res-product/values-zh-rTW/strings.xml b/res-product/values-zh-rTW/strings.xml
index a79e172..c010c88 100644
--- a/res-product/values-zh-rTW/strings.xml
+++ b/res-product/values-zh-rTW/strings.xml
@@ -226,7 +226,7 @@
<string name="wifi_add_app_networks_summary" product="default" msgid="7014504084783236696">"「<xliff:g id="APPNAME">%1$s</xliff:g>」想在你的手機中新增這些網路"</string>
<string name="wifi_add_app_networks_summary" product="tablet" msgid="6433255556506891439">"「<xliff:g id="APPNAME">%1$s</xliff:g>」想在你的平板電腦中新增這些網路"</string>
<string name="auto_rotate_screen_summary" product="default" msgid="5562937346878935483">"將手機從直向/橫向轉為另一個方向時,系統會自動調整螢幕方向"</string>
- <string name="auto_rotate_screen_summary" product="tablet" msgid="3163709742477804994">"在你以直向或橫向模式使用平板電腦時,自動調整螢幕方向"</string>
+ <string name="auto_rotate_screen_summary" product="tablet" msgid="3163709742477804994">"隨著平板電腦轉為直向或橫向,自動調整螢幕方向"</string>
<string name="sim_lock_on" product="tablet" msgid="227481196121403470">"需要 PIN 才能使用平板電腦"</string>
<string name="sim_lock_on" product="default" msgid="6896034657274595838">"需要輸入 PIN 碼才能使用手機"</string>
<string name="sim_lock_off" product="tablet" msgid="4619320846576958981">"需要 PIN 才能使用平板電腦"</string>
diff --git a/res-product/values/config.xml b/res-product/values/config.xml
index ba49418..86af614 100755
--- a/res-product/values/config.xml
+++ b/res-product/values/config.xml
@@ -19,9 +19,6 @@
<item name="a11y_timeout_banner" type="raw" product="default">@raw/accessibility_timeout_banner</item>
<item name="a11y_timeout_banner" type="raw" product="tablet">@raw/accessibility_timeout_banner_tablet</item>
- <item name="a11y_shortcut_type_triple_tap" type="raw" product="default">@raw/accessibility_shortcut_type_triple_tap</item>
- <item name="a11y_shortcut_type_triple_tap" type="raw" product="tablet">@raw/accessibility_shortcut_type_triple_tap_tablet</item>
-
<item name="a11y_color_inversion_banner" type="raw" product="default">@raw/accessibility_color_inversion_banner</item>
<item name="a11y_color_inversion_banner" type="raw" product="tablet">@raw/accessibility_color_inversion_banner_tablet</item>
diff --git a/res-product/values/drawables.xml b/res-product/values/drawables.xml
index 68b2115..01fbc32 100644
--- a/res-product/values/drawables.xml
+++ b/res-product/values/drawables.xml
@@ -14,45 +14,9 @@
limitations under the License.
-->
<resources>
- <drawable name="a11y_button_preview_large_floating_menu" product="default">@drawable/accessibility_button_preview_large_floating_menu</drawable>
- <drawable name="a11y_button_preview_large_floating_menu" product="tablet">@drawable/accessibility_button_preview_large_floating_menu_tablet</drawable>
-
- <drawable name="a11y_button_preview_small_floating_menu" product="default">@drawable/accessibility_button_preview_small_floating_menu</drawable>
- <drawable name="a11y_button_preview_small_floating_menu" product="tablet">@drawable/accessibility_button_preview_small_floating_menu_tablet</drawable>
-
- <drawable name="a11y_button_navigation" product="default">@drawable/accessibility_button_navigation</drawable>
- <drawable name="a11y_button_navigation" product="tablet">@drawable/accessibility_button_navigation_tablet</drawable>
-
<drawable name="a11y_captioning_banner" product="default">@drawable/accessibility_captioning_banner</drawable>
<drawable name="a11y_captioning_banner" product="tablet">@drawable/accessibility_captioning_banner_tablet</drawable>
- <drawable name="a11y_shortcut_type_hardware" product="default">@drawable/accessibility_shortcut_type_hardware</drawable>
- <drawable name="a11y_shortcut_type_hardware" product="tablet">@drawable/accessibility_shortcut_type_hardware_tablet</drawable>
-
- <drawable name="a11y_shortcut_type_software" product="default">@drawable/accessibility_shortcut_type_software</drawable>
- <drawable name="a11y_shortcut_type_software" product="tablet">@drawable/accessibility_shortcut_type_software_tablet</drawable>
-
- <drawable name="a11y_shortcut_type_software_floating" product="default">@drawable/accessibility_shortcut_type_software_floating</drawable>
- <drawable name="a11y_shortcut_type_software_floating" product="tablet">@drawable/accessibility_shortcut_type_software_floating_tablet</drawable>
-
- <drawable name="a11y_shortcut_type_software_gesture" product="default">@drawable/accessibility_shortcut_type_software_gesture</drawable>
- <drawable name="a11y_shortcut_type_software_gesture" product="tablet">@drawable/accessibility_shortcut_type_software_gesture_tablet</drawable>
-
- <drawable name="a11y_shortcut_type_software_gesture_talkback" product="default">@drawable/accessibility_shortcut_type_software_gesture_talkback</drawable>
- <drawable name="a11y_shortcut_type_software_gesture_talkback" product="tablet">@drawable/accessibility_shortcut_type_software_gesture_talkback_tablet</drawable>
-
- <drawable name="a11y_gesture_navigation_two_finger_preview" product="default">@drawable/accessibility_gesture_navigation_two_finger_preview</drawable>
- <drawable name="a11y_gesture_navigation_two_finger_preview" product="tablet">@drawable/accessibility_gesture_navigation_two_finger_preview_tablet</drawable>
-
- <drawable name="a11y_gesture_navigation_three_finger_preview" product="default">@drawable/accessibility_gesture_navigation_three_finger_preview</drawable>
- <drawable name="a11y_gesture_navigation_three_finger_preview" product="tablet">@drawable/accessibility_gesture_navigation_three_finger_preview_tablet</drawable>
-
- <drawable name="a11y_button_preview_two_finger" product="default">@drawable/accessibility_button_preview_two_finger</drawable>
- <drawable name="a11y_button_preview_two_finger" product="tablet">@drawable/accessibility_button_preview_two_finger_tablet</drawable>
-
- <drawable name="a11y_button_preview_three_finger" product="default">@drawable/accessibility_button_preview_three_finger</drawable>
- <drawable name="a11y_button_preview_three_finger" product="tablet">@drawable/accessibility_button_preview_three_finger_tablet</drawable>
-
<drawable name="a11y_magnification_mode_fullscreen" product="default">@drawable/accessibility_magnification_mode_fullscreen</drawable>
<drawable name="a11y_magnification_mode_fullscreen" product="tablet">@drawable/accessibility_magnification_mode_fullscreen_tablet</drawable>
diff --git a/res/color/modes_icon_picker_item_background.xml b/res/color/modes_icon_selectable_background.xml
similarity index 100%
rename from res/color/modes_icon_picker_item_background.xml
rename to res/color/modes_icon_selectable_background.xml
diff --git a/res/color/modes_icon_picker_item_icon.xml b/res/color/modes_icon_selectable_icon.xml
similarity index 100%
rename from res/color/modes_icon_picker_item_icon.xml
rename to res/color/modes_icon_selectable_icon.xml
diff --git a/res/drawable-night/accessibility_button_navigation.xml b/res/drawable-night/accessibility_button_navigation.xml
deleted file mode 100644
index d6fd485..0000000
--- a/res/drawable-night/accessibility_button_navigation.xml
+++ /dev/null
@@ -1,43 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2021 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
- android:width="412dp"
- android:height="300dp"
- android:viewportWidth="412"
- android:viewportHeight="300">
- <path
- android:fillColor="#FF000000"
- android:pathData="M384.2,300H27.8C12.5,300 0,287.2 0,271.5v-243C0,12.8 12.5,0 27.8,0h356.5C399.5,0 412,12.8 412,28.5v243.2C412,287.2 399.5,300 384.2,300z"/>
- <path
- android:pathData="M325.2,231.9c0,9.8 -7.9,17.7 -17.7,17.7H103.9c-9.8,0 -17.7,-7.9 -17.7,-17.7v-42.2h239V231.9z"
- android:fillColor="#3D4043"/>
- <path
- android:pathData="M269.7,205.2c1.5,0 2.7,1.2 2.7,2.7s-1.2,2.7 -2.7,2.7c-1.5,0 -2.7,-1.2 -2.7,-2.7S268.2,205.2 269.7,205.2zM273.8,214.7v17.6H271v-8.1h-2.7v8.1h-2.7v-17.6c-2.7,-0.2 -5.6,-0.7 -8.1,-1.4l0.7,-2.7c3.5,0.9 7.7,1.4 11.5,1.4c3.8,0 8,-0.4 11.5,-1.4l0.7,2.7C279.4,214 276.5,214.5 273.8,214.7z"
- android:fillColor="#FFFFFF"/>
- <path
- android:pathData="M205.7,219.7m-9.4,0a9.4,9.4 0,1 1,18.8 0a9.4,9.4 0,1 1,-18.8 0"
- android:fillColor="#808589"/>
- <path
- android:pathData="M132.1,219.7l16,9.2l0,-18.5z"
- android:fillColor="#808589"/>
- <path
- android:pathData="M325.4,231.9c0,9.8 -7.9,17.7 -17.7,17.7H103.9c-9.8,0 -17.7,-7.9 -17.7,-17.7V0h-4.4v231.9c0,12.2 9.9,22.2 22.1,22.2h203.8c12.2,0 22.1,-9.9 22.1,-22.2V14.8c2.4,0 4.4,-2 4.4,-4.4V0h-8.9V231.9z"
- android:fillColor="#808589"/>
- <path
- android:pathData="M269.7,255.3c-19.6,0 -35.6,-16 -35.6,-35.6s16,-35.6 35.6,-35.6s35.6,16 35.6,35.6S289.3,255.3 269.7,255.3zM269.7,187.1c-17.9,0 -32.5,14.6 -32.5,32.5c0,17.9 14.6,32.5 32.5,32.5s32.5,-14.6 32.5,-32.5C302.2,201.7 287.6,187.1 269.7,187.1z"
- android:fillColor="#729CEE"/>
-</vector>
diff --git a/res/drawable-night/accessibility_button_navigation_tablet.xml b/res/drawable-night/accessibility_button_navigation_tablet.xml
deleted file mode 100644
index d92b144..0000000
--- a/res/drawable-night/accessibility_button_navigation_tablet.xml
+++ /dev/null
@@ -1,54 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2023 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
- android:width="412dp"
- android:height="300dp"
- android:viewportWidth="412"
- android:viewportHeight="300">
- <path
- android:pathData="M28,0L384,0A28,28 0,0 1,412 28L412,272A28,28 0,0 1,384 300L28,300A28,28 0,0 1,0 272L0,28A28,28 0,0 1,28 0z"
- android:fillColor="#000000"/>
- <group>
- <clip-path
- android:pathData="M62.23,50.19L349.77,50.19A16,16 0,0 1,365.77 66.19L365.77,236.14A16,16 0,0 1,349.77 252.14L62.23,252.14A16,16 0,0 1,46.23 236.14L46.23,66.19A16,16 0,0 1,62.23 50.19z"/>
- <path
- android:pathData="M46.23,204.14h320v48h-320z"
- android:fillColor="#3D4043"/>
- <path
- android:pathData="M268.93,214.14C270.43,214.14 271.63,215.34 271.63,216.84C271.63,218.34 270.43,219.54 268.93,219.54C267.43,219.54 266.23,218.34 266.23,216.84C266.23,215.34 267.43,214.14 268.93,214.14ZM273.03,223.64V241.24H270.23V233.14H267.53V241.24H264.83V223.64C262.13,223.44 259.23,222.94 256.73,222.24L257.43,219.54C260.93,220.44 265.13,220.94 268.93,220.94C272.73,220.94 276.93,220.54 280.43,219.54L281.13,222.24C278.63,222.94 275.73,223.44 273.03,223.64Z"
- android:fillColor="#ffffff"/>
- <path
- android:pathData="M206.23,238.04C211.42,238.04 215.63,233.83 215.63,228.64C215.63,223.45 211.42,219.24 206.23,219.24C201.04,219.24 196.83,223.45 196.83,228.64C196.83,233.83 201.04,238.04 206.23,238.04Z"
- android:fillColor="#808589"/>
- <path
- android:pathData="M131.33,228.64L147.33,237.84V219.34L131.33,228.64Z"
- android:fillColor="#808589"/>
- </group>
- <path
- android:pathData="M62.23,51.69L349.77,51.69A14.5,14.5 0,0 1,364.27 66.19L364.27,236.14A14.5,14.5 0,0 1,349.77 250.64L62.23,250.64A14.5,14.5 0,0 1,47.73 236.14L47.73,66.19A14.5,14.5 0,0 1,62.23 51.69z"
- android:strokeWidth="3"
- android:fillColor="#00000000"
- android:strokeColor="#80868B"/>
- <path
- android:pathData="M311.45,50.35C311.45,48.98 312.56,47.87 313.92,47.87L322.84,47.87C324.2,47.87 325.32,48.98 325.32,50.35L319.37,51.34L311.45,50.35Z"
- android:fillColor="#80868B"/>
- <path
- android:pathData="M263.59,50.35C263.59,48.98 264.7,47.87 266.06,47.87L287.85,47.87C289.22,47.87 290.33,48.98 290.33,50.35L277.45,51.34L263.59,50.35Z"
- android:fillColor="#80868B"/>
- <path
- android:pathData="M268.93,259.69C251.31,259.69 236.93,245.3 236.93,227.69C236.93,210.07 251.31,195.69 268.93,195.69C286.55,195.69 300.93,210.07 300.93,227.69C300.93,245.3 286.55,259.69 268.93,259.69ZM268.93,198.38C252.84,198.38 239.72,211.51 239.72,227.6C239.72,243.69 252.84,256.81 268.93,256.81C285.02,256.81 298.14,243.69 298.14,227.6C298.14,211.51 285.02,198.38 268.93,198.38Z"
- android:fillColor="#729CEE"/>
-</vector>
\ No newline at end of file
diff --git a/res/drawable-night/accessibility_button_preview_large_floating_menu.xml b/res/drawable-night/accessibility_button_preview_large_floating_menu.xml
deleted file mode 100644
index 74ecbfc..0000000
--- a/res/drawable-night/accessibility_button_preview_large_floating_menu.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2021 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
- android:width="412dp"
- android:height="300dp"
- android:viewportWidth="412"
- android:viewportHeight="300">
- <path
- android:pathData="M325.4,198.2h-40.9c-22.1,0 -40,-18 -40,-40s18,-40 40,-40h40.9v2.6h-40.9c-20.7,0 -37.5,16.8 -37.5,37.5s16.8,37.5 37.5,37.5h40.9V198.2z"
- android:fillColor="#808589"/>
- <path
- android:pathData="M284.3,128.4c-16.5,0 -29.8,13.4 -29.8,29.8c0,16.5 13.4,29.8 29.8,29.8s29.8,-13.4 29.8,-29.8C314.2,141.7 300.9,128.4 284.3,128.4zM284.3,142.7c1.7,0 3.1,1.4 3.1,3.1c0,1.7 -1.4,3.1 -3.1,3.1s-3.1,-1.4 -3.1,-3.1C281.2,144.1 282.7,142.7 284.3,142.7zM289.1,153.7V174H286v-9.4h-3.1v9.4h-3.2v-20.3c-3.1,-0.3 -6.5,-0.8 -9.4,-1.5l0.8,-3.1c4.1,1 8.9,1.5 13.3,1.5s9.2,-0.5 13.3,-1.5l0.8,3.1C295.6,152.9 292.2,153.4 289.1,153.7z"
- android:fillColor="#D9DBDF"/>
-</vector>
diff --git a/res/drawable-night/accessibility_button_preview_large_floating_menu_tablet.xml b/res/drawable-night/accessibility_button_preview_large_floating_menu_tablet.xml
deleted file mode 100644
index 426403f..0000000
--- a/res/drawable-night/accessibility_button_preview_large_floating_menu_tablet.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
- android:width="412dp"
- android:height="300dp"
- android:viewportWidth="412"
- android:viewportHeight="300">
- <path
- android:pathData="M365.76,226.17h-27.68c-14.95,0 -27.07,-12.18 -27.07,-27.07s12.18,-27.07 27.07,-27.07h27.68v1.76h-27.68c-14.01,0 -25.37,11.37 -25.37,25.37s11.37,25.37 25.37,25.37h27.68v1.62Z"
- android:fillColor="#80868b"/>
- <path
- android:pathData="M337.95,178.94c-11.16,0 -20.16,9.07 -20.16,20.16 0,11.16 9.07,20.16 20.16,20.16s20.16,-9.07 20.16,-20.16c0.07,-11.16 -8.93,-20.16 -20.16,-20.16ZM337.95,188.62c1.15,0 2.1,0.95 2.1,2.1 0,1.15 -0.95,2.1 -2.1,2.1s-2.1,-0.95 -2.1,-2.1c0,-1.15 1.02,-2.1 2.1,-2.1ZM341.2,196.06v13.74h-2.1v-6.36h-2.1v6.36h-2.17v-13.74c-2.1,-0.2 -4.4,-0.54 -6.36,-1.01l0.54,-2.1c2.77,0.68 6.02,1.01 9,1.01s6.23,-0.34 9,-1.01l0.54,2.1c-1.96,0.47 -4.26,0.81 -6.36,1.01Z"
- android:fillColor="#d9dbdf"/>
-</vector>
diff --git a/res/drawable-night/accessibility_button_preview_small_floating_menu.xml b/res/drawable-night/accessibility_button_preview_small_floating_menu.xml
deleted file mode 100644
index 4226086..0000000
--- a/res/drawable-night/accessibility_button_preview_small_floating_menu.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2021 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
- android:width="412dp"
- android:height="300dp"
- android:viewportWidth="412"
- android:viewportHeight="300">
- <path
- android:pathData="M325.4,189.2h-31.7c-17.1,0 -31,-13.9 -31,-31s13.9,-31 31,-31h31.7v2h-31.7c-16,0 -29,13 -29,29s13,29 29,29h31.7V189.2z"
- android:fillColor="#808589"/>
- <path
- android:pathData="M293.6,135.1c-12.8,0 -23.1,10.4 -23.1,23.1c0,12.8 10.4,23.1 23.1,23.1s23.1,-10.4 23.1,-23.1C316.7,145.4 306.4,135.1 293.6,135.1zM293.6,146.2c1.3,0 2.4,1.1 2.4,2.4s-1.1,2.4 -2.4,2.4s-2.4,-1.1 -2.4,-2.4S292.3,146.2 293.6,146.2zM297.3,154.7v15.7h-2.4v-7.3h-2.4v7.3H290v-15.7c-2.4,-0.2 -5,-0.6 -7.3,-1.2l0.6,-2.4c3.2,0.8 6.9,1.2 10.3,1.2s7.1,-0.4 10.3,-1.2l0.6,2.4C302.3,154.1 299.7,154.5 297.3,154.7z"
- android:fillColor="#D9DBDF"/>
-</vector>
diff --git a/res/drawable-night/accessibility_button_preview_small_floating_menu_tablet.xml b/res/drawable-night/accessibility_button_preview_small_floating_menu_tablet.xml
deleted file mode 100644
index b738d8f..0000000
--- a/res/drawable-night/accessibility_button_preview_small_floating_menu_tablet.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
- android:width="412dp"
- android:height="300dp"
- android:viewportWidth="412"
- android:viewportHeight="300">
- <path
- android:pathData="M365.88,219.24h-20.7c-5.38,0 -10.43,-2.09 -14.23,-5.9s-5.9,-8.86 -5.9,-14.23c0,-5.38 2.09,-10.43 5.9,-14.24 3.8,-3.8 8.86,-5.9 14.23,-5.9h20.7v1h-20.7c-5.11,0 -9.91,1.99 -13.53,5.6s-5.6,8.42 -5.6,13.53c0,5.11 1.99,9.91 5.6,13.53s8.42,5.6 13.53,5.6h20.7v1Z"
- android:fillColor="#80868b"/>
- <path
- android:pathData="M345.19,184c-2.99,-0 -5.91,0.88 -8.4,2.54 -2.49,1.66 -4.43,4.02 -5.57,6.78s-1.45,5.8 -0.86,8.73c0.58,2.93 2.02,5.63 4.13,7.74 2.11,2.11 4.81,3.55 7.74,4.14 2.93,0.58 5.97,0.29 8.73,-0.86 2.76,-1.14 5.12,-3.08 6.78,-5.57 1.66,-2.49 2.55,-5.41 2.55,-8.4 0,-4.01 -1.59,-7.85 -4.42,-10.68 -2.83,-2.83 -6.67,-4.43 -10.68,-4.43ZM345.19,191.28c0.4,0.03 0.77,0.21 1.04,0.51 0.27,0.29 0.42,0.68 0.42,1.08 0,0.4 -0.15,0.79 -0.42,1.08 -0.27,0.29 -0.64,0.47 -1.04,0.51 -0.22,0.02 -0.44,-0.01 -0.65,-0.08 -0.21,-0.07 -0.4,-0.19 -0.56,-0.33 -0.16,-0.15 -0.29,-0.33 -0.38,-0.53 -0.09,-0.2 -0.13,-0.42 -0.13,-0.64 0,-0.22 0.05,-0.44 0.13,-0.64 0.09,-0.2 0.22,-0.38 0.38,-0.53 0.16,-0.15 0.35,-0.26 0.56,-0.33 0.21,-0.07 0.43,-0.1 0.65,-0.08ZM347.56,196.82v10.29h-1.58v-4.76h-1.59v4.75h-1.58v-10.28c-1.6,-0.12 -3.19,-0.39 -4.75,-0.79l0.4,-1.58c4.42,1.05 9.04,1.05 13.46,0l0.39,1.58c-1.57,0.41 -3.17,0.67 -4.79,0.79h0.04Z"
- android:fillColor="#dadce0"/>
-</vector>
diff --git a/res/drawable-night/accessibility_button_preview_three_finger.xml b/res/drawable-night/accessibility_button_preview_three_finger.xml
deleted file mode 100644
index 7afb0f7..0000000
--- a/res/drawable-night/accessibility_button_preview_three_finger.xml
+++ /dev/null
@@ -1,40 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2021 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
- android:width="412dp"
- android:height="300dp"
- android:viewportWidth="412"
- android:viewportHeight="300">
- <path
- android:fillColor="#FF000000"
- android:pathData="M384.2,300H27.8C12.5,300 0,287.2 0,271.5v-243C0,12.8 12.5,0 27.8,0h356.5C399.5,0 412,12.8 412,28.5v243.2C412,287.2 399.5,300 384.2,300z"/>
- <path
- android:pathData="M242.5,226.9h-73.3c-1.7,0 -3.1,1.4 -3.1,3.1s1.4,3.1 3.1,3.1h73.3c1.7,0 3.1,-1.4 3.1,-3.1S244.2,226.9 242.5,226.9z"
- android:fillColor="#80868B"/>
- <path
- android:pathData="M182.7,222.6v-17.5h7.5l-10.6,-18.7l-10.6,18.7h7.5v17.5c-2.9,1.2 -4.9,4 -4.9,7.4c0,4.4 3.5,8 8,8c4.4,0 8,-3.5 8,-8C187.6,226.7 185.6,223.8 182.7,222.6z"
- android:fillColor="#669DF6"/>
- <path
- android:pathData="M209,222.6v-17.5h7.5l-10.6,-18.7l-10.6,18.7h7.5v17.5c-2.9,1.2 -4.9,4 -4.9,7.4c0,4.4 3.5,8 8,8c4.4,0 8,-3.5 8,-8C213.9,226.7 211.9,223.8 209,222.6z"
- android:fillColor="#669DF6"/>
- <path
- android:pathData="M235.2,222.6v-17.5h7.5l-10.6,-18.7l-10.6,18.7h7.5v17.5c-2.9,1.2 -4.9,4 -4.9,7.4c0,4.4 3.5,8 8,8c4.4,0 8,-3.5 8,-8C240,226.7 238,223.8 235.2,222.6z"
- android:fillColor="#669DF6"/>
- <path
- android:pathData="M325.4,231.9c0,9.8 -7.9,17.7 -17.7,17.7H103.9c-9.8,0 -17.7,-7.9 -17.7,-17.7V0h-4.4v231.9c0,12.2 9.9,22.2 22.1,22.2h203.8c12.2,0 22.1,-9.9 22.1,-22.2V14.8c2.4,0 4.4,-2 4.4,-4.4V0h-8.9V231.9z"
- android:fillColor="#80868B"/>
-</vector>
diff --git a/res/drawable-night/accessibility_button_preview_three_finger_tablet.xml b/res/drawable-night/accessibility_button_preview_three_finger_tablet.xml
deleted file mode 100644
index 5a0925c..0000000
--- a/res/drawable-night/accessibility_button_preview_three_finger_tablet.xml
+++ /dev/null
@@ -1,33 +0,0 @@
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
- android:width="412dp"
- android:height="300dp"
- android:viewportWidth="412"
- android:viewportHeight="300">
- <group>
- <clip-path
- android:pathData="M0,0h412v300h-412z"/>
- <path
- android:pathData="M263.59,50.35C263.59,48.98 264.7,47.86 266.06,47.86L287.85,47.86C289.22,47.86 290.33,48.98 290.33,50.35L277.45,51.34L263.59,50.35Z"
- android:fillColor="#80868B"/>
- <path
- android:pathData="M364.52,66.19L364.52,236.14A14.75,14.75 0,0 1,349.77 250.89L62.23,250.89A14.75,14.75 0,0 1,47.48 236.14L47.48,66.19A14.75,14.75 0,0 1,62.23 51.44L349.77,51.44A14.75,14.75 0,0 1,364.52 66.19z"
- android:strokeWidth="2.5"
- android:fillColor="#000000"
- android:strokeColor="#80868B"/>
- <path
- android:pathData="M311.45,50.35C311.45,48.98 312.56,47.86 313.92,47.86L322.84,47.86C324.2,47.86 325.32,48.98 325.32,50.35L319.37,51.34L311.45,50.35Z"
- android:fillColor="#80868B"/>
- <path
- android:pathData="M170.9,232.14L241.9,232.14A2,2 0,0 1,243.9 234.14L243.9,234.14A2,2 0,0 1,241.9 236.14L170.9,236.14A2,2 0,0 1,168.9 234.14L168.9,234.14A2,2 0,0 1,170.9 232.14z"
- android:fillColor="#80868B"/>
- <path
- android:pathData="M188.7,229.14V217.74H193.6L186.7,205.54L179.8,217.74H184.7V229.14C182.8,229.94 181.5,231.74 181.5,233.94C181.5,236.84 183.8,239.14 186.7,239.14C189.6,239.14 191.9,236.84 191.9,233.94C191.9,231.84 190.5,229.94 188.7,229.14Z"
- android:fillColor="#669DF6"/>
- <path
- android:pathData="M208,229.14V217.74H212.9L206,205.54L199.1,217.74H204V229.14C202.1,229.94 200.8,231.74 200.8,233.94C200.8,236.84 203.1,239.14 206,239.14C208.9,239.14 211.2,236.84 211.2,233.94C211.2,231.84 209.9,229.94 208,229.14Z"
- android:fillColor="#669DF6"/>
- <path
- android:pathData="M227.29,229.14V217.74H232.2L225.29,205.54L218.4,217.74H223.29V229.14C221.4,229.94 220.1,231.74 220.1,233.94C220.1,236.84 222.4,239.14 225.29,239.14C228.2,239.14 230.49,236.84 230.49,233.94C230.49,231.84 229.2,229.94 227.29,229.14Z"
- android:fillColor="#669DF6"/>
- </group>
-</vector>
diff --git a/res/drawable-night/accessibility_button_preview_two_finger.xml b/res/drawable-night/accessibility_button_preview_two_finger.xml
deleted file mode 100644
index 05871d9..0000000
--- a/res/drawable-night/accessibility_button_preview_two_finger.xml
+++ /dev/null
@@ -1,37 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2021 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
- android:width="412dp"
- android:height="300dp"
- android:viewportWidth="412"
- android:viewportHeight="300">
- <path
- android:fillColor="#FF000000"
- android:pathData="M384.2,300H27.8C12.5,300 0,287.2 0,271.5v-243C0,12.8 12.5,0 27.8,0h356.5C399.5,0 412,12.8 412,28.5v243.2C412,287.2 399.5,300 384.2,300z"/>
- <path
- android:pathData="M325.4,231.9c0,9.8 -7.9,17.7 -17.7,17.7H103.9c-9.8,0 -17.7,-7.9 -17.7,-17.7V0h-4.4v231.9c0,12.2 9.9,22.2 22.1,22.2h203.8c12.2,0 22.1,-9.9 22.1,-22.2V14.8c2.4,0 4.4,-2 4.4,-4.4V0h-8.9V231.9z"
- android:fillColor="#80868B"/>
- <path
- android:pathData="M242.4,226.9h-9.3h-5.6h-43.4h-4.7h-10.2c-1.7,0 -3.1,1.4 -3.1,3.1s1.4,3.1 3.1,3.1h10.2h3.9h45h4.8h9.3c1.7,0 3.1,-1.4 3.1,-3.1S244.1,226.9 242.4,226.9z"
- android:fillColor="#80868B"/>
- <path
- android:pathData="M194,223.5v-17.5h7.5l-10.6,-18.7l-10.6,18.7h7.5v17.5c-1.6,0.7 -2.9,1.9 -3.8,3.4c-0.7,1.2 -1.1,2.5 -1.1,4c0,0.7 0.1,1.5 0.3,2.2c0.9,3.3 4,5.8 7.7,5.8c3.6,0 6.7,-2.5 7.7,-5.8c0.2,-0.7 0.3,-1.4 0.3,-2.2c0,-1.5 -0.4,-2.8 -1.1,-4C197,225.4 195.6,224.2 194,223.5z"
- android:fillColor="#669DF6"/>
- <path
- android:pathData="M223.7,223.5v-17.5h7.5l-10.6,-18.7l-10.6,18.7h7.5v17.5c-1.6,0.7 -2.9,1.9 -3.8,3.4c-0.7,1.2 -1.1,2.5 -1.1,4c0,0.7 0.1,1.5 0.3,2.2c0.9,3.3 4,5.8 7.7,5.8c3.6,0 6.7,-2.5 7.7,-5.8c0.2,-0.7 0.3,-1.4 0.3,-2.2c0,-1.5 -0.4,-2.8 -1.1,-4C226.6,225.4 225.3,224.2 223.7,223.5z"
- android:fillColor="#669DF6"/>
-</vector>
diff --git a/res/drawable-night/accessibility_button_preview_two_finger_tablet.xml b/res/drawable-night/accessibility_button_preview_two_finger_tablet.xml
deleted file mode 100644
index ba9c771..0000000
--- a/res/drawable-night/accessibility_button_preview_two_finger_tablet.xml
+++ /dev/null
@@ -1,30 +0,0 @@
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
- android:width="412dp"
- android:height="300dp"
- android:viewportWidth="412"
- android:viewportHeight="300">
- <group>
- <clip-path
- android:pathData="M0,0h412v300h-412z"/>
- <path
- android:pathData="M263.59,50.35C263.59,48.98 264.7,47.86 266.06,47.86L287.85,47.86C289.22,47.86 290.33,48.98 290.33,50.35L277.45,51.34L263.59,50.35Z"
- android:fillColor="#80868B"/>
- <path
- android:pathData="M364.52,66.19L364.52,236.14A14.75,14.75 0,0 1,349.77 250.89L62.23,250.89A14.75,14.75 0,0 1,47.48 236.14L47.48,66.19A14.75,14.75 0,0 1,62.23 51.44L349.77,51.44A14.75,14.75 0,0 1,364.52 66.19z"
- android:strokeWidth="2.5"
- android:fillColor="#000000"
- android:strokeColor="#80868B"/>
- <path
- android:pathData="M311.45,50.35C311.45,48.98 312.56,47.86 313.92,47.86L322.84,47.86C324.2,47.86 325.32,48.98 325.32,50.35L319.37,51.34L311.45,50.35Z"
- android:fillColor="#80868B"/>
- <path
- android:pathData="M170.9,232.14L241.9,232.14A2,2 0,0 1,243.9 234.14L243.9,234.14A2,2 0,0 1,241.9 236.14L170.9,236.14A2,2 0,0 1,168.9 234.14L168.9,234.14A2,2 0,0 1,170.9 232.14z"
- android:fillColor="#80868B"/>
- <path
- android:pathData="M198.35,229.14V217.74H203.25L196.35,205.54L189.45,217.74H194.35V229.14C192.45,229.94 191.15,231.74 191.15,233.94C191.15,236.84 193.45,239.14 196.35,239.14C199.25,239.14 201.55,236.84 201.55,233.94C201.55,231.84 200.15,229.94 198.35,229.14Z"
- android:fillColor="#669DF6"/>
- <path
- android:pathData="M217.65,229.14V217.74H222.55L215.65,205.54L208.75,217.74H213.65V229.14C211.75,229.94 210.45,231.74 210.45,233.94C210.45,236.84 212.75,239.14 215.65,239.14C218.55,239.14 220.85,236.84 220.85,233.94C220.85,231.84 219.55,229.94 217.65,229.14Z"
- android:fillColor="#669DF6"/>
- </group>
-</vector>
diff --git a/res/drawable-night/accessibility_gesture_navigation_three_finger_preview.xml b/res/drawable-night/accessibility_gesture_navigation_three_finger_preview.xml
deleted file mode 100644
index 593c3af..0000000
--- a/res/drawable-night/accessibility_gesture_navigation_three_finger_preview.xml
+++ /dev/null
@@ -1,71 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2021 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:aapt="http://schemas.android.com/aapt"
- android:width="412dp"
- android:height="300dp"
- android:viewportWidth="412"
- android:viewportHeight="300">
- <path
- android:fillColor="#FF000000"
- android:pathData="M384.2,300H27.8C12.5,300 0,287.2 0,271.5v-243C0,12.8 12.5,0 27.8,0h356.5C399.5,0 412,12.8 412,28.5v243.2C412,287.2 399.5,300 384.2,300z"/>
- <path
- android:pathData="M274.9,97.7v-9.5c0,-1.3 -1.1,-2.4 -2.4,-2.4V35.9c0,-6.6 -5.3,-11.9 -11.9,-11.9H151.3c-6.6,0 -11.9,5.3 -11.9,11.9v228.2c0,6.6 5.3,11.9 11.9,11.9h109.4c6.6,0 11.9,-5.3 11.9,-11.9V147.6c1.3,0 2.4,-1.1 2.4,-2.4v-23.8c0,-1.3 -1.1,-2.4 -2.4,-2.4v-19C273.9,100.1 274.9,99 274.9,97.7zM270.2,264.1c0,5.2 -4.3,9.5 -9.5,9.5H151.3c-5.2,0 -9.5,-4.3 -9.5,-9.5V35.9c0,-5.2 4.3,-9.5 9.5,-9.5h109.4c5.2,0 9.5,4.3 9.5,9.5V264.1z"
- android:fillColor="#80868B"/>
- <path
- android:pathData="M176.7,209.6c-3.7,0 -6.6,3 -6.6,6.6v24.6h13.3v-24.6C183.4,212.6 180.4,209.6 176.7,209.6z">
- <aapt:attr name="android:fillColor">
- <gradient
- android:startY="240.8954"
- android:startX="176.75"
- android:endY="209.6335"
- android:endX="176.75"
- android:type="linear">
- <item android:offset="0" android:color="#00669DF6"/>
- <item android:offset="0.695" android:color="#FF669DF6"/>
- </gradient>
- </aapt:attr>
- </path>
- <path
- android:pathData="M206,209.6c-3.7,0 -6.6,3 -6.6,6.6v24.6h13.3v-24.6C212.6,212.6 209.7,209.6 206,209.6z">
- <aapt:attr name="android:fillColor">
- <gradient
- android:startY="240.8954"
- android:startX="206.05"
- android:endY="209.6335"
- android:endX="206.05"
- android:type="linear">
- <item android:offset="0" android:color="#00669DF6"/>
- <item android:offset="0.695" android:color="#FF669DF6"/>
- </gradient>
- </aapt:attr>
- </path>
- <path
- android:pathData="M235.3,209.6c-3.7,0 -6.6,3 -6.6,6.6v24.6H242v-24.6C241.9,212.6 239,209.6 235.3,209.6z">
- <aapt:attr name="android:fillColor">
- <gradient
- android:startY="240.8954"
- android:startX="235.35"
- android:endY="209.6335"
- android:endX="235.35"
- android:type="linear">
- <item android:offset="0" android:color="#00669DF6"/>
- <item android:offset="0.695" android:color="#FF669DF6"/>
- </gradient>
- </aapt:attr>
- </path>
-</vector>
diff --git a/res/drawable-night/accessibility_gesture_navigation_three_finger_preview_tablet.xml b/res/drawable-night/accessibility_gesture_navigation_three_finger_preview_tablet.xml
deleted file mode 100644
index 1710fa4..0000000
--- a/res/drawable-night/accessibility_gesture_navigation_three_finger_preview_tablet.xml
+++ /dev/null
@@ -1,80 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2023 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:aapt="http://schemas.android.com/aapt"
- android:width="412dp"
- android:height="300dp"
- android:viewportWidth="412"
- android:viewportHeight="300">
- <group>
- <clip-path
- android:pathData="M0,0h412v300h-412z"/>
- <path
- android:pathData="M263.59,50.35C263.59,48.98 264.7,47.86 266.06,47.86L287.85,47.86C289.22,47.86 290.33,48.98 290.33,50.35L277.45,51.34L263.59,50.35Z"
- android:fillColor="#80868B"/>
- <path
- android:pathData="M364.52,66.19L364.52,236.14A14.75,14.75 0,0 1,349.77 250.89L62.23,250.89A14.75,14.75 0,0 1,47.48 236.14L47.48,66.19A14.75,14.75 0,0 1,62.23 51.44L349.77,51.44A14.75,14.75 0,0 1,364.52 66.19z"
- android:strokeWidth="2.5"
- android:fillColor="#000000"
- android:strokeColor="#80868B"/>
- <path
- android:pathData="M311.45,50.35C311.45,48.98 312.56,47.86 313.92,47.86L322.84,47.86C324.2,47.86 325.32,48.98 325.32,50.35L319.37,51.34L311.45,50.35Z"
- android:fillColor="#80868B"/>
- <path
- android:pathData="M176.84,188.94C173.14,188.94 170.24,191.94 170.24,195.54V220.14H183.54V195.54C183.54,191.94 180.54,188.94 176.84,188.94Z">
- <aapt:attr name="android:fillColor">
- <gradient
- android:startX="176.89"
- android:startY="220.23"
- android:endX="176.89"
- android:endY="188.97"
- android:type="linear">
- <item android:offset="0" android:color="#00669DF6"/>
- <item android:offset="0.69" android:color="#FF669DF6"/>
- </gradient>
- </aapt:attr>
- </path>
- <path
- android:pathData="M206.14,188.94C202.44,188.94 199.54,191.94 199.54,195.54V220.14H212.84V195.54C212.74,191.94 209.84,188.94 206.14,188.94Z">
- <aapt:attr name="android:fillColor">
- <gradient
- android:startX="206.19"
- android:startY="220.23"
- android:endX="206.19"
- android:endY="188.97"
- android:type="linear">
- <item android:offset="0" android:color="#00669DF6"/>
- <item android:offset="0.69" android:color="#FF669DF6"/>
- </gradient>
- </aapt:attr>
- </path>
- <path
- android:pathData="M235.44,188.94C231.74,188.94 228.84,191.94 228.84,195.54V220.14H242.14V195.54C242.04,191.94 239.14,188.94 235.44,188.94Z">
- <aapt:attr name="android:fillColor">
- <gradient
- android:startX="235.49"
- android:startY="220.23"
- android:endX="235.49"
- android:endY="188.97"
- android:type="linear">
- <item android:offset="0" android:color="#00669DF6"/>
- <item android:offset="0.69" android:color="#FF669DF6"/>
- </gradient>
- </aapt:attr>
- </path>
- </group>
-</vector>
diff --git a/res/drawable-night/accessibility_gesture_navigation_two_finger_preview.xml b/res/drawable-night/accessibility_gesture_navigation_two_finger_preview.xml
deleted file mode 100644
index c95523b..0000000
--- a/res/drawable-night/accessibility_gesture_navigation_two_finger_preview.xml
+++ /dev/null
@@ -1,57 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2021 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:aapt="http://schemas.android.com/aapt"
- android:width="412dp"
- android:height="300dp"
- android:viewportWidth="412"
- android:viewportHeight="300">
- <path
- android:fillColor="#FF000000"
- android:pathData="M384.2,300H27.8C12.5,300 0,287.2 0,271.5v-243C0,12.8 12.5,0 27.8,0h356.5C399.5,0 412,12.8 412,28.5v243.2C412,287.2 399.5,300 384.2,300z"/>
- <path
- android:pathData="M274.9,97.7v-9.5c0,-1.3 -1.1,-2.4 -2.4,-2.4V35.9c0,-6.6 -5.3,-11.9 -11.9,-11.9H151.3c-6.6,0 -11.9,5.3 -11.9,11.9v228.2c0,6.6 5.3,11.9 11.9,11.9h109.4c6.6,0 11.9,-5.3 11.9,-11.9V147.6c1.3,0 2.4,-1.1 2.4,-2.4v-23.8c0,-1.3 -1.1,-2.4 -2.4,-2.4v-19C273.9,100.1 274.9,99 274.9,97.7zM270.2,264.1c0,5.2 -4.3,9.5 -9.5,9.5H151.3c-5.2,0 -9.5,-4.3 -9.5,-9.5V35.9c0,-5.2 4.3,-9.5 9.5,-9.5h109.4c5.2,0 9.5,4.3 9.5,9.5V264.1z"
- android:fillColor="#80868B"/>
- <path
- android:pathData="M188.6,209.6c-3.7,0 -6.6,3 -6.6,6.6v24.6h13.3v-24.6C195.3,212.6 192.3,209.6 188.6,209.6z">
- <aapt:attr name="android:fillColor">
- <gradient
- android:startY="240.8954"
- android:startX="188.65"
- android:endY="209.6335"
- android:endX="188.65"
- android:type="linear">
- <item android:offset="0" android:color="#00669DF6"/>
- <item android:offset="0.695" android:color="#FF669DF6"/>
- </gradient>
- </aapt:attr>
- </path>
- <path
- android:pathData="M223.4,209.6c-3.7,0 -6.6,3 -6.6,6.6v24.6H230v-24.6C230,212.6 227.1,209.6 223.4,209.6z">
- <aapt:attr name="android:fillColor">
- <gradient
- android:startY="240.8954"
- android:startX="223.4"
- android:endY="209.6335"
- android:endX="223.4"
- android:type="linear">
- <item android:offset="0" android:color="#00669DF6"/>
- <item android:offset="0.695" android:color="#FF669DF6"/>
- </gradient>
- </aapt:attr>
- </path>
-</vector>
diff --git a/res/drawable-night/accessibility_gesture_navigation_two_finger_preview_tablet.xml b/res/drawable-night/accessibility_gesture_navigation_two_finger_preview_tablet.xml
deleted file mode 100644
index 7a5cc48..0000000
--- a/res/drawable-night/accessibility_gesture_navigation_two_finger_preview_tablet.xml
+++ /dev/null
@@ -1,66 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2023 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:aapt="http://schemas.android.com/aapt"
- android:width="412dp"
- android:height="300dp"
- android:viewportWidth="412"
- android:viewportHeight="300">
- <group>
- <clip-path
- android:pathData="M0,0h412v300h-412z"/>
- <path
- android:pathData="M263.59,50.35C263.59,48.98 264.7,47.86 266.06,47.86L287.85,47.86C289.22,47.86 290.33,48.98 290.33,50.35L277.45,51.34L263.59,50.35Z"
- android:fillColor="#80868B"/>
- <path
- android:pathData="M364.52,66.19L364.52,236.14A14.75,14.75 0,0 1,349.77 250.89L62.23,250.89A14.75,14.75 0,0 1,47.48 236.14L47.48,66.19A14.75,14.75 0,0 1,62.23 51.44L349.77,51.44A14.75,14.75 0,0 1,364.52 66.19z"
- android:strokeWidth="2.5"
- android:fillColor="#000000"
- android:strokeColor="#80868B"/>
- <path
- android:pathData="M311.45,50.35C311.45,48.98 312.56,47.86 313.92,47.86L322.84,47.86C324.2,47.86 325.32,48.98 325.32,50.35L319.37,51.34L311.45,50.35Z"
- android:fillColor="#80868B"/>
- <path
- android:pathData="M188.15,188.94C184.45,188.94 181.55,191.94 181.55,195.54V220.14H194.85V195.54C194.85,191.94 191.85,188.94 188.15,188.94Z">
- <aapt:attr name="android:fillColor">
- <gradient
- android:startX="188.2"
- android:startY="220.23"
- android:endX="188.2"
- android:endY="188.97"
- android:type="linear">
- <item android:offset="0" android:color="#00669DF6"/>
- <item android:offset="0.69" android:color="#FF669DF6"/>
- </gradient>
- </aapt:attr>
- </path>
- <path
- android:pathData="M222.95,188.94C219.25,188.94 216.35,191.94 216.35,195.54V220.14H229.55V195.54C229.55,191.94 226.65,188.94 222.95,188.94Z">
- <aapt:attr name="android:fillColor">
- <gradient
- android:startX="222.95"
- android:startY="220.23"
- android:endX="222.95"
- android:endY="188.97"
- android:type="linear">
- <item android:offset="0" android:color="#00669DF6"/>
- <item android:offset="0.69" android:color="#FF669DF6"/>
- </gradient>
- </aapt:attr>
- </path>
- </group>
-</vector>
diff --git a/res/drawable-night/accessibility_shortcut_type_hardware.xml b/res/drawable-night/accessibility_shortcut_type_hardware.xml
deleted file mode 100644
index 9ef3664..0000000
--- a/res/drawable-night/accessibility_shortcut_type_hardware.xml
+++ /dev/null
@@ -1,46 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2021 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
- android:width="412dp"
- android:height="300dp"
- android:viewportWidth="412"
- android:viewportHeight="300">
- <path
- android:fillColor="#FF000000"
- android:pathData="M384.2,300H27.8C12.5,300 0,287.2 0,271.5v-243C0,12.8 12.5,0 27.8,0h356.5C399.5,0 412,12.8 412,28.5v243.2C412,287.2 399.5,300 384.2,300z"/>
- <path
- android:pathData="M206.1,19.1c35,0 67.9,13.6 92.6,38.4C323.4,82.1 337,115 337,150s-13.6,67.9 -38.4,92.6C273.9,267.3 241,281 206,281s-67.9,-13.6 -92.6,-38.4C88.8,217.9 75.1,185 75.1,150s13.6,-67.9 38.4,-92.6S171.1,19.1 206.1,19.1M206.1,17.1c-73.4,0 -133,59.5 -133,132.9S132.6,282.9 206,282.9s133,-59.5 133,-132.9S279.5,17.1 206.1,17.1L206.1,17.1z"
- android:fillColor="#3C4043"/>
- <path
- android:pathData="M287,187.8v-1.5h2.9v-13.7c0,-1.6 -1.3,-2.9 -2.9,-2.9v-23.2c1.6,0 2.9,-1.3 2.9,-2.9V132c0,-1.6 -1.3,-2.9 -2.9,-2.9V68.4c0,-8 -6.5,-14.5 -14.5,-14.5H139.4c-8,0 -14.5,6.5 -14.5,14.5v185.3c1,0.7 1.9,1.4 2.9,2.1V68.4c0,-6.4 5.2,-11.6 11.6,-11.6h133.1c6.4,0 11.6,5.2 11.6,11.6v188.7c1,-0.7 1.9,-1.4 2.9,-2.2v-50.5c1.6,0 2.9,-1.3 2.9,-2.9v-13.7H287z"
- android:fillColor="#80868B"/>
- <path
- android:pathData="M287,204.4c1.6,0 2.9,-1.3 2.9,-2.9v-14H287v-0.9h2.9v-14c0,-1.6 -1.3,-2.9 -2.9,-2.9"
- android:fillColor="#669DF6"/>
- <path
- android:pathData="M825.7,300H469.3c-15.3,0 -27.8,-12.8 -27.8,-28.5v-243C441.5,12.8 454,0 469.3,0h356.5c15.2,0 27.7,12.8 27.7,28.5v243.2C853.5,287.2 841,300 825.7,300z"
- android:fillColor="#FFFFFF"/>
- <path
- android:pathData="M728.5,187.8v-1.5h2.9v-13.7c0,-1.6 -1.3,-2.9 -2.9,-2.9v-23.2c1.6,0 2.9,-1.3 2.9,-2.9V132c0,-1.6 -1.3,-2.9 -2.9,-2.9V68.4c0,-8 -6.5,-14.5 -14.5,-14.5H580.9c-8,0 -14.5,6.5 -14.5,14.5v185.3c1,0.7 1.9,1.4 2.9,2.1V68.4c0,-6.4 5.2,-11.6 11.6,-11.6H714c6.4,0 11.6,5.2 11.6,11.6v188.7c1,-0.7 1.9,-1.4 2.9,-2.2v-50.5c1.6,0 2.9,-1.3 2.9,-2.9v-13.7H728.5z"
- android:fillColor="#DADCE0"/>
- <path
- android:pathData="M728.5,204.4c1.6,0 2.9,-1.3 2.9,-2.9v-14h-2.9v-0.9h2.9v-14c0,-1.6 -1.3,-2.9 -2.9,-2.9"
- android:fillColor="#1A73E8"/>
- <path
- android:pathData="M648.2,19.1c35,0 67.9,13.6 92.6,38.4c24.7,24.6 38.3,57.5 38.3,92.5s-13.6,67.9 -38.4,92.6C716,267.3 683.1,281 648.1,281s-67.9,-13.6 -92.6,-38.4c-24.6,-24.7 -38.3,-57.6 -38.3,-92.6s13.6,-67.9 38.4,-92.6C580.4,32.7 613.2,19.1 648.2,19.1M648.2,17.1c-73.4,0 -133,59.5 -133,132.9s59.5,132.9 132.9,132.9s133,-59.5 133,-132.9S721.6,17.1 648.2,17.1L648.2,17.1z"
- android:fillColor="#E8EAED"/>
-</vector>
diff --git a/res/drawable-night/accessibility_shortcut_type_hardware_tablet.xml b/res/drawable-night/accessibility_shortcut_type_hardware_tablet.xml
deleted file mode 100644
index 1040d05..0000000
--- a/res/drawable-night/accessibility_shortcut_type_hardware_tablet.xml
+++ /dev/null
@@ -1,44 +0,0 @@
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
- android:width="412dp"
- android:height="300dp"
- android:viewportWidth="412"
- android:viewportHeight="300">
- <group>
- <clip-path
- android:pathData="M0,0h412v300h-412z"/>
- <path
- android:pathData="M255.38,94.3C255.38,93.14 256.32,92.21 257.47,92.21L275.86,92.21C277.01,92.21 277.95,93.14 277.95,94.3L267.08,95.14L255.38,94.3Z"
- android:fillColor="#669DF6"/>
- <path
- android:pathData="M340.09,110.17L340.09,248.55A14.5,14.5 0,0 1,325.59 263.05L88,263.05A14.5,14.5 0,0 1,73.5 248.55L73.5,110.17A14.5,14.5 0,0 1,88 95.67L325.59,95.67A14.5,14.5 0,0 1,340.09 110.17z"
- android:strokeWidth="3"
- android:fillColor="#000000"
- android:strokeColor="#80868B"/>
- <path
- android:pathData="M295.77,94.3C295.77,93.14 296.7,92.21 297.86,92.21L305.38,92.21C306.53,92.21 307.46,93.14 307.46,94.3L302.45,95.14L295.77,94.3Z"
- android:fillColor="#80868B"/>
- <group>
- <clip-path
- android:pathData="M274,30L274,30A93,93 0,0 1,367 123L367,123A93,93 0,0 1,274 216L274,216A93,93 0,0 1,181 123L181,123A93,93 0,0 1,274 30z"/>
- <path
- android:pathData="M274,30L274,30A93,93 0,0 1,367 123L367,123A93,93 0,0 1,274 216L274,216A93,93 0,0 1,181 123L181,123A93,93 0,0 1,274 30z"
- android:fillColor="#000000"/>
- <path
- android:pathData="M206.07,85.49C206.07,83.45 207.72,81.79 209.75,81.79L242.17,81.79C244.21,81.79 245.86,83.45 245.86,85.49L226.7,86.97L206.07,85.49Z"
- android:fillColor="#669DF6"/>
- <path
- android:pathData="M345.84,101.25L345.84,369.73A14.25,14.25 0,0 1,331.59 383.98L-111.85,383.98A14.25,14.25 0,0 1,-126.1 369.73L-126.1,101.25A14.25,14.25 0,0 1,-111.85 87L331.59,87A14.25,14.25 0,0 1,345.84 101.25z"
- android:strokeWidth="3.5"
- android:fillColor="#000000"
- android:strokeColor="#80868B"/>
- <path
- android:pathData="M266.77,85.49C266.77,83.45 268.42,81.79 270.46,81.79L283.72,81.79C285.75,81.79 287.4,83.45 287.4,85.49L278.56,86.97L266.77,85.49Z"
- android:fillColor="#80868B"/>
- </group>
- <path
- android:strokeWidth="1"
- android:pathData="M274,30.5L274,30.5A92.5,92.5 0,0 1,366.5 123L366.5,123A92.5,92.5 0,0 1,274 215.5L274,215.5A92.5,92.5 0,0 1,181.5 123L181.5,123A92.5,92.5 0,0 1,274 30.5z"
- android:fillColor="#00000000"
- android:strokeColor="#80868B"/>
- </group>
-</vector>
diff --git a/res/drawable-night/accessibility_shortcut_type_software.xml b/res/drawable-night/accessibility_shortcut_type_software.xml
deleted file mode 100644
index 8d55ae9..0000000
--- a/res/drawable-night/accessibility_shortcut_type_software.xml
+++ /dev/null
@@ -1,48 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2021 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
- android:width="412dp"
- android:height="300dp"
- android:viewportWidth="412"
- android:viewportHeight="300">
- <path
- android:fillColor="#FF000000"
- android:pathData="M384.2,300H27.8C12.5,300 0,287.2 0,271.5V28.5C0,12.8 12.5,0 27.8,0H384.3C399.5,0 412,12.8 412,28.5V271.7C412,287.2 399.5,300 384.2,300Z"/>
- <path
- android:pathData="M142,225.3H275.1a14.51,14.51 0,0 0,14.5 -14.5V69a2.9,2.9 0,0 0,2.9 -2.9v-17c-1.9,-1.6 -3.8,-3.2 -5.8,-4.7V210.8a11.61,11.61 0,0 1,-11.6 11.6H142a11.61,11.61 0,0 1,-11.6 -11.6V42.7c-1,0.7 -1.9,1.4 -2.9,2.1V210.9A14.62,14.62 0,0 0,142 225.3Z"
- android:fillColor="#80868b"/>
- <path
- android:pathData="M286.7,210.83a11.59,11.59 0,0 1,-11.58 11.58H142a11.59,11.59 0,0 1,-11.58 -11.58V183.26H286.7Z"
- android:fillColor="#3c4043"/>
- <path
- android:pathData="M250.41,193.38a1.77,1.77 0,1 1,-1.78 1.77A1.77,1.77 0,0 1,250.41 193.38ZM253.07,199.58v11.53h-1.78v-5.32h-1.77v5.32h-1.77L247.75,199.58a30.78,30.78 0,0 1,-5.32 -0.89l0.44,-1.77a32.34,32.34 0,0 0,15.07 0l0.45,1.77A30.78,30.78 0,0 1,253.07 199.58Z"
- android:fillColor="#fff"/>
- <path
- android:pathData="M208.55,202.84m-6.13,0a6.13,6.13 0,1 1,12.26 0a6.13,6.13 0,1 1,-12.26 0"
- android:fillColor="#80868b"/>
- <path
- android:pathData="M250.41,202.84m-22.28,0a22.28,22.28 0,1 1,44.56 0a22.28,22.28 0,1 1,-44.56 0"
- android:strokeWidth="2"
- android:fillColor="#00000000"
- android:strokeColor="#669df6"/>
- <path
- android:pathData="M160.45,202.84l10.43,6.02l0,-12.05l-10.43,6.03z"
- android:fillColor="#80868b"/>
- <path
- android:pathData="M207.4,19.1a131.11,131.11 0,0 1,131 131,131 131,0 0,1 -262,-0.1 130.94,130.94 0,0 1,131 -130.9m0,-2A132.9,132.9 0,1 0,340.3 150,133 133,0 0,0 207.4,17.1Z"
- android:fillColor="#3c4043"/>
-</vector>
diff --git a/res/drawable-night/accessibility_shortcut_type_software_floating.xml b/res/drawable-night/accessibility_shortcut_type_software_floating.xml
deleted file mode 100644
index 25d53ca..0000000
--- a/res/drawable-night/accessibility_shortcut_type_software_floating.xml
+++ /dev/null
@@ -1,39 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2021 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
- android:width="412dp"
- android:height="300dp"
- android:viewportWidth="412"
- android:viewportHeight="300">
- <path
- android:fillColor="#FF000000"
- android:pathData="M384.2,300H27.8C12.5,300 0,287.2 0,271.5V28.5C0,12.8 12.5,0 27.8,0H384.3C399.5,0 412,12.8 412,28.5V271.7C412,287.2 399.5,300 384.2,300Z"/>
- <path
- android:pathData="M142,225.3H275.1a14.51,14.51 0,0 0,14.5 -14.5V69a2.9,2.9 0,0 0,2.9 -2.9v-17c-1.9,-1.6 -3.8,-3.2 -5.8,-4.7V210.8a11.61,11.61 0,0 1,-11.6 11.6H142a11.61,11.61 0,0 1,-11.6 -11.6V42.7c-1,0.7 -1.9,1.4 -2.9,2.1V210.9A14.62,14.62 0,0 0,142 225.3Z"
- android:fillColor="#80868b"/>
- <path
- android:strokeWidth="1"
- android:pathData="M286.7,144.13H266a19.63,19.63 0,1 0,0 39.26H286.7"
- android:fillColor="#00000000"
- android:strokeColor="#80868b"/>
- <path
- android:pathData="M266,148.65a15.11,15.11 0,1 0,15.1 15.11A15.11,15.11 0,0 0,266 148.65ZM266,155.93a1.59,1.59 0,0 1,0 3.17,1.59 1.59,0 1,1 0,-3.17ZM268.37,161.47v10.29h-1.58L266.79,167h-1.59v4.75h-1.58L263.62,161.47a27.23,27.23 0,0 1,-4.75 -0.79l0.4,-1.58a29.06,29.06 0,0 0,13.46 0l0.39,1.58A27.23,27.23 0,0 1,268.33 161.47Z"
- android:fillColor="#dadce0"/>
- <path
- android:pathData="M207.4,19.1a131.11,131.11 0,0 1,131 131,131 131,0 0,1 -262,-0.1 130.94,130.94 0,0 1,131 -130.9m0,-2A132.9,132.9 0,1 0,340.3 150,133 133,0 0,0 207.4,17.1Z"
- android:fillColor="#3c4043"/>
-</vector>
diff --git a/res/drawable-night/accessibility_shortcut_type_software_floating_tablet.xml b/res/drawable-night/accessibility_shortcut_type_software_floating_tablet.xml
deleted file mode 100644
index c0b562e..0000000
--- a/res/drawable-night/accessibility_shortcut_type_software_floating_tablet.xml
+++ /dev/null
@@ -1,29 +0,0 @@
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
- android:width="412dp"
- android:height="300dp"
- android:viewportWidth="412"
- android:viewportHeight="300">
- <group>
- <clip-path
- android:pathData="M0,0h412v300h-412z"/>
- <path
- android:pathData="M263.59,50.35C263.59,48.98 264.7,47.86 266.06,47.86L287.85,47.86C289.22,47.86 290.33,48.98 290.33,50.35L277.45,51.34L263.59,50.35Z"
- android:fillColor="#80868B"/>
- <path
- android:pathData="M364.52,66.19L364.52,236.14A14.75,14.75 0,0 1,349.77 250.89L62.23,250.89A14.75,14.75 0,0 1,47.48 236.14L47.48,66.19A14.75,14.75 0,0 1,62.23 51.44L349.77,51.44A14.75,14.75 0,0 1,364.52 66.19z"
- android:strokeWidth="2.5"
- android:fillColor="#000000"
- android:strokeColor="#80868B"/>
- <path
- android:pathData="M311.45,50.35C311.45,48.98 312.56,47.86 313.92,47.86L322.84,47.86C324.2,47.86 325.32,48.98 325.32,50.35L319.37,51.34L311.45,50.35Z"
- android:fillColor="#80868B"/>
- </group>
- <path
- android:strokeWidth="1"
- android:pathData="M365.64,179.48H344.94C339.74,179.48 334.74,181.54 331.06,185.23C327.38,188.91 325.31,193.9 325.31,199.11C325.31,204.31 327.38,209.3 331.06,212.99C334.74,216.67 339.74,218.74 344.94,218.74H365.64"
- android:fillColor="#00000000"
- android:strokeColor="#80868B"/>
- <path
- android:pathData="M344.95,184C341.96,183.99 339.04,184.88 336.55,186.54C334.06,188.2 332.12,190.56 330.98,193.32C329.83,196.08 329.53,199.12 330.11,202.05C330.7,204.98 332.14,207.67 334.25,209.79C336.36,211.9 339.05,213.34 341.98,213.93C344.92,214.51 347.95,214.21 350.72,213.07C353.48,211.92 355.84,209.99 357.5,207.5C359.16,205.02 360.05,202.1 360.05,199.11C360.05,195.1 358.46,191.26 355.62,188.43C352.79,185.59 348.95,184 344.95,184ZM344.95,191.28C345.35,191.31 345.72,191.49 345.99,191.78C346.26,192.08 346.41,192.46 346.41,192.86C346.41,193.26 346.26,193.65 345.99,193.94C345.72,194.23 345.35,194.41 344.95,194.45C344.73,194.46 344.51,194.43 344.3,194.36C344.09,194.29 343.9,194.18 343.74,194.03C343.58,193.88 343.45,193.7 343.36,193.5C343.28,193.3 343.23,193.08 343.23,192.86C343.23,192.64 343.28,192.43 343.36,192.22C343.45,192.02 343.58,191.84 343.74,191.69C343.9,191.54 344.09,191.43 344.3,191.36C344.51,191.29 344.73,191.26 344.95,191.28ZM347.32,196.82V207.11H345.74V202.35H344.15V207.1H342.57V196.82C340.96,196.69 339.37,196.43 337.82,196.03L338.22,194.45C342.64,195.5 347.25,195.5 351.68,194.45L352.07,196.03C350.5,196.43 348.89,196.7 347.28,196.82H347.32Z"
- android:fillColor="#DADCE0"/>
-</vector>
diff --git a/res/drawable-night/accessibility_shortcut_type_software_gesture.xml b/res/drawable-night/accessibility_shortcut_type_software_gesture.xml
deleted file mode 100644
index ea19f74..0000000
--- a/res/drawable-night/accessibility_shortcut_type_software_gesture.xml
+++ /dev/null
@@ -1,40 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2021 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
- android:width="412dp"
- android:height="300dp"
- android:viewportWidth="412"
- android:viewportHeight="300">
- <path
- android:fillColor="#FF000000"
- android:pathData="M384.2,300H27.8C12.5,300 0,287.2 0,271.5v-243C0,12.8 12.5,0 27.8,0h356.5C399.5,0 412,12.8 412,28.5v243.2C412,287.2 399.5,300 384.2,300z"/>
- <path
- android:pathData="M139.5,225.3h133.1c8,0 14.5,-6.5 14.5,-14.5V69c1.6,0 2.9,-1.3 2.9,-2.9v-17c-1.9,-1.6 -3.8,-3.2 -5.8,-4.7v166.4c0,6.4 -5.2,11.6 -11.6,11.6H139.5c-6.4,0 -11.6,-5.2 -11.6,-11.6V42.7c-1,0.7 -1.9,1.4 -2.9,2.1v166.1C125.1,218.8 131.6,225.3 139.5,225.3z"
- android:fillColor="#80868B"/>
- <path
- android:pathData="M229.9,207.9h-47.8c-1.1,0 -2,0.9 -2,2s0.9,2 2,2h47.8c1.1,0 2,-0.9 2,-2S231,207.9 229.9,207.9z"
- android:fillColor="#80868B"/>
- <path
- android:pathData="M198.4,205.7v-11.4h4.9l-6.9,-12.2l-6.9,12.2h4.9v11.4c-1.9,0.8 -3.2,2.6 -3.2,4.8c0,2.9 2.3,5.2 5.2,5.2s5.2,-2.3 5.2,-5.2C201.6,208.4 200.2,206.5 198.4,205.7z"
- android:fillColor="#669DF6"/>
- <path
- android:pathData="M217.7,205.7v-11.4h4.9l-6.9,-12.2l-6.9,12.2h4.9v11.4c-1.9,0.8 -3.2,2.6 -3.2,4.8c0,2.9 2.3,5.2 5.2,5.2s5.2,-2.3 5.2,-5.2C220.9,208.4 219.6,206.5 217.7,205.7z"
- android:fillColor="#669DF6"/>
- <path
- android:pathData="M206.1,19.1c35,0 67.9,13.6 92.6,38.4c24.7,24.7 38.4,57.6 38.4,92.6s-13.6,67.9 -38.4,92.6c-24.7,24.7 -57.6,38.4 -92.6,38.4s-67.9,-13.6 -92.6,-38.4C88.8,217.9 75.1,185 75.1,150s13.6,-67.9 38.4,-92.6C138.2,32.7 171.1,19.1 206.1,19.1M206.1,17.1c-73.4,0 -133,59.5 -133,132.9S132.6,282.9 206,282.9S339,223.4 339,150S279.5,17.1 206.1,17.1L206.1,17.1z"
- android:fillColor="#3C4043"/>
-</vector>
\ No newline at end of file
diff --git a/res/drawable-night/accessibility_shortcut_type_software_gesture_tablet.xml b/res/drawable-night/accessibility_shortcut_type_software_gesture_tablet.xml
deleted file mode 100644
index 129f13d..0000000
--- a/res/drawable-night/accessibility_shortcut_type_software_gesture_tablet.xml
+++ /dev/null
@@ -1,46 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2023 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
- android:width="412dp"
- android:height="300dp"
- android:viewportWidth="412"
- android:viewportHeight="300">
- <group>
- <clip-path
- android:pathData="M0,0h412v300h-412z"/>
- <path
- android:pathData="M263.59,50.35C263.59,48.98 264.7,47.86 266.06,47.86L287.85,47.86C289.22,47.86 290.33,48.98 290.33,50.35L277.45,51.34L263.59,50.35Z"
- android:fillColor="#80868B"/>
- <path
- android:pathData="M364.52,66.19L364.52,236.14A14.75,14.75 0,0 1,349.77 250.89L62.23,250.89A14.75,14.75 0,0 1,47.48 236.14L47.48,66.19A14.75,14.75 0,0 1,62.23 51.44L349.77,51.44A14.75,14.75 0,0 1,364.52 66.19z"
- android:strokeWidth="2.5"
- android:fillColor="#000000"
- android:strokeColor="#80868B"/>
- <path
- android:pathData="M311.45,50.35C311.45,48.98 312.56,47.86 313.92,47.86L322.84,47.86C324.2,47.86 325.32,48.98 325.32,50.35L319.37,51.34L311.45,50.35Z"
- android:fillColor="#80868B"/>
- <path
- android:pathData="M170.9,232.14L241.9,232.14A2,2 0,0 1,243.9 234.14L243.9,234.14A2,2 0,0 1,241.9 236.14L170.9,236.14A2,2 0,0 1,168.9 234.14L168.9,234.14A2,2 0,0 1,170.9 232.14z"
- android:fillColor="#80868B"/>
- <path
- android:pathData="M198.35,229.14V217.74H203.25L196.35,205.54L189.45,217.74H194.35V229.14C192.45,229.94 191.15,231.74 191.15,233.94C191.15,236.84 193.45,239.14 196.35,239.14C199.25,239.14 201.55,236.84 201.55,233.94C201.55,231.84 200.15,229.94 198.35,229.14Z"
- android:fillColor="#669DF6"/>
- <path
- android:pathData="M217.65,229.14V217.74H222.55L215.65,205.54L208.75,217.74H213.65V229.14C211.75,229.94 210.45,231.74 210.45,233.94C210.45,236.84 212.75,239.14 215.65,239.14C218.55,239.14 220.85,236.84 220.85,233.94C220.85,231.84 219.55,229.94 217.65,229.14Z"
- android:fillColor="#669DF6"/>
- </group>
-</vector>
diff --git a/res/drawable-night/accessibility_shortcut_type_software_gesture_talkback.xml b/res/drawable-night/accessibility_shortcut_type_software_gesture_talkback.xml
deleted file mode 100644
index bd9bf19..0000000
--- a/res/drawable-night/accessibility_shortcut_type_software_gesture_talkback.xml
+++ /dev/null
@@ -1,43 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2021 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
- android:width="412dp"
- android:height="300dp"
- android:viewportWidth="412"
- android:viewportHeight="300">
- <path
- android:fillColor="#FF000000"
- android:pathData="M384.2,300H27.8C12.5,300 0,287.2 0,271.5v-243C0,12.8 12.5,0 27.8,0h356.5C399.5,0 412,12.8 412,28.5v243.2C412,287.2 399.5,300 384.2,300z"/>
- <path
- android:pathData="M138,225.3h133.1c8,0 14.5,-6.5 14.5,-14.5V69c1.6,0 2.9,-1.3 2.9,-2.9V45.7c-1.9,-1.5 -3.8,-2.9 -5.8,-4.3v169.4c0,6.4 -5.2,11.6 -11.6,11.6H138c-6.4,0 -11.6,-5.2 -11.6,-11.6V43.5c-1,0.7 -1.9,1.5 -2.9,2.2v165C123.5,218.8 130,225.3 138,225.3z"
- android:fillColor="#80868B"/>
- <path
- android:pathData="M206,283.9c-73.9,0 -133.9,-60.1 -133.9,-133.9S132.1,16.1 206,16.1c73.9,0 133.9,60.1 133.9,133.9S279.9,283.9 206,283.9zM206,18.1C133.2,18.1 74.1,77.2 74.1,150S133.2,281.9 206,281.9S337.9,222.8 337.9,150S278.8,18.1 206,18.1z"
- android:fillColor="#3C4043"/>
- <path
- android:pathData="M229.9,207.9h-47.8c-1.1,0 -2,0.9 -2,2s0.9,2 2,2h47.8c1.1,0 2,-0.9 2,-2S231,207.9 229.9,207.9z"
- android:fillColor="#80868B"/>
- <path
- android:pathData="M190.9,205.7v-11.4h4.9l-6.9,-12.2l-6.9,12.2h4.9v11.4c-1.9,0.8 -3.2,2.6 -3.2,4.8c0,2.9 2.3,5.2 5.2,5.2c2.9,0 5.2,-2.3 5.2,-5.2C194.1,208.4 192.8,206.5 190.9,205.7z"
- android:fillColor="#669DF6"/>
- <path
- android:pathData="M208,205.7v-11.4h4.9l-6.9,-12.2l-6.9,12.2h4.9v11.4c-1.9,0.8 -3.2,2.6 -3.2,4.8c0,2.9 2.3,5.2 5.2,5.2c2.9,0 5.2,-2.3 5.2,-5.2C211.2,208.4 209.9,206.5 208,205.7z"
- android:fillColor="#669DF6"/>
- <path
- android:pathData="M225.1,205.7v-11.4h4.9l-6.9,-12.2l-6.9,12.2h4.9v11.4c-1.9,0.8 -3.2,2.6 -3.2,4.8c0,2.9 2.3,5.2 5.2,5.2c2.9,0 5.2,-2.3 5.2,-5.2C228.2,208.4 226.9,206.5 225.1,205.7z"
- android:fillColor="#669DF6"/>
-</vector>
\ No newline at end of file
diff --git a/res/drawable-night/accessibility_shortcut_type_software_gesture_talkback_tablet.xml b/res/drawable-night/accessibility_shortcut_type_software_gesture_talkback_tablet.xml
deleted file mode 100644
index d113fff..0000000
--- a/res/drawable-night/accessibility_shortcut_type_software_gesture_talkback_tablet.xml
+++ /dev/null
@@ -1,49 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2023 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
- android:width="412dp"
- android:height="300dp"
- android:viewportWidth="412"
- android:viewportHeight="300">
- <group>
- <clip-path
- android:pathData="M0,0h412v300h-412z"/>
- <path
- android:pathData="M263.59,50.35C263.59,48.98 264.7,47.86 266.06,47.86L287.85,47.86C289.22,47.86 290.33,48.98 290.33,50.35L277.45,51.34L263.59,50.35Z"
- android:fillColor="#80868B"/>
- <path
- android:pathData="M364.52,66.19L364.52,236.14A14.75,14.75 0,0 1,349.77 250.89L62.23,250.89A14.75,14.75 0,0 1,47.48 236.14L47.48,66.19A14.75,14.75 0,0 1,62.23 51.44L349.77,51.44A14.75,14.75 0,0 1,364.52 66.19z"
- android:strokeWidth="2.5"
- android:fillColor="#000000"
- android:strokeColor="#80868B"/>
- <path
- android:pathData="M311.45,50.35C311.45,48.98 312.56,47.86 313.92,47.86L322.84,47.86C324.2,47.86 325.32,48.98 325.32,50.35L319.37,51.34L311.45,50.35Z"
- android:fillColor="#80868B"/>
- <path
- android:pathData="M170.9,232.14L241.9,232.14A2,2 0,0 1,243.9 234.14L243.9,234.14A2,2 0,0 1,241.9 236.14L170.9,236.14A2,2 0,0 1,168.9 234.14L168.9,234.14A2,2 0,0 1,170.9 232.14z"
- android:fillColor="#80868B"/>
- <path
- android:pathData="M188.7,229.14V217.74H193.6L186.7,205.54L179.8,217.74H184.7V229.14C182.8,229.94 181.5,231.74 181.5,233.94C181.5,236.84 183.8,239.14 186.7,239.14C189.6,239.14 191.9,236.84 191.9,233.94C191.9,231.84 190.5,229.94 188.7,229.14Z"
- android:fillColor="#669DF6"/>
- <path
- android:pathData="M208,229.14V217.74H212.9L206,205.54L199.1,217.74H204V229.14C202.1,229.94 200.8,231.74 200.8,233.94C200.8,236.84 203.1,239.14 206,239.14C208.9,239.14 211.2,236.84 211.2,233.94C211.2,231.84 209.9,229.94 208,229.14Z"
- android:fillColor="#669DF6"/>
- <path
- android:pathData="M227.29,229.14V217.74H232.2L225.29,205.54L218.4,217.74H223.29V229.14C221.4,229.94 220.1,231.74 220.1,233.94C220.1,236.84 222.4,239.14 225.29,239.14C228.2,239.14 230.49,236.84 230.49,233.94C230.49,231.84 229.2,229.94 227.29,229.14Z"
- android:fillColor="#669DF6"/>
- </group>
-</vector>
diff --git a/res/drawable-night/accessibility_shortcut_type_software_tablet.xml b/res/drawable-night/accessibility_shortcut_type_software_tablet.xml
deleted file mode 100644
index 49a2661..0000000
--- a/res/drawable-night/accessibility_shortcut_type_software_tablet.xml
+++ /dev/null
@@ -1,36 +0,0 @@
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
- android:width="412dp"
- android:height="300dp"
- android:viewportWidth="412"
- android:viewportHeight="300">
- <group>
- <clip-path
- android:pathData="M62.23,50.19L349.77,50.19A16,16 0,0 1,365.77 66.19L365.77,236.14A16,16 0,0 1,349.77 252.14L62.23,252.14A16,16 0,0 1,46.23 236.14L46.23,66.19A16,16 0,0 1,62.23 50.19z"/>
- <path
- android:pathData="M46.23,204.14h320v48h-320z"
- android:fillColor="#3D4043"/>
- <path
- android:pathData="M268.93,214.14C270.43,214.14 271.63,215.34 271.63,216.84C271.63,218.34 270.43,219.54 268.93,219.54C267.43,219.54 266.23,218.34 266.23,216.84C266.23,215.34 267.43,214.14 268.93,214.14ZM273.03,223.64V241.24H270.23V233.14H267.53V241.24H264.83V223.64C262.13,223.44 259.23,222.94 256.73,222.24L257.43,219.54C260.93,220.44 265.13,220.94 268.93,220.94C272.73,220.94 276.93,220.54 280.43,219.54L281.13,222.24C278.63,222.94 275.73,223.44 273.03,223.64Z"
- android:fillColor="#ffffff"/>
- <path
- android:pathData="M206.23,238.04C211.42,238.04 215.63,233.83 215.63,228.64C215.63,223.45 211.42,219.24 206.23,219.24C201.04,219.24 196.83,223.45 196.83,228.64C196.83,233.83 201.04,238.04 206.23,238.04Z"
- android:fillColor="#808589"/>
- <path
- android:pathData="M131.33,228.64L147.33,237.84V219.34L131.33,228.64Z"
- android:fillColor="#808589"/>
- </group>
- <path
- android:pathData="M62.23,51.69L349.77,51.69A14.5,14.5 0,0 1,364.27 66.19L364.27,236.14A14.5,14.5 0,0 1,349.77 250.64L62.23,250.64A14.5,14.5 0,0 1,47.73 236.14L47.73,66.19A14.5,14.5 0,0 1,62.23 51.69z"
- android:strokeWidth="3"
- android:fillColor="#00000000"
- android:strokeColor="#80868B"/>
- <path
- android:pathData="M311.45,50.35C311.45,48.98 312.56,47.87 313.92,47.87L322.84,47.87C324.2,47.87 325.32,48.98 325.32,50.35L319.37,51.34L311.45,50.35Z"
- android:fillColor="#80868B"/>
- <path
- android:pathData="M263.59,50.35C263.59,48.98 264.7,47.87 266.06,47.87L287.85,47.87C289.22,47.87 290.33,48.98 290.33,50.35L277.45,51.34L263.59,50.35Z"
- android:fillColor="#80868B"/>
- <path
- android:pathData="M268.93,259.69C251.31,259.69 236.93,245.3 236.93,227.69C236.93,210.07 251.31,195.69 268.93,195.69C286.55,195.69 300.93,210.07 300.93,227.69C300.93,245.3 286.55,259.69 268.93,259.69ZM268.93,198.38C252.84,198.38 239.72,211.51 239.72,227.6C239.72,243.69 252.84,256.81 268.93,256.81C285.02,256.81 298.14,243.69 298.14,227.6C298.14,211.51 285.02,198.38 268.93,198.38Z"
- android:fillColor="#729CEE"/>
-</vector>
diff --git a/res/drawable/accessibility_button_navigation.xml b/res/drawable/accessibility_button_navigation.xml
deleted file mode 100644
index 8fdb627..0000000
--- a/res/drawable/accessibility_button_navigation.xml
+++ /dev/null
@@ -1,43 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2021 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
- android:width="412dp"
- android:height="300dp"
- android:viewportWidth="412"
- android:viewportHeight="300">
- <path
- android:pathData="M384.2,300H27.8C12.5,300 0,287.2 0,271.5v-243C0,12.8 12.5,0 27.8,0h356.5C399.5,0 412,12.8 412,28.5v243.2C412,287.2 399.5,300 384.2,300z"
- android:fillColor="#FFFFFF"/>
- <path
- android:fillColor="#FF000000"
- android:pathData="M325.2,231.9c0,9.8 -7.9,17.7 -17.7,17.7H103.9c-9.8,0 -17.7,-7.9 -17.7,-17.7v-42.2h239V231.9z"/>
- <path
- android:pathData="M269.7,205.2c1.5,0 2.7,1.2 2.7,2.7s-1.2,2.7 -2.7,2.7c-1.5,0 -2.7,-1.2 -2.7,-2.7S268.2,205.2 269.7,205.2zM273.8,214.7v17.6H271v-8.1h-2.7v8.1h-2.7v-17.6c-2.7,-0.2 -5.6,-0.7 -8.1,-1.4l0.7,-2.7c3.5,0.9 7.7,1.4 11.5,1.4c3.8,0 8,-0.4 11.5,-1.4l0.7,2.7C279.4,214 276.5,214.5 273.8,214.7z"
- android:fillColor="#FFFFFF"/>
- <path
- android:pathData="M205.7,219.7m-9.4,0a9.4,9.4 0,1 1,18.8 0a9.4,9.4 0,1 1,-18.8 0"
- android:fillColor="#BDC0C4"/>
- <path
- android:pathData="M132.1,219.7l16,9.2l0,-18.5z"
- android:fillColor="#BDC0C4"/>
- <path
- android:pathData="M325.4,231.9c0,9.8 -7.9,17.7 -17.7,17.7H103.9c-9.8,0 -17.7,-7.9 -17.7,-17.7V0h-4.4v231.9c0,12.2 9.9,22.2 22.1,22.2h203.8c12.2,0 22.1,-9.9 22.1,-22.2V14.8c2.4,0 4.4,-2 4.4,-4.4V0h-8.9V231.9z"
- android:fillColor="#DADCE0"/>
- <path
- android:pathData="M269.7,255.3c-19.6,0 -35.6,-16 -35.6,-35.6s16,-35.6 35.6,-35.6s35.6,16 35.6,35.6S289.3,255.3 269.7,255.3zM269.7,187.1c-17.9,0 -32.5,14.6 -32.5,32.5c0,17.9 14.6,32.5 32.5,32.5s32.5,-14.6 32.5,-32.5C302.2,201.7 287.6,187.1 269.7,187.1z"
- android:fillColor="#3773DF"/>
-</vector>
diff --git a/res/drawable/accessibility_button_navigation_tablet.xml b/res/drawable/accessibility_button_navigation_tablet.xml
deleted file mode 100644
index d8ae503..0000000
--- a/res/drawable/accessibility_button_navigation_tablet.xml
+++ /dev/null
@@ -1,54 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2023 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
- android:width="412dp"
- android:height="300dp"
- android:viewportWidth="412"
- android:viewportHeight="300">
- <path
- android:pathData="M28,0L384,0A28,28 0,0 1,412 28L412,272A28,28 0,0 1,384 300L28,300A28,28 0,0 1,0 272L0,28A28,28 0,0 1,28 0z"
- android:fillColor="#ffffff"/>
- <group>
- <clip-path
- android:pathData="M62.23,50.19L349.77,50.19A16,16 0,0 1,365.77 66.19L365.77,236.14A16,16 0,0 1,349.77 252.14L62.23,252.14A16,16 0,0 1,46.23 236.14L46.23,66.19A16,16 0,0 1,62.23 50.19z"/>
- <path
- android:pathData="M46.23,204.14h320v48h-320z"
- android:fillColor="#000000"/>
- <path
- android:pathData="M268.93,214.14C270.43,214.14 271.63,215.34 271.63,216.84C271.63,218.34 270.43,219.54 268.93,219.54C267.43,219.54 266.23,218.34 266.23,216.84C266.23,215.34 267.43,214.14 268.93,214.14ZM273.03,223.64V241.24H270.23V233.14H267.53V241.24H264.83V223.64C262.13,223.44 259.23,222.94 256.73,222.24L257.43,219.54C260.93,220.44 265.13,220.94 268.93,220.94C272.73,220.94 276.93,220.54 280.43,219.54L281.13,222.24C278.63,222.94 275.73,223.44 273.03,223.64Z"
- android:fillColor="#ffffff"/>
- <path
- android:pathData="M206.23,238.04C211.42,238.04 215.63,233.83 215.63,228.64C215.63,223.45 211.42,219.24 206.23,219.24C201.04,219.24 196.83,223.45 196.83,228.64C196.83,233.83 201.04,238.04 206.23,238.04Z"
- android:fillColor="#BDC0C4"/>
- <path
- android:pathData="M131.33,228.64L147.33,237.84V219.34L131.33,228.64Z"
- android:fillColor="#BDC0C4"/>
- </group>
- <path
- android:pathData="M62.23,51.69L349.77,51.69A14.5,14.5 0,0 1,364.27 66.19L364.27,236.14A14.5,14.5 0,0 1,349.77 250.64L62.23,250.64A14.5,14.5 0,0 1,47.73 236.14L47.73,66.19A14.5,14.5 0,0 1,62.23 51.69z"
- android:strokeWidth="3"
- android:fillColor="#00000000"
- android:strokeColor="#DADCE0"/>
- <path
- android:pathData="M311.45,50.35C311.45,48.98 312.56,47.87 313.92,47.87L322.84,47.87C324.2,47.87 325.32,48.98 325.32,50.35L319.37,51.34L311.45,50.35Z"
- android:fillColor="#DADCE0"/>
- <path
- android:pathData="M263.59,50.35C263.59,48.98 264.7,47.87 266.06,47.87L287.85,47.87C289.22,47.87 290.33,48.98 290.33,50.35L277.45,51.34L263.59,50.35Z"
- android:fillColor="#DADCE0"/>
- <path
- android:pathData="M268.93,259.69C251.31,259.69 236.93,245.3 236.93,227.69C236.93,210.07 251.31,195.69 268.93,195.69C286.55,195.69 300.93,210.07 300.93,227.69C300.93,245.3 286.55,259.69 268.93,259.69ZM268.93,198.38C252.84,198.38 239.72,211.51 239.72,227.6C239.72,243.69 252.84,256.81 268.93,256.81C285.02,256.81 298.14,243.69 298.14,227.6C298.14,211.51 285.02,198.38 268.93,198.38Z"
- android:fillColor="#729CEE"/>
-</vector>
diff --git a/res/drawable/accessibility_button_preview_large_floating_menu.xml b/res/drawable/accessibility_button_preview_large_floating_menu.xml
deleted file mode 100644
index 794f3ca..0000000
--- a/res/drawable/accessibility_button_preview_large_floating_menu.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2021 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
- android:width="412dp"
- android:height="300dp"
- android:viewportWidth="412"
- android:viewportHeight="300">
- <path
- android:pathData="M325.4,198.2h-40.9c-22.1,0 -40,-18 -40,-40s18,-40 40,-40h40.9v2.6h-40.9c-20.7,0 -37.5,16.8 -37.5,37.5s16.8,37.5 37.5,37.5h40.9V198.2z"
- android:fillColor="#DADCE0"/>
- <path
- android:pathData="M284.3,128.4c-16.5,0 -29.8,13.4 -29.8,29.8c0,16.5 13.4,29.8 29.8,29.8s29.8,-13.4 29.8,-29.8C314.2,141.7 300.9,128.4 284.3,128.4zM284.3,142.7c1.7,0 3.1,1.4 3.1,3.1c0,1.7 -1.4,3.1 -3.1,3.1s-3.1,-1.4 -3.1,-3.1C281.2,144.1 282.7,142.7 284.3,142.7zM289.1,153.7V174H286v-9.4h-3.1v9.4h-3.2v-20.3c-3.1,-0.3 -6.5,-0.8 -9.4,-1.5l0.8,-3.1c4.1,1 8.9,1.5 13.3,1.5s9.2,-0.5 13.3,-1.5l0.8,3.1C295.6,152.9 292.2,153.4 289.1,153.7z"
- android:fillColor="#606368"/>
-</vector>
diff --git a/res/drawable/accessibility_button_preview_large_floating_menu_tablet.xml b/res/drawable/accessibility_button_preview_large_floating_menu_tablet.xml
deleted file mode 100644
index 99798d5..0000000
--- a/res/drawable/accessibility_button_preview_large_floating_menu_tablet.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
- android:width="412dp"
- android:height="300dp"
- android:viewportWidth="412"
- android:viewportHeight="300">
- <path
- android:pathData="M365.76,226.17h-27.68c-14.95,0 -27.07,-12.18 -27.07,-27.07s12.18,-27.07 27.07,-27.07h27.68v1.76h-27.68c-14.01,0 -25.37,11.37 -25.37,25.37s11.37,25.37 25.37,25.37h27.68v1.62Z"
- android:fillColor="#dadce0"/>
- <path
- android:pathData="M337.95,178.94c-11.16,0 -20.16,9.07 -20.16,20.16 0,11.16 9.07,20.16 20.16,20.16s20.16,-9.07 20.16,-20.16c0.07,-11.16 -8.93,-20.16 -20.16,-20.16ZM337.95,188.62c1.15,0 2.1,0.95 2.1,2.1 0,1.15 -0.95,2.1 -2.1,2.1s-2.1,-0.95 -2.1,-2.1c0,-1.15 1.02,-2.1 2.1,-2.1ZM341.2,196.06v13.74h-2.1v-6.36h-2.1v6.36h-2.17v-13.74c-2.1,-0.2 -4.4,-0.54 -6.36,-1.01l0.54,-2.1c2.77,0.68 6.02,1.01 9,1.01s6.23,-0.34 9,-1.01l0.54,2.1c-1.96,0.47 -4.26,0.81 -6.36,1.01Z"
- android:fillColor="#5f6368"/>
-</vector>
diff --git a/res/drawable/accessibility_button_preview_small_floating_menu.xml b/res/drawable/accessibility_button_preview_small_floating_menu.xml
deleted file mode 100644
index 670a516..0000000
--- a/res/drawable/accessibility_button_preview_small_floating_menu.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2021 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
- android:width="412dp"
- android:height="300dp"
- android:viewportWidth="412"
- android:viewportHeight="300">
- <path
- android:pathData="M325.4,189.2h-31.7c-17.1,0 -31,-13.9 -31,-31s13.9,-31 31,-31h31.7v2h-31.7c-16,0 -29,13 -29,29s13,29 29,29h31.7V189.2z"
- android:fillColor="#DADCE0"/>
- <path
- android:pathData="M293.6,135.1c-12.8,0 -23.1,10.4 -23.1,23.1c0,12.8 10.4,23.1 23.1,23.1s23.1,-10.4 23.1,-23.1C316.7,145.4 306.4,135.1 293.6,135.1zM293.6,146.2c1.3,0 2.4,1.1 2.4,2.4s-1.1,2.4 -2.4,2.4s-2.4,-1.1 -2.4,-2.4S292.3,146.2 293.6,146.2zM297.3,154.7v15.7h-2.4v-7.3h-2.4v7.3H290v-15.7c-2.4,-0.2 -5,-0.6 -7.3,-1.2l0.6,-2.4c3.2,0.8 6.9,1.2 10.3,1.2s7.1,-0.4 10.3,-1.2l0.6,2.4C302.3,154.1 299.7,154.5 297.3,154.7z"
- android:fillColor="#606368"/>
-</vector>
diff --git a/res/drawable/accessibility_button_preview_small_floating_menu_tablet.xml b/res/drawable/accessibility_button_preview_small_floating_menu_tablet.xml
deleted file mode 100644
index e31265c..0000000
--- a/res/drawable/accessibility_button_preview_small_floating_menu_tablet.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
- android:width="412dp"
- android:height="300dp"
- android:viewportWidth="412"
- android:viewportHeight="300">
- <path
- android:pathData="M365.88,219.24h-20.7c-5.38,0 -10.43,-2.09 -14.23,-5.9s-5.9,-8.86 -5.9,-14.23c0,-5.38 2.09,-10.43 5.9,-14.24 3.8,-3.8 8.86,-5.9 14.23,-5.9h20.7v1h-20.7c-5.11,0 -9.91,1.99 -13.53,5.6s-5.6,8.42 -5.6,13.53c0,5.11 1.99,9.91 5.6,13.53s8.42,5.6 13.53,5.6h20.7v1Z"
- android:fillColor="#dadce0"/>
- <path
- android:pathData="M345.19,184c-2.99,-0 -5.91,0.88 -8.4,2.54 -2.49,1.66 -4.43,4.02 -5.57,6.78s-1.45,5.8 -0.86,8.73c0.58,2.93 2.02,5.63 4.13,7.74 2.11,2.11 4.81,3.55 7.74,4.14 2.93,0.58 5.97,0.29 8.73,-0.86 2.76,-1.14 5.12,-3.08 6.78,-5.57 1.66,-2.49 2.55,-5.41 2.55,-8.4 0,-4.01 -1.59,-7.85 -4.42,-10.68 -2.83,-2.83 -6.67,-4.43 -10.68,-4.43ZM345.19,191.28c0.4,0.03 0.77,0.21 1.04,0.51 0.27,0.29 0.42,0.68 0.42,1.08 0,0.4 -0.15,0.79 -0.42,1.08 -0.27,0.29 -0.64,0.47 -1.04,0.51 -0.22,0.02 -0.44,-0.01 -0.65,-0.08 -0.21,-0.07 -0.4,-0.19 -0.56,-0.33 -0.16,-0.15 -0.29,-0.33 -0.38,-0.53 -0.09,-0.2 -0.13,-0.42 -0.13,-0.64 0,-0.22 0.05,-0.44 0.13,-0.64 0.09,-0.2 0.22,-0.38 0.38,-0.53 0.16,-0.15 0.35,-0.26 0.56,-0.33 0.21,-0.07 0.43,-0.1 0.65,-0.08ZM347.56,196.82v10.29h-1.58v-4.76h-1.59v4.75h-1.58v-10.28c-1.6,-0.12 -3.19,-0.39 -4.75,-0.79l0.4,-1.58c4.42,1.05 9.04,1.05 13.46,0l0.39,1.58c-1.57,0.41 -3.17,0.67 -4.79,0.79h0.04Z"
- android:fillColor="#5f6368"/>
-</vector>
diff --git a/res/drawable/accessibility_button_preview_three_finger.xml b/res/drawable/accessibility_button_preview_three_finger.xml
deleted file mode 100644
index d18ce60..0000000
--- a/res/drawable/accessibility_button_preview_three_finger.xml
+++ /dev/null
@@ -1,40 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2021 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
- android:width="412dp"
- android:height="300dp"
- android:viewportWidth="412"
- android:viewportHeight="300">
- <path
- android:pathData="M384.2,300H27.8C12.5,300 0,287.2 0,271.5v-243C0,12.8 12.5,0 27.8,0h356.5C399.5,0 412,12.8 412,28.5v243.2C412,287.2 399.5,300 384.2,300z"
- android:fillColor="#FFFFFF"/>
- <path
- android:pathData="M242.5,226.9h-73.3c-1.7,0 -3.1,1.4 -3.1,3.1s1.4,3.1 3.1,3.1h73.3c1.7,0 3.1,-1.4 3.1,-3.1S244.2,226.9 242.5,226.9z"
- android:fillColor="#DADCE0"/>
- <path
- android:pathData="M182.7,222.6v-17.5h7.5l-10.6,-18.7l-10.6,18.7h7.5v17.5c-2.9,1.2 -4.9,4 -4.9,7.4c0,4.4 3.5,8 8,8c4.4,0 8,-3.5 8,-8C187.6,226.7 185.6,223.8 182.7,222.6z"
- android:fillColor="#1A73E8"/>
- <path
- android:pathData="M209,222.6v-17.5h7.5l-10.6,-18.7l-10.6,18.7h7.5v17.5c-2.9,1.2 -4.9,4 -4.9,7.4c0,4.4 3.5,8 8,8c4.4,0 8,-3.5 8,-8C213.9,226.7 211.9,223.8 209,222.6z"
- android:fillColor="#1A73E8"/>
- <path
- android:pathData="M235.2,222.6v-17.5h7.5l-10.6,-18.7l-10.6,18.7h7.5v17.5c-2.9,1.2 -4.9,4 -4.9,7.4c0,4.4 3.5,8 8,8c4.4,0 8,-3.5 8,-8C240,226.7 238,223.8 235.2,222.6z"
- android:fillColor="#1A73E8"/>
- <path
- android:pathData="M325.4,231.9c0,9.8 -7.9,17.7 -17.7,17.7H103.9c-9.8,0 -17.7,-7.9 -17.7,-17.7V0h-4.4v231.9c0,12.2 9.9,22.2 22.1,22.2h203.8c12.2,0 22.1,-9.9 22.1,-22.2V14.8c2.4,0 4.4,-2 4.4,-4.4V0h-8.9V231.9z"
- android:fillColor="#DADCE0"/>
-</vector>
diff --git a/res/drawable/accessibility_button_preview_three_finger_tablet.xml b/res/drawable/accessibility_button_preview_three_finger_tablet.xml
deleted file mode 100644
index a5590c4..0000000
--- a/res/drawable/accessibility_button_preview_three_finger_tablet.xml
+++ /dev/null
@@ -1,33 +0,0 @@
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
- android:width="412dp"
- android:height="300dp"
- android:viewportWidth="412"
- android:viewportHeight="300">
- <group>
- <clip-path
- android:pathData="M0,0h412v300h-412z"/>
- <path
- android:pathData="M263.59,50.35C263.59,48.98 264.7,47.86 266.06,47.86L287.85,47.86C289.22,47.86 290.33,48.98 290.33,50.35L277.45,51.34L263.59,50.35Z"
- android:fillColor="#DADCE0"/>
- <path
- android:pathData="M364.52,66.19L364.52,236.14A14.75,14.75 0,0 1,349.77 250.89L62.23,250.89A14.75,14.75 0,0 1,47.48 236.14L47.48,66.19A14.75,14.75 0,0 1,62.23 51.44L349.77,51.44A14.75,14.75 0,0 1,364.52 66.19z"
- android:strokeWidth="2.5"
- android:fillColor="#ffffff"
- android:strokeColor="#DADCE0"/>
- <path
- android:pathData="M311.45,50.35C311.45,48.98 312.56,47.86 313.92,47.86L322.84,47.86C324.2,47.86 325.32,48.98 325.32,50.35L319.37,51.34L311.45,50.35Z"
- android:fillColor="#DADCE0"/>
- <path
- android:pathData="M170.9,232.14L241.9,232.14A2,2 0,0 1,243.9 234.14L243.9,234.14A2,2 0,0 1,241.9 236.14L170.9,236.14A2,2 0,0 1,168.9 234.14L168.9,234.14A2,2 0,0 1,170.9 232.14z"
- android:fillColor="#DADCE0"/>
- <path
- android:pathData="M188.7,229.14V217.74H193.6L186.7,205.54L179.8,217.74H184.7V229.14C182.8,229.94 181.5,231.74 181.5,233.94C181.5,236.84 183.8,239.14 186.7,239.14C189.6,239.14 191.9,236.84 191.9,233.94C191.9,231.84 190.5,229.94 188.7,229.14Z"
- android:fillColor="#1A73E8"/>
- <path
- android:pathData="M208,229.14V217.74H212.9L206,205.54L199.1,217.74H204V229.14C202.1,229.94 200.8,231.74 200.8,233.94C200.8,236.84 203.1,239.14 206,239.14C208.9,239.14 211.2,236.84 211.2,233.94C211.2,231.84 209.9,229.94 208,229.14Z"
- android:fillColor="#1A73E8"/>
- <path
- android:pathData="M227.29,229.14V217.74H232.2L225.29,205.54L218.4,217.74H223.29V229.14C221.4,229.94 220.1,231.74 220.1,233.94C220.1,236.84 222.4,239.14 225.29,239.14C228.2,239.14 230.49,236.84 230.49,233.94C230.49,231.84 229.2,229.94 227.29,229.14Z"
- android:fillColor="#1A73E8"/>
- </group>
-</vector>
diff --git a/res/drawable/accessibility_button_preview_two_finger.xml b/res/drawable/accessibility_button_preview_two_finger.xml
deleted file mode 100644
index bec95af..0000000
--- a/res/drawable/accessibility_button_preview_two_finger.xml
+++ /dev/null
@@ -1,37 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2021 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
- android:width="412dp"
- android:height="300dp"
- android:viewportWidth="412"
- android:viewportHeight="300">
- <path
- android:pathData="M384.2,300H27.8C12.5,300 0,287.2 0,271.5v-243C0,12.8 12.5,0 27.8,0h356.5C399.5,0 412,12.8 412,28.5v243.2C412,287.2 399.5,300 384.2,300z"
- android:fillColor="#FFFFFF"/>
- <path
- android:pathData="M325.4,231.9c0,9.8 -7.9,17.7 -17.7,17.7H103.9c-9.8,0 -17.7,-7.9 -17.7,-17.7V0h-4.4v231.9c0,12.2 9.9,22.2 22.1,22.2h203.8c12.2,0 22.1,-9.9 22.1,-22.2V14.8c2.4,0 4.4,-2 4.4,-4.4V0h-8.9V231.9z"
- android:fillColor="#DADCE0"/>
- <path
- android:pathData="M242.4,226.9h-9.3h-5.6h-43.4h-4.7h-10.2c-1.7,0 -3.1,1.4 -3.1,3.1s1.4,3.1 3.1,3.1h10.2h3.9h45h4.8h9.3c1.7,0 3.1,-1.4 3.1,-3.1S244.1,226.9 242.4,226.9z"
- android:fillColor="#DADCE0"/>
- <path
- android:pathData="M194,223.5v-17.5h7.5l-10.6,-18.7l-10.6,18.7h7.5v17.5c-1.6,0.7 -2.9,1.9 -3.8,3.4c-0.7,1.2 -1.1,2.5 -1.1,4c0,0.7 0.1,1.5 0.3,2.2c0.9,3.3 4,5.8 7.7,5.8c3.6,0 6.7,-2.5 7.7,-5.8c0.2,-0.7 0.3,-1.4 0.3,-2.2c0,-1.5 -0.4,-2.8 -1.1,-4C197,225.4 195.6,224.2 194,223.5z"
- android:fillColor="#1A73E8"/>
- <path
- android:pathData="M223.7,223.5v-17.5h7.5l-10.6,-18.7l-10.6,18.7h7.5v17.5c-1.6,0.7 -2.9,1.9 -3.8,3.4c-0.7,1.2 -1.1,2.5 -1.1,4c0,0.7 0.1,1.5 0.3,2.2c0.9,3.3 4,5.8 7.7,5.8c3.6,0 6.7,-2.5 7.7,-5.8c0.2,-0.7 0.3,-1.4 0.3,-2.2c0,-1.5 -0.4,-2.8 -1.1,-4C226.6,225.4 225.3,224.2 223.7,223.5z"
- android:fillColor="#1A73E8"/>
-</vector>
diff --git a/res/drawable/accessibility_button_preview_two_finger_tablet.xml b/res/drawable/accessibility_button_preview_two_finger_tablet.xml
deleted file mode 100644
index dbc5ad4..0000000
--- a/res/drawable/accessibility_button_preview_two_finger_tablet.xml
+++ /dev/null
@@ -1,30 +0,0 @@
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
- android:width="412dp"
- android:height="300dp"
- android:viewportWidth="412"
- android:viewportHeight="300">
- <group>
- <clip-path
- android:pathData="M0,0h412v300h-412z"/>
- <path
- android:pathData="M263.59,50.35C263.59,48.98 264.7,47.86 266.06,47.86L287.85,47.86C289.22,47.86 290.33,48.98 290.33,50.35L277.45,51.34L263.59,50.35Z"
- android:fillColor="#DADCE0"/>
- <path
- android:pathData="M364.52,66.19L364.52,236.14A14.75,14.75 0,0 1,349.77 250.89L62.23,250.89A14.75,14.75 0,0 1,47.48 236.14L47.48,66.19A14.75,14.75 0,0 1,62.23 51.44L349.77,51.44A14.75,14.75 0,0 1,364.52 66.19z"
- android:strokeWidth="2.5"
- android:fillColor="#ffffff"
- android:strokeColor="#DADCE0"/>
- <path
- android:pathData="M311.45,50.35C311.45,48.98 312.56,47.86 313.92,47.86L322.84,47.86C324.2,47.86 325.32,48.98 325.32,50.35L319.37,51.34L311.45,50.35Z"
- android:fillColor="#DADCE0"/>
- <path
- android:pathData="M170.9,232.14L241.9,232.14A2,2 0,0 1,243.9 234.14L243.9,234.14A2,2 0,0 1,241.9 236.14L170.9,236.14A2,2 0,0 1,168.9 234.14L168.9,234.14A2,2 0,0 1,170.9 232.14z"
- android:fillColor="#DADCE0"/>
- <path
- android:pathData="M198.35,229.14V217.74H203.25L196.35,205.54L189.45,217.74H194.35V229.14C192.45,229.94 191.15,231.74 191.15,233.94C191.15,236.84 193.45,239.14 196.35,239.14C199.25,239.14 201.55,236.84 201.55,233.94C201.55,231.84 200.15,229.94 198.35,229.14Z"
- android:fillColor="#1A73E8"/>
- <path
- android:pathData="M217.65,229.14V217.74H222.55L215.65,205.54L208.75,217.74H213.65V229.14C211.75,229.94 210.45,231.74 210.45,233.94C210.45,236.84 212.75,239.14 215.65,239.14C218.55,239.14 220.85,236.84 220.85,233.94C220.85,231.84 219.55,229.94 217.65,229.14Z"
- android:fillColor="#1A73E8"/>
- </group>
-</vector>
diff --git a/res/drawable/accessibility_gesture_navigation_three_finger_preview.xml b/res/drawable/accessibility_gesture_navigation_three_finger_preview.xml
deleted file mode 100644
index c14d744..0000000
--- a/res/drawable/accessibility_gesture_navigation_three_finger_preview.xml
+++ /dev/null
@@ -1,71 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2021 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:aapt="http://schemas.android.com/aapt"
- android:width="412dp"
- android:height="300dp"
- android:viewportWidth="412"
- android:viewportHeight="300">
- <path
- android:pathData="M384.2,300H27.8C12.5,300 0,287.2 0,271.5v-243C0,12.8 12.5,0 27.8,0h356.5C399.5,0 412,12.8 412,28.5v243.2C412,287.2 399.5,300 384.2,300z"
- android:fillColor="#FFFFFF"/>
- <path
- android:pathData="M274.9,97.7v-9.5c0,-1.3 -1.1,-2.4 -2.4,-2.4V35.9c0,-6.6 -5.3,-11.9 -11.9,-11.9H151.3c-6.6,0 -11.9,5.3 -11.9,11.9v228.2c0,6.6 5.3,11.9 11.9,11.9h109.4c6.6,0 11.9,-5.3 11.9,-11.9V147.6c1.3,0 2.4,-1.1 2.4,-2.4v-23.8c0,-1.3 -1.1,-2.4 -2.4,-2.4v-19C273.9,100.1 274.9,99 274.9,97.7zM270.2,264.1c0,5.2 -4.3,9.5 -9.5,9.5H151.3c-5.2,0 -9.5,-4.3 -9.5,-9.5V35.9c0,-5.2 4.3,-9.5 9.5,-9.5h109.4c5.2,0 9.5,4.3 9.5,9.5V264.1z"
- android:fillColor="#DADCE0"/>
- <path
- android:pathData="M176.7,209.6c-3.7,0 -6.6,3 -6.6,6.6v24.6h13.3v-24.6C183.4,212.6 180.4,209.6 176.7,209.6z">
- <aapt:attr name="android:fillColor">
- <gradient
- android:startY="240.8954"
- android:startX="176.7163"
- android:endY="209.6335"
- android:endX="176.7163"
- android:type="linear">
- <item android:offset="0" android:color="#00669DF6"/>
- <item android:offset="0.695" android:color="#FF669DF6"/>
- </gradient>
- </aapt:attr>
- </path>
- <path
- android:pathData="M206,209.6c-3.7,0 -6.6,3 -6.6,6.6v24.6h13.3v-24.6C212.6,212.6 209.7,209.6 206,209.6z">
- <aapt:attr name="android:fillColor">
- <gradient
- android:startY="240.8954"
- android:startX="206"
- android:endY="209.6335"
- android:endX="206"
- android:type="linear">
- <item android:offset="0" android:color="#00669DF6"/>
- <item android:offset="0.695" android:color="#FF669DF6"/>
- </gradient>
- </aapt:attr>
- </path>
- <path
- android:pathData="M235.3,209.6c-3.7,0 -6.6,3 -6.6,6.6v24.6h13.3v-24.6C241.9,212.6 239,209.6 235.3,209.6z">
- <aapt:attr name="android:fillColor">
- <gradient
- android:startY="240.8954"
- android:startX="235.2837"
- android:endY="209.6335"
- android:endX="235.2837"
- android:type="linear">
- <item android:offset="0" android:color="#00669DF6"/>
- <item android:offset="0.695" android:color="#FF669DF6"/>
- </gradient>
- </aapt:attr>
- </path>
-</vector>
diff --git a/res/drawable/accessibility_gesture_navigation_three_finger_preview_tablet.xml b/res/drawable/accessibility_gesture_navigation_three_finger_preview_tablet.xml
deleted file mode 100644
index fab0853..0000000
--- a/res/drawable/accessibility_gesture_navigation_three_finger_preview_tablet.xml
+++ /dev/null
@@ -1,80 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2023 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:aapt="http://schemas.android.com/aapt"
- android:width="412dp"
- android:height="300dp"
- android:viewportWidth="412"
- android:viewportHeight="300">
- <group>
- <clip-path
- android:pathData="M0,0h412v300h-412z"/>
- <path
- android:pathData="M263.59,50.35C263.59,48.98 264.7,47.86 266.06,47.86L287.85,47.86C289.22,47.86 290.33,48.98 290.33,50.35L277.45,51.34L263.59,50.35Z"
- android:fillColor="#DADCE0"/>
- <path
- android:pathData="M364.52,66.19L364.52,236.14A14.75,14.75 0,0 1,349.77 250.89L62.23,250.89A14.75,14.75 0,0 1,47.48 236.14L47.48,66.19A14.75,14.75 0,0 1,62.23 51.44L349.77,51.44A14.75,14.75 0,0 1,364.52 66.19z"
- android:strokeWidth="2.5"
- android:fillColor="#ffffff"
- android:strokeColor="#DADCE0"/>
- <path
- android:pathData="M311.45,50.35C311.45,48.98 312.56,47.86 313.92,47.86L322.84,47.86C324.2,47.86 325.32,48.98 325.32,50.35L319.37,51.34L311.45,50.35Z"
- android:fillColor="#DADCE0"/>
- <path
- android:pathData="M176.84,188.94C173.14,188.94 170.24,191.94 170.24,195.54V220.14H183.54V195.54C183.54,191.94 180.54,188.94 176.84,188.94Z">
- <aapt:attr name="android:fillColor">
- <gradient
- android:startX="176.89"
- android:startY="220.23"
- android:endX="176.89"
- android:endY="188.97"
- android:type="linear">
- <item android:offset="0" android:color="#001A73E8"/>
- <item android:offset="0.69" android:color="#FF1A73E8"/>
- </gradient>
- </aapt:attr>
- </path>
- <path
- android:pathData="M206.14,188.94C202.44,188.94 199.54,191.94 199.54,195.54V220.14H212.84V195.54C212.74,191.94 209.84,188.94 206.14,188.94Z">
- <aapt:attr name="android:fillColor">
- <gradient
- android:startX="206.19"
- android:startY="220.23"
- android:endX="206.19"
- android:endY="188.97"
- android:type="linear">
- <item android:offset="0" android:color="#001A73E8"/>
- <item android:offset="0.69" android:color="#FF1A73E8"/>
- </gradient>
- </aapt:attr>
- </path>
- <path
- android:pathData="M235.44,188.94C231.74,188.94 228.84,191.94 228.84,195.54V220.14H242.14V195.54C242.04,191.94 239.14,188.94 235.44,188.94Z">
- <aapt:attr name="android:fillColor">
- <gradient
- android:startX="235.49"
- android:startY="220.23"
- android:endX="235.49"
- android:endY="188.97"
- android:type="linear">
- <item android:offset="0" android:color="#001A73E8"/>
- <item android:offset="0.69" android:color="#FF1A73E8"/>
- </gradient>
- </aapt:attr>
- </path>
- </group>
-</vector>
diff --git a/res/drawable/accessibility_gesture_navigation_two_finger_preview.xml b/res/drawable/accessibility_gesture_navigation_two_finger_preview.xml
deleted file mode 100644
index 3ef4fd1..0000000
--- a/res/drawable/accessibility_gesture_navigation_two_finger_preview.xml
+++ /dev/null
@@ -1,57 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2021 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:aapt="http://schemas.android.com/aapt"
- android:width="412dp"
- android:height="300dp"
- android:viewportWidth="412"
- android:viewportHeight="300">
- <path
- android:pathData="M384.2,300H27.8C12.5,300 0,287.2 0,271.5v-243C0,12.8 12.5,0 27.8,0h356.5C399.5,0 412,12.8 412,28.5v243.2C412,287.2 399.5,300 384.2,300z"
- android:fillColor="#FFFFFF"/>
- <path
- android:pathData="M274.9,97.7v-9.5c0,-1.3 -1.1,-2.4 -2.4,-2.4V35.9c0,-6.6 -5.3,-11.9 -11.9,-11.9H151.3c-6.6,0 -11.9,5.3 -11.9,11.9v228.2c0,6.6 5.3,11.9 11.9,11.9h109.4c6.6,0 11.9,-5.3 11.9,-11.9V147.6c1.3,0 2.4,-1.1 2.4,-2.4v-23.8c0,-1.3 -1.1,-2.4 -2.4,-2.4v-19C273.9,100.1 274.9,99 274.9,97.7zM270.2,264.1c0,5.2 -4.3,9.5 -9.5,9.5H151.3c-5.2,0 -9.5,-4.3 -9.5,-9.5V35.9c0,-5.2 4.3,-9.5 9.5,-9.5h109.4c5.2,0 9.5,4.3 9.5,9.5V264.1z"
- android:fillColor="#DADCE0"/>
- <path
- android:pathData="M188.6,209.6c-3.7,0 -6.6,3 -6.6,6.6v24.6h13.3v-24.6C195.3,212.6 192.3,209.6 188.6,209.6z">
- <aapt:attr name="android:fillColor">
- <gradient
- android:startY="240.8954"
- android:startX="188.65"
- android:endY="209.6335"
- android:endX="188.65"
- android:type="linear">
- <item android:offset="0" android:color="#00669DF6"/>
- <item android:offset="0.695" android:color="#FF669DF6"/>
- </gradient>
- </aapt:attr>
- </path>
- <path
- android:pathData="M223.4,209.6c-3.7,0 -6.6,3 -6.6,6.6v24.6H230v-24.6C230,212.6 227.1,209.6 223.4,209.6z">
- <aapt:attr name="android:fillColor">
- <gradient
- android:startY="240.8954"
- android:startX="223.4"
- android:endY="209.6335"
- android:endX="223.4"
- android:type="linear">
- <item android:offset="0" android:color="#00669DF6"/>
- <item android:offset="0.695" android:color="#FF669DF6"/>
- </gradient>
- </aapt:attr>
- </path>
-</vector>
diff --git a/res/drawable/accessibility_gesture_navigation_two_finger_preview_tablet.xml b/res/drawable/accessibility_gesture_navigation_two_finger_preview_tablet.xml
deleted file mode 100644
index f976f02..0000000
--- a/res/drawable/accessibility_gesture_navigation_two_finger_preview_tablet.xml
+++ /dev/null
@@ -1,66 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2023 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:aapt="http://schemas.android.com/aapt"
- android:width="412dp"
- android:height="300dp"
- android:viewportWidth="412"
- android:viewportHeight="300">
- <group>
- <clip-path
- android:pathData="M0,0h412v300h-412z"/>
- <path
- android:pathData="M263.59,50.35C263.59,48.98 264.7,47.86 266.06,47.86L287.85,47.86C289.22,47.86 290.33,48.98 290.33,50.35L277.45,51.34L263.59,50.35Z"
- android:fillColor="#DADCE0"/>
- <path
- android:pathData="M364.52,66.19L364.52,236.14A14.75,14.75 0,0 1,349.77 250.89L62.23,250.89A14.75,14.75 0,0 1,47.48 236.14L47.48,66.19A14.75,14.75 0,0 1,62.23 51.44L349.77,51.44A14.75,14.75 0,0 1,364.52 66.19z"
- android:strokeWidth="2.5"
- android:fillColor="#ffffff"
- android:strokeColor="#DADCE0"/>
- <path
- android:pathData="M311.45,50.35C311.45,48.98 312.56,47.86 313.92,47.86L322.84,47.86C324.2,47.86 325.32,48.98 325.32,50.35L319.37,51.34L311.45,50.35Z"
- android:fillColor="#DADCE0"/>
- <path
- android:pathData="M188.15,188.94C184.45,188.94 181.55,191.94 181.55,195.54V220.14H194.85V195.54C194.85,191.94 191.85,188.94 188.15,188.94Z">
- <aapt:attr name="android:fillColor">
- <gradient
- android:startX="188.2"
- android:startY="220.23"
- android:endX="188.2"
- android:endY="188.97"
- android:type="linear">
- <item android:offset="0" android:color="#001A73E8"/>
- <item android:offset="0.69" android:color="#FF1A73E8"/>
- </gradient>
- </aapt:attr>
- </path>
- <path
- android:pathData="M222.95,188.94C219.25,188.94 216.35,191.94 216.35,195.54V220.14H229.55V195.54C229.55,191.94 226.65,188.94 222.95,188.94Z">
- <aapt:attr name="android:fillColor">
- <gradient
- android:startX="222.95"
- android:startY="220.23"
- android:endX="222.95"
- android:endY="188.97"
- android:type="linear">
- <item android:offset="0" android:color="#001A73E8"/>
- <item android:offset="0.69" android:color="#FF1A73E8"/>
- </gradient>
- </aapt:attr>
- </path>
- </group>
-</vector>
diff --git a/res/drawable/accessibility_shortcut_type_hardware.xml b/res/drawable/accessibility_shortcut_type_hardware.xml
deleted file mode 100644
index b6b227b..0000000
--- a/res/drawable/accessibility_shortcut_type_hardware.xml
+++ /dev/null
@@ -1,34 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2021 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
- android:width="412dp"
- android:height="300dp"
- android:viewportWidth="412"
- android:viewportHeight="300">
- <path
- android:pathData="M384.2,300H27.8C12.5,300 0,287.2 0,271.5v-243C0,12.8 12.5,0 27.8,0h356.5C399.5,0 412,12.8 412,28.5v243.2C412,287.2 399.5,300 384.2,300z"
- android:fillColor="#FFFFFF"/>
- <path
- android:pathData="M287,187.8v-1.5h2.9v-13.7c0,-1.6 -1.3,-2.9 -2.9,-2.9v-23.2c1.6,0 2.9,-1.3 2.9,-2.9V132c0,-1.6 -1.3,-2.9 -2.9,-2.9V68.4c0,-8 -6.5,-14.5 -14.5,-14.5H139.4c-8,0 -14.5,6.5 -14.5,14.5v185.3c1,0.7 1.9,1.4 2.9,2.1V68.4c0,-6.4 5.2,-11.6 11.6,-11.6h133.1c6.4,0 11.6,5.2 11.6,11.6v188.7c1,-0.7 1.9,-1.4 2.9,-2.2v-50.5c1.6,0 2.9,-1.3 2.9,-2.9v-13.7L287,187.8L287,187.8z"
- android:fillColor="#DADCE0"/>
- <path
- android:pathData="M287,204.4c1.6,0 2.9,-1.3 2.9,-2.9v-14H287v-0.9h2.9v-14c0,-1.6 -1.3,-2.9 -2.9,-2.9"
- android:fillColor="#1A73E8"/>
- <path
- android:pathData="M206.7,19.1c35,0 67.9,13.6 92.6,38.4C324,82.1 337.6,115 337.6,150s-13.6,67.9 -38.4,92.6c-24.7,24.7 -57.6,38.4 -92.6,38.4s-67.9,-13.6 -92.6,-38.4C89.4,217.9 75.7,185 75.7,150s13.6,-67.9 38.4,-92.6C138.9,32.7 171.7,19.1 206.7,19.1M206.7,17.1c-73.4,0 -133,59.5 -133,132.9s59.5,132.9 132.9,132.9s133,-59.5 133,-132.9S280.1,17.1 206.7,17.1L206.7,17.1z"
- android:fillColor="#E8EAED"/>
-</vector>
diff --git a/res/drawable/accessibility_shortcut_type_hardware_tablet.xml b/res/drawable/accessibility_shortcut_type_hardware_tablet.xml
deleted file mode 100644
index db0906e..0000000
--- a/res/drawable/accessibility_shortcut_type_hardware_tablet.xml
+++ /dev/null
@@ -1,44 +0,0 @@
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
- android:width="412dp"
- android:height="300dp"
- android:viewportWidth="412"
- android:viewportHeight="300">
- <group>
- <clip-path
- android:pathData="M0,0h412v300h-412z"/>
- <path
- android:pathData="M255.38,94.3C255.38,93.14 256.32,92.21 257.47,92.21L275.86,92.21C277.01,92.21 277.95,93.14 277.95,94.3L267.08,95.14L255.38,94.3Z"
- android:fillColor="#669DF6"/>
- <path
- android:pathData="M340.09,110.17L340.09,248.55A14.5,14.5 0,0 1,325.59 263.05L88,263.05A14.5,14.5 0,0 1,73.5 248.55L73.5,110.17A14.5,14.5 0,0 1,88 95.67L325.59,95.67A14.5,14.5 0,0 1,340.09 110.17z"
- android:strokeWidth="3"
- android:fillColor="#ffffff"
- android:strokeColor="#DADCE0"/>
- <path
- android:pathData="M295.77,94.3C295.77,93.14 296.7,92.21 297.86,92.21L305.38,92.21C306.53,92.21 307.46,93.14 307.46,94.3L302.45,95.14L295.77,94.3Z"
- android:fillColor="#DADCE0"/>
- <group>
- <clip-path
- android:pathData="M274,30L274,30A93,93 0,0 1,367 123L367,123A93,93 0,0 1,274 216L274,216A93,93 0,0 1,181 123L181,123A93,93 0,0 1,274 30z"/>
- <path
- android:pathData="M274,30L274,30A93,93 0,0 1,367 123L367,123A93,93 0,0 1,274 216L274,216A93,93 0,0 1,181 123L181,123A93,93 0,0 1,274 30z"
- android:fillColor="#ffffff"/>
- <path
- android:pathData="M206.07,85.49C206.07,83.45 207.72,81.79 209.75,81.79L242.17,81.79C244.21,81.79 245.86,83.45 245.86,85.49L226.7,86.97L206.07,85.49Z"
- android:fillColor="#669DF6"/>
- <path
- android:pathData="M331.59,87C339.46,87 345.84,93.38 345.84,101.25L345.84,369.73C345.84,377.6 339.46,383.98 331.59,383.98L-111.85,383.98C-119.72,383.98 -126.1,377.6 -126.1,369.73L-126.1,101.25C-126.1,93.38 -119.72,87 -111.85,87L331.59,87Z"
- android:strokeWidth="3.5"
- android:fillColor="#ffffff"
- android:strokeColor="#DADCE0"/>
- <path
- android:pathData="M266.77,85.49C266.77,83.45 268.42,81.79 270.46,81.79L283.72,81.79C285.75,81.79 287.4,83.45 287.4,85.49L278.56,86.97L266.77,85.49Z"
- android:fillColor="#DADCE0"/>
- </group>
- <path
- android:strokeWidth="1"
- android:pathData="M274,30.5L274,30.5A92.5,92.5 0,0 1,366.5 123L366.5,123A92.5,92.5 0,0 1,274 215.5L274,215.5A92.5,92.5 0,0 1,181.5 123L181.5,123A92.5,92.5 0,0 1,274 30.5z"
- android:fillColor="#00000000"
- android:strokeColor="#DADCE0"/>
- </group>
-</vector>
diff --git a/res/drawable/accessibility_shortcut_type_software.xml b/res/drawable/accessibility_shortcut_type_software.xml
deleted file mode 100644
index d0573aa..0000000
--- a/res/drawable/accessibility_shortcut_type_software.xml
+++ /dev/null
@@ -1,48 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2021 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
- android:width="412dp"
- android:height="300dp"
- android:viewportWidth="412"
- android:viewportHeight="300">
- <path
- android:pathData="M384.2,300H27.8C12.5,300 0,287.2 0,271.5V28.5C0,12.8 12.5,0 27.8,0H384.3C399.5,0 412,12.8 412,28.5V271.7C412,287.2 399.5,300 384.2,300Z"
- android:fillColor="#fff"/>
- <path
- android:pathData="M142,225.3H275.1a14.51,14.51 0,0 0,14.5 -14.5V69a2.9,2.9 0,0 0,2.9 -2.9v-17c-1.9,-1.6 -3.8,-3.2 -5.8,-4.7V210.8a11.61,11.61 0,0 1,-11.6 11.6H142a11.61,11.61 0,0 1,-11.6 -11.6V42.7c-1,0.7 -1.9,1.4 -2.9,2.1V210.9A14.62,14.62 0,0 0,142 225.3Z"
- android:fillColor="#dadce0"/>
- <path
- android:pathData="M207.4,19.1a131.11,131.11 0,0 1,131 131,131 131,0 0,1 -262,-0.1 130.94,130.94 0,0 1,131 -130.9m0,-2A132.9,132.9 0,1 0,340.3 150,133 133,0 0,0 207.4,17.1Z"
- android:fillColor="#e8eaed"/>
- <path
- android:fillColor="#FF000000"
- android:pathData="M286.7,210.83a11.59,11.59 0,0 1,-11.58 11.58H142a11.59,11.59 0,0 1,-11.58 -11.58V183.26H286.7Z"/>
- <path
- android:pathData="M250.41,193.38a1.77,1.77 0,1 1,-1.78 1.77A1.77,1.77 0,0 1,250.41 193.38ZM253.07,199.58v11.53h-1.78v-5.32h-1.77v5.32h-1.77L247.75,199.58a30.78,30.78 0,0 1,-5.32 -0.89l0.44,-1.77a32.34,32.34 0,0 0,15.07 0l0.45,1.77A30.78,30.78 0,0 1,253.07 199.58Z"
- android:fillColor="#fff"/>
- <path
- android:pathData="M208.55,202.84m-6.13,0a6.13,6.13 0,1 1,12.26 0a6.13,6.13 0,1 1,-12.26 0"
- android:fillColor="#bdc1c6"/>
- <path
- android:pathData="M250.41,202.84m-22.28,0a22.28,22.28 0,1 1,44.56 0a22.28,22.28 0,1 1,-44.56 0"
- android:strokeWidth="2"
- android:fillColor="#00000000"
- android:strokeColor="#1a73e8"/>
- <path
- android:pathData="M160.45,202.84l10.43,6.02l0,-12.05l-10.43,6.03z"
- android:fillColor="#bdc1c6"/>
-</vector>
diff --git a/res/drawable/accessibility_shortcut_type_software_floating.xml b/res/drawable/accessibility_shortcut_type_software_floating.xml
deleted file mode 100644
index 88ce42d..0000000
--- a/res/drawable/accessibility_shortcut_type_software_floating.xml
+++ /dev/null
@@ -1,39 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2021 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
- android:width="412dp"
- android:height="300dp"
- android:viewportWidth="412"
- android:viewportHeight="300">
- <path
- android:pathData="M384.2,300H27.8C12.5,300 0,287.2 0,271.5V28.5C0,12.8 12.5,0 27.8,0H384.3C399.5,0 412,12.8 412,28.5V271.7C412,287.2 399.5,300 384.2,300Z"
- android:fillColor="#fff"/>
- <path
- android:pathData="M142,225.3H275.1a14.51,14.51 0,0 0,14.5 -14.5V69a2.9,2.9 0,0 0,2.9 -2.9v-17c-1.9,-1.6 -3.8,-3.2 -5.8,-4.7V210.8a11.61,11.61 0,0 1,-11.6 11.6H142a11.61,11.61 0,0 1,-11.6 -11.6V42.7c-1,0.7 -1.9,1.4 -2.9,2.1V210.9A14.62,14.62 0,0 0,142 225.3Z"
- android:fillColor="#dadce0"/>
- <path
- android:strokeWidth="1"
- android:pathData="M286.7,144.13H266a19.63,19.63 0,1 0,0 39.26H286.7"
- android:fillColor="#00000000"
- android:strokeColor="#dadce0"/>
- <path
- android:pathData="M266,148.65a15.11,15.11 0,1 0,15.1 15.11A15.11,15.11 0,0 0,266 148.65ZM266,155.93a1.59,1.59 0,0 1,0 3.17,1.59 1.59,0 1,1 0,-3.17ZM268.37,161.47v10.29h-1.58L266.79,167h-1.59v4.75h-1.58L263.62,161.47a27.23,27.23 0,0 1,-4.75 -0.79l0.4,-1.58a29.06,29.06 0,0 0,13.46 0l0.39,1.58A27.23,27.23 0,0 1,268.33 161.47Z"
- android:fillColor="#5f6368"/>
- <path
- android:pathData="M207.4,19.1a131.11,131.11 0,0 1,131 131,131 131,0 0,1 -262,-0.1 130.94,130.94 0,0 1,131 -130.9m0,-2A132.9,132.9 0,1 0,340.3 150,133 133,0 0,0 207.4,17.1Z"
- android:fillColor="#e8eaed"/>
-</vector>
diff --git a/res/drawable/accessibility_shortcut_type_software_floating_tablet.xml b/res/drawable/accessibility_shortcut_type_software_floating_tablet.xml
deleted file mode 100644
index 4b04704..0000000
--- a/res/drawable/accessibility_shortcut_type_software_floating_tablet.xml
+++ /dev/null
@@ -1,29 +0,0 @@
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
- android:width="412dp"
- android:height="300dp"
- android:viewportWidth="412"
- android:viewportHeight="300">
- <group>
- <clip-path
- android:pathData="M0,0h412v300h-412z"/>
- <path
- android:pathData="M263.59,50.35C263.59,48.98 264.7,47.86 266.06,47.86L287.85,47.86C289.22,47.86 290.33,48.98 290.33,50.35L277.45,51.34L263.59,50.35Z"
- android:fillColor="#DADCE0"/>
- <path
- android:pathData="M364.52,66.19L364.52,236.14A14.75,14.75 0,0 1,349.77 250.89L62.23,250.89A14.75,14.75 0,0 1,47.48 236.14L47.48,66.19A14.75,14.75 0,0 1,62.23 51.44L349.77,51.44A14.75,14.75 0,0 1,364.52 66.19z"
- android:strokeWidth="2.5"
- android:fillColor="#ffffff"
- android:strokeColor="#DADCE0"/>
- <path
- android:pathData="M311.45,50.35C311.45,48.98 312.56,47.86 313.92,47.86L322.84,47.86C324.2,47.86 325.32,48.98 325.32,50.35L319.37,51.34L311.45,50.35Z"
- android:fillColor="#DADCE0"/>
- </group>
- <path
- android:strokeWidth="1"
- android:pathData="M365.64,179.48H344.94C339.74,179.48 334.74,181.54 331.06,185.23C327.38,188.91 325.31,193.9 325.31,199.11C325.31,204.31 327.38,209.3 331.06,212.99C334.74,216.67 339.74,218.74 344.94,218.74H365.64"
- android:fillColor="#00000000"
- android:strokeColor="#DADCE0"/>
- <path
- android:pathData="M344.95,184C341.96,183.99 339.04,184.88 336.55,186.54C334.06,188.2 332.12,190.56 330.98,193.32C329.83,196.08 329.53,199.12 330.11,202.05C330.7,204.98 332.14,207.67 334.25,209.79C336.36,211.9 339.05,213.34 341.98,213.93C344.92,214.51 347.95,214.21 350.72,213.07C353.48,211.92 355.84,209.99 357.5,207.5C359.16,205.02 360.05,202.1 360.05,199.11C360.05,195.1 358.46,191.26 355.62,188.43C352.79,185.59 348.95,184 344.95,184ZM344.95,191.28C345.35,191.31 345.72,191.49 345.99,191.78C346.26,192.08 346.41,192.46 346.41,192.86C346.41,193.26 346.26,193.65 345.99,193.94C345.72,194.23 345.35,194.41 344.95,194.45C344.73,194.46 344.51,194.43 344.3,194.36C344.09,194.29 343.9,194.18 343.74,194.03C343.58,193.88 343.45,193.7 343.36,193.5C343.28,193.3 343.23,193.08 343.23,192.86C343.23,192.64 343.28,192.43 343.36,192.22C343.45,192.02 343.58,191.84 343.74,191.69C343.9,191.54 344.09,191.43 344.3,191.36C344.51,191.29 344.73,191.26 344.95,191.28ZM347.32,196.82V207.11H345.74V202.35H344.15V207.1H342.57V196.82C340.96,196.69 339.37,196.43 337.82,196.03L338.22,194.45C342.64,195.5 347.25,195.5 351.68,194.45L352.07,196.03C350.5,196.43 348.89,196.7 347.28,196.82H347.32Z"
- android:fillColor="#5F6368"/>
-</vector>
diff --git a/res/drawable/accessibility_shortcut_type_software_gesture.xml b/res/drawable/accessibility_shortcut_type_software_gesture.xml
deleted file mode 100644
index 2ded59f..0000000
--- a/res/drawable/accessibility_shortcut_type_software_gesture.xml
+++ /dev/null
@@ -1,58 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2021 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
- android:width="412dp"
- android:height="300dp"
- android:viewportWidth="412"
- android:viewportHeight="300">
- <path
- android:fillColor="#FF000000"
- android:pathData="M842.3,299.9H485.9c-15.3,0 -27.8,-12.8 -27.8,-28.5v-243c0,-15.7 12.5,-28.5 27.8,-28.5h356.5c15.2,0 27.7,12.8 27.7,28.5v243.2C870.1,287.1 857.6,299.9 842.3,299.9z"/>
- <path
- android:pathData="M597.6,225.2h133.1c8,0 14.5,-6.5 14.5,-14.5V68.9c1.6,0 2.9,-1.3 2.9,-2.9V49c-1.9,-1.6 -3.8,-3.2 -5.8,-4.7v166.4c0,6.4 -5.2,11.6 -11.6,11.6H597.6c-6.4,0 -11.6,-5.2 -11.6,-11.6V42.6c-1,0.7 -1.9,1.4 -2.9,2.1v166.1C583.2,218.7 589.7,225.2 597.6,225.2z"
- android:fillColor="#80868B"/>
- <path
- android:pathData="M688,207.8h-47.8c-1.1,0 -2,0.9 -2,2s0.9,2 2,2H688c1.1,0 2,-0.9 2,-2S689.1,207.8 688,207.8z"
- android:fillColor="#80868B"/>
- <path
- android:pathData="M656.5,205.6v-11.4h4.9l-6.9,-12.2l-6.9,12.2h4.9v11.4c-1.9,0.8 -3.2,2.6 -3.2,4.8c0,2.9 2.3,5.2 5.2,5.2c2.9,0 5.2,-2.3 5.2,-5.2C659.7,208.3 658.3,206.4 656.5,205.6z"
- android:fillColor="#669DF6"/>
- <path
- android:pathData="M675.8,205.6v-11.4h4.9l-6.9,-12.2l-6.9,12.2h4.9v11.4c-1.9,0.8 -3.2,2.6 -3.2,4.8c0,2.9 2.3,5.2 5.2,5.2c2.9,0 5.2,-2.3 5.2,-5.2C679,208.3 677.7,206.4 675.8,205.6z"
- android:fillColor="#669DF6"/>
- <path
- android:pathData="M664.2,19c35,0 67.9,13.6 92.6,38.4c24.7,24.7 38.4,57.6 38.4,92.6s-13.6,67.9 -38.4,92.6c-24.7,24.7 -57.6,38.4 -92.6,38.4s-67.9,-13.6 -92.6,-38.4c-24.7,-24.8 -38.4,-57.7 -38.4,-92.7s13.6,-67.9 38.4,-92.6C596.3,32.6 629.2,19 664.2,19M664.2,17c-73.4,0 -133,59.5 -133,132.9s59.5,132.9 132.9,132.9s133,-59.5 133,-132.9S737.6,17 664.2,17L664.2,17z"
- android:fillColor="#3C4043"/>
- <path
- android:pathData="M384.2,300H27.8C12.5,300 0,287.2 0,271.5v-243C0,12.8 12.5,0 27.8,0h356.5C399.5,0 412,12.8 412,28.5v243.2C412,287.2 399.5,300 384.2,300z"
- android:fillColor="#FFFFFF"/>
- <path
- android:pathData="M139.4,225.3h133.1c8,0 14.5,-6.5 14.5,-14.5V69c1.6,0 2.9,-1.3 2.9,-2.9v-17c-1.9,-1.6 -3.8,-3.2 -5.8,-4.7v166.4c0,6.4 -5.2,11.6 -11.6,11.6H139.4c-6.4,0 -11.6,-5.2 -11.6,-11.6V42.7c-1,0.7 -1.9,1.4 -2.9,2.1v166.1C125,218.8 131.5,225.3 139.4,225.3z"
- android:fillColor="#DADCE0"/>
- <path
- android:pathData="M229.9,207.9h-47.8c-1.1,0 -2,0.9 -2,2s0.9,2 2,2h47.8c1.1,0 2,-0.9 2,-2S231,207.9 229.9,207.9z"
- android:fillColor="#DADCE0"/>
- <path
- android:pathData="M198.4,205.7v-11.4h4.9l-6.9,-12.2l-6.9,12.2h4.9v11.4c-1.9,0.8 -3.2,2.6 -3.2,4.8c0,2.9 2.3,5.2 5.2,5.2s5.2,-2.3 5.2,-5.2C201.5,208.4 200.1,206.5 198.4,205.7z"
- android:fillColor="#1A73E8"/>
- <path
- android:pathData="M217.6,205.7v-11.4h4.9l-6.9,-12.2l-6.9,12.2h4.9v11.4c-1.9,0.8 -3.2,2.6 -3.2,4.8c0,2.9 2.3,5.2 5.2,5.2s5.2,-2.3 5.2,-5.2C220.9,208.4 219.5,206.5 217.6,205.7z"
- android:fillColor="#1A73E8"/>
- <path
- android:pathData="M206.1,19.1c35,0 67.9,13.6 92.6,38.4c24.7,24.7 38.4,57.6 38.4,92.6s-13.6,67.9 -38.4,92.6c-24.7,24.7 -57.6,38.4 -92.6,38.4s-67.9,-13.6 -92.6,-38.4S75.1,185 75.1,150s13.6,-67.9 38.4,-92.6C138.2,32.7 171.1,19.1 206.1,19.1M206.1,17.1c-73.4,0 -133,59.5 -133,132.9S132.6,282.9 206,282.9S339,223.4 339,150S279.5,17.1 206.1,17.1L206.1,17.1z"
- android:fillColor="#E8EAED"/>
-</vector>
diff --git a/res/drawable/accessibility_shortcut_type_software_gesture_tablet.xml b/res/drawable/accessibility_shortcut_type_software_gesture_tablet.xml
deleted file mode 100644
index 2dccf2a..0000000
--- a/res/drawable/accessibility_shortcut_type_software_gesture_tablet.xml
+++ /dev/null
@@ -1,46 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2023 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
- android:width="412dp"
- android:height="300dp"
- android:viewportWidth="412"
- android:viewportHeight="300">
- <group>
- <clip-path
- android:pathData="M0,0h412v300h-412z"/>
- <path
- android:pathData="M263.59,50.35C263.59,48.98 264.7,47.86 266.06,47.86L287.85,47.86C289.22,47.86 290.33,48.98 290.33,50.35L277.45,51.34L263.59,50.35Z"
- android:fillColor="#DADCE0"/>
- <path
- android:pathData="M364.52,66.19L364.52,236.14A14.75,14.75 0,0 1,349.77 250.89L62.23,250.89A14.75,14.75 0,0 1,47.48 236.14L47.48,66.19A14.75,14.75 0,0 1,62.23 51.44L349.77,51.44A14.75,14.75 0,0 1,364.52 66.19z"
- android:strokeWidth="2.5"
- android:fillColor="#ffffff"
- android:strokeColor="#DADCE0"/>
- <path
- android:pathData="M311.45,50.35C311.45,48.98 312.56,47.86 313.92,47.86L322.84,47.86C324.2,47.86 325.32,48.98 325.32,50.35L319.37,51.34L311.45,50.35Z"
- android:fillColor="#DADCE0"/>
- <path
- android:pathData="M170.9,232.14L241.9,232.14A2,2 0,0 1,243.9 234.14L243.9,234.14A2,2 0,0 1,241.9 236.14L170.9,236.14A2,2 0,0 1,168.9 234.14L168.9,234.14A2,2 0,0 1,170.9 232.14z"
- android:fillColor="#DADCE0"/>
- <path
- android:pathData="M198.35,229.14V217.74H203.25L196.35,205.54L189.45,217.74H194.35V229.14C192.45,229.94 191.15,231.74 191.15,233.94C191.15,236.84 193.45,239.14 196.35,239.14C199.25,239.14 201.55,236.84 201.55,233.94C201.55,231.84 200.15,229.94 198.35,229.14Z"
- android:fillColor="#1A73E8"/>
- <path
- android:pathData="M217.65,229.14V217.74H222.55L215.65,205.54L208.75,217.74H213.65V229.14C211.75,229.94 210.45,231.74 210.45,233.94C210.45,236.84 212.75,239.14 215.65,239.14C218.55,239.14 220.85,236.84 220.85,233.94C220.85,231.84 219.55,229.94 217.65,229.14Z"
- android:fillColor="#1A73E8"/>
- </group>
-</vector>
diff --git a/res/drawable/accessibility_shortcut_type_software_gesture_talkback.xml b/res/drawable/accessibility_shortcut_type_software_gesture_talkback.xml
deleted file mode 100644
index 2de804c..0000000
--- a/res/drawable/accessibility_shortcut_type_software_gesture_talkback.xml
+++ /dev/null
@@ -1,43 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2021 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
- android:width="412dp"
- android:height="300dp"
- android:viewportWidth="412"
- android:viewportHeight="300">
- <path
- android:pathData="M384.2,300H27.8C12.5,300 0,287.2 0,271.5v-243C0,12.8 12.5,0 27.8,0h356.5C399.5,0 412,12.8 412,28.5v243.2C412,287.2 399.5,300 384.2,300z"
- android:fillColor="#FFFFFF"/>
- <path
- android:pathData="M138,225.3h133.1c8,0 14.5,-6.5 14.5,-14.5V69c1.6,0 2.9,-1.3 2.9,-2.9V45.7c-1.9,-1.5 -3.8,-2.9 -5.8,-4.3v169.4c0,6.4 -5.2,11.6 -11.6,11.6H138c-6.4,0 -11.6,-5.2 -11.6,-11.6V43.5c-1,0.7 -1.9,1.5 -2.9,2.2v165C123.5,218.8 130,225.3 138,225.3z"
- android:fillColor="#DADCE0"/>
- <path
- android:pathData="M206,283.9c-73.9,0 -133.9,-60.1 -133.9,-133.9S132.1,16.1 206,16.1c73.9,0 133.9,60.1 133.9,133.9S279.9,283.9 206,283.9zM206,18.1C133.2,18.1 74.1,77.2 74.1,150S133.2,281.9 206,281.9S337.9,222.8 337.9,150S278.8,18.1 206,18.1z"
- android:fillColor="#E8EAED"/>
- <path
- android:pathData="M229.9,207.9h-47.8c-1.1,0 -2,0.9 -2,2s0.9,2 2,2h47.8c1.1,0 2,-0.9 2,-2S231,207.9 229.9,207.9z"
- android:fillColor="#DADCE0"/>
- <path
- android:pathData="M190.9,205.7v-11.4h4.9l-6.9,-12.2l-6.9,12.2h4.9v11.4c-1.9,0.8 -3.2,2.6 -3.2,4.8c0,2.9 2.3,5.2 5.2,5.2c2.9,0 5.2,-2.3 5.2,-5.2C194.1,208.4 192.8,206.5 190.9,205.7z"
- android:fillColor="#1A73E8"/>
- <path
- android:pathData="M208,205.7v-11.4h4.9l-6.9,-12.2l-6.9,12.2h4.9v11.4c-1.9,0.8 -3.2,2.6 -3.2,4.8c0,2.9 2.3,5.2 5.2,5.2c2.9,0 5.2,-2.3 5.2,-5.2C211.2,208.4 209.9,206.5 208,205.7z"
- android:fillColor="#1A73E8"/>
- <path
- android:pathData="M225.1,205.7v-11.4h4.9l-6.9,-12.2l-6.9,12.2h4.9v11.4c-1.9,0.8 -3.2,2.6 -3.2,4.8c0,2.9 2.3,5.2 5.2,5.2c2.9,0 5.2,-2.3 5.2,-5.2C228.2,208.4 226.9,206.5 225.1,205.7z"
- android:fillColor="#1A73E8"/>
-</vector>
\ No newline at end of file
diff --git a/res/drawable/accessibility_shortcut_type_software_gesture_talkback_tablet.xml b/res/drawable/accessibility_shortcut_type_software_gesture_talkback_tablet.xml
deleted file mode 100644
index e122ae1..0000000
--- a/res/drawable/accessibility_shortcut_type_software_gesture_talkback_tablet.xml
+++ /dev/null
@@ -1,49 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2023 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
- android:width="412dp"
- android:height="300dp"
- android:viewportWidth="412"
- android:viewportHeight="300">
- <group>
- <clip-path
- android:pathData="M0,0h412v300h-412z"/>
- <path
- android:pathData="M263.59,50.35C263.59,48.98 264.7,47.86 266.06,47.86L287.85,47.86C289.22,47.86 290.33,48.98 290.33,50.35L277.45,51.34L263.59,50.35Z"
- android:fillColor="#DADCE0"/>
- <path
- android:pathData="M364.52,66.19L364.52,236.14A14.75,14.75 0,0 1,349.77 250.89L62.23,250.89A14.75,14.75 0,0 1,47.48 236.14L47.48,66.19A14.75,14.75 0,0 1,62.23 51.44L349.77,51.44A14.75,14.75 0,0 1,364.52 66.19z"
- android:strokeWidth="2.5"
- android:fillColor="#ffffff"
- android:strokeColor="#DADCE0"/>
- <path
- android:pathData="M311.45,50.35C311.45,48.98 312.56,47.86 313.92,47.86L322.84,47.86C324.2,47.86 325.32,48.98 325.32,50.35L319.37,51.34L311.45,50.35Z"
- android:fillColor="#DADCE0"/>
- <path
- android:pathData="M170.9,232.14L241.9,232.14A2,2 0,0 1,243.9 234.14L243.9,234.14A2,2 0,0 1,241.9 236.14L170.9,236.14A2,2 0,0 1,168.9 234.14L168.9,234.14A2,2 0,0 1,170.9 232.14z"
- android:fillColor="#DADCE0"/>
- <path
- android:pathData="M188.7,229.14V217.74H193.6L186.7,205.54L179.8,217.74H184.7V229.14C182.8,229.94 181.5,231.74 181.5,233.94C181.5,236.84 183.8,239.14 186.7,239.14C189.6,239.14 191.9,236.84 191.9,233.94C191.9,231.84 190.5,229.94 188.7,229.14Z"
- android:fillColor="#1A73E8"/>
- <path
- android:pathData="M208,229.14V217.74H212.9L206,205.54L199.1,217.74H204V229.14C202.1,229.94 200.8,231.74 200.8,233.94C200.8,236.84 203.1,239.14 206,239.14C208.9,239.14 211.2,236.84 211.2,233.94C211.2,231.84 209.9,229.94 208,229.14Z"
- android:fillColor="#1A73E8"/>
- <path
- android:pathData="M227.29,229.14V217.74H232.2L225.29,205.54L218.4,217.74H223.29V229.14C221.4,229.94 220.1,231.74 220.1,233.94C220.1,236.84 222.4,239.14 225.29,239.14C228.2,239.14 230.49,236.84 230.49,233.94C230.49,231.84 229.2,229.94 227.29,229.14Z"
- android:fillColor="#1A73E8"/>
- </group>
-</vector>
diff --git a/res/drawable/accessibility_shortcut_type_software_tablet.xml b/res/drawable/accessibility_shortcut_type_software_tablet.xml
deleted file mode 100644
index 334344d..0000000
--- a/res/drawable/accessibility_shortcut_type_software_tablet.xml
+++ /dev/null
@@ -1,36 +0,0 @@
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
- android:width="412dp"
- android:height="300dp"
- android:viewportWidth="412"
- android:viewportHeight="300">
- <group>
- <clip-path
- android:pathData="M62.23,50.19L349.77,50.19A16,16 0,0 1,365.77 66.19L365.77,236.14A16,16 0,0 1,349.77 252.14L62.23,252.14A16,16 0,0 1,46.23 236.14L46.23,66.19A16,16 0,0 1,62.23 50.19z"/>
- <path
- android:pathData="M46.23,204.14h320v48h-320z"
- android:fillColor="#000000"/>
- <path
- android:pathData="M268.93,214.14C270.43,214.14 271.63,215.34 271.63,216.84C271.63,218.34 270.43,219.54 268.93,219.54C267.43,219.54 266.23,218.34 266.23,216.84C266.23,215.34 267.43,214.14 268.93,214.14ZM273.03,223.64V241.24H270.23V233.14H267.53V241.24H264.83V223.64C262.13,223.44 259.23,222.94 256.73,222.24L257.43,219.54C260.93,220.44 265.13,220.94 268.93,220.94C272.73,220.94 276.93,220.54 280.43,219.54L281.13,222.24C278.63,222.94 275.73,223.44 273.03,223.64Z"
- android:fillColor="#ffffff"/>
- <path
- android:pathData="M206.23,238.04C211.42,238.04 215.63,233.83 215.63,228.64C215.63,223.45 211.42,219.24 206.23,219.24C201.04,219.24 196.83,223.45 196.83,228.64C196.83,233.83 201.04,238.04 206.23,238.04Z"
- android:fillColor="#BDC0C4"/>
- <path
- android:pathData="M131.33,228.64L147.33,237.84V219.34L131.33,228.64Z"
- android:fillColor="#BDC0C4"/>
- </group>
- <path
- android:pathData="M62.23,51.69L349.77,51.69A14.5,14.5 0,0 1,364.27 66.19L364.27,236.14A14.5,14.5 0,0 1,349.77 250.64L62.23,250.64A14.5,14.5 0,0 1,47.73 236.14L47.73,66.19A14.5,14.5 0,0 1,62.23 51.69z"
- android:strokeWidth="3"
- android:fillColor="#00000000"
- android:strokeColor="#DADCE0"/>
- <path
- android:pathData="M311.45,50.35C311.45,48.98 312.56,47.87 313.92,47.87L322.84,47.87C324.2,47.87 325.32,48.98 325.32,50.35L319.37,51.34L311.45,50.35Z"
- android:fillColor="#DADCE0"/>
- <path
- android:pathData="M263.59,50.35C263.59,48.98 264.7,47.87 266.06,47.87L287.85,47.87C289.22,47.87 290.33,48.98 290.33,50.35L277.45,51.34L263.59,50.35Z"
- android:fillColor="#DADCE0"/>
- <path
- android:pathData="M268.93,259.69C251.31,259.69 236.93,245.3 236.93,227.69C236.93,210.07 251.31,195.69 268.93,195.69C286.55,195.69 300.93,210.07 300.93,227.69C300.93,245.3 286.55,259.69 268.93,259.69ZM268.93,198.38C252.84,198.38 239.72,211.51 239.72,227.6C239.72,243.69 252.84,256.81 268.93,256.81C285.02,256.81 298.14,243.69 298.14,227.6C298.14,211.51 285.02,198.38 268.93,198.38Z"
- android:fillColor="#729CEE"/>
-</vector>
diff --git a/res/drawable/audio_sharing_rounded_bg.xml b/res/drawable/audio_sharing_rounded_bg.xml
index db1e1bb..35517ea 100644
--- a/res/drawable/audio_sharing_rounded_bg.xml
+++ b/res/drawable/audio_sharing_rounded_bg.xml
@@ -15,8 +15,10 @@
~ limitations under the License.
-->
-<shape xmlns:android="http://schemas.android.com/apk/res/android"
+<shape
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:androidprv="http://schemas.android.com/apk/prv/res/android"
android:shape="rectangle">
- <solid android:color="?android:colorButtonNormal" />
+ <solid android:color="?androidprv:attr/colorAccentPrimary" />
<corners android:radius="12dp" />
</shape>
\ No newline at end of file
diff --git a/res/drawable/battery_tips_all_rounded_bg.xml b/res/drawable/battery_tips_all_rounded_bg.xml
deleted file mode 100644
index ba164b9..0000000
--- a/res/drawable/battery_tips_all_rounded_bg.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
- Copyright (C) 2023 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
- -->
-
-<shape xmlns:android="http://schemas.android.com/apk/res/android"
- android:shape="rectangle">
- <solid android:color="@color/settingslib_materialColorSurfaceBright" />
- <corners android:radius="@dimen/battery_tips_card_corner_radius_normal" />
-</shape>
\ No newline at end of file
diff --git a/res/drawable/battery_tips_all_rounded_bg_ripple.xml b/res/drawable/battery_tips_all_rounded_bg_ripple.xml
deleted file mode 100644
index 3180570..0000000
--- a/res/drawable/battery_tips_all_rounded_bg_ripple.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
- Copyright (C) 2023 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
- -->
-
-<ripple xmlns:android="http://schemas.android.com/apk/res/android"
- android:color="?android:attr/colorControlHighlight">
- <item android:drawable="@drawable/battery_tips_all_rounded_bg"/>
-</ripple>
\ No newline at end of file
diff --git a/res/drawable/battery_tips_half_rounded_bottom_bg.xml b/res/drawable/battery_tips_half_rounded_bottom_bg.xml
deleted file mode 100644
index 7766de6..0000000
--- a/res/drawable/battery_tips_half_rounded_bottom_bg.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
- Copyright (C) 2023 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
- -->
-
-<shape xmlns:android="http://schemas.android.com/apk/res/android"
- android:shape="rectangle">
- <solid android:color="@color/settingslib_dialog_background"/>
- <corners
- android:topLeftRadius="@dimen/battery_tips_card_corner_radius_small"
- android:topRightRadius="@dimen/battery_tips_card_corner_radius_small"
- android:bottomLeftRadius="@dimen/battery_tips_card_corner_radius_normal"
- android:bottomRightRadius="@dimen/battery_tips_card_corner_radius_normal"
- />
-</shape>
\ No newline at end of file
diff --git a/res/drawable/battery_tips_half_rounded_top_bg.xml b/res/drawable/battery_tips_half_rounded_top_bg.xml
deleted file mode 100644
index aba1a4f..0000000
--- a/res/drawable/battery_tips_half_rounded_top_bg.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
- Copyright (C) 2023 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
- -->
-
-<shape xmlns:android="http://schemas.android.com/apk/res/android"
- android:shape="rectangle">
- <solid android:color="@color/settingslib_dialog_background"/>
- <corners
- android:topLeftRadius="@dimen/battery_tips_card_corner_radius_normal"
- android:topRightRadius="@dimen/battery_tips_card_corner_radius_normal"
- android:bottomLeftRadius="@dimen/battery_tips_card_corner_radius_small"
- android:bottomRightRadius="@dimen/battery_tips_card_corner_radius_small"
- />
-</shape>
\ No newline at end of file
diff --git a/res/drawable/ic_close.xml b/res/drawable/ic_close.xml
new file mode 100644
index 0000000..de2085c
--- /dev/null
+++ b/res/drawable/ic_close.xml
@@ -0,0 +1,24 @@
+<!--
+Copyright (C) 2024 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:width="24.0dp"
+ android:height="24.0dp"
+ android:viewportWidth="24.0"
+ android:viewportHeight="24.0">
+ <path
+ android:pathData="M19.000000,6.400000l-1.400000,-1.400000 -5.600000,5.600000 -5.600000,-5.600000 -1.400000,1.400000 5.600000,5.600000 -5.600000,5.600000 1.400000,1.400000 5.600000,-5.600000 5.600000,5.600000 1.400000,-1.400000 -5.600000,-5.600000z"
+ android:fillColor="#FF000000"/>
+</vector>
\ No newline at end of file
diff --git a/res/drawable/ic_pan_tool_18dp.xml b/res/drawable/ic_pan_tool_18dp.xml
deleted file mode 100644
index e3b21fa..0000000
--- a/res/drawable/ic_pan_tool_18dp.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
- Copyright (C) 2019 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
- -->
-
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
- android:width="18dp"
- android:height="18dp"
- android:viewportWidth="48"
- android:viewportHeight="48"
- android:tint="?android:attr/colorControlNormal">
- <group>
- <clip-path
- android:pathData="M0,0h48v48H0z M 0,0"/>
- <path
- android:pathData="M46,11v29c0,4.4 -3.6,8 -8,8H23.4c-2.16,0 -4.2,-0.86 -5.7,-2.38L2,29.66s2.52,-2.46 2.6,-2.5c0.44,-0.38 0.98,-0.58 1.58,-0.58 0.44,0 0.84,0.12 1.2,0.32 0.08,0.02 8.62,4.92 8.62,4.92V8c0,-1.66 1.34,-3 3,-3s3,1.34 3,3v14h2V3c0,-1.66 1.34,-3 3,-3s3,1.34 3,3v19h2V5c0,-1.66 1.34,-3 3,-3s3,1.34 3,3v17h2V11c0,-1.66 1.34,-3 3,-3s3,1.34 3,3z"
- android:fillColor="#FFFFFF"/>
- </group>
-</vector>
diff --git a/res/drawable/ic_zen_mode_category_apps.xml b/res/drawable/ic_zen_mode_category_apps.xml
new file mode 100644
index 0000000..f21fc6a
--- /dev/null
+++ b/res/drawable/ic_zen_mode_category_apps.xml
@@ -0,0 +1,25 @@
+<!--
+Copyright (C) 2024 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:width="24dp"
+ android:height="24dp"
+ android:tint="?android:attr/colorControlNormal"
+ android:viewportHeight="960"
+ android:viewportWidth="960">
+ <path
+ android:fillColor="@android:color/white"
+ android:pathData="M240,800Q207,800 183.5,776.5Q160,753 160,720Q160,687 183.5,663.5Q207,640 240,640Q273,640 296.5,663.5Q320,687 320,720Q320,753 296.5,776.5Q273,800 240,800ZM480,800Q447,800 423.5,776.5Q400,753 400,720Q400,687 423.5,663.5Q447,640 480,640Q513,640 536.5,663.5Q560,687 560,720Q560,753 536.5,776.5Q513,800 480,800ZM720,800Q687,800 663.5,776.5Q640,753 640,720Q640,687 663.5,663.5Q687,640 720,640Q753,640 776.5,663.5Q800,687 800,720Q800,753 776.5,776.5Q753,800 720,800ZM240,560Q207,560 183.5,536.5Q160,513 160,480Q160,447 183.5,423.5Q207,400 240,400Q273,400 296.5,423.5Q320,447 320,480Q320,513 296.5,536.5Q273,560 240,560ZM480,560Q447,560 423.5,536.5Q400,513 400,480Q400,447 423.5,423.5Q447,400 480,400Q513,400 536.5,423.5Q560,447 560,480Q560,513 536.5,536.5Q513,560 480,560ZM720,560Q687,560 663.5,536.5Q640,513 640,480Q640,447 663.5,423.5Q687,400 720,400Q753,400 776.5,423.5Q800,447 800,480Q800,513 776.5,536.5Q753,560 720,560ZM240,320Q207,320 183.5,296.5Q160,273 160,240Q160,207 183.5,183.5Q207,160 240,160Q273,160 296.5,183.5Q320,207 320,240Q320,273 296.5,296.5Q273,320 240,320ZM480,320Q447,320 423.5,296.5Q400,273 400,240Q400,207 423.5,183.5Q447,160 480,160Q513,160 536.5,183.5Q560,207 560,240Q560,273 536.5,296.5Q513,320 480,320ZM720,320Q687,320 663.5,296.5Q640,273 640,240Q640,207 663.5,183.5Q687,160 720,160Q753,160 776.5,183.5Q800,207 800,240Q800,273 776.5,296.5Q753,320 720,320Z" />
+</vector>
\ No newline at end of file
diff --git a/res/drawable/ic_zen_mode_category_display.xml b/res/drawable/ic_zen_mode_category_display.xml
new file mode 100644
index 0000000..4771951
--- /dev/null
+++ b/res/drawable/ic_zen_mode_category_display.xml
@@ -0,0 +1,25 @@
+<!--
+Copyright (C) 2024 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:width="24dp"
+ android:height="24dp"
+ android:tint="?android:attr/colorControlNormal"
+ android:viewportHeight="960"
+ android:viewportWidth="960">
+ <path
+ android:fillColor="@android:color/white"
+ android:pathData="M360,580L360,520L600,520L600,580L360,580ZM320,460L320,400L640,400L640,460L320,460ZM280,920Q247,920 223.5,896.5Q200,873 200,840L200,120Q200,87 223.5,63.5Q247,40 280,40L680,40Q713,40 736.5,63.5Q760,87 760,120L760,840Q760,873 736.5,896.5Q713,920 680,920L280,920ZM280,800L280,840Q280,840 280,840Q280,840 280,840L680,840Q680,840 680,840Q680,840 680,840L680,800L280,800ZM280,720L680,720L680,240L280,240L280,720ZM280,160L680,160L680,120Q680,120 680,120Q680,120 680,120L280,120Q280,120 280,120Q280,120 280,120L280,160ZM280,160L280,120Q280,120 280,120Q280,120 280,120L280,120Q280,120 280,120Q280,120 280,120L280,160ZM280,800L280,800L280,840Q280,840 280,840Q280,840 280,840L280,840Q280,840 280,840Q280,840 280,840L280,800Z" />
+</vector>
\ No newline at end of file
diff --git a/res/drawable/ic_zen_mode_category_duration.xml b/res/drawable/ic_zen_mode_category_duration.xml
new file mode 100644
index 0000000..56d9c4a
--- /dev/null
+++ b/res/drawable/ic_zen_mode_category_duration.xml
@@ -0,0 +1,25 @@
+<!--
+Copyright (C) 2024 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:width="24dp"
+ android:height="24dp"
+ android:tint="?android:attr/colorControlNormal"
+ android:viewportHeight="960"
+ android:viewportWidth="960">
+ <path
+ android:fillColor="@android:color/white"
+ android:pathData="M360,120L360,40L600,40L600,120L360,120ZM440,560L520,560L520,320L440,320L440,560ZM480,880Q406,880 340.5,851.5Q275,823 226,774Q177,725 148.5,659.5Q120,594 120,520Q120,446 148.5,380.5Q177,315 226,266Q275,217 340.5,188.5Q406,160 480,160Q542,160 599,180Q656,200 706,238L762,182L818,238L762,294Q800,344 820,401Q840,458 840,520Q840,594 811.5,659.5Q783,725 734,774Q685,823 619.5,851.5Q554,880 480,880ZM480,800Q596,800 678,718Q760,636 760,520Q760,404 678,322Q596,240 480,240Q364,240 282,322Q200,404 200,520Q200,636 282,718Q364,800 480,800ZM480,520Q480,520 480,520Q480,520 480,520Q480,520 480,520Q480,520 480,520Q480,520 480,520Q480,520 480,520Q480,520 480,520Q480,520 480,520Z" />
+</vector>
\ No newline at end of file
diff --git a/res/drawable/ic_zen_mode_category_other.xml b/res/drawable/ic_zen_mode_category_other.xml
new file mode 100644
index 0000000..9a47523
--- /dev/null
+++ b/res/drawable/ic_zen_mode_category_other.xml
@@ -0,0 +1,25 @@
+<!--
+Copyright (C) 2024 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:width="24dp"
+ android:height="24dp"
+ android:tint="?android:attr/colorControlNormal"
+ android:viewportHeight="960"
+ android:viewportWidth="960">
+ <path
+ android:fillColor="@android:color/white"
+ android:pathData="M560,829L560,747Q650,721 705,647Q760,573 760,479Q760,385 705,311Q650,237 560,211L560,129Q684,157 762,254.5Q840,352 840,479Q840,606 762,703.5Q684,801 560,829ZM120,600L120,360L280,360L480,160L480,800L280,600L120,600ZM560,640L560,318Q607,340 633.5,384Q660,428 660,480Q660,531 633.5,574.5Q607,618 560,640ZM400,354L314,440L200,440L200,520L314,520L400,606L400,354ZM300,480L300,480L300,480L300,480L300,480L300,480Z" />
+</vector>
\ No newline at end of file
diff --git a/res/drawable/ic_zen_mode_category_people.xml b/res/drawable/ic_zen_mode_category_people.xml
new file mode 100644
index 0000000..e763c45
--- /dev/null
+++ b/res/drawable/ic_zen_mode_category_people.xml
@@ -0,0 +1,25 @@
+<!--
+Copyright (C) 2024 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:width="24dp"
+ android:height="24dp"
+ android:tint="?android:attr/colorControlNormal"
+ android:viewportHeight="960"
+ android:viewportWidth="960">
+ <path
+ android:fillColor="@android:color/white"
+ android:pathData="M40,800L40,688Q40,654 57.5,625.5Q75,597 104,582Q166,551 230,535.5Q294,520 360,520Q426,520 490,535.5Q554,551 616,582Q645,597 662.5,625.5Q680,654 680,688L680,800L40,800ZM760,800L760,680Q760,636 735.5,595.5Q711,555 666,526Q717,532 762,546.5Q807,561 846,582Q882,602 901,626.5Q920,651 920,680L920,800L760,800ZM360,480Q294,480 247,433Q200,386 200,320Q200,254 247,207Q294,160 360,160Q426,160 473,207Q520,254 520,320Q520,386 473,433Q426,480 360,480ZM760,320Q760,386 713,433Q666,480 600,480Q589,480 572,477.5Q555,475 544,472Q571,440 585.5,401Q600,362 600,320Q600,278 585.5,239Q571,200 544,168Q558,163 572,161.5Q586,160 600,160Q666,160 713,207Q760,254 760,320ZM120,720L600,720L600,688Q600,677 594.5,668Q589,659 580,654Q526,627 471,613.5Q416,600 360,600Q304,600 249,613.5Q194,627 140,654Q131,659 125.5,668Q120,677 120,688L120,720ZM360,400Q393,400 416.5,376.5Q440,353 440,320Q440,287 416.5,263.5Q393,240 360,240Q327,240 303.5,263.5Q280,287 280,320Q280,353 303.5,376.5Q327,400 360,400ZM360,720L360,720L360,720Q360,720 360,720Q360,720 360,720Q360,720 360,720Q360,720 360,720Q360,720 360,720Q360,720 360,720Q360,720 360,720Q360,720 360,720ZM360,320Q360,320 360,320Q360,320 360,320Q360,320 360,320Q360,320 360,320Q360,320 360,320Q360,320 360,320Q360,320 360,320Q360,320 360,320Z" />
+</vector>
\ No newline at end of file
diff --git a/res/drawable/ic_zen_mode_display_aod.xml b/res/drawable/ic_zen_mode_display_aod.xml
new file mode 100644
index 0000000..9d60fb1
--- /dev/null
+++ b/res/drawable/ic_zen_mode_display_aod.xml
@@ -0,0 +1,25 @@
+<!--
+Copyright (C) 2024 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:width="24dp"
+ android:height="24dp"
+ android:tint="?android:attr/colorControlNormal"
+ android:viewportHeight="960"
+ android:viewportWidth="960">
+ <path
+ android:fillColor="@android:color/white"
+ android:pathData="M820,932L28,140L84,84L876,876L820,932ZM200,257L280,337L280,720L664,720L760,816L760,840Q760,873 736.5,896.5Q713,920 680,920L280,920Q247,920 223.5,896.5Q200,873 200,840L200,257ZM280,800L280,840Q280,840 280,840Q280,840 280,840L680,840Q680,840 680,840Q680,840 680,840L680,800L280,800ZM353,240L274,160L680,160L680,120Q680,120 680,120Q680,120 680,120L234,120L234,120L206,92Q216,69 235.5,54.5Q255,40 280,40L680,40Q713,40 736.5,63.5Q760,87 760,120L760,646L680,566L680,240L353,240ZM480,800L480,800Q480,800 480,800Q480,800 480,800L480,800Q480,800 480,800Q480,800 480,800L480,800ZM457,160L457,160L457,160L457,160Q457,160 457,160Q457,160 457,160Z" />
+</vector>
\ No newline at end of file
diff --git a/res/drawable/ic_zen_mode_display_dark_theme.xml b/res/drawable/ic_zen_mode_display_dark_theme.xml
new file mode 100644
index 0000000..43bc682
--- /dev/null
+++ b/res/drawable/ic_zen_mode_display_dark_theme.xml
@@ -0,0 +1,25 @@
+<!--
+Copyright (C) 2024 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:width="24dp"
+ android:height="24dp"
+ android:tint="?android:attr/colorControlNormal"
+ android:viewportHeight="960"
+ android:viewportWidth="960">
+ <path
+ android:fillColor="@android:color/white"
+ android:pathData="M480,840Q347,840 253.5,747.5Q160,655 160,524Q160,458 185,402Q210,346 254,302L480,80L706,302Q750,346 775,402Q800,458 800,524Q800,655 706.5,747.5Q613,840 480,840ZM480,760L480,192L310,360Q275,393 257.5,434.5Q240,476 240,524Q240,621 310,690.5Q380,760 480,760Z" />
+</vector>
\ No newline at end of file
diff --git a/res/drawable/ic_zen_mode_display_grayscale.xml b/res/drawable/ic_zen_mode_display_grayscale.xml
new file mode 100644
index 0000000..d7fe9ab
--- /dev/null
+++ b/res/drawable/ic_zen_mode_display_grayscale.xml
@@ -0,0 +1,25 @@
+<!--
+Copyright (C) 2024 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:width="24dp"
+ android:height="24dp"
+ android:tint="?android:attr/colorControlNormal"
+ android:viewportHeight="960"
+ android:viewportWidth="960">
+ <path
+ android:fillColor="@android:color/white"
+ android:pathData="M480,880Q397,880 324,848.5Q251,817 197,763Q143,709 111.5,636Q80,563 80,480Q80,397 111.5,324Q143,251 197,197Q251,143 324,111.5Q397,80 480,80Q563,80 636,111.5Q709,143 763,197Q817,251 848.5,324Q880,397 880,480Q880,563 848.5,636Q817,709 763,763Q709,817 636,848.5Q563,880 480,880ZM480,800Q614,800 707,707Q800,614 800,480Q800,416 775.5,357.5Q751,299 706,254L254,706Q299,751 357.5,775.5Q416,800 480,800ZM480,640L480,580L680,580L680,640L480,640ZM320,460L380,460L380,380L460,380L460,320L380,320L380,240L320,240L320,320L240,320L240,380L320,380L320,460Z" />
+</vector>
\ No newline at end of file
diff --git a/res/drawable/ic_zen_mode_display_wallpaper.xml b/res/drawable/ic_zen_mode_display_wallpaper.xml
new file mode 100644
index 0000000..27d169c
--- /dev/null
+++ b/res/drawable/ic_zen_mode_display_wallpaper.xml
@@ -0,0 +1,25 @@
+<!--
+Copyright (C) 2024 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:width="24dp"
+ android:height="24dp"
+ android:tint="?android:attr/colorControlNormal"
+ android:viewportHeight="960"
+ android:viewportWidth="960">
+ <path
+ android:fillColor="@android:color/white"
+ android:pathData="M480,680Q463,680 451.5,668.5Q440,657 440,640Q440,623 451.5,611.5Q463,600 480,600Q497,600 508.5,611.5Q520,623 520,640Q520,657 508.5,668.5Q497,680 480,680ZM440,520L440,280L520,280L520,520L440,520ZM280,920Q247,920 223.5,896.5Q200,873 200,840L200,120Q200,87 223.5,63.5Q247,40 280,40L680,40Q713,40 736.5,63.5Q760,87 760,120L760,840Q760,873 736.5,896.5Q713,920 680,920L280,920ZM280,800L280,840Q280,840 280,840Q280,840 280,840L680,840Q680,840 680,840Q680,840 680,840L680,800L280,800ZM280,720L680,720L680,240L280,240L280,720ZM280,160L680,160L680,120Q680,120 680,120Q680,120 680,120L280,120Q280,120 280,120Q280,120 280,120L280,160ZM280,160L280,120Q280,120 280,120Q280,120 280,120L280,120Q280,120 280,120Q280,120 280,120L280,160ZM280,800L280,800L280,840Q280,840 280,840Q280,840 280,840L280,840Q280,840 280,840Q280,840 280,840L280,800Z" />
+</vector>
\ No newline at end of file
diff --git a/res/drawable/ic_zen_mode_generic_contact.xml b/res/drawable/ic_zen_mode_generic_contact.xml
new file mode 100644
index 0000000..3721dc5
--- /dev/null
+++ b/res/drawable/ic_zen_mode_generic_contact.xml
@@ -0,0 +1,25 @@
+<!--
+Copyright (C) 2024 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:width="24dp"
+ android:height="24dp"
+ android:tint="?android:attr/colorControlNormal"
+ android:viewportHeight="960"
+ android:viewportWidth="960">
+ <path
+ android:fillColor="@android:color/white"
+ android:pathData="M480,480Q414,480 367,433Q320,386 320,320Q320,254 367,207Q414,160 480,160Q546,160 593,207Q640,254 640,320Q640,386 593,433Q546,480 480,480ZM160,800L160,688Q160,654 177.5,625.5Q195,597 224,582Q286,551 350,535.5Q414,520 480,520Q546,520 610,535.5Q674,551 736,582Q765,597 782.5,625.5Q800,654 800,688L800,800L160,800ZM240,720L720,720L720,688Q720,677 714.5,668Q709,659 700,654Q646,627 591,613.5Q536,600 480,600Q424,600 369,613.5Q314,627 260,654Q251,659 245.5,668Q240,677 240,688L240,720ZM480,400Q513,400 536.5,376.5Q560,353 560,320Q560,287 536.5,263.5Q513,240 480,240Q447,240 423.5,263.5Q400,287 400,320Q400,353 423.5,376.5Q447,400 480,400ZM480,320Q480,320 480,320Q480,320 480,320Q480,320 480,320Q480,320 480,320Q480,320 480,320Q480,320 480,320Q480,320 480,320Q480,320 480,320ZM480,720L480,720Q480,720 480,720Q480,720 480,720Q480,720 480,720Q480,720 480,720Q480,720 480,720Q480,720 480,720Q480,720 480,720Q480,720 480,720L480,720Z" />
+</vector>
\ No newline at end of file
diff --git a/res/drawable/ic_zen_mode_icon_cookie.xml b/res/drawable/ic_zen_mode_icon_cookie.xml
new file mode 100644
index 0000000..0e4bafb
--- /dev/null
+++ b/res/drawable/ic_zen_mode_icon_cookie.xml
@@ -0,0 +1,25 @@
+<!--
+Copyright (C) 2024 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:width="136dp"
+ android:height="136dp"
+ android:tint="?android:attr/colorControlNormal"
+ android:viewportHeight="136"
+ android:viewportWidth="136">
+ <path
+ android:fillColor="@android:color/white"
+ android:pathData="M58.0961 4.18448C58.326 3.95917 58.441 3.84652 58.5407 3.75268C63.8544 -1.25089 72.1456 -1.25089 77.4593 3.75268C77.559 3.84652 77.674 3.95917 77.9039 4.18448C78.0419 4.31967 78.1109 4.38727 78.1765 4.44986C81.5767 7.69486 86.3948 8.98588 90.962 7.87573C91.0501 7.85432 91.1436 7.83027 91.3307 7.78218C91.6425 7.70204 91.7984 7.66196 91.9317 7.63052C99.0352 5.95417 106.216 10.0998 108.316 17.0898C108.355 17.2209 108.398 17.376 108.485 17.6861C108.537 17.8722 108.563 17.9652 108.588 18.0522C109.91 22.5626 113.437 26.0897 117.948 27.4118C118.035 27.4373 118.128 27.4633 118.314 27.5152C118.624 27.6017 118.779 27.6449 118.91 27.6843C125.9 29.7844 130.046 36.9648 128.369 44.0684C128.338 44.2016 128.298 44.3575 128.218 44.6693C128.17 44.8564 128.146 44.9499 128.124 45.038C127.014 49.6052 128.305 54.4233 131.55 57.8235C131.613 57.8891 131.68 57.9581 131.816 58.0961C132.041 58.326 132.153 58.441 132.247 58.5407C137.251 63.8544 137.251 72.1456 132.247 77.4593C132.153 77.559 132.041 77.674 131.816 77.9039C131.68 78.0419 131.613 78.1109 131.55 78.1765C128.305 81.5767 127.014 86.3948 128.124 90.962C128.146 91.0501 128.17 91.1436 128.218 91.3307C128.298 91.6425 128.338 91.7984 128.369 91.9316C130.046 99.0352 125.9 106.216 118.91 108.316C118.779 108.355 118.624 108.398 118.314 108.485C118.128 108.537 118.035 108.563 117.948 108.588C113.437 109.91 109.91 113.437 108.588 117.948C108.563 118.035 108.537 118.128 108.485 118.314C108.398 118.624 108.355 118.779 108.316 118.91C106.216 125.9 99.0352 130.046 91.9316 128.369C91.7984 128.338 91.6425 128.298 91.3307 128.218C91.1436 128.17 91.0501 128.146 90.962 128.124C86.3948 127.014 81.5767 128.305 78.1765 131.55C78.1109 131.613 78.0419 131.68 77.9039 131.816C77.674 132.041 77.559 132.153 77.4593 132.247C72.1456 137.251 63.8544 137.251 58.5407 132.247C58.441 132.153 58.326 132.041 58.0961 131.816C57.9581 131.68 57.8891 131.613 57.8235 131.55C54.4233 128.305 49.6052 127.014 45.038 128.124C44.9499 128.146 44.8564 128.17 44.6693 128.218C44.3575 128.298 44.2016 128.338 44.0684 128.369C36.9648 130.046 29.7844 125.9 27.6843 118.91C27.6449 118.779 27.6017 118.624 27.5152 118.314C27.4633 118.128 27.4373 118.035 27.4118 117.948C26.0897 113.437 22.5626 109.91 18.0522 108.588C17.9652 108.563 17.8722 108.537 17.6861 108.485C17.376 108.398 17.2209 108.355 17.0898 108.316C10.0998 106.216 5.95417 99.0352 7.63052 91.9317C7.66196 91.7984 7.70204 91.6425 7.78218 91.3307C7.83027 91.1436 7.85432 91.0501 7.87573 90.962C8.98588 86.3948 7.69486 81.5767 4.44986 78.1765C4.38727 78.1109 4.31967 78.0419 4.18448 77.9039C3.95917 77.674 3.84652 77.559 3.75268 77.4593C-1.25089 72.1456 -1.25089 63.8544 3.75268 58.5407C3.84652 58.441 3.95917 58.326 4.18448 58.0961C4.31967 57.9581 4.38727 57.8891 4.44986 57.8235C7.69486 54.4233 8.98588 49.6052 7.87573 45.038C7.85432 44.9499 7.83027 44.8564 7.78218 44.6693C7.70204 44.3575 7.66196 44.2016 7.63052 44.0683C5.95417 36.9648 10.0998 29.7844 17.0898 27.6843C17.2209 27.6449 17.376 27.6017 17.6861 27.5152C17.8722 27.4633 17.9652 27.4373 18.0522 27.4118C22.5626 26.0897 26.0897 22.5626 27.4118 18.0522C27.4373 17.9652 27.4633 17.8722 27.5152 17.6861C27.6017 17.376 27.6449 17.2209 27.6843 17.0898C29.7844 10.0998 36.9648 5.95417 44.0683 7.63052C44.2016 7.66196 44.3575 7.70204 44.6693 7.78218C44.8564 7.83027 44.9499 7.85432 45.038 7.87573C49.6052 8.98588 54.4233 7.69486 57.8235 4.44986C57.8891 4.38727 57.9581 4.31967 58.0961 4.18448Z" />
+</vector>
\ No newline at end of file
diff --git a/res/drawable/ic_zen_mode_people_all.xml b/res/drawable/ic_zen_mode_people_all.xml
new file mode 100644
index 0000000..c6194d5
--- /dev/null
+++ b/res/drawable/ic_zen_mode_people_all.xml
@@ -0,0 +1,25 @@
+<!--
+Copyright (C) 2024 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:width="24dp"
+ android:height="24dp"
+ android:tint="?android:attr/colorControlNormal"
+ android:viewportHeight="960"
+ android:viewportWidth="960">
+ <path
+ android:fillColor="@android:color/white"
+ android:pathData="M0,720L0,657Q0,614 44,587Q88,560 160,560Q173,560 185,560.5Q197,561 208,563Q194,584 187,607Q180,630 180,655L180,720L0,720ZM240,720L240,655Q240,623 257.5,596.5Q275,570 307,550Q339,530 383.5,520Q428,510 480,510Q533,510 577.5,520Q622,530 654,550Q686,570 703,596.5Q720,623 720,655L720,720L240,720ZM780,720L780,655Q780,629 773.5,606Q767,583 754,563Q765,561 776.5,560.5Q788,560 800,560Q872,560 916,586.5Q960,613 960,657L960,720L780,720ZM325,640L636,640L636,640Q626,620 580.5,605Q535,590 480,590Q425,590 379.5,605Q334,620 325,640ZM160,520Q127,520 103.5,496.5Q80,473 80,440Q80,406 103.5,383Q127,360 160,360Q194,360 217,383Q240,406 240,440Q240,473 217,496.5Q194,520 160,520ZM800,520Q767,520 743.5,496.5Q720,473 720,440Q720,406 743.5,383Q767,360 800,360Q834,360 857,383Q880,406 880,440Q880,473 857,496.5Q834,520 800,520ZM480,480Q430,480 395,445Q360,410 360,360Q360,309 395,274.5Q430,240 480,240Q531,240 565.5,274.5Q600,309 600,360Q600,410 565.5,445Q531,480 480,480ZM480,400Q497,400 508.5,388.5Q520,377 520,360Q520,343 508.5,331.5Q497,320 480,320Q463,320 451.5,331.5Q440,343 440,360Q440,377 451.5,388.5Q463,400 480,400ZM481,640L481,640Q481,640 481,640Q481,640 481,640Q481,640 481,640Q481,640 481,640L481,640ZM480,360Q480,360 480,360Q480,360 480,360Q480,360 480,360Q480,360 480,360Q480,360 480,360Q480,360 480,360Q480,360 480,360Q480,360 480,360Z" />
+</vector>
\ No newline at end of file
diff --git a/res/drawable/ic_zen_mode_people_calls.xml b/res/drawable/ic_zen_mode_people_calls.xml
new file mode 100644
index 0000000..6aacc03
--- /dev/null
+++ b/res/drawable/ic_zen_mode_people_calls.xml
@@ -0,0 +1,25 @@
+<!--
+Copyright (C) 2024 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:width="24dp"
+ android:height="24dp"
+ android:tint="?android:attr/colorControlNormal"
+ android:viewportHeight="960"
+ android:viewportWidth="960">
+ <path
+ android:fillColor="@android:color/white"
+ android:pathData="M798,840Q673,840 551,785.5Q429,731 329,631Q229,531 174.5,409Q120,287 120,162Q120,144 132,132Q144,120 162,120L324,120Q338,120 349,129.5Q360,139 362,152L388,292Q390,308 387,319Q384,330 376,338L279,436Q299,473 326.5,507.5Q354,542 387,574Q418,605 452,631.5Q486,658 524,680L618,586Q627,577 641.5,572.5Q656,568 670,570L808,598Q822,602 831,612.5Q840,623 840,636L840,798Q840,816 828,828Q816,840 798,840ZM241,360L307,294Q307,294 307,294Q307,294 307,294L290,200Q290,200 290,200Q290,200 290,200L201,200Q201,200 201,200Q201,200 201,200Q206,241 215,281Q224,321 241,360ZM599,718Q638,735 678.5,745Q719,755 760,758Q760,758 760,758Q760,758 760,758L760,670Q760,670 760,670Q760,670 760,670L666,651Q666,651 666,651Q666,651 666,651L599,718ZM241,360Q241,360 241,360Q241,360 241,360Q241,360 241,360Q241,360 241,360L241,360Q241,360 241,360Q241,360 241,360L241,360Q241,360 241,360Q241,360 241,360ZM599,718L599,718Q599,718 599,718Q599,718 599,718L599,718Q599,718 599,718Q599,718 599,718L599,718Q599,718 599,718Q599,718 599,718Q599,718 599,718Q599,718 599,718Z" />
+</vector>
\ No newline at end of file
diff --git a/res/drawable/ic_zen_mode_people_messages.xml b/res/drawable/ic_zen_mode_people_messages.xml
new file mode 100644
index 0000000..21db1f4
--- /dev/null
+++ b/res/drawable/ic_zen_mode_people_messages.xml
@@ -0,0 +1,25 @@
+<!--
+Copyright (C) 2024 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:width="24dp"
+ android:height="24dp"
+ android:tint="?android:attr/colorControlNormal"
+ android:viewportHeight="960"
+ android:viewportWidth="960">
+ <path
+ android:fillColor="@android:color/white"
+ android:pathData="M240,560L560,560L560,480L240,480L240,560ZM240,440L720,440L720,360L240,360L240,440ZM240,320L720,320L720,240L240,240L240,320ZM80,880L80,160Q80,127 103.5,103.5Q127,80 160,80L800,80Q833,80 856.5,103.5Q880,127 880,160L880,640Q880,673 856.5,696.5Q833,720 800,720L240,720L80,880ZM206,640L800,640Q800,640 800,640Q800,640 800,640L800,160Q800,160 800,160Q800,160 800,160L160,160Q160,160 160,160Q160,160 160,160L160,685L206,640ZM160,640L160,640L160,160Q160,160 160,160Q160,160 160,160L160,160Q160,160 160,160Q160,160 160,160L160,640Q160,640 160,640Q160,640 160,640Z" />
+</vector>
\ No newline at end of file
diff --git a/res/drawable/ic_zen_mode_sound_alarms.xml b/res/drawable/ic_zen_mode_sound_alarms.xml
new file mode 100644
index 0000000..b2761ca
--- /dev/null
+++ b/res/drawable/ic_zen_mode_sound_alarms.xml
@@ -0,0 +1,25 @@
+<!--
+Copyright (C) 2024 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:width="24dp"
+ android:height="24dp"
+ android:tint="?android:attr/colorControlNormal"
+ android:viewportHeight="960"
+ android:viewportWidth="960">
+ <path
+ android:fillColor="@android:color/white"
+ android:pathData="M480,880Q405,880 339.5,851.5Q274,823 225.5,774.5Q177,726 148.5,660.5Q120,595 120,520Q120,445 148.5,379.5Q177,314 225.5,265.5Q274,217 339.5,188.5Q405,160 480,160Q555,160 620.5,188.5Q686,217 734.5,265.5Q783,314 811.5,379.5Q840,445 840,520Q840,595 811.5,660.5Q783,726 734.5,774.5Q686,823 620.5,851.5Q555,880 480,880ZM480,520Q480,520 480,520Q480,520 480,520Q480,520 480,520Q480,520 480,520Q480,520 480,520Q480,520 480,520Q480,520 480,520Q480,520 480,520ZM592,688L648,632L520,504L520,320L440,320L440,536L592,688ZM224,94L280,150L110,320L54,264L224,94ZM736,94L906,264L850,320L680,150L736,94ZM480,800Q597,800 678.5,718.5Q760,637 760,520Q760,403 678.5,321.5Q597,240 480,240Q363,240 281.5,321.5Q200,403 200,520Q200,637 281.5,718.5Q363,800 480,800Z" />
+</vector>
\ No newline at end of file
diff --git a/res/drawable/ic_zen_mode_sound_events.xml b/res/drawable/ic_zen_mode_sound_events.xml
new file mode 100644
index 0000000..15035e4
--- /dev/null
+++ b/res/drawable/ic_zen_mode_sound_events.xml
@@ -0,0 +1,25 @@
+<!--
+Copyright (C) 2024 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:width="24dp"
+ android:height="24dp"
+ android:tint="?android:attr/colorControlNormal"
+ android:viewportHeight="960"
+ android:viewportWidth="960">
+ <path
+ android:fillColor="@android:color/white"
+ android:pathData="M580,720Q538,720 509,691Q480,662 480,620Q480,578 509,549Q538,520 580,520Q622,520 651,549Q680,578 680,620Q680,662 651,691Q622,720 580,720ZM200,880Q167,880 143.5,856.5Q120,833 120,800L120,240Q120,207 143.5,183.5Q167,160 200,160L240,160L240,80L320,80L320,160L640,160L640,80L720,80L720,160L760,160Q793,160 816.5,183.5Q840,207 840,240L840,800Q840,833 816.5,856.5Q793,880 760,880L200,880ZM200,800L760,800Q760,800 760,800Q760,800 760,800L760,400L200,400L200,800Q200,800 200,800Q200,800 200,800ZM200,320L760,320L760,240Q760,240 760,240Q760,240 760,240L200,240Q200,240 200,240Q200,240 200,240L200,320ZM200,320L200,240Q200,240 200,240Q200,240 200,240L200,240Q200,240 200,240Q200,240 200,240L200,320Z" />
+</vector>
\ No newline at end of file
diff --git a/res/drawable/ic_zen_mode_sound_media.xml b/res/drawable/ic_zen_mode_sound_media.xml
new file mode 100644
index 0000000..f2bedcb
--- /dev/null
+++ b/res/drawable/ic_zen_mode_sound_media.xml
@@ -0,0 +1,25 @@
+<!--
+Copyright (C) 2024 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:width="24dp"
+ android:height="24dp"
+ android:tint="?android:attr/colorControlNormal"
+ android:viewportHeight="960"
+ android:viewportWidth="960">
+ <path
+ android:fillColor="@android:color/white"
+ android:pathData="M400,840Q334,840 287,793Q240,746 240,680Q240,614 287,567Q334,520 400,520Q423,520 442.5,525.5Q462,531 480,542L480,120L720,120L720,280L560,280L560,680Q560,746 513,793Q466,840 400,840Z" />
+</vector>
\ No newline at end of file
diff --git a/res/drawable/ic_zen_mode_sound_reminders.xml b/res/drawable/ic_zen_mode_sound_reminders.xml
new file mode 100644
index 0000000..cd9490a
--- /dev/null
+++ b/res/drawable/ic_zen_mode_sound_reminders.xml
@@ -0,0 +1,25 @@
+<!--
+Copyright (C) 2024 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:width="24dp"
+ android:height="24dp"
+ android:tint="?android:attr/colorControlNormal"
+ android:viewportHeight="960"
+ android:viewportWidth="960">
+ <path
+ android:fillColor="@android:color/white"
+ android:pathData="M260,320L300,320L300,280Q300,263 288.5,251.5Q277,240 260,240Q243,240 231.5,251.5Q220,263 220,280Q220,297 231.5,308.5Q243,320 260,320ZM440,320Q457,320 468.5,308.5Q480,297 480,280Q480,263 468.5,251.5Q457,240 440,240Q423,240 411.5,251.5Q400,263 400,280L400,320L440,320ZM502,620L502,620L502,620L502,620Q502,620 502,620Q502,620 502,620L502,620Q502,620 502,620Q502,620 502,620L502,620Q502,620 502,620Q502,620 502,620L502,620L502,620ZM419,880Q391,880 366.5,868Q342,856 325,834L107,557L126,537Q146,516 174,512Q202,508 226,523L300,568L300,400L260,400Q210,400 175,365Q140,330 140,280Q140,230 175,195Q210,160 260,160Q271,160 280.5,162Q290,164 300,167L300,120Q300,103 311.5,91.5Q323,80 340,80Q357,80 369,91.5Q381,103 381,120L381,176Q395,168 409.5,164Q424,160 440,160Q490,160 525,195Q560,230 560,280Q560,330 525,365Q490,400 440,400L381,400L381,712L284,652L388,785Q394,792 402,796Q410,800 419,800L640,800Q673,800 696.5,776.5Q720,753 720,720L720,560Q720,543 708.5,531.5Q697,520 680,520L461,520L461,440L680,440Q730,440 765,475Q800,510 800,560L800,720Q800,786 753,833Q706,880 640,880L419,880Z" />
+</vector>
\ No newline at end of file
diff --git a/res/drawable/ic_zen_mode_sound_system.xml b/res/drawable/ic_zen_mode_sound_system.xml
new file mode 100644
index 0000000..2da05d8
--- /dev/null
+++ b/res/drawable/ic_zen_mode_sound_system.xml
@@ -0,0 +1,25 @@
+<!--
+Copyright (C) 2024 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:width="24dp"
+ android:height="24dp"
+ android:tint="?android:attr/colorControlNormal"
+ android:viewportHeight="960"
+ android:viewportWidth="960">
+ <path
+ android:fillColor="@android:color/white"
+ android:pathData="M419,880Q391,880 366.5,868Q342,856 325,834L107,557L126,537Q146,516 174,512Q202,508 226,523L300,568L300,240Q300,223 311.5,211.5Q323,200 340,200Q357,200 369,211.5Q381,223 381,240L381,712L284,652L388,785Q394,792 402,796Q410,800 419,800L640,800Q673,800 696.5,776.5Q720,753 720,720L720,560Q720,543 708.5,531.5Q697,520 680,520L461,520L461,440L680,440Q730,440 765,475Q800,510 800,560L800,720Q800,786 753,833Q706,880 640,880L419,880ZM167,340Q154,318 147,292.5Q140,267 140,240Q140,157 198.5,98.5Q257,40 340,40Q423,40 481.5,98.5Q540,157 540,240Q540,267 533,292.5Q526,318 513,340L444,300Q452,286 456,271.5Q460,257 460,240Q460,190 425,155Q390,120 340,120Q290,120 255,155Q220,190 220,240Q220,257 224,271.5Q228,286 236,300L167,340ZM502,620L502,620L502,620L502,620Q502,620 502,620Q502,620 502,620L502,620Q502,620 502,620Q502,620 502,620L502,620Q502,620 502,620Q502,620 502,620L502,620L502,620Z" />
+</vector>
\ No newline at end of file
diff --git a/res/drawable/ic_zen_mode_trigger_with_activity.xml b/res/drawable/ic_zen_mode_trigger_with_activity.xml
new file mode 100644
index 0000000..567f01a
--- /dev/null
+++ b/res/drawable/ic_zen_mode_trigger_with_activity.xml
@@ -0,0 +1,26 @@
+<!--
+Copyright (C) 2024 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:width="24dp"
+ android:height="24dp"
+ android:tint="?android:attr/colorControlNormal"
+ android:viewportHeight="960"
+ android:viewportWidth="960"
+ android:autoMirrored="true">
+ <path
+ android:fillColor="@android:color/white"
+ android:pathData="M200,840Q167,840 143.5,816.5Q120,793 120,760L120,600L200,600L200,760Q200,760 200,760Q200,760 200,760L760,760Q760,760 760,760Q760,760 760,760L760,200Q760,200 760,200Q760,200 760,200L200,200Q200,200 200,200Q200,200 200,200L200,360L120,360L120,200Q120,167 143.5,143.5Q167,120 200,120L760,120Q793,120 816.5,143.5Q840,167 840,200L840,760Q840,793 816.5,816.5Q793,840 760,840L200,840ZM420,680L364,622L466,520L120,520L120,440L466,440L364,338L420,280L620,480L420,680Z" />
+</vector>
\ No newline at end of file
diff --git a/res/drawable/ic_zen_mode_trigger_without_activity.xml b/res/drawable/ic_zen_mode_trigger_without_activity.xml
new file mode 100644
index 0000000..11a97f1
--- /dev/null
+++ b/res/drawable/ic_zen_mode_trigger_without_activity.xml
@@ -0,0 +1,25 @@
+<!--
+Copyright (C) 2024 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:width="24dp"
+ android:height="24dp"
+ android:tint="?android:attr/colorControlNormal"
+ android:viewportHeight="960"
+ android:viewportWidth="960">
+ <path
+ android:fillColor="@android:color/white"
+ android:pathData="M352,840L200,840Q167,840 143.5,816.5Q120,793 120,760L120,608Q168,608 204,577.5Q240,547 240,500Q240,453 204,422.5Q168,392 120,392L120,240Q120,207 143.5,183.5Q167,160 200,160L360,160Q360,118 389,89Q418,60 460,60Q502,60 531,89Q560,118 560,160L720,160Q753,160 776.5,183.5Q800,207 800,240L800,400Q842,400 871,429Q900,458 900,500Q900,542 871,571Q842,600 800,600L800,760Q800,793 776.5,816.5Q753,840 720,840L568,840Q568,790 536.5,755Q505,720 460,720Q415,720 383.5,755Q352,790 352,840ZM200,760L285,760Q309,694 362,667Q415,640 460,640Q505,640 558,667Q611,694 635,760L720,760L720,520L800,520Q808,520 814,514Q820,508 820,500Q820,492 814,486Q808,480 800,480L720,480L720,240L480,240L480,160Q480,152 474,146Q468,140 460,140Q452,140 446,146Q440,152 440,160L440,240L200,240L200,328Q254,348 287,395Q320,442 320,500Q320,557 287,604Q254,651 200,672L200,760ZM460,500L460,500Q460,500 460,500Q460,500 460,500Q460,500 460,500Q460,500 460,500L460,500L460,500L460,500Q460,500 460,500Q460,500 460,500Q460,500 460,500Q460,500 460,500L460,500L460,500L460,500L460,500Q460,500 460,500Q460,500 460,500Q460,500 460,500Q460,500 460,500L460,500L460,500L460,500Q460,500 460,500Q460,500 460,500Q460,500 460,500Q460,500 460,500Z" />
+</vector>
\ No newline at end of file
diff --git a/res/drawable/preference_circular_icons_plus_item_background.xml b/res/drawable/preference_circular_icons_plus_item_background.xml
new file mode 100644
index 0000000..faaa1fd
--- /dev/null
+++ b/res/drawable/preference_circular_icons_plus_item_background.xml
@@ -0,0 +1,25 @@
+<!--
+ ~ Copyright (C) 2024 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License.
+ -->
+
+<shape
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:androidprv="http://schemas.android.com/apk/prv/res/android"
+ android:shape="oval">
+ <size
+ android:width="@dimen/zen_mode_circular_icon_diameter"
+ android:height="@dimen/zen_mode_circular_icon_diameter" />
+ <solid android:color="?androidprv:attr/materialColorSecondaryContainer" />
+</shape>
\ No newline at end of file
diff --git a/res/layout-land/bluetooth_audio_streams_qr_code.xml b/res/layout-land/bluetooth_audio_streams_qr_code.xml
new file mode 100644
index 0000000..432d75e
--- /dev/null
+++ b/res/layout-land/bluetooth_audio_streams_qr_code.xml
@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ ~ Copyright (C) 2023 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License.
+ -->
+
+<androidx.core.widget.NestedScrollView
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content">
+
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:orientation="horizontal"
+ android:padding="25dp"
+ android:gravity="center">
+
+ <TextView
+ android:id="@android:id/summary"
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:layout_weight="1"
+ android:gravity="start"
+ android:textSize="15sp"
+ android:textColor="?android:attr/textColorPrimary"/>
+
+ <LinearLayout
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:orientation="vertical"
+ android:layout_weight="1"
+ android:gravity="center">
+
+ <ImageView
+ android:id="@+id/qrcode_view"
+ android:layout_width="@dimen/qrcode_size"
+ android:layout_height="@dimen/qrcode_size"
+ android:contentDescription="@string/qr_code_content_description"
+ android:focusable="true" />
+
+ <TextView
+ android:id="@+id/password"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:textSize="15sp"
+ android:textColor="?android:attr/textColorPrimary"
+ android:gravity="center" />
+ </LinearLayout>
+ </LinearLayout>
+</androidx.core.widget.NestedScrollView>
\ No newline at end of file
diff --git a/res/layout-land/mode_interstitial_layout.xml b/res/layout-land/mode_interstitial_layout.xml
new file mode 100644
index 0000000..1420185
--- /dev/null
+++ b/res/layout-land/mode_interstitial_layout.xml
@@ -0,0 +1,126 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ ~ Copyright (C) 2024 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License.
+ -->
+<LinearLayout
+ android:id="@+id/interstitial_page"
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:app="http://schemas.android.com/apk/res-auto"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:fitsSystemWindows="true"
+ android:transitionGroup="true"
+ android:orientation="vertical">
+
+ <Toolbar
+ android:id="@+id/action_bar"
+ style="?android:attr/actionBarStyle"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:theme="?android:attr/actionBarTheme"
+ android:elevation="0dp"
+ android:background="@android:color/transparent"/>
+
+ <androidx.constraintlayout.widget.ConstraintLayout
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:paddingTop="12dp"
+ android:paddingBottom="24dp"
+ android:paddingHorizontal="24dp"
+ android:clipChildren="true">
+
+ <ScrollView
+ android:layout_width="0dp"
+ android:layout_height="0dp"
+ app:layout_constrainedHeight="true"
+ app:layout_constraintBottom_toTopOf="@+id/enable_mode_button"
+ app:layout_constraintEnd_toStartOf="@+id/guideline"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toTopOf="parent">
+
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:orientation="vertical"
+ android:paddingEnd="12dp"
+ android:paddingStart="12dp">
+
+ <TextView
+ android:id="@+id/mode_name_title"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:clickable="false"
+ android:paddingVertical="12dp"
+ android:textSize="36sp"
+ android:textAppearance="@*android:style/TextAppearance.DeviceDefault.Title" />
+
+ <TextView
+ android:id="@+id/mode_name_subtitle"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:clickable="false"
+ android:paddingBottom="12dp"
+ android:text="@string/zen_mode_setup_page_summary"
+ android:textSize="18sp"
+ android:textAppearance="@*android:style/TextAppearance.DeviceDefault.Subhead" />
+
+ </LinearLayout>
+
+ </ScrollView>
+
+ <Button
+ android:id="@+id/enable_mode_button"
+ style="@style/ActionPrimaryButton"
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintBottom_toBottomOf="parent"
+ app:layout_constraintEnd_toStartOf="@+id/guideline"
+ android:paddingEnd="12dp" />
+
+ <!-- guideline to have text/button side & image side take up half the page each -->
+ <androidx.constraintlayout.widget.Guideline
+ android:id="@+id/guideline"
+ android:layout_width="wrap_content"
+ android:layout_height="match_parent"
+ android:orientation="vertical"
+ app:layout_constraintGuide_percent="0.5" />
+
+ <FrameLayout
+ android:id="@+id/image_frame"
+ android:layout_height="0dp"
+ android:layout_width="0dp"
+ app:layout_constraintTop_toTopOf="parent"
+ app:layout_constraintBottom_toBottomOf="parent"
+ app:layout_constraintStart_toEndOf="@+id/guideline"
+ app:layout_constraintEnd_toEndOf="parent"
+ android:paddingHorizontal="12dp">
+
+ <ImageView
+ android:id="@+id/image"
+ android:clickable="false"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:adjustViewBounds="true"
+ android:scaleType="centerCrop"
+ android:layout_gravity="center" />
+
+ </FrameLayout>
+
+ />
+
+ </androidx.constraintlayout.widget.ConstraintLayout>
+
+</LinearLayout>
\ No newline at end of file
diff --git a/res/layout-land/qrcode_scanner_fragment.xml b/res/layout-land/qrcode_scanner_fragment.xml
new file mode 100644
index 0000000..daad35d
--- /dev/null
+++ b/res/layout-land/qrcode_scanner_fragment.xml
@@ -0,0 +1,59 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2022 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<androidx.core.widget.NestedScrollView
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content">
+
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:orientation="horizontal"
+ android:paddingTop="@dimen/audio_streams_qrcode_scanner_fragment_padding">
+
+ <TextView
+ android:id="@android:id/summary"
+ style="@style/QrCodeScanner"
+ android:layout_width="0dp"
+ android:layout_height="match_parent"
+ android:layout_weight="1"
+ android:gravity="center" />
+
+ <LinearLayout
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:orientation="vertical"
+ android:layout_weight="1"
+ android:gravity="center">
+ <TextureView
+ android:id="@+id/preview_view"
+ android:layout_width="@dimen/audio_streams_qrcode_preview_size"
+ android:layout_height="@dimen/audio_streams_qrcode_preview_size"
+ android:contentDescription="@string/audio_streams_qr_code_scanner_label"
+ android:focusable="true" />
+ <TextView
+ android:id="@+id/error_message"
+ style="@style/TextAppearance.ErrorText"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:visibility="gone"/>
+ </LinearLayout>
+
+ </LinearLayout>
+
+</androidx.core.widget.NestedScrollView>
diff --git a/res/layout/accessibility_edit_shortcut.xml b/res/layout/accessibility_edit_shortcut.xml
deleted file mode 100644
index d0c925e..0000000
--- a/res/layout/accessibility_edit_shortcut.xml
+++ /dev/null
@@ -1,46 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
- Copyright (C) 2019 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License
- -->
-
-<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:clipChildren="true">
-
- <ScrollView
- android:id="@+id/container_layout"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:scrollbarStyle="outsideOverlay">
-
- <LinearLayout
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:orientation="vertical"
- android:padding="24dp">
-
- <include android:id="@+id/software_shortcut"
- layout="@layout/accessibility_edit_shortcut_component"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:layout_marginBottom="32dp" />
-
- <include android:id="@+id/hardware_shortcut"
- layout="@layout/accessibility_edit_shortcut_component" />
-
- </LinearLayout>
- </ScrollView>
-</FrameLayout>
\ No newline at end of file
diff --git a/res/layout/accessibility_edit_shortcut_component.xml b/res/layout/accessibility_edit_shortcut_component.xml
deleted file mode 100644
index d54fff6..0000000
--- a/res/layout/accessibility_edit_shortcut_component.xml
+++ /dev/null
@@ -1,61 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
- Copyright (C) 2019 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License
- -->
-
-<LinearLayout
- xmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:orientation="vertical">
-
- <LinearLayout
- android:id="@+id/container"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:background="?android:attr/selectableItemBackground"
- android:orientation="vertical">
-
- <CheckBox
- android:id="@+id/checkbox"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:minHeight="48dp"
- android:background="@null"
- android:clickable="false"
- android:focusable="false"
- android:focusableInTouchMode="false"
- android:paddingStart="12dp"
- android:saveEnabled="false"
- android:textColor="?android:attr/textColorAlertDialogListItem"
- android:textSize="16sp" />
-
- <TextView
- android:id="@+id/summary"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:paddingBottom="8dp"
- android:paddingStart="44dp"
- android:textAppearance="?android:attr/textAppearanceListItemSecondary"
- android:textColor="?android:attr/textColorSecondary" />
-
- </LinearLayout>
-
- <include layout="@layout/accessibility_lottie_animation_view"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:layout_marginStart="44dp"/>
-
-</LinearLayout>
diff --git a/res/layout/accessibility_edit_shortcut_magnification.xml b/res/layout/accessibility_edit_shortcut_magnification.xml
deleted file mode 100644
index 0f30a01..0000000
--- a/res/layout/accessibility_edit_shortcut_magnification.xml
+++ /dev/null
@@ -1,91 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
- Copyright (C) 2019 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License
- -->
-
-<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:clipChildren="true">
-
- <ScrollView
- android:id="@+id/container_layout"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:scrollbarStyle="outsideOverlay">
-
- <LinearLayout
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:orientation="vertical"
- android:padding="24dp">
-
- <include
- android:id="@+id/software_shortcut"
- layout="@layout/accessibility_edit_shortcut_component"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:layout_marginBottom="32dp" />
-
- <include
- android:id="@+id/hardware_shortcut"
- layout="@layout/accessibility_edit_shortcut_component"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:layout_marginBottom="32dp" />
-
- <include
- android:id="@+id/two_finger_triple_tap_shortcut"
- layout="@layout/accessibility_edit_shortcut_component"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:layout_marginBottom="32dp"
- android:visibility="gone" />
-
- <LinearLayout
- android:id="@+id/advanced_shortcut"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:minHeight="?android:attr/listPreferredItemHeightSmall"
- android:orientation="horizontal">
-
- <ImageView
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_gravity="center"
- android:contentDescription="@null"
- android:scaleType="centerCrop"
- android:src="@drawable/ic_keyboard_arrow_down" />
-
- <TextView
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:gravity="center_vertical"
- android:paddingStart="12dp"
- android:text="@string/accessibility_shortcut_edit_dialog_title_advance"
- android:textAppearance="?android:attr/textAppearanceListItem"
- android:textColor="?android:attr/colorAccent"
- android:textSize="16sp" />
-
- </LinearLayout>
-
- <include
- android:id="@+id/triple_tap_shortcut"
- layout="@layout/accessibility_edit_shortcut_component"
- android:visibility="gone" />
-
- </LinearLayout>
- </ScrollView>
-</FrameLayout>
\ No newline at end of file
diff --git a/res/layout/advanced_bt_entity_sub.xml b/res/layout/advanced_bt_entity_sub.xml
index 90ac456..dd8e43a 100644
--- a/res/layout/advanced_bt_entity_sub.xml
+++ b/res/layout/advanced_bt_entity_sub.xml
@@ -45,7 +45,7 @@
android:layout_gravity="center"
android:indeterminate="false"
app:trackColor="@android:color/transparent"
- app:indicatorColor="@color/bluetooth_battery_ring_indicator_color"
+ app:indicatorColor="@color/settingslib_materialColorPrimary"
app:trackThickness="4dp"
app:indicatorSize="76dp"
app:indicatorInset="0dp"
diff --git a/res/layout/audio_sharing_device_item.xml b/res/layout/audio_sharing_device_item.xml
index 04ecdd7..c1720e8 100644
--- a/res/layout/audio_sharing_device_item.xml
+++ b/res/layout/audio_sharing_device_item.xml
@@ -17,6 +17,7 @@
<FrameLayout
xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:androidprv="http://schemas.android.com/apk/prv/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
@@ -27,6 +28,7 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="4dp"
+ android:textColor="?androidprv:attr/textColorOnAccent"
android:background="@drawable/audio_sharing_rounded_bg_ripple"
android:textAlignment="center" />
diff --git a/res/layout/audio_sharing_password_dialog.xml b/res/layout/audio_sharing_password_dialog.xml
index f1a78bc..2bdf505 100644
--- a/res/layout/audio_sharing_password_dialog.xml
+++ b/res/layout/audio_sharing_password_dialog.xml
@@ -53,8 +53,8 @@
<CheckBox
android:id="@+id/audio_sharing_stream_password_checkbox"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
+ android:layout_width="48dp"
+ android:layout_height="48dp"
android:layout_marginTop="24dp"
android:layout_marginEnd="20dp" />
</LinearLayout>
diff --git a/res/layout/battery_tips_card.xml b/res/layout/battery_tips_card.xml
deleted file mode 100644
index 18c326f..0000000
--- a/res/layout/battery_tips_card.xml
+++ /dev/null
@@ -1,61 +0,0 @@
-<LinearLayout
- xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:app="http://schemas.android.com/apk/res-auto"
- android:id="@+id/battery_tips_card"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:layout_marginStart="?android:attr/listPreferredItemPaddingStart"
- android:layout_marginEnd="?android:attr/listPreferredItemPaddingEnd"
- android:background="@drawable/battery_tips_all_rounded_bg_ripple"
- android:orientation="vertical"
- android:padding="20dp">
-
- <ImageView
- android:id="@+id/icon"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_gravity="center_vertical|start"
- android:contentDescription="@string/battery_usage_anomaly_content_description"
- android:src="@drawable/ic_battery_tips_lightbulb" />
-
- <TextView
- android:id="@+id/title"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:layout_marginTop="8dp"
- android:textAlignment="viewStart"
- android:textAppearance="@style/TextAppearance.Material3.TitleMedium"
- android:textColor="@color/settingslib_materialColorOnSurface" />
-
- <LinearLayout
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:layout_marginTop="8dp"
- android:gravity="end"
- android:orientation="horizontal">
-
- <com.google.android.material.button.MaterialButton
- android:id="@+id/dismiss_button"
- style="@style/Widget.Material3.Button.TextButton"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_gravity="end|center_vertical"
- android:layout_marginEnd="8dp"
- android:paddingHorizontal="16dp"
- android:text="@string/battery_tips_card_dismiss_button"
- android:textAppearance="@style/TextAppearance.MaterialComponents.Subtitle2"
- android:textColor="@color/color_accent_selector" />
-
- <com.google.android.material.button.MaterialButton
- android:id="@+id/main_button"
- style="@style/Widget.Material3.Button"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_gravity="end|center_vertical"
- android:paddingHorizontal="16dp"
- android:text="@string/battery_tips_card_action_button"
- android:textAppearance="@style/TextAppearance.MaterialComponents.Subtitle2"
- android:textColor="@color/settingslib_materialColorOnPrimary"
- app:backgroundTint="@color/color_accent_selector" />
- </LinearLayout>
-</LinearLayout>
\ No newline at end of file
diff --git a/res/xml/bluetooth_audio_streams_qr_code.xml b/res/layout/bluetooth_audio_streams_qr_code.xml
similarity index 61%
rename from res/xml/bluetooth_audio_streams_qr_code.xml
rename to res/layout/bluetooth_audio_streams_qr_code.xml
index 5ec5505..ab61f50 100644
--- a/res/xml/bluetooth_audio_streams_qr_code.xml
+++ b/res/layout/bluetooth_audio_streams_qr_code.xml
@@ -15,7 +15,7 @@
~ limitations under the License.
-->
-<LinearLayout
+<androidx.core.widget.NestedScrollView
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
@@ -23,10 +23,9 @@
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
- android:clipToPadding="false"
android:paddingLeft="25dp"
android:paddingRight="25dp"
- android:gravity="center_horizontal"
+ android:gravity="center"
android:orientation="vertical">
<TextView
@@ -35,28 +34,24 @@
android:layout_height="wrap_content"
android:gravity="start"
android:textSize="15sp"
- android:textColor="?android:attr/textColorPrimary"/>
+ android:textColor="?android:attr/textColorPrimary" />
- <LinearLayout
- android:layout_width="match_parent"
+ <ImageView
+ android:id="@+id/qrcode_view"
+ android:layout_width="@dimen/qrcode_size"
+ android:layout_height="@dimen/qrcode_size"
+ android:contentDescription="@string/qr_code_content_description"
+ android:focusable="true"
+ android:paddingTop="70dp"/>
+
+ <TextView
+ android:id="@+id/password"
+ android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:gravity="center"
- android:orientation="vertical"
- android:paddingTop="70dp">
-
- <ImageView
- android:id="@+id/qrcode_view"
- android:layout_width="@dimen/qrcode_size"
- android:layout_height="@dimen/qrcode_size"/>
-
- <TextView
- android:id="@+id/password"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:textSize="15sp"
- android:textColor="?android:attr/textColorPrimary"/>
- </LinearLayout>
+ android:textSize="15sp"
+ android:textColor="?android:attr/textColorPrimary"
+ android:gravity="center" />
</LinearLayout>
-</LinearLayout>
\ No newline at end of file
+</androidx.core.widget.NestedScrollView>
\ No newline at end of file
diff --git a/res/layout/bluetooth_find_broadcast_password_dialog.xml b/res/layout/bluetooth_find_broadcast_password_dialog.xml
index 938f103..d758f61 100644
--- a/res/layout/bluetooth_find_broadcast_password_dialog.xml
+++ b/res/layout/bluetooth_find_broadcast_password_dialog.xml
@@ -26,7 +26,8 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:minHeight="48dp"
- android:textAlignment="viewStart"/>
+ android:textAlignment="viewStart"
+ android:textColor="?android:attr/textColorPrimary"/>
<EditText
android:id="@+id/broadcast_edit_text"
android:layout_width="match_parent"
@@ -34,11 +35,4 @@
android:maxLength="16"
android:minHeight="48dp"
android:textAlignment="viewStart"/>
- <TextView
- android:id="@+id/broadcast_error_message"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:layout_marginTop="6dp"
- style="@style/TextAppearance.ErrorText"
- android:visibility="invisible"/>
</LinearLayout>
\ No newline at end of file
diff --git a/res/layout/dialog_custom_body_audio_sharing.xml b/res/layout/dialog_custom_body_audio_sharing.xml
index 388a4941..ba7f643 100644
--- a/res/layout/dialog_custom_body_audio_sharing.xml
+++ b/res/layout/dialog_custom_body_audio_sharing.xml
@@ -15,57 +15,67 @@
~ limitations under the License.
-->
-<LinearLayout
+<ScrollView
xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:androidprv="http://schemas.android.com/apk/prv/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:orientation="vertical"
- android:paddingHorizontal="?android:dialogPreferredPadding"
- android:paddingBottom="?android:dialogPreferredPadding">
+ android:scrollbars="none">
- <TextView
- android:id="@+id/description_text"
- style="@style/DeviceAudioSharingText"
+ <LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:layout_gravity="center"
- android:paddingBottom="24dp"
- android:visibility="gone" />
+ android:orientation="vertical"
+ android:paddingBottom="?android:dialogPreferredPadding"
+ android:paddingHorizontal="?android:dialogPreferredPadding">
- <ImageView
- android:id="@+id/description_image"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_gravity="center"
- android:contentDescription="@null"
- android:visibility="gone" />
+ <TextView
+ android:id="@+id/description_text"
+ style="@style/DeviceAudioSharingText"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_gravity="center"
+ android:paddingBottom="24dp"
+ android:visibility="gone" />
- <androidx.recyclerview.widget.RecyclerView
- android:id="@+id/device_btn_list"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:layout_gravity="center"
- android:nestedScrollingEnabled="false"
- android:overScrollMode="never"
- android:visibility="gone" />
+ <ImageView
+ android:id="@+id/description_image"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_gravity="center"
+ android:contentDescription="@null"
+ android:paddingBottom="24dp"
+ android:visibility="gone" />
- <Button
- android:id="@+id/positive_btn"
- style="@style/SettingsLibActionButton"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:layout_gravity="center"
- android:layout_marginTop="4dp"
- android:background="@drawable/audio_sharing_rounded_bg_ripple"
- android:visibility="gone" />
+ <androidx.recyclerview.widget.RecyclerView
+ android:id="@+id/device_btn_list"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_gravity="center"
+ android:nestedScrollingEnabled="false"
+ android:overScrollMode="never"
+ android:visibility="gone" />
- <Button
- android:id="@+id/negative_btn"
- style="@style/SettingsLibActionButton"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:layout_gravity="center"
- android:layout_marginTop="4dp"
- android:background="@drawable/audio_sharing_rounded_bg_ripple"
- android:visibility="gone" />
-</LinearLayout>
\ No newline at end of file
+ <Button
+ android:id="@+id/positive_btn"
+ style="@style/SettingsLibActionButton"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_gravity="center"
+ android:layout_marginTop="4dp"
+ android:textColor="?androidprv:attr/textColorOnAccent"
+ android:background="@drawable/audio_sharing_rounded_bg_ripple"
+ android:visibility="gone" />
+
+ <Button
+ android:id="@+id/negative_btn"
+ style="@style/SettingsLibActionButton"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_gravity="center"
+ android:layout_marginTop="4dp"
+ android:textColor="?androidprv:attr/textColorOnAccent"
+ android:background="@drawable/audio_sharing_rounded_bg_ripple"
+ android:visibility="gone" />
+ </LinearLayout>
+</ScrollView>
\ No newline at end of file
diff --git a/res/layout/enable_accessibility_service_dialog_content.xml b/res/layout/enable_accessibility_service_dialog_content.xml
deleted file mode 100644
index 96989bb..0000000
--- a/res/layout/enable_accessibility_service_dialog_content.xml
+++ /dev/null
@@ -1,137 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2013 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-
-<ScrollView
- xmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- android:textDirection="locale"
- android:scrollbarStyle="outsideOverlay"
- android:gravity="top">
-
- <LinearLayout
- android:accessibilityDataSensitive="yes"
- style="@style/AccessibilityDialog">
-
- <LinearLayout
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:orientation="vertical"
- android:gravity="center_horizontal"
- android:paddingLeft="24dp"
- android:paddingRight="24dp">
-
- <ImageView
- android:id="@+id/permissionDialog_icon"
- style="@style/AccessibilityDialogServiceIcon" />
-
- <TextView
- android:id="@+id/permissionDialog_title"
- style="@style/AccessibilityDialogTitle" />
-
- <TextView
- android:id="@+id/permissionDialog_description"
- android:text="@string/accessibility_service_warning_description"
- style="@style/AccessibilityDialogDescription" />
-
- <LinearLayout
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:orientation="horizontal"
- android:layout_marginBottom="24dp" >
-
- <ImageView
- android:id="@+id/controlScreen_icon"
- android:src="@drawable/ic_visibility_18dp"
- style="@style/AccessibilityDialogIcon" />
-
- <LinearLayout
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:orientation="vertical" >
-
- <TextView
- android:id="@+id/controlScreen_title"
- android:text="@string/accessibility_service_screen_control_title"
- style="@style/AccessibilityDialogPermissionTitle" />
-
- <TextView
- android:id="@+id/controlScreen_description"
- android:text="@string/accessibility_service_screen_control_description"
- style="@style/AccessibilityDialogPermissionDescription" />
-
- </LinearLayout>
-
- </LinearLayout>
-
- <LinearLayout
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:orientation="horizontal"
- android:layout_marginBottom="24dp" >
-
- <ImageView
- android:id="@+id/performAction_icon"
- android:src="@drawable/ic_pan_tool_18dp"
- style="@style/AccessibilityDialogIcon" />
-
- <LinearLayout
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:orientation="vertical" >
-
- <TextView
- android:id="@+id/performAction_title"
- android:text="@string/accessibility_service_action_perform_title"
- style="@style/AccessibilityDialogPermissionTitle" />
-
- <TextView
- android:id="@+id/performAction_description"
- android:text="@string/accessibility_service_action_perform_description"
- style="@style/AccessibilityDialogPermissionDescription" />
-
- </LinearLayout>
-
- </LinearLayout>
-
- </LinearLayout>
-
- <!-- Buttons on bottom of dialog -->
- <LinearLayout
- style="@style/AccessibilityDialogButtonList">
-
- <Space
- style="@style/AccessibilityDialogButtonBarSpace"/>
-
- <Button
- android:id="@+id/permission_enable_allow_button"
- android:text="@string/accessibility_dialog_button_allow"
- style="@style/AccessibilityDialogButton" />
-
- <Button
- android:id="@+id/permission_enable_deny_button"
- android:text="@string/accessibility_dialog_button_deny"
- style="@style/AccessibilityDialogButton" />
-
- <Button
- android:id="@+id/permission_enable_uninstall_button"
- android:text="@string/uninstall_text"
- android:visibility="gone"
- style="@style/AccessibilityDialogButton" />
- </LinearLayout>
- </LinearLayout>
-
-</ScrollView>
diff --git a/res/layout/mode_interstitial_layout.xml b/res/layout/mode_interstitial_layout.xml
new file mode 100644
index 0000000..d0f80a7
--- /dev/null
+++ b/res/layout/mode_interstitial_layout.xml
@@ -0,0 +1,96 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ ~ Copyright (C) 2024 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License.
+ -->
+<LinearLayout
+ android:id="@+id/interstitial_page"
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:app="http://schemas.android.com/apk/res-auto"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:fitsSystemWindows="true"
+ android:transitionGroup="true"
+ android:orientation="vertical">
+
+ <Toolbar
+ android:id="@+id/action_bar"
+ style="?android:attr/actionBarStyle"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:theme="?android:attr/actionBarTheme"
+ android:elevation="0dp"
+ android:background="@android:color/transparent" />
+
+ <androidx.constraintlayout.widget.ConstraintLayout
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:paddingTop="12dp"
+ android:paddingBottom="64dp"
+ android:paddingLeft="24dp"
+ android:paddingRight="24dp"
+ android:orientation="vertical">
+
+ <!-- image goes here -->
+ <FrameLayout
+ android:id="@+id/image_frame"
+ android:layout_width="match_parent"
+ android:layout_height="0dp"
+ app:layout_constraintBottom_toTopOf="@+id/mode_name_title"
+ app:layout_constraintTop_toTopOf="parent">
+
+ <ImageView
+ android:id="@+id/image"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:adjustViewBounds="true"
+ android:clickable="false"
+ android:scaleType="centerCrop"
+ android:layout_gravity="center" />
+
+ </FrameLayout>
+
+ <TextView
+ android:id="@+id/mode_name_title"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:clickable="false"
+ android:textAppearance="@*android:style/TextAppearance.DeviceDefault.Title"
+ app:layout_constraintBottom_toTopOf="@+id/mode_name_subtitle"
+ android:textSize="36sp"
+ android:paddingVertical="12dp" />
+
+ <TextView
+ android:id="@+id/mode_name_subtitle"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:clickable="false"
+ android:text="@string/zen_mode_setup_page_summary"
+ android:textSize="18sp"
+ android:paddingBottom="12dp"
+ android:textAppearance="@*android:style/TextAppearance.DeviceDefault.Body1"
+ app:layout_constraintBottom_toTopOf="@+id/enable_mode_button" />
+
+ <Button
+ android:id="@+id/enable_mode_button"
+ style="@style/ActionPrimaryButton"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:paddingVertical="12dp"
+ app:layout_constraintBottom_toBottomOf="parent"
+ app:layout_constraintVertical_bias="1" />
+
+ </androidx.constraintlayout.widget.ConstraintLayout>
+
+</LinearLayout>
\ No newline at end of file
diff --git a/res/layout/modes_activation_button.xml b/res/layout/modes_activation_button.xml
index e8ed824..1441844 100644
--- a/res/layout/modes_activation_button.xml
+++ b/res/layout/modes_activation_button.xml
@@ -18,7 +18,8 @@
<FrameLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
- android:layout_height="wrap_content">
+ android:layout_height="wrap_content"
+ android:paddingVertical="8dp">
<Button
android:id="@+id/activate_mode"
diff --git a/res/layout/modes_set_schedule_layout.xml b/res/layout/modes_set_schedule_layout.xml
index ebb349e..d53e2e4 100644
--- a/res/layout/modes_set_schedule_layout.xml
+++ b/res/layout/modes_set_schedule_layout.xml
@@ -48,7 +48,8 @@
app:layout_constrainedWidth="true"
app:layout_constraintHorizontal_bias="0"
android:textAppearance="@*android:style/TextAppearance.DeviceDefault.Medium"
- android:text="@string/zen_mode_start_time" />
+ android:text="@string/zen_mode_start_time"
+ android:importantForAccessibility="no" />
<!-- Start time display + setter -->
<TextView
@@ -85,7 +86,8 @@
app:layout_constrainedWidth="true"
app:layout_constraintHorizontal_bias="0"
android:textAppearance="@*android:style/TextAppearance.DeviceDefault.Medium"
- android:text="@string/zen_mode_end_time" />
+ android:text="@string/zen_mode_end_time"
+ android:importantForAccessibility="no" />
<!-- End time setter; right-aligned -->
<TextView
diff --git a/res/layout/preference_background.xml b/res/layout/preference_background.xml
index 129076a..51718b8 100644
--- a/res/layout/preference_background.xml
+++ b/res/layout/preference_background.xml
@@ -17,6 +17,7 @@
-->
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:androidprv="http://schemas.android.com/apk/prv/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_height="wrap_content"
android:layout_width="match_parent"
@@ -64,7 +65,7 @@
android:layout_height="wrap_content"
android:singleLine="true"
android:textAppearance="?android:attr/textAppearanceListItem"
- android:textColor="?android:attr/textColorPrimary"
+ android:textColor="?androidprv:attr/materialColorOnPrimaryContainer"
android:ellipsize="marquee"
android:fadingEdge="horizontal"
android:hyphenationFrequency="normalFast"
@@ -77,7 +78,7 @@
android:layout_alignStart="@android:id/title"
android:layout_alignLeft="@android:id/title"
android:textAppearance="?android:attr/textAppearanceSmall"
- android:textColor="?android:attr/textColorSecondary"
+ android:textColor="?androidprv:attr/materialColorOnPrimaryContainer"
android:hyphenationFrequency="normalFast"
android:lineBreakWordStyle="phrase"
android:maxLines="4"
diff --git a/res/layout/preference_circular_icons.xml b/res/layout/preference_circular_icons.xml
new file mode 100644
index 0000000..ae981b2
--- /dev/null
+++ b/res/layout/preference_circular_icons.xml
@@ -0,0 +1,84 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2024 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+<!-- Based off preference_two_target.xml, with the added LinearLayout for the icons. -->
+<LinearLayout
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:minHeight="?android:attr/listPreferredItemHeightSmall"
+ android:gravity="center_vertical"
+ android:background="?android:attr/selectableItemBackground"
+ android:paddingStart="?android:attr/listPreferredItemPaddingStart"
+ android:paddingEnd="?android:attr/listPreferredItemPaddingEnd"
+ android:clipToPadding="false">
+
+ <include layout="@layout/settingslib_icon_frame"/>
+
+ <RelativeLayout
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_weight="1"
+ android:paddingTop="16dp"
+ android:paddingBottom="16dp">
+
+ <TextView
+ android:id="@android:id/title"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:maxLines="2"
+ android:hyphenationFrequency="normalFast"
+ android:lineBreakWordStyle="phrase"
+ android:textAppearance="?android:attr/textAppearanceListItem"
+ android:ellipsize="marquee"/>
+
+ <TextView
+ android:id="@android:id/summary"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_below="@android:id/title"
+ android:layout_alignStart="@android:id/title"
+ android:textAppearance="?android:attr/textAppearanceListItemSecondary"
+ android:textColor="?android:attr/textColorSecondary"
+ android:hyphenationFrequency="normalFast"
+ android:lineBreakWordStyle="phrase"
+ android:maxLines="10"/>
+
+ <!-- Circular icons (32dp) will be ImageViews under this LinearLayout -->
+ <LinearLayout
+ android:id="@+id/circles_container"
+ android:orientation="horizontal"
+ android:gravity="center_vertical"
+ android:layout_width="match_parent"
+ android:layout_height="48dp"
+ android:layout_below="@android:id/summary"
+ android:layout_alignStart="@android:id/title" />
+
+ </RelativeLayout>
+
+ <include layout="@layout/preference_two_target_divider" />
+
+ <!-- Preference should place its actual preference widget here. -->
+ <LinearLayout
+ android:id="@android:id/widget_frame"
+ android:layout_width="wrap_content"
+ android:layout_height="match_parent"
+ android:minWidth="@dimen/two_target_min_width"
+ android:gravity="center"
+ android:orientation="vertical" />
+
+</LinearLayout>
diff --git a/res/layout/preference_circular_icons_item.xml b/res/layout/preference_circular_icons_item.xml
new file mode 100644
index 0000000..e5656ce
--- /dev/null
+++ b/res/layout/preference_circular_icons_item.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2024 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+<ImageView
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_width="@dimen/zen_mode_circular_icon_diameter"
+ android:layout_height="@dimen/zen_mode_circular_icon_diameter"
+ android:layout_marginTop="@dimen/zen_mode_circular_icon_margin_vertical"
+ android:layout_marginBottom="@dimen/zen_mode_circular_icon_margin_vertical"
+ android:layout_marginEnd="@dimen/zen_mode_circular_icon_margin_between" />
\ No newline at end of file
diff --git a/res/layout/preference_circular_icons_plus_item.xml b/res/layout/preference_circular_icons_plus_item.xml
new file mode 100644
index 0000000..9882086
--- /dev/null
+++ b/res/layout/preference_circular_icons_plus_item.xml
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2024 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+<TextView
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:androidprv="http://schemas.android.com/apk/prv/res/android"
+ android:layout_width="@dimen/zen_mode_circular_icon_diameter"
+ android:layout_height="@dimen/zen_mode_circular_icon_diameter"
+ android:layout_marginTop="@dimen/zen_mode_circular_icon_margin_vertical"
+ android:layout_marginBottom="@dimen/zen_mode_circular_icon_margin_vertical"
+ android:gravity="center"
+ android:padding="4dp"
+ android:drawablePadding="0dp"
+ android:background="@drawable/preference_circular_icons_plus_item_background"
+ android:textColor="?androidprv:attr/materialColorOnSecondaryContainer"
+ android:maxLines="1"
+ android:autoSizeTextType="uniform"
+ android:autoSizeMinTextSize="6sp" />
\ No newline at end of file
diff --git a/res/layout/preference_widget_arrow.xml b/res/layout/preference_widget_arrow.xml
index e7a3f82..f36f693 100644
--- a/res/layout/preference_widget_arrow.xml
+++ b/res/layout/preference_widget_arrow.xml
@@ -17,10 +17,11 @@
<ImageView
xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:androidprv="http://schemas.android.com/apk/prv/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center_vertical"
android:contentDescription="@null"
android:scaleType="center"
- android:tint="?android:attr/textColorPrimary"
+ android:tint="?androidprv:attr/materialColorOnPrimaryContainer"
android:src="@drawable/ic_arrow_forward" />
\ No newline at end of file
diff --git a/res/layout/qrcode_scanner_fragment.xml b/res/layout/qrcode_scanner_fragment.xml
index 4f748c5..1526cf8 100644
--- a/res/layout/qrcode_scanner_fragment.xml
+++ b/res/layout/qrcode_scanner_fragment.xml
@@ -15,67 +15,41 @@
limitations under the License.
-->
-<LinearLayout
+<androidx.core.widget.NestedScrollView
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:orientation="vertical">
+ android:layout_height="wrap_content">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:layout_weight="3"
- android:layout_marginBottom="55dp">
- <LinearLayout
+ android:orientation="vertical"
+ android:gravity="center"
+ android:layout_margin="20dp">
+
+ <TextView
+ android:id="@android:id/summary"
+ style="@style/QrCodeScanner"
+ android:gravity="center"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:paddingStart="40dp"
- android:paddingEnd="40dp"
- android:layout_gravity="bottom"
- android:gravity="center"
- android:orientation="vertical">
- <TextView
- android:id="@android:id/summary"
- style="@style/QrCodeScanner"
- android:gravity="center"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:layout_marginTop="20dp"/>
- </LinearLayout>
- </LinearLayout>
+ android:layout_margin="40dp" />
- <LinearLayout
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:layout_weight="7"
- android:orientation="vertical">
-
- <FrameLayout
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_gravity="top"
- android:gravity="center"
- android:clipChildren="true">
- <TextureView
- android:id="@+id/preview_view"
- android:layout_marginStart="@dimen/qrcode_preview_margin"
- android:layout_marginEnd="@dimen/qrcode_preview_margin"
- android:layout_width="match_parent"
- android:layout_height="@dimen/qrcode_preview_size"/>
- </FrameLayout>
+ <TextureView
+ android:id="@+id/preview_view"
+ android:layout_width="@dimen/audio_streams_qrcode_preview_size"
+ android:layout_height="@dimen/audio_streams_qrcode_preview_size"
+ android:contentDescription="@string/audio_streams_qr_code_scanner_label"
+ android:focusable="true" />
<TextView
android:id="@+id/error_message"
style="@style/TextAppearance.ErrorText"
- android:layout_width="wrap_content"
+ android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:layout_marginTop="16dp"
android:gravity="center"
- android:layout_gravity="center"
- android:visibility="invisible"/>
-
+ android:visibility="gone"/>
</LinearLayout>
-
-</LinearLayout>
+</androidx.core.widget.NestedScrollView>
diff --git a/res/layout/search_bar_unified_version.xml b/res/layout/search_bar_unified_version.xml
index dbcf266..14f46ec 100644
--- a/res/layout/search_bar_unified_version.xml
+++ b/res/layout/search_bar_unified_version.xml
@@ -30,6 +30,7 @@
android:orientation="horizontal"
android:paddingStart="24dp"
android:paddingEnd="24dp"
+ android:focusedByDefault="true"
android:background="@drawable/search_bar_selected_background">
<ImageView
diff --git a/res/navigation/privatespace_main_context_nav.xml b/res/navigation/privatespace_main_context_nav.xml
index 3eb57d3..e20eaff 100644
--- a/res/navigation/privatespace_main_context_nav.xml
+++ b/res/navigation/privatespace_main_context_nav.xml
@@ -35,6 +35,9 @@
<action
android:id="@+id/action_set_lock_fragment"
app:destination="@id/ps_profile_lock_fragment"/>
+ <action
+ android:id="@+id/action_create_profile_error_restrict"
+ app:destination="@id/ps_profile_error_restricted_fragment"/>
</fragment>
<fragment android:id="@+id/ps_profile_error_fragment"
android:name="com.android.settings.privatespace.PrivateProfileCreationError"
@@ -67,6 +70,9 @@
android:id="@+id/action_lock_success_fragment"
app:destination="@id/ps_pre_finish_delay_fragment"/>
</fragment>
+ <fragment android:id="@+id/ps_profile_error_restricted_fragment"
+ android:name="com.android.settings.privatespace.PrivateProfileCreationRestrictedError"
+ android:label="fragment_ps_error_exit"/>
<action android:id="@+id/action_pre_finish_delay_fragment"
app:destination="@id/ps_pre_finish_delay_fragment"/>
<action android:id="@+id/action_advance_login_error"
diff --git a/res/raw/accessibility_shortcut_type_triple_tap.json b/res/raw/accessibility_shortcut_type_triple_tap.json
deleted file mode 100644
index 870e671..0000000
--- a/res/raw/accessibility_shortcut_type_triple_tap.json
+++ /dev/null
@@ -1,1959 +0,0 @@
-{
- "v": "5.6.5",
- "fr": 60,
- "ip": 0,
- "op": 180,
- "w": 412,
- "h": 300,
- "nm": "Triple_Tap_Screen",
- "ddd": 0,
- "assets": [
- {
- "id": "comp_0",
- "layers": [
- {
- "ddd": 0,
- "ind": 1,
- "ty": 4,
- "nm": ".white",
- "cl": "white",
- "hd": true,
- "sr": 1,
- "ks": {
- "o": {
- "a": 0,
- "k": 100,
- "ix": 11
- },
- "r": {
- "a": 0,
- "k": 0,
- "ix": 10
- },
- "p": {
- "a": 0,
- "k": [
- 206,
- 150,
- 0
- ],
- "ix": 2
- },
- "a": {
- "a": 0,
- "k": [
- 0,
- 0,
- 0
- ],
- "ix": 1
- },
- "s": {
- "a": 0,
- "k": [
- 100,
- 100,
- 100
- ],
- "ix": 6
- }
- },
- "ao": 0,
- "shapes": [
- {
- "ty": "gr",
- "it": [
- {
- "ind": 0,
- "ty": "sh",
- "ix": 1,
- "ks": {
- "a": 0,
- "k": {
- "i": [
- [
- 15.4,
- 0
- ],
- [
- 0,
- 0
- ],
- [
- 0,
- 15.4
- ],
- [
- 0,
- 0
- ],
- [
- -15.4,
- 0
- ],
- [
- 0,
- 0
- ],
- [
- 0,
- -15.4
- ],
- [
- 0,
- 0
- ]
- ],
- "o": [
- [
- 0,
- 0
- ],
- [
- -15.4,
- 0
- ],
- [
- 0,
- 0
- ],
- [
- 0,
- -15.4
- ],
- [
- 0,
- 0
- ],
- [
- 15.4,
- 0
- ],
- [
- 0,
- 0
- ],
- [
- 0,
- 15.4
- ]
- ],
- "v": [
- [
- 178,
- 150
- ],
- [
- -178,
- 150
- ],
- [
- -206,
- 122
- ],
- [
- -206,
- -122
- ],
- [
- -178,
- -150
- ],
- [
- 178,
- -150
- ],
- [
- 206,
- -122
- ],
- [
- 206,
- 122
- ]
- ],
- "c": true
- },
- "ix": 2
- },
- "nm": "Path 1",
- "mn": "ADBE Vector Shape - Group",
- "hd": false
- },
- {
- "ty": "fl",
- "c": {
- "a": 0,
- "k": [
- 1,
- 1,
- 1,
- 1
- ],
- "ix": 4
- },
- "o": {
- "a": 0,
- "k": 100,
- "ix": 5
- },
- "r": 1,
- "bm": 0,
- "nm": "Fill 1",
- "mn": "ADBE Vector Graphic - Fill",
- "hd": false
- },
- {
- "ty": "tr",
- "p": {
- "a": 0,
- "k": [
- 0,
- 0
- ],
- "ix": 2
- },
- "a": {
- "a": 0,
- "k": [
- 0,
- 0
- ],
- "ix": 1
- },
- "s": {
- "a": 0,
- "k": [
- 100,
- 100
- ],
- "ix": 3
- },
- "r": {
- "a": 0,
- "k": 0,
- "ix": 6
- },
- "o": {
- "a": 0,
- "k": 100,
- "ix": 7
- },
- "sk": {
- "a": 0,
- "k": 0,
- "ix": 4
- },
- "sa": {
- "a": 0,
- "k": 0,
- "ix": 5
- },
- "nm": "Transform"
- }
- ],
- "nm": "Group 1",
- "np": 2,
- "cix": 2,
- "bm": 0,
- "ix": 1,
- "mn": "ADBE Vector Group",
- "hd": false
- }
- ],
- "ip": 0,
- "op": 1800,
- "st": 0,
- "bm": 0
- }
- ]
- }
- ],
- "layers": [
- {
- "ddd": 0,
- "ind": 1,
- "ty": 4,
- "nm": ".grey200",
- "cl": "grey200",
- "sr": 1,
- "ks": {
- "o": {
- "a": 0,
- "k": 100,
- "ix": 11
- },
- "r": {
- "a": 0,
- "k": 0,
- "ix": 10
- },
- "p": {
- "a": 0,
- "k": [
- 206,
- 150,
- 0
- ],
- "ix": 2
- },
- "a": {
- "a": 0,
- "k": [
- 1.35,
- 0,
- 0
- ],
- "ix": 1
- },
- "s": {
- "a": 0,
- "k": [
- 100,
- 100,
- 100
- ],
- "ix": 6
- }
- },
- "ao": 0,
- "shapes": [
- {
- "ty": "gr",
- "it": [
- {
- "ind": 0,
- "ty": "sh",
- "ix": 1,
- "ks": {
- "a": 0,
- "k": {
- "i": [
- [
- 0,
- 0
- ],
- [
- 0,
- -73.4
- ],
- [
- -73.4,
- 0
- ],
- [
- 0,
- 73.4
- ],
- [
- 73.4,
- 0
- ]
- ],
- "o": [
- [
- -73.4,
- 0
- ],
- [
- 0,
- 73.4
- ],
- [
- 73.4,
- 0
- ],
- [
- 0,
- -73.4
- ],
- [
- 0,
- 0
- ]
- ],
- "v": [
- [
- 1.4,
- -132.9
- ],
- [
- -131.6,
- 0
- ],
- [
- 1.3,
- 132.9
- ],
- [
- 134.3,
- 0
- ],
- [
- 1.4,
- -132.9
- ]
- ],
- "c": true
- },
- "ix": 2
- },
- "nm": "Path 1",
- "mn": "ADBE Vector Shape - Group",
- "hd": false
- },
- {
- "ind": 1,
- "ty": "sh",
- "ix": 2,
- "ks": {
- "a": 0,
- "k": {
- "i": [
- [
- 0,
- 0
- ],
- [
- -24.7,
- -24.8
- ],
- [
- 0,
- -35
- ],
- [
- 24.8,
- -24.7
- ],
- [
- 35,
- 0
- ],
- [
- 24.7,
- 24.8
- ],
- [
- 0,
- 35
- ],
- [
- -24.8,
- 24.7
- ],
- [
- -35,
- 0
- ]
- ],
- "o": [
- [
- 35,
- 0
- ],
- [
- 24.7,
- 24.7
- ],
- [
- 0,
- 35
- ],
- [
- -24.7,
- 24.7
- ],
- [
- -35,
- 0
- ],
- [
- -24.7,
- -24.8
- ],
- [
- 0,
- -35
- ],
- [
- 24.7,
- -24.7
- ],
- [
- 0,
- 0
- ]
- ],
- "v": [
- [
- 1.4,
- -130.9
- ],
- [
- 94,
- -92.5
- ],
- [
- 132.4,
- 0.1
- ],
- [
- 94,
- 92.7
- ],
- [
- 1.4,
- 131.1
- ],
- [
- -91.2,
- 92.7
- ],
- [
- -129.6,
- 0
- ],
- [
- -91.2,
- -92.6
- ],
- [
- 1.4,
- -130.9
- ]
- ],
- "c": false
- },
- "ix": 2
- },
- "nm": "Path 2",
- "mn": "ADBE Vector Shape - Group",
- "hd": false
- },
- {
- "ty": "fl",
- "c": {
- "a": 0,
- "k": [
- 0.909803926945,
- 0.917647063732,
- 0.929411768913,
- 1
- ],
- "ix": 4
- },
- "o": {
- "a": 0,
- "k": 100,
- "ix": 5
- },
- "r": 1,
- "bm": 0,
- "nm": "Fill 1",
- "mn": "ADBE Vector Graphic - Fill",
- "hd": false
- },
- {
- "ty": "tr",
- "p": {
- "a": 0,
- "k": [
- 0,
- 0
- ],
- "ix": 2
- },
- "a": {
- "a": 0,
- "k": [
- 0,
- 0
- ],
- "ix": 1
- },
- "s": {
- "a": 0,
- "k": [
- 100,
- 100
- ],
- "ix": 3
- },
- "r": {
- "a": 0,
- "k": 0,
- "ix": 6
- },
- "o": {
- "a": 0,
- "k": 100,
- "ix": 7
- },
- "sk": {
- "a": 0,
- "k": 0,
- "ix": 4
- },
- "sa": {
- "a": 0,
- "k": 0,
- "ix": 5
- },
- "nm": "Transform"
- }
- ],
- "nm": "Group 1",
- "np": 3,
- "cix": 2,
- "bm": 0,
- "ix": 1,
- "mn": "ADBE Vector Group",
- "hd": false
- }
- ],
- "ip": 0,
- "op": 300,
- "st": 0,
- "bm": 0
- },
- {
- "ddd": 0,
- "ind": 2,
- "ty": 4,
- "nm": ".grey300",
- "cl": "grey300",
- "sr": 1,
- "ks": {
- "o": {
- "a": 0,
- "k": 100,
- "ix": 11
- },
- "r": {
- "a": 0,
- "k": 0,
- "ix": 10
- },
- "p": {
- "a": 0,
- "k": [
- 205,
- 150,
- 0
- ],
- "ix": 2
- },
- "a": {
- "a": 0,
- "k": [
- 0,
- 0,
- 0
- ],
- "ix": 1
- },
- "s": {
- "a": 0,
- "k": [
- 100,
- 100,
- 100
- ],
- "ix": 6
- }
- },
- "ao": 0,
- "shapes": [
- {
- "ty": "gr",
- "it": [
- {
- "ty": "gr",
- "it": [
- {
- "ind": 0,
- "ty": "sh",
- "ix": 1,
- "ks": {
- "a": 0,
- "k": {
- "i": [
- [
- -7.9,
- 0
- ],
- [
- 0,
- 0
- ],
- [
- 0,
- 8
- ],
- [
- 0,
- 0
- ],
- [
- 0,
- 1.6
- ],
- [
- 0,
- 0
- ],
- [
- 2,
- 1.5
- ],
- [
- 0,
- 0
- ],
- [
- 6.4,
- 0
- ],
- [
- 0,
- 0
- ],
- [
- 0,
- 6.4
- ],
- [
- 0,
- 0
- ],
- [
- 1,
- -0.7
- ],
- [
- 0,
- 0
- ]
- ],
- "o": [
- [
- 0,
- 0
- ],
- [
- 8,
- 0
- ],
- [
- 0,
- 0
- ],
- [
- 1.6,
- 0
- ],
- [
- 0,
- 0
- ],
- [
- -1.9,
- -1.6
- ],
- [
- 0,
- 0
- ],
- [
- 0,
- 6.4
- ],
- [
- 0,
- 0
- ],
- [
- -6.4,
- 0
- ],
- [
- 0,
- 0
- ],
- [
- -1,
- 0.7
- ],
- [
- 0,
- 0
- ],
- [
- 0.1,
- 7.9
- ]
- ],
- "v": [
- [
- -64,
- 75.3
- ],
- [
- 69.1,
- 75.3
- ],
- [
- 83.6,
- 60.8
- ],
- [
- 83.6,
- -81
- ],
- [
- 86.5,
- -83.9
- ],
- [
- 86.5,
- -100.9
- ],
- [
- 80.7,
- -105.6
- ],
- [
- 80.7,
- 60.8
- ],
- [
- 69.1,
- 72.4
- ],
- [
- -64,
- 72.4
- ],
- [
- -75.6,
- 60.8
- ],
- [
- -75.6,
- -107.3
- ],
- [
- -78.5,
- -105.2
- ],
- [
- -78.5,
- 60.9
- ]
- ],
- "c": true
- },
- "ix": 2
- },
- "nm": "Path 1",
- "mn": "ADBE Vector Shape - Group",
- "hd": false
- },
- {
- "ty": "fl",
- "c": {
- "a": 0,
- "k": [
- 0.854901969433,
- 0.86274510622,
- 0.878431379795,
- 1
- ],
- "ix": 4
- },
- "o": {
- "a": 0,
- "k": 100,
- "ix": 5
- },
- "r": 1,
- "bm": 0,
- "nm": "Fill 1",
- "mn": "ADBE Vector Graphic - Fill",
- "hd": false
- },
- {
- "ty": "tr",
- "p": {
- "a": 0,
- "k": [
- 0,
- 0
- ],
- "ix": 2
- },
- "a": {
- "a": 0,
- "k": [
- 0,
- 0
- ],
- "ix": 1
- },
- "s": {
- "a": 0,
- "k": [
- 100,
- 100
- ],
- "ix": 3
- },
- "r": {
- "a": 0,
- "k": 0,
- "ix": 6
- },
- "o": {
- "a": 0,
- "k": 100,
- "ix": 7
- },
- "sk": {
- "a": 0,
- "k": 0,
- "ix": 4
- },
- "sa": {
- "a": 0,
- "k": 0,
- "ix": 5
- },
- "nm": "Transform"
- }
- ],
- "nm": "Group 1",
- "np": 2,
- "cix": 2,
- "bm": 0,
- "ix": 1,
- "mn": "ADBE Vector Group",
- "hd": false
- },
- {
- "ty": "tr",
- "p": {
- "a": 0,
- "k": [
- 0,
- 0
- ],
- "ix": 2
- },
- "a": {
- "a": 0,
- "k": [
- 0,
- 0
- ],
- "ix": 1
- },
- "s": {
- "a": 0,
- "k": [
- 100,
- 100
- ],
- "ix": 3
- },
- "r": {
- "a": 0,
- "k": 0,
- "ix": 6
- },
- "o": {
- "a": 0,
- "k": 100,
- "ix": 7
- },
- "sk": {
- "a": 0,
- "k": 0,
- "ix": 4
- },
- "sa": {
- "a": 0,
- "k": 0,
- "ix": 5
- },
- "nm": "Transform"
- }
- ],
- "nm": "Group 1",
- "np": 1,
- "cix": 2,
- "bm": 0,
- "ix": 1,
- "mn": "ADBE Vector Group",
- "hd": false
- }
- ],
- "ip": 0,
- "op": 300,
- "st": 0,
- "bm": 0
- },
- {
- "ddd": 0,
- "ind": 3,
- "ty": 4,
- "nm": "cursor 5",
- "sr": 1,
- "ks": {
- "o": {
- "a": 1,
- "k": [
- {
- "i": {
- "x": [
- 0.833
- ],
- "y": [
- 0.833
- ]
- },
- "o": {
- "x": [
- 0.167
- ],
- "y": [
- 0.167
- ]
- },
- "t": 36,
- "s": [
- 0
- ]
- },
- {
- "i": {
- "x": [
- 0.833
- ],
- "y": [
- 0.833
- ]
- },
- "o": {
- "x": [
- 0.167
- ],
- "y": [
- 0.167
- ]
- },
- "t": 39.582,
- "s": [
- 100
- ]
- },
- {
- "i": {
- "x": [
- 0.833
- ],
- "y": [
- 0.833
- ]
- },
- "o": {
- "x": [
- 0.167
- ],
- "y": [
- 0.167
- ]
- },
- "t": 44.953,
- "s": [
- 100
- ]
- },
- {
- "t": 55.697265625,
- "s": [
- 0
- ]
- }
- ],
- "ix": 11
- },
- "r": {
- "a": 0,
- "k": 0,
- "ix": 10
- },
- "p": {
- "a": 0,
- "k": [
- 207.641,
- 154.48,
- 0
- ],
- "ix": 2
- },
- "a": {
- "a": 0,
- "k": [
- -180.5,
- -165.5,
- 0
- ],
- "ix": 1
- },
- "s": {
- "a": 1,
- "k": [
- {
- "i": {
- "x": [
- 0,
- 0,
- 0
- ],
- "y": [
- 1,
- 1,
- 1
- ]
- },
- "o": {
- "x": [
- 0.45,
- 0.45,
- 0.45
- ],
- "y": [
- 0,
- 0,
- 0
- ]
- },
- "t": 37.791,
- "s": [
- 27.252,
- 27.252,
- 100
- ]
- },
- {
- "t": 59,
- "s": [
- 56.661,
- 56.661,
- 100
- ]
- }
- ],
- "ix": 6
- }
- },
- "ao": 0,
- "shapes": [
- {
- "ty": "gr",
- "it": [
- {
- "d": 1,
- "ty": "el",
- "s": {
- "a": 0,
- "k": [
- 63.109,
- 63.109
- ],
- "ix": 2
- },
- "p": {
- "a": 0,
- "k": [
- 0,
- 0
- ],
- "ix": 3
- },
- "nm": "Ellipse Path 1",
- "mn": "ADBE Vector Shape - Ellipse",
- "hd": false
- },
- {
- "ty": "st",
- "c": {
- "a": 0,
- "k": [
- 1,
- 0.182245725744,
- 0.894323072246,
- 1
- ],
- "ix": 3
- },
- "o": {
- "a": 0,
- "k": 100,
- "ix": 4
- },
- "w": {
- "a": 0,
- "k": 3,
- "ix": 5
- },
- "lc": 1,
- "lj": 1,
- "ml": 4,
- "bm": 0,
- "nm": "Stroke 1",
- "mn": "ADBE Vector Graphic - Stroke",
- "hd": false
- },
- {
- "ty": "fl",
- "c": {
- "a": 0,
- "k": [
- 1,
- 0.522196631338,
- 0.9762855081,
- 1
- ],
- "ix": 4
- },
- "o": {
- "a": 0,
- "k": 50,
- "ix": 5
- },
- "r": 1,
- "bm": 0,
- "nm": "Fill 1",
- "mn": "ADBE Vector Graphic - Fill",
- "hd": false
- },
- {
- "ty": "tr",
- "p": {
- "a": 0,
- "k": [
- -180.5,
- -165.5
- ],
- "ix": 2
- },
- "a": {
- "a": 0,
- "k": [
- 0,
- 0
- ],
- "ix": 1
- },
- "s": {
- "a": 0,
- "k": [
- 100,
- 100
- ],
- "ix": 3
- },
- "r": {
- "a": 0,
- "k": 0,
- "ix": 6
- },
- "o": {
- "a": 0,
- "k": 100,
- "ix": 7
- },
- "sk": {
- "a": 0,
- "k": 0,
- "ix": 4
- },
- "sa": {
- "a": 0,
- "k": 0,
- "ix": 5
- },
- "nm": "Transform"
- }
- ],
- "nm": "Ellipse 1",
- "np": 3,
- "cix": 2,
- "bm": 0,
- "ix": 1,
- "mn": "ADBE Vector Group",
- "hd": false
- }
- ],
- "ip": 36,
- "op": 59,
- "st": -1,
- "bm": 0
- },
- {
- "ddd": 0,
- "ind": 4,
- "ty": 4,
- "nm": "cursor 4",
- "sr": 1,
- "ks": {
- "o": {
- "a": 1,
- "k": [
- {
- "i": {
- "x": [
- 0.833
- ],
- "y": [
- 0.833
- ]
- },
- "o": {
- "x": [
- 0.167
- ],
- "y": [
- 0.167
- ]
- },
- "t": 22,
- "s": [
- 0
- ]
- },
- {
- "i": {
- "x": [
- 0.833
- ],
- "y": [
- 0.833
- ]
- },
- "o": {
- "x": [
- 0.167
- ],
- "y": [
- 0.167
- ]
- },
- "t": 25.58,
- "s": [
- 100
- ]
- },
- {
- "i": {
- "x": [
- 0.833
- ],
- "y": [
- 0.833
- ]
- },
- "o": {
- "x": [
- 0.167
- ],
- "y": [
- 0.167
- ]
- },
- "t": 30.953,
- "s": [
- 100
- ]
- },
- {
- "t": 41.697265625,
- "s": [
- 0
- ]
- }
- ],
- "ix": 11
- },
- "r": {
- "a": 0,
- "k": 0,
- "ix": 10
- },
- "p": {
- "a": 0,
- "k": [
- 207.641,
- 154.48,
- 0
- ],
- "ix": 2
- },
- "a": {
- "a": 0,
- "k": [
- -180.5,
- -165.5,
- 0
- ],
- "ix": 1
- },
- "s": {
- "a": 1,
- "k": [
- {
- "i": {
- "x": [
- 0,
- 0,
- 0
- ],
- "y": [
- 1,
- 1,
- 1
- ]
- },
- "o": {
- "x": [
- 0.45,
- 0.45,
- 0.45
- ],
- "y": [
- 0,
- 0,
- 0
- ]
- },
- "t": 23.789,
- "s": [
- 27.252,
- 27.252,
- 100
- ]
- },
- {
- "t": 45,
- "s": [
- 56.661,
- 56.661,
- 100
- ]
- }
- ],
- "ix": 6
- }
- },
- "ao": 0,
- "shapes": [
- {
- "ty": "gr",
- "it": [
- {
- "d": 1,
- "ty": "el",
- "s": {
- "a": 0,
- "k": [
- 63.109,
- 63.109
- ],
- "ix": 2
- },
- "p": {
- "a": 0,
- "k": [
- 0,
- 0
- ],
- "ix": 3
- },
- "nm": "Ellipse Path 1",
- "mn": "ADBE Vector Shape - Ellipse",
- "hd": false
- },
- {
- "ty": "st",
- "c": {
- "a": 0,
- "k": [
- 1,
- 0.182245725744,
- 0.894323072246,
- 1
- ],
- "ix": 3
- },
- "o": {
- "a": 0,
- "k": 100,
- "ix": 4
- },
- "w": {
- "a": 0,
- "k": 3,
- "ix": 5
- },
- "lc": 1,
- "lj": 1,
- "ml": 4,
- "bm": 0,
- "nm": "Stroke 1",
- "mn": "ADBE Vector Graphic - Stroke",
- "hd": false
- },
- {
- "ty": "fl",
- "c": {
- "a": 0,
- "k": [
- 1,
- 0.522196631338,
- 0.9762855081,
- 1
- ],
- "ix": 4
- },
- "o": {
- "a": 0,
- "k": 50,
- "ix": 5
- },
- "r": 1,
- "bm": 0,
- "nm": "Fill 1",
- "mn": "ADBE Vector Graphic - Fill",
- "hd": false
- },
- {
- "ty": "tr",
- "p": {
- "a": 0,
- "k": [
- -180.5,
- -165.5
- ],
- "ix": 2
- },
- "a": {
- "a": 0,
- "k": [
- 0,
- 0
- ],
- "ix": 1
- },
- "s": {
- "a": 0,
- "k": [
- 100,
- 100
- ],
- "ix": 3
- },
- "r": {
- "a": 0,
- "k": 0,
- "ix": 6
- },
- "o": {
- "a": 0,
- "k": 100,
- "ix": 7
- },
- "sk": {
- "a": 0,
- "k": 0,
- "ix": 4
- },
- "sa": {
- "a": 0,
- "k": 0,
- "ix": 5
- },
- "nm": "Transform"
- }
- ],
- "nm": "Ellipse 1",
- "np": 3,
- "cix": 2,
- "bm": 0,
- "ix": 1,
- "mn": "ADBE Vector Group",
- "hd": false
- }
- ],
- "ip": 22,
- "op": 45,
- "st": -3,
- "bm": 0
- },
- {
- "ddd": 0,
- "ind": 5,
- "ty": 4,
- "nm": "cursor",
- "sr": 1,
- "ks": {
- "o": {
- "a": 1,
- "k": [
- {
- "i": {
- "x": [
- 0.833
- ],
- "y": [
- 0.833
- ]
- },
- "o": {
- "x": [
- 0.167
- ],
- "y": [
- 0.167
- ]
- },
- "t": 8,
- "s": [
- 0
- ]
- },
- {
- "i": {
- "x": [
- 0.833
- ],
- "y": [
- 0.833
- ]
- },
- "o": {
- "x": [
- 0.167
- ],
- "y": [
- 0.167
- ]
- },
- "t": 11.582,
- "s": [
- 100
- ]
- },
- {
- "i": {
- "x": [
- 0.833
- ],
- "y": [
- 0.833
- ]
- },
- "o": {
- "x": [
- 0.167
- ],
- "y": [
- 0.167
- ]
- },
- "t": 16.953,
- "s": [
- 100
- ]
- },
- {
- "t": 27.697265625,
- "s": [
- 0
- ]
- }
- ],
- "ix": 11
- },
- "r": {
- "a": 0,
- "k": 0,
- "ix": 10
- },
- "p": {
- "a": 0,
- "k": [
- 207.641,
- 154.48,
- 0
- ],
- "ix": 2
- },
- "a": {
- "a": 0,
- "k": [
- -180.5,
- -165.5,
- 0
- ],
- "ix": 1
- },
- "s": {
- "a": 1,
- "k": [
- {
- "i": {
- "x": [
- 0,
- 0,
- 0
- ],
- "y": [
- 1,
- 1,
- 1
- ]
- },
- "o": {
- "x": [
- 0.45,
- 0.45,
- 0.45
- ],
- "y": [
- 0,
- 0,
- 0
- ]
- },
- "t": 9.791,
- "s": [
- 27.252,
- 27.252,
- 100
- ]
- },
- {
- "t": 31,
- "s": [
- 56.661,
- 56.661,
- 100
- ]
- }
- ],
- "ix": 6
- }
- },
- "ao": 0,
- "shapes": [
- {
- "ty": "gr",
- "it": [
- {
- "d": 1,
- "ty": "el",
- "s": {
- "a": 0,
- "k": [
- 63.109,
- 63.109
- ],
- "ix": 2
- },
- "p": {
- "a": 0,
- "k": [
- 0,
- 0
- ],
- "ix": 3
- },
- "nm": "Ellipse Path 1",
- "mn": "ADBE Vector Shape - Ellipse",
- "hd": false
- },
- {
- "ty": "st",
- "c": {
- "a": 0,
- "k": [
- 1,
- 0.182245725744,
- 0.894323072246,
- 1
- ],
- "ix": 3
- },
- "o": {
- "a": 0,
- "k": 100,
- "ix": 4
- },
- "w": {
- "a": 0,
- "k": 3,
- "ix": 5
- },
- "lc": 1,
- "lj": 1,
- "ml": 4,
- "bm": 0,
- "nm": "Stroke 1",
- "mn": "ADBE Vector Graphic - Stroke",
- "hd": false
- },
- {
- "ty": "fl",
- "c": {
- "a": 0,
- "k": [
- 1,
- 0.522196631338,
- 0.9762855081,
- 1
- ],
- "ix": 4
- },
- "o": {
- "a": 0,
- "k": 50,
- "ix": 5
- },
- "r": 1,
- "bm": 0,
- "nm": "Fill 1",
- "mn": "ADBE Vector Graphic - Fill",
- "hd": false
- },
- {
- "ty": "tr",
- "p": {
- "a": 0,
- "k": [
- -180.5,
- -165.5
- ],
- "ix": 2
- },
- "a": {
- "a": 0,
- "k": [
- 0,
- 0
- ],
- "ix": 1
- },
- "s": {
- "a": 0,
- "k": [
- 100,
- 100
- ],
- "ix": 3
- },
- "r": {
- "a": 0,
- "k": 0,
- "ix": 6
- },
- "o": {
- "a": 0,
- "k": 100,
- "ix": 7
- },
- "sk": {
- "a": 0,
- "k": 0,
- "ix": 4
- },
- "sa": {
- "a": 0,
- "k": 0,
- "ix": 5
- },
- "nm": "Transform"
- }
- ],
- "nm": "Ellipse 1",
- "np": 3,
- "cix": 2,
- "bm": 0,
- "ix": 1,
- "mn": "ADBE Vector Group",
- "hd": false
- }
- ],
- "ip": 8,
- "op": 31,
- "st": -5,
- "bm": 0
- },
- {
- "ddd": 0,
- "ind": 6,
- "ty": 0,
- "nm": "BG_White",
- "refId": "comp_0",
- "sr": 1,
- "ks": {
- "o": {
- "a": 0,
- "k": 100,
- "ix": 11
- },
- "r": {
- "a": 0,
- "k": 0,
- "ix": 10
- },
- "p": {
- "a": 0,
- "k": [
- 206,
- 150,
- 0
- ],
- "ix": 2
- },
- "a": {
- "a": 0,
- "k": [
- 206,
- 150,
- 0
- ],
- "ix": 1
- },
- "s": {
- "a": 0,
- "k": [
- 100,
- 100,
- 100
- ],
- "ix": 6
- }
- },
- "ao": 0,
- "w": 412,
- "h": 300,
- "ip": 0,
- "op": 1800,
- "st": 0,
- "bm": 0
- }
- ],
- "markers": []
-}
\ No newline at end of file
diff --git a/res/raw/accessibility_shortcut_type_triple_tap_tablet.json b/res/raw/accessibility_shortcut_type_triple_tap_tablet.json
deleted file mode 100644
index b6a9b14..0000000
--- a/res/raw/accessibility_shortcut_type_triple_tap_tablet.json
+++ /dev/null
@@ -1 +0,0 @@
-{"v":"5.10.0","fr":60,"ip":0,"op":180,"w":412,"h":300,"nm":"Triple_Tap_Screen_Tablet-DT","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":4,"nm":".grey600","cl":"grey600","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[205.999,149.375,0],"ix":2,"l":2},"a":{"a":0,"k":[205.999,149.375,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-1.367,0],[0,0],[0,-1.372],[0,0]],"o":[[0,-1.372],[0,0],[1.366,0],[0,0],[0,0]],"v":[[-6.933,0.746],[-4.457,-1.74],[4.457,-1.74],[6.933,0.746],[0.99,1.74]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.501960784314,0.525490196078,0.545098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[318.382,49.604],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Layer 3","np":1,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-1.367,0],[0,0],[0,-1.372],[0,0]],"o":[[0,-1.372],[0,0],[1.367,0],[0,0],[0,0]],"v":[[-13.37,0.746],[-10.894,-1.74],[10.894,-1.74],[13.37,0.746],[0.495,1.74]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.501960784314,0.525490196078,0.545098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[276.958,49.604],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Layer 2","np":1,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-8.146],[0,0],[8.146,0],[0,0],[0,8.146],[0,0],[-8.146,0],[0,0]],"o":[[0,0],[0,8.146],[0,0],[-8.146,0],[0,0],[0,-8.146],[0,0],[8.146,0]],"v":[[158.519,-84.974],[158.519,84.974],[143.769,99.724],[-143.769,99.724],[-158.519,84.974],[-158.519,-84.974],[-143.769,-99.724],[143.769,-99.724]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.501960784314,0.525490196078,0.545098039216,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2.5,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[205.999,151.162],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Layer 1","np":1,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":180,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":".blue400","cl":"blue400","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":36,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":39.582,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":44.953,"s":[100]},{"t":55.697265625,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[207.641,154.48,0],"ix":2,"l":2},"a":{"a":0,"k":[-180.5,-165.5,0],"ix":1,"l":2},"s":{"a":1,"k":[{"i":{"x":[0,0,0],"y":[1,1,1]},"o":{"x":[0.45,0.45,0.45],"y":[0,0,0]},"t":37.791,"s":[27.252,27.252,100]},{"t":59,"s":[56.661,56.661,100]}],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[63.109,63.109],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"st","c":{"a":0,"k":[0.4,0.61568627451,0.964705882353,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":3,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[-180.5,-165.5],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":36,"op":59,"st":-1,"ct":1,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":".blue800","cl":"blue800","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":36,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":39.582,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":44.953,"s":[100]},{"t":55.697265625,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[207.641,154.48,0],"ix":2,"l":2},"a":{"a":0,"k":[-180.5,-165.5,0],"ix":1,"l":2},"s":{"a":1,"k":[{"i":{"x":[0,0,0],"y":[1,1,1]},"o":{"x":[0.45,0.45,0.45],"y":[0,0,0]},"t":37.791,"s":[27.252,27.252,100]},{"t":59,"s":[56.661,56.661,100]}],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[63.109,63.109],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.094117647059,0.352941176471,0.737254901961,1],"ix":4},"o":{"a":0,"k":50,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-180.5,-165.5],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":36,"op":59,"st":-1,"ct":1,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":".blue400","cl":"blue400","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":22,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":25.58,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":30.953,"s":[100]},{"t":41.697265625,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[207.641,154.48,0],"ix":2,"l":2},"a":{"a":0,"k":[-180.5,-165.5,0],"ix":1,"l":2},"s":{"a":1,"k":[{"i":{"x":[0,0,0],"y":[1,1,1]},"o":{"x":[0.45,0.45,0.45],"y":[0,0,0]},"t":23.789,"s":[27.252,27.252,100]},{"t":45,"s":[56.661,56.661,100]}],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[63.109,63.109],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"st","c":{"a":0,"k":[0.4,0.61568627451,0.964705882353,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":3,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[-180.5,-165.5],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":22,"op":45,"st":-3,"ct":1,"bm":0},{"ddd":0,"ind":5,"ty":4,"nm":".blue800","cl":"blue800","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":22,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":25.58,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":30.953,"s":[100]},{"t":41.697265625,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[207.641,154.48,0],"ix":2,"l":2},"a":{"a":0,"k":[-180.5,-165.5,0],"ix":1,"l":2},"s":{"a":1,"k":[{"i":{"x":[0,0,0],"y":[1,1,1]},"o":{"x":[0.45,0.45,0.45],"y":[0,0,0]},"t":23.789,"s":[27.252,27.252,100]},{"t":45,"s":[56.661,56.661,100]}],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[63.109,63.109],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.094117647059,0.352941176471,0.737254901961,1],"ix":4},"o":{"a":0,"k":50,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-180.5,-165.5],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":22,"op":45,"st":-3,"ct":1,"bm":0},{"ddd":0,"ind":6,"ty":4,"nm":".blue400","cl":"blue400","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":8,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":11.582,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":16.953,"s":[100]},{"t":27.697265625,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[207.641,154.48,0],"ix":2,"l":2},"a":{"a":0,"k":[-180.5,-165.5,0],"ix":1,"l":2},"s":{"a":1,"k":[{"i":{"x":[0,0,0],"y":[1,1,1]},"o":{"x":[0.45,0.45,0.45],"y":[0,0,0]},"t":9.791,"s":[27.252,27.252,100]},{"t":31,"s":[56.661,56.661,100]}],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[63.109,63.109],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"st","c":{"a":0,"k":[0.4,0.61568627451,0.964705882353,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":3,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[-180.5,-165.5],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":8,"op":31,"st":-5,"ct":1,"bm":0},{"ddd":0,"ind":7,"ty":4,"nm":".blue800","cl":"blue800","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":8,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":11.582,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":16.953,"s":[100]},{"t":27.697265625,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[207.641,154.48,0],"ix":2,"l":2},"a":{"a":0,"k":[-180.5,-165.5,0],"ix":1,"l":2},"s":{"a":1,"k":[{"i":{"x":[0,0,0],"y":[1,1,1]},"o":{"x":[0.45,0.45,0.45],"y":[0,0,0]},"t":9.791,"s":[27.252,27.252,100]},{"t":31,"s":[56.661,56.661,100]}],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[63.109,63.109],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.094117647059,0.352941176471,0.737254901961,1],"ix":4},"o":{"a":0,"k":50,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-180.5,-165.5],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":8,"op":31,"st":-5,"ct":1,"bm":0},{"ddd":0,"ind":8,"ty":4,"nm":".black","cl":"black","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[206,150,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[15.4,0],[0,0],[0,15.4],[0,0],[-15.4,0],[0,0],[0,-15.4],[0,0]],"o":[[0,0],[-15.4,0],[0,0],[0,-15.4],[0,0],[15.4,0],[0,0],[0,15.4]],"v":[[178,150],[-178,150],[-206,122],[-206,-122],[-178,-150],[178,-150],[206,-122],[206,122]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1800,"st":0,"ct":1,"bm":0}],"markers":[]}
\ No newline at end of file
diff --git a/res/raw/lottie_notification_cooldown.json b/res/raw/lottie_notification_cooldown.json
new file mode 100644
index 0000000..67658a1
--- /dev/null
+++ b/res/raw/lottie_notification_cooldown.json
@@ -0,0 +1 @@
+{"v":"5.12.1","fr":60,"ip":0,"op":720,"w":824,"h":600,"nm":"Panel v3 Lottie","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":4,"nm":".cream","cl":"cream","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0,"y":1},"o":{"x":0.05,"y":0},"t":270,"s":[60.438,75.468,0],"to":[0,0,0],"ti":[0,0,0]},{"t":300,"s":[58.188,65.718,0]}],"ix":2,"l":2},"a":{"a":0,"k":[30.219,37.734,0],"ix":1,"l":2},"s":{"a":1,"k":[{"i":{"x":[0,0,0],"y":[1,1,1]},"o":{"x":[0.05,0.05,0.05],"y":[0,0,0]},"t":270,"s":[200,200,100]},{"t":300,"s":[104.5,104.5,100]}],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-1.914,0],[-1.41,1.209],[-0.772,2.116],[0,2.62],[0.773,2.116],[1.444,1.209],[1.881,0],[1.41,-1.243],[0.773,-2.116],[0,-2.619],[-0.772,-2.116],[-1.411,-1.242]],"o":[[1.881,0],[1.444,-1.242],[0.773,-2.116],[0,-2.619],[-0.772,-2.116],[-1.41,-1.243],[-1.914,0],[-1.411,1.209],[-0.772,2.116],[0,2.62],[0.773,2.116],[1.41,1.209]],"v":[[0,13.955],[4.937,12.141],[8.262,7.104],[9.421,-0.001],[8.262,-7.104],[4.937,-12.09],[0,-13.955],[-4.987,-12.09],[-8.262,-7.104],[-9.42,-0.001],[-8.262,7.104],[-4.987,12.141]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[2.721,0],[2.116,1.578],[1.142,2.721],[0,3.359],[-1.109,2.72],[-2.082,1.579],[-2.754,0],[-2.082,-1.612],[-1.142,-2.754],[0,-3.358],[1.141,-2.754],[2.083,-1.612]],"o":[[-2.72,0],[-2.082,-1.612],[-1.109,-2.754],[0,-3.358],[1.142,-2.754],[2.082,-1.612],[2.721,0],[2.083,1.579],[1.141,2.72],[0,3.359],[-1.142,2.721],[-2.082,1.578]],"v":[[0,18.036],[-7.254,15.668],[-12.09,9.169],[-13.753,-0.001],[-12.09,-9.118],[-7.254,-15.618],[0,-18.036],[7.204,-15.618],[12.041,-9.118],[13.753,-0.001],[12.041,9.169],[7.204,15.668]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[111.033,55.77],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 5","np":4,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[2.116,0],[1.511,0.605],[1.242,1.276],[0.538,1.948],[0,0],[-1.277,-1.074],[-1.746,0],[-1.108,0.538],[-0.639,0.974],[0,1.209],[0.671,0.974],[1.142,0.537],[1.343,0],[0,0],[0,0],[0,0],[-1.242,1.041],[0,1.747],[1.209,0.974],[1.78,0],[1.008,-0.906],[0.437,-1.31],[0,0],[-1.713,1.444],[-2.72,0],[-1.612,-0.806],[-0.907,-1.444],[0,-1.78],[0.906,-1.242],[1.344,-0.705],[0,0],[-1.108,-1.478],[0,-1.982],[1.041,-1.612],[1.781,-0.907]],"o":[[-1.444,0],[-1.512,-0.604],[-1.209,-1.31],[0,0],[0.538,1.948],[1.309,1.075],[1.276,0],[1.108,-0.571],[0.671,-1.008],[0,-1.175],[-0.639,-0.974],[-1.108,-0.571],[0,0],[0,0],[0,0],[1.847,0],[1.243,-1.075],[0,-1.612],[-1.209,-0.974],[-1.746,0],[-0.974,0.907],[0,0],[0.604,-1.814],[1.746,-1.478],[2.015,0],[1.612,0.806],[0.941,1.444],[0,1.78],[-0.907,1.243],[0,0],[1.713,0.705],[1.108,1.444],[0,2.015],[-1.008,1.613],[-1.746,0.907]],"v":[[-0.176,18.035],[-4.609,17.128],[-8.74,14.307],[-11.36,9.42],[-7.481,7.808],[-4.76,12.342],[-0.176,13.954],[3.401,13.148],[6.021,10.831],[7.028,7.506],[6.021,4.282],[3.35,2.015],[-0.327,1.158],[-3.299,1.158],[-3.299,-2.821],[-0.629,-2.821],[4.005,-4.383],[5.869,-8.615],[4.056,-12.494],[-0.428,-13.955],[-4.559,-12.595],[-6.675,-9.27],[-10.604,-10.932],[-7.128,-15.819],[-0.428,-18.035],[5.013,-16.826],[8.791,-13.451],[10.202,-8.615],[8.842,-4.081],[5.466,-1.159],[5.466,-0.957],[9.698,2.317],[11.36,7.456],[9.799,12.896],[5.617,16.675]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[81.226,55.77],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 6","np":2,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.873,0],[0.638,0.605],[0,0.907],[-0.605,0.605],[-0.907,0],[-0.605,-0.638],[0,-0.873],[0.638,-0.638]],"o":[[-0.907,0],[-0.605,-0.638],[0,-0.873],[0.638,-0.638],[0.873,0],[0.638,0.605],[0,0.907],[-0.605,0.605]],"v":[[0.025,12.796],[-2.292,11.889],[-3.199,9.572],[-2.292,7.355],[0.025,6.398],[2.242,7.355],[3.199,9.572],[2.242,11.889]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0.873,0],[0.638,0.605],[0,0.907],[-0.605,0.605],[-0.907,0],[-0.605,-0.638],[0,-0.873],[0.638,-0.638]],"o":[[-0.907,0],[-0.605,-0.638],[0,-0.873],[0.638,-0.638],[0.873,0],[0.638,0.605],[0,0.907],[-0.605,0.605]],"v":[[0.025,-6.398],[-2.292,-7.305],[-3.199,-9.622],[-2.292,-11.839],[0.025,-12.796],[2.242,-11.839],[3.199,-9.622],[2.242,-7.305]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[61.915,60.505],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 7","np":4,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-1.343,0],[-1.142,0.638],[-0.672,1.108],[0,1.343],[0.671,1.108],[1.175,0.638],[1.343,0],[1.142,-0.672],[0.672,-1.142],[0,-1.377],[-0.672,-1.142],[-1.108,-0.672]],"o":[[1.343,0],[1.175,-0.672],[0.671,-1.142],[0,-1.377],[-0.672,-1.142],[-1.142,-0.672],[-1.343,0],[-1.108,0.638],[-0.672,1.108],[0,1.343],[0.672,1.108],[1.142,0.638]],"v":[[-0.051,0.806],[3.678,-0.151],[6.449,-2.821],[7.456,-6.549],[6.449,-10.277],[3.678,-12.947],[-0.051,-13.955],[-3.779,-12.947],[-6.449,-10.277],[-7.457,-6.549],[-6.449,-2.821],[-3.779,-0.151]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[1.814,0],[1.679,0.974],[1.074,1.679],[0,2.082],[-1.075,1.746],[-1.78,1.075],[-2.082,0],[-1.78,-1.108],[-0.974,-1.78],[0,-1.948],[0.772,-1.713],[1.41,-2.083],[0,0]],"o":[[0,0],[0,0],[-1.176,0.806],[-1.746,0],[-1.68,-0.974],[-1.041,-1.713],[0,-2.015],[1.075,-1.78],[1.814,-1.075],[2.317,0],[1.814,1.108],[1.008,1.746],[0,1.847],[-0.739,1.679],[0,0],[0,0]],"v":[[-5.089,15.667],[3.628,3.526],[3.527,3.426],[-0.958,4.635],[-6.096,3.174],[-10.227,-0.806],[-11.788,-6.499],[-10.176,-12.141],[-5.895,-16.423],[-0.051,-18.035],[6.096,-16.373],[10.277,-12.04],[11.788,-6.499],[10.63,-1.159],[7.406,4.484],[-1.663,18.035]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[42.007,55.77],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 8","np":4,"cix":2,"bm":0,"ix":4,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":720,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":".cream","cl":"cream","parent":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"s":true,"x":{"a":0,"k":168.552,"ix":3},"y":{"a":0,"k":54.681,"ix":4}},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":1,"k":[{"i":{"x":[0,0,0],"y":[1,1,1]},"o":{"x":[0.05,0.05,0.05],"y":[0,0,0]},"t":556,"s":[20,20,100]},{"t":586,"s":[50,50,100]}],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[6.428,-491.836],[14.758,-490.711],[22.933,-488.794],[30.879,-486.091],[38.523,-482.63],[45.798,-478.436],[52.619,-473.52],[58.782,-467.809],[64.461,-461.621],[69.338,-454.782],[73.871,-447.708],[78.192,-440.497],[82.517,-433.286],[86.839,-426.075],[91.16,-418.864],[95.482,-411.653],[99.804,-404.442],[104.126,-397.231],[108.483,-390.044],[113.214,-383.095],[118.623,-376.662],[124.659,-370.811],[131.256,-365.6],[138.343,-361.084],[145.852,-357.302],[153.702,-354.292],[161.813,-352.086],[170.105,-350.705],[178.493,-350.164],[186.896,-350.481],[195.21,-351.684],[203.407,-353.545],[211.562,-355.588],[219.718,-357.63],[227.872,-359.673],[236.027,-361.716],[244.181,-363.761],[252.338,-365.803],[260.492,-367.846],[268.646,-369.889],[276.914,-371.411],[285.269,-372.203],[293.657,-372.215],[302.017,-371.414],[310.252,-369.719],[318.231,-367.08],[325.908,-363.685],[333.216,-359.562],[340.096,-354.753],[346.486,-349.301],[352.314,-343.241],[357.412,-336.56],[361.837,-329.422],[365.549,-321.897],[368.509,-314.043],[370.689,-305.936],[372.039,-297.638],[372.361,-289.24],[372.004,-280.849],[370.621,-272.565],[368.824,-264.356],[366.781,-256.2],[364.736,-248.045],[362.693,-239.891],[360.651,-231.737],[358.608,-223.58],[356.565,-215.426],[354.522,-207.272],[352.518,-199.108],[350.948,-190.852],[350.222,-182.478],[350.352,-174.071],[351.328,-165.723],[353.146,-157.514],[355.778,-149.53],[359.199,-141.853],[363.374,-134.555],[368.261,-127.715],[373.81,-121.4],[379.976,-115.683],[386.704,-110.652],[393.816,-106.172],[401.027,-101.85],[408.238,-97.528],[415.449,-93.207],[422.657,-88.885],[429.868,-84.563],[437.079,-80.241],[444.29,-75.919],[451.501,-71.597],[458.424,-66.826],[464.892,-61.481],[470.836,-55.558],[476.182,-49.083],[480.806,-42.061],[484.584,-34.554],[487.613,-26.727],[489.868,-18.643],[491.334,-10.378],[492.001,-2.006],[491.837,6.399],[490.717,14.73],[488.802,22.906],[486.104,30.852],[482.645,38.498],[478.456,45.775],[473.541,52.596],[467.831,58.762],[461.649,64.443],[454.811,69.326],[447.737,73.86],[440.526,78.18],[433.315,82.501],[426.105,86.823],[418.894,91.145],[411.68,95.465],[404.469,99.786],[397.258,104.108],[390.069,108.463],[383.12,113.192],[376.687,118.601],[370.833,124.635],[365.62,131.228],[361.1,138.316],[357.315,145.823],[354.303,153.672],[352.094,161.784],[350.711,170.075],[350.167,178.464],[350.487,186.866],[351.683,195.181],[353.544,203.378],[355.589,211.532],[357.631,219.686],[359.674,227.843],[361.717,235.997],[363.762,244.151],[365.805,252.306],[367.847,260.462],[369.892,268.617],[371.413,276.884],[372.209,285.237],[372.224,293.628],[371.424,301.988],[369.729,310.223],[367.095,318.202],[363.7,325.879],[359.582,333.191],[354.775,340.071],[349.328,346.464],[343.269,352.292],[336.587,357.392],[329.452,361.82],[321.927,365.534],[314.075,368.499],[305.968,370.683],[297.67,372.031],[289.272,372.357],[280.883,372.005],[272.597,370.622],[264.388,368.83],[256.234,366.785],[248.077,364.742],[239.923,362.699],[231.769,360.657],[223.615,358.614],[215.458,356.571],[207.304,354.526],[199.14,352.521],[190.884,350.949],[182.51,350.221],[174.105,350.344],[165.754,351.32],[157.546,353.134],[149.562,355.763],[141.88,359.181],[134.582,363.354],[127.74,368.236],[121.423,373.785],[115.708,379.949],[110.672,386.673],[106.19,393.784],[101.868,400.995],[97.546,408.206],[93.224,415.417],[88.902,422.628],[84.581,429.839],[80.259,437.05],[75.937,444.261],[71.615,451.472],[66.846,458.394],[61.503,464.868],[55.583,470.811],[49.11,476.162],[42.088,480.786],[34.586,484.569],[26.758,487.6],[18.675,489.86],[10.412,491.328],[2.04,492],[-6.367,491.834],[-14.696,490.718],[-22.874,488.808],[-30.82,486.115],[-38.469,482.661],[-45.748,478.474],[-52.569,473.559],[-58.737,467.851],[-64.421,461.671],[-69.305,454.836],[-73.842,447.762],[-78.164,440.551],[-82.484,433.34],[-86.805,426.13],[-91.127,418.918],[-95.449,411.708],[-99.769,404.497],[-104.09,397.283],[-108.445,390.094],[-113.171,383.143],[-118.576,376.707],[-124.607,370.851],[-131.201,365.636],[-138.287,361.113],[-145.793,357.325],[-153.64,354.309],[-161.749,352.098],[-170.041,350.71],[-178.432,350.169],[-186.832,350.483],[-195.149,351.675],[-203.346,353.533],[-211.5,355.578],[-219.654,357.621],[-227.809,359.664],[-235.965,361.706],[-244.12,363.751],[-252.274,365.794],[-260.428,367.837],[-268.585,369.882],[-276.85,371.404],[-285.205,372.204],[-293.594,372.225],[-301.956,371.43],[-310.191,369.735],[-318.17,367.104],[-325.849,363.716],[-333.162,359.6],[-340.046,354.796],[-346.442,349.351],[-352.269,343.291],[-357.371,336.612],[-361.804,329.482],[-365.521,321.956],[-368.488,314.107],[-370.677,306],[-372.025,297.702],[-372.356,289.304],[-372.006,280.915],[-370.628,272.629],[-368.836,264.42],[-366.793,256.264],[-364.75,248.109],[-362.708,239.955],[-360.662,231.801],[-358.62,223.646],[-356.577,215.49],[-354.532,207.336],[-352.527,199.172],[-350.95,190.916],[-350.22,182.542],[-350.34,174.137],[-351.312,165.786],[-353.123,157.578],[-355.749,149.591],[-359.166,141.91],[-363.334,134.609],[-368.216,127.765],[-373.763,121.447],[-379.924,115.728],[-386.645,110.688],[-393.755,106.205],[-400.968,101.886],[-408.179,97.564],[-415.39,93.242],[-422.601,88.923],[-429.814,84.601],[-437.025,80.281],[-444.236,75.96],[-451.449,71.64],[-458.372,66.871],[-464.845,61.533],[-470.793,55.615],[-476.148,49.144],[-480.771,42.123],[-484.556,34.621],[-487.591,26.795],[-489.854,18.714],[-491.327,10.451],[-492.001,2.077],[-491.837,-6.328],[-490.724,-14.659],[-488.818,-22.835],[-486.128,-30.786],[-482.678,-38.434],[-478.496,-45.716],[-473.581,-52.537],[-467.878,-58.71],[-461.701,-64.396],[-454.868,-69.283],[-447.796,-73.822],[-440.586,-78.144],[-433.375,-82.463],[-426.161,-86.785],[-418.95,-91.107],[-411.739,-95.429],[-404.529,-99.751],[-397.318,-104.073],[-390.126,-108.425],[-383.172,-113.146],[-376.732,-118.549],[-370.874,-124.578],[-365.656,-131.167],[-361.128,-138.252],[-357.338,-145.757],[-354.319,-153.601],[-352.104,-161.71],[-350.714,-170.002],[-350.17,-178.393],[-350.482,-186.793],[-351.666,-195.11],[-353.525,-203.307],[-355.567,-211.461],[-357.61,-219.618],[-359.655,-227.772],[-361.698,-235.926],[-363.741,-244.081],[-365.783,-252.237],[-367.826,-260.391],[-369.871,-268.546],[-371.396,-276.813],[-372.202,-285.166],[-372.226,-293.555],[-371.436,-301.917],[-369.741,-310.152],[-367.117,-318.133],[-363.731,-325.815],[-359.617,-333.13],[-354.818,-340.017],[-349.378,-346.414],[-343.318,-352.242],[-336.642,-357.349],[-329.511,-361.784],[-321.991,-365.505],[-314.141,-368.475],[-306.037,-370.669],[-297.738,-372.017],[-289.34,-372.35],[-280.952,-372.005],[-272.665,-370.629],[-264.454,-368.839],[-256.3,-366.796],[-248.146,-364.754],[-239.989,-362.709],[-231.835,-360.666],[-223.681,-358.623],[-215.526,-356.581],[-207.372,-354.535],[-199.208,-352.528],[-190.953,-350.951],[-182.578,-350.216],[-174.174,-350.334],[-165.823,-351.306],[-157.612,-353.115],[-149.626,-355.736],[-141.942,-359.148],[-134.639,-363.314],[-127.794,-368.194],[-121.477,-373.74],[-115.753,-379.899],[-110.708,-386.616],[-106.225,-393.725],[-101.903,-400.936],[-97.582,-408.147],[-93.26,-415.36],[-88.94,-422.571],[-84.618,-429.782],[-80.297,-436.993],[-75.975,-444.204],[-71.584,-451.531],[-66.813,-458.453],[-61.463,-464.917],[-55.538,-470.858],[-49.058,-476.202],[-42.039,-480.826],[-34.53,-484.599],[-26.699,-487.623],[-18.616,-489.876],[-10.351,-491.337],[-1.977,-491.999]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[8.9,8.9],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Material shape","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":556,"op":720,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":".cream","cl":"cream","parent":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"s":true,"x":{"a":1,"k":[{"i":{"x":[0],"y":[1]},"o":{"x":[0.05],"y":[0]},"t":550,"s":[168.552]},{"t":580,"s":[226.447]}],"ix":3},"y":{"a":0,"k":54.681,"ix":4}},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":1,"k":[{"i":{"x":[0,0,0],"y":[1,1,1]},"o":{"x":[0.05,0.05,0.05],"y":[0,0,0]},"t":466,"s":[20,20,100]},{"t":496,"s":[50,50,100]}],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[1.906,-488.758],[9.421,-487.243],[16.936,-485.728],[24.451,-484.213],[31.966,-482.698],[39.333,-480.59],[46.677,-478.385],[54.02,-476.18],[61.363,-473.975],[68.706,-471.77],[75.88,-469.081],[82.983,-466.201],[90.087,-463.319],[97.193,-460.436],[104.297,-457.556],[111.241,-454.323],[118.039,-450.782],[124.84,-447.241],[131.641,-443.702],[138.442,-440.161],[145.129,-436.429],[151.56,-432.254],[157.991,-428.079],[164.422,-423.907],[170.853,-419.732],[177.281,-415.554],[183.356,-410.878],[189.431,-406.2],[195.508,-401.524],[201.409,-396.642],[207.087,-391.489],[212.765,-386.336],[218.443,-381.184],[224.118,-376.031],[229.796,-370.878],[235.22,-365.461],[240.642,-360.04],[246.063,-354.618],[251.485,-349.197],[256.906,-343.775],[262.328,-338.354],[267.749,-332.932],[273.171,-327.513],[278.592,-322.092],[284.011,-316.671],[289.433,-311.249],[294.854,-305.828],[300.276,-300.406],[305.697,-294.985],[311.118,-289.563],[316.54,-284.142],[321.961,-278.72],[327.383,-273.299],[332.804,-267.88],[338.226,-262.458],[343.645,-257.037],[349.066,-251.615],[354.488,-246.194],[359.909,-240.772],[365.331,-235.351],[370.752,-229.929],[375.907,-224.256],[381.06,-218.578],[386.213,-212.9],[391.366,-207.222],[396.516,-201.547],[401.359,-195.612],[405.938,-189.462],[410.515,-183.315],[415.094,-177.165],[419.674,-171.015],[424.132,-164.785],[428.099,-158.223],[432.066,-151.662],[436.03,-145.1],[439.997,-138.539],[443.964,-131.978],[447.335,-125.097],[450.658,-118.187],[453.981,-111.277],[457.304,-104.369],[460.628,-97.459],[463.476,-90.348],[466.136,-83.158],[468.794,-75.967],[471.451,-68.776],[474.109,-61.583],[476.396,-54.274],[478.371,-46.868],[480.348,-39.459],[482.323,-32.051],[484.301,-24.645],[485.992,-17.176],[487.277,-9.617],[488.56,-2.058],[489.845,5.5],[491.128,13.059],[492.207,20.644],[492.793,28.287],[493.377,35.933],[493.962,43.576],[494.546,51.222],[495.001,58.87],[494.882,66.535],[494.766,74.203],[494.65,81.868],[494.531,89.533],[494.354,97.196],[493.536,104.819],[492.718,112.441],[491.9,120.065],[491.082,127.689],[490.264,135.31],[488.766,142.828],[487.248,150.345],[485.733,157.86],[484.218,165.375],[482.703,172.89],[480.597,180.258],[478.392,187.601],[476.188,194.944],[473.983,202.287],[471.778,209.63],[469.094,216.804],[466.211,223.908],[463.331,231.014],[460.448,238.117],[457.566,245.223],[454.337,252.167],[450.796,258.966],[447.255,265.767],[443.714,272.568],[440.173,279.369],[436.444,286.059],[432.269,292.489],[428.096,298.92],[423.921,305.351],[419.749,311.781],[415.571,318.21],[410.895,324.285],[406.219,330.362],[401.541,336.437],[396.661,342.34],[391.509,348.018],[386.356,353.696],[381.203,359.372],[376.05,365.05],[370.815,370.817],[365.139,375.97],[359.461,381.123],[353.783,386.276],[348.105,391.429],[342.43,396.579],[336.49,401.415],[330.34,405.994],[324.19,410.573],[318.04,415.15],[311.893,419.729],[305.658,424.182],[299.097,428.147],[292.535,432.114],[285.974,436.078],[279.412,440.045],[272.851,444.012],[265.965,447.376],[259.055,450.699],[252.145,454.022],[245.238,457.345],[238.328,460.668],[231.215,463.51],[224.024,466.167],[216.831,468.827],[209.64,471.485],[202.449,474.142],[195.138,476.42],[187.729,478.397],[180.323,480.372],[172.915,482.349],[165.506,484.324],[158.035,486.011],[150.476,487.294],[142.917,488.577],[135.359,489.862],[127.8,491.145],[120.217,492.217],[112.572,492.8],[104.928,493.386],[97.283,493.972],[89.639,494.555],[81.989,495],[74.324,494.884],[66.659,494.766],[58.991,494.649],[51.326,494.533],[43.663,494.347],[36.042,493.529],[28.418,492.711],[20.796,491.893],[13.173,491.075],[5.549,490.257],[-1.966,488.749],[-9.484,487.234],[-16.999,485.718],[-24.514,484.203],[-32.029,482.686],[-39.396,480.575],[-46.737,478.371],[-54.08,476.166],[-61.423,473.961],[-68.767,471.754],[-75.938,469.062],[-83.042,466.18],[-90.148,463.299],[-97.251,460.417],[-104.357,457.534],[-111.296,454.296],[-118.097,450.757],[-124.898,447.216],[-131.697,443.676],[-138.498,440.135],[-145.183,436.398],[-151.613,432.223],[-158.044,428.05],[-164.477,423.875],[-170.908,419.702],[-177.332,415.518],[-183.406,410.842],[-189.484,406.166],[-195.559,401.49],[-201.457,396.601],[-207.135,391.45],[-212.813,386.298],[-218.489,381.145],[-224.167,375.992],[-229.845,370.839],[-235.266,365.42],[-240.688,359.999],[-246.109,354.577],[-251.531,349.156],[-256.952,343.734],[-262.374,338.313],[-267.795,332.894],[-273.216,327.472],[-278.638,322.051],[-284.057,316.629],[-289.478,311.208],[-294.9,305.786],[-300.321,300.365],[-305.743,294.943],[-311.164,289.522],[-316.586,284.101],[-322.007,278.679],[-327.429,273.26],[-332.85,267.839],[-338.272,262.417],[-343.691,256.996],[-349.112,251.574],[-354.534,246.153],[-359.955,240.731],[-365.377,235.31],[-370.798,229.888],[-375.951,224.213],[-381.104,218.535],[-386.257,212.857],[-391.409,207.181],[-396.56,201.503],[-401.398,195.566],[-405.977,189.416],[-410.554,183.266],[-415.133,177.116],[-419.712,170.969],[-424.166,164.734],[-428.132,158.175],[-432.099,151.613],[-436.064,145.052],[-440.031,138.49],[-443.998,131.929],[-447.364,125.043],[-450.687,118.134],[-454.01,111.226],[-457.333,104.316],[-460.656,97.406],[-463.5,90.295],[-466.158,83.102],[-468.818,75.911],[-471.475,68.721],[-474.133,61.53],[-476.413,54.218],[-478.39,46.81],[-480.365,39.404],[-482.342,31.995],[-484.317,24.587],[-486.007,17.118],[-487.289,9.559],[-488.572,2],[-489.857,-5.558],[-491.14,-13.117],[-492.215,-20.702],[-492.798,-28.348],[-493.384,-35.991],[-493.969,-43.637],[-494.553,-51.28],[-495,-58.928],[-494.884,-66.596],[-494.768,-74.261],[-494.65,-81.926],[-494.533,-89.593],[-494.352,-97.254],[-493.534,-104.877],[-492.716,-112.499],[-491.895,-120.123],[-491.077,-127.747],[-490.259,-135.368],[-488.756,-142.886],[-487.239,-150.401],[-485.723,-157.918],[-484.208,-165.433],[-482.693,-172.948],[-480.583,-180.316],[-478.378,-187.659],[-476.173,-195],[-473.968,-202.343],[-471.763,-209.686],[-469.072,-216.86],[-466.192,-223.963],[-463.309,-231.067],[-460.426,-238.173],[-457.546,-245.277],[-454.31,-252.218],[-450.77,-259.019],[-447.229,-265.82],[-443.688,-272.619],[-440.149,-279.42],[-436.412,-286.107],[-432.24,-292.538],[-428.065,-298.968],[-423.892,-305.399],[-419.717,-311.83],[-415.537,-318.256],[-410.859,-324.331],[-406.183,-330.408],[-401.507,-336.483],[-396.62,-342.384],[-391.47,-348.062],[-386.317,-353.737],[-381.164,-359.415],[-376.011,-365.093],[-370.859,-370.771],[-365.185,-375.927],[-359.51,-381.079],[-353.832,-386.232],[-348.154,-391.385],[-342.476,-396.535],[-336.541,-401.376],[-330.394,-405.955],[-324.244,-410.532],[-318.094,-415.111],[-311.944,-419.69],[-305.714,-424.146],[-299.152,-428.113],[-292.591,-432.08],[-286.03,-436.044],[-279.468,-440.011],[-272.907,-443.978],[-266.023,-447.347],[-259.113,-450.67],[-252.203,-453.993],[-245.296,-457.316],[-238.386,-460.639],[-231.275,-463.486],[-224.084,-466.146],[-216.891,-468.803],[-209.701,-471.461],[-202.51,-474.118],[-195.198,-476.403],[-187.792,-478.378],[-180.384,-480.355],[-172.975,-482.33],[-165.569,-484.308],[-158.097,-485.997],[-150.539,-487.282],[-142.98,-488.565],[-135.422,-489.85],[-127.863,-491.133],[-120.28,-492.21],[-112.635,-492.793],[-104.991,-493.379],[-97.346,-493.965],[-89.702,-494.548],[-82.054,-495.001],[-74.387,-494.882],[-66.721,-494.766],[-59.056,-494.647],[-51.389,-494.531],[-43.729,-494.352],[-36.105,-493.534],[-28.481,-492.716],[-20.859,-491.898],[-13.235,-491.079],[-5.614,-490.262]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[8.9,8.9],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Material shape","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":466,"op":720,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":".cream","cl":"cream","parent":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":90,"ix":10},"p":{"s":true,"x":{"a":1,"k":[{"i":{"x":[0],"y":[1]},"o":{"x":[0.05],"y":[0]},"t":460,"s":[168.552]},{"i":{"x":[0],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":490,"s":[228.36]},{"i":{"x":[0],"y":[1]},"o":{"x":[0.05],"y":[0]},"t":548,"s":[228.36]},{"t":578,"s":[286.255]}],"ix":3},"y":{"a":0,"k":56.117,"ix":4}},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":1,"k":[{"i":{"x":[0,0,0],"y":[1,1,1]},"o":{"x":[0.05,0.05,0.05],"y":[0,0,0]},"t":376,"s":[20,20,100]},{"t":406,"s":[50,50,100]}],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-0.166,-494.001],[7.12,-493.774],[14.408,-493.545],[21.649,-492.74],[28.884,-491.832],[36.083,-490.728],[43.201,-489.145],[50.316,-487.56],[57.326,-485.578],[64.297,-483.437],[71.118,-480.865],[77.874,-478.138],[84.452,-474.996],[90.937,-471.679],[97.177,-467.909],[103.351,-464.041],[109.218,-459.713],[115.084,-455.382],[120.918,-451.015],[126.346,-446.147],[131.773,-441.278],[137.2,-436.408],[142.626,-431.541],[148.053,-426.671],[153.481,-421.804],[158.906,-416.935],[164.135,-411.855],[169.32,-406.728],[174.504,-401.604],[179.687,-396.478],[184.872,-391.352],[190.056,-386.225],[195.241,-381.101],[200.426,-375.975],[205.61,-370.849],[210.795,-365.722],[215.952,-360.568],[221.106,-355.413],[226.261,-350.259],[231.417,-345.102],[236.572,-339.948],[241.726,-334.793],[246.883,-329.637],[252.037,-324.482],[257.192,-319.328],[262.348,-314.171],[267.503,-309.017],[272.66,-303.86],[277.814,-298.706],[282.968,-293.551],[288.125,-288.395],[293.279,-283.24],[298.434,-278.086],[303.591,-272.929],[308.745,-267.775],[313.899,-262.62],[319.056,-257.464],[324.21,-252.309],[329.367,-247.155],[334.522,-241.998],[339.676,-236.844],[344.833,-231.687],[349.987,-226.533],[355.141,-221.378],[360.298,-216.222],[365.453,-211.067],[370.493,-205.798],[375.53,-200.53],[380.57,-195.261],[385.608,-189.99],[390.646,-184.721],[395.683,-179.452],[400.723,-174.181],[405.761,-168.912],[410.798,-163.644],[415.836,-158.372],[420.876,-153.104],[425.914,-147.835],[430.952,-142.564],[435.991,-137.295],[441.029,-132.026],[446.067,-126.755],[450.661,-121.106],[455.085,-115.312],[459.508,-109.516],[463.855,-103.668],[467.716,-97.482],[471.57,-91.295],[474.768,-84.743],[477.969,-78.192],[480.665,-71.43],[483.133,-64.569],[485.537,-57.689],[487.344,-50.625],[489.151,-43.564],[490.61,-36.427],[491.744,-29.226],[492.879,-22.024],[493.364,-14.752],[493.82,-7.476],[494.002,-0.195],[493.775,7.093],[493.546,14.379],[492.743,21.622],[491.835,28.854],[490.734,36.056],[489.151,43.171],[487.566,50.289],[485.586,57.299],[483.445,64.27],[480.873,71.091],[478.151,77.849],[475.007,84.427],[471.692,90.913],[467.924,97.152],[464.056,103.329],[459.728,109.196],[455.4,115.062],[451.034,120.898],[446.165,126.326],[441.295,131.751],[436.428,137.178],[431.558,142.606],[426.691,148.031],[421.822,153.458],[416.954,158.886],[411.875,164.115],[406.748,169.3],[401.624,174.482],[396.498,179.667],[391.371,184.852],[386.245,190.036],[381.119,195.221],[375.995,200.406],[370.868,205.591],[365.742,210.775],[360.587,215.932],[355.433,221.086],[350.279,226.241],[345.122,231.398],[339.968,236.552],[334.813,241.706],[329.657,246.863],[324.502,252.017],[319.348,257.172],[314.191,262.328],[309.037,267.483],[303.88,272.637],[298.726,277.794],[293.571,282.948],[288.414,288.105],[283.26,293.259],[278.106,298.414],[272.949,303.571],[267.795,308.725],[262.64,313.879],[257.483,319.036],[252.329,324.19],[247.172,329.345],[242.018,334.502],[236.864,339.656],[231.707,344.813],[226.553,349.967],[221.398,355.121],[216.241,360.278],[211.005,365.514],[205.734,370.554],[200.465,375.592],[195.197,380.63],[189.926,385.667],[184.657,390.707],[179.388,395.745],[174.117,400.783],[168.848,405.82],[163.577,410.86],[158.308,415.898],[153.04,420.936],[147.768,425.973],[142.5,431.013],[137.231,436.051],[131.96,441.089],[126.691,446.129],[121.035,450.713],[115.238,455.137],[109.444,459.561],[103.59,463.901],[97.406,467.759],[91.212,471.606],[84.662,474.805],[78.112,478.005],[71.344,480.692],[64.484,483.159],[57.602,485.559],[50.538,487.366],[43.476,489.173],[36.34,490.623],[29.138,491.759],[21.936,492.894],[14.662,493.37],[7.386,493.825],[0.105,494.001],[-7.183,493.772],[-14.469,493.545],[-21.71,492.733],[-28.944,491.825],[-36.144,490.716],[-43.259,489.133],[-50.377,487.548],[-57.387,485.562],[-64.355,483.421],[-71.176,480.846],[-77.93,478.115],[-84.508,474.973],[-90.991,471.648],[-97.231,467.881],[-103.403,464.006],[-109.269,459.678],[-115.136,455.35],[-120.967,450.977],[-126.392,446.108],[-131.82,441.24],[-137.247,436.373],[-142.675,431.504],[-148.1,426.636],[-153.527,421.767],[-158.955,416.899],[-164.179,411.817],[-169.364,406.691],[-174.549,401.565],[-179.733,396.441],[-184.918,391.314],[-190.103,386.188],[-195.288,381.062],[-200.472,375.937],[-205.657,370.811],[-210.842,365.685],[-215.996,360.53],[-221.153,355.376],[-226.307,350.219],[-231.462,345.065],[-236.619,339.908],[-241.773,334.754],[-246.927,329.599],[-252.084,324.443],[-257.238,319.288],[-262.393,314.132],[-267.547,308.977],[-272.704,303.823],[-277.858,298.666],[-283.013,293.512],[-288.169,288.355],[-293.324,283.201],[-298.478,278.044],[-303.635,272.889],[-308.789,267.735],[-313.944,262.578],[-319.098,257.424],[-324.255,252.267],[-329.409,247.113],[-334.564,241.956],[-339.72,236.802],[-344.875,231.647],[-350.029,226.491],[-355.186,221.336],[-360.34,216.18],[-365.495,211.025],[-370.535,205.756],[-375.572,200.488],[-380.61,195.216],[-385.65,189.948],[-390.688,184.679],[-395.725,179.408],[-400.765,174.139],[-405.803,168.87],[-410.84,163.599],[-415.88,158.331],[-420.918,153.062],[-425.956,147.793],[-430.993,142.522],[-436.033,137.253],[-441.071,131.984],[-446.109,126.713],[-450.698,121.059],[-455.122,115.265],[-459.546,109.469],[-463.888,103.616],[-467.747,97.433],[-471.596,91.242],[-474.794,84.689],[-477.992,78.139],[-480.684,71.371],[-483.151,64.513],[-485.551,57.631],[-487.358,50.567],[-489.167,43.505],[-490.619,36.369],[-491.754,29.167],[-492.888,21.966],[-493.369,14.692],[-493.824,7.415],[-494.002,0.134],[-493.773,-7.151],[-493.546,-14.44],[-492.739,-21.681],[-491.828,-28.915],[-490.722,-36.115],[-489.139,-43.23],[-487.554,-50.347],[-485.57,-57.358],[-483.431,-64.328],[-480.857,-71.147],[-478.128,-77.903],[-474.986,-84.484],[-471.666,-90.966],[-467.898,-97.206],[-464.028,-103.378],[-459.697,-109.245],[-455.369,-115.111],[-450.999,-120.945],[-446.13,-126.37],[-441.26,-131.798],[-436.393,-137.223],[-431.523,-142.65],[-426.654,-148.075],[-421.787,-153.503],[-416.917,-158.93],[-411.835,-164.157],[-406.711,-169.34],[-401.585,-174.524],[-396.458,-179.709],[-391.332,-184.894],[-386.205,-190.078],[-381.081,-195.263],[-375.955,-200.448],[-370.829,-205.63],[-365.702,-210.815],[-360.548,-215.972],[-355.393,-221.129],[-350.239,-226.283],[-345.082,-231.437],[-339.928,-236.594],[-334.774,-241.748],[-329.617,-246.905],[-324.462,-252.06],[-319.308,-257.214],[-314.154,-262.371],[-308.997,-267.525],[-303.843,-272.682],[-298.688,-277.836],[-293.532,-282.993],[-288.377,-288.147],[-283.223,-293.302],[-278.066,-298.458],[-272.912,-303.613],[-267.757,-308.769],[-262.603,-313.924],[-257.446,-319.081],[-252.292,-324.235],[-247.137,-329.389],[-241.981,-334.546],[-236.826,-339.7],[-231.672,-344.857],[-226.515,-350.011],[-221.361,-355.166],[-216.206,-360.323],[-211.052,-365.477],[-205.781,-370.517],[-200.512,-375.555],[-195.243,-380.592],[-189.972,-385.632],[-184.703,-390.67],[-179.435,-395.708],[-174.164,-400.745],[-168.895,-405.783],[-163.624,-410.823],[-158.355,-415.861],[-153.086,-420.898],[-147.815,-425.936],[-142.546,-430.976],[-137.275,-436.014],[-132.006,-441.051],[-126.738,-446.089],[-121.084,-450.681],[-115.29,-455.105],[-109.493,-459.528],[-103.643,-463.87],[-97.459,-467.731],[-91.269,-471.583],[-84.718,-474.781],[-78.168,-477.982],[-71.403,-480.676],[-64.542,-483.143],[-57.662,-485.545],[-50.598,-487.352],[-43.534,-489.159],[-36.4,-490.616],[-29.199,-491.75],[-21.997,-492.885],[-14.723,-493.368],[-7.447,-493.823]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[8.9,8.9],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Material shape","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":376,"op":720,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":5,"ty":4,"nm":".cream","cl":"cream","parent":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[167,56,0],"ix":2,"l":2},"a":{"a":0,"k":[-83.117,-32.398,0],"ix":1,"l":2},"s":{"a":1,"k":[{"i":{"x":[0.18,0.18,0.667],"y":[1,1,1]},"o":{"x":[0.678,0.678,0.333],"y":[-0.009,-0.009,0]},"t":60,"s":[100,100,100]},{"i":{"x":[0.325,0.325,0.667],"y":[1,1,1]},"o":{"x":[0.678,0.678,0.333],"y":[0,0,0]},"t":70,"s":[105,105,100]},{"t":80,"s":[40,40,100]}],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[44,44],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":22,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-83.117,-32.398],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":80,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":6,"ty":4,"nm":".cream","cl":"cream","parent":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[167,56,0],"ix":2,"l":2},"a":{"a":0,"k":[-83.117,-32.398,0],"ix":1,"l":2},"s":{"a":1,"k":[{"i":{"x":[0.178,0.178,0.667],"y":[1,1,1]},"o":{"x":[0.562,0.562,0.333],"y":[0,0,0]},"t":82,"s":[40,40,100]},{"i":{"x":[0.351,0.351,0.667],"y":[1,1,1]},"o":{"x":[0.762,0.762,0.333],"y":[0,0,0]},"t":92,"s":[105,105,100]},{"t":102,"s":[100,100,100]}],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-12.15],[12.15,0],[0,12.15],[-12.15,0]],"o":[[0,12.15],[-12.15,0],[0,-12.15],[12.15,0]],"v":[[22,0],[0,22],[-22,0],[0,-22]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-83.117,-32.398],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":82,"op":150,"st":-10,"ct":1,"bm":0},{"ddd":0,"ind":7,"ty":4,"nm":".cream","cl":"cream","parent":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0],"y":[1]},"o":{"x":[0.05],"y":[0]},"t":150,"s":[0]},{"t":180,"s":[90]}],"ix":10},"p":{"s":true,"x":{"a":1,"k":[{"i":{"x":[0],"y":[1]},"o":{"x":[0.05],"y":[0]},"t":270,"s":[167.116]},{"i":{"x":[0],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":300,"s":[167.595]},{"i":{"x":[0],"y":[1]},"o":{"x":[0.05],"y":[0]},"t":370,"s":[167.595]},{"i":{"x":[0],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":400,"s":[227.643]},{"i":{"x":[0],"y":[1]},"o":{"x":[0.05],"y":[0]},"t":458,"s":[227.643]},{"i":{"x":[0],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":488,"s":[287.451]},{"i":{"x":[0],"y":[1]},"o":{"x":[0.05],"y":[0]},"t":546,"s":[287.451]},{"t":576,"s":[348.217]}],"ix":3},"y":{"a":0,"k":56.117,"ix":4}},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[50,50,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0,"y":1},"o":{"x":0.05,"y":0},"t":150,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[3.419,-496.632],[11.147,-496.256],[18.878,-495.883],[26.606,-495.507],[34.334,-495.132],[42.064,-494.758],[49.739,-493.839],[57.397,-492.716],[65.053,-491.594],[72.709,-490.474],[80.365,-489.352],[88.023,-488.232],[95.594,-486.684],[103.108,-484.832],[110.622,-482.977],[118.135,-481.125],[125.647,-479.273],[133.16,-477.422],[140.563,-475.196],[147.865,-472.639],[155.169,-470.079],[162.471,-467.521],[169.773,-464.961],[177.077,-462.401],[184.232,-459.48],[191.262,-456.243],[198.291,-453.009],[205.321,-449.772],[212.35,-446.538],[219.378,-443.302],[226.21,-439.684],[232.907,-435.807],[239.604,-431.932],[246.302,-428.055],[252.999,-424.178],[259.696,-420.303],[266.124,-416.009],[272.436,-411.53],[278.746,-407.053],[285.058,-402.573],[291.367,-398.097],[297.679,-393.617],[303.632,-388.683],[309.506,-383.645],[315.38,-378.607],[321.251,-373.569],[327.125,-368.531],[332.998,-363.493],[338.412,-357.966],[343.799,-352.41],[349.187,-346.857],[354.574,-341.301],[359.963,-335.747],[365.307,-330.155],[370.165,-324.13],[375.02,-318.107],[379.877,-312.082],[384.732,-306.056],[389.59,-300.033],[394.326,-293.921],[398.608,-287.474],[402.89,-281.03],[407.172,-274.585],[411.454,-268.138],[415.736,-261.694],[419.82,-255.129],[423.488,-248.316],[427.153,-241.501],[430.821,-234.688],[434.486,-227.873],[438.154,-221.057],[441.554,-214.117],[444.569,-206.989],[447.582,-199.863],[450.595,-192.734],[453.61,-185.608],[456.623,-178.48],[459.325,-171.238],[461.651,-163.859],[463.977,-156.478],[466.304,-149.099],[468.63,-141.718],[470.956,-134.339],[472.967,-126.876],[474.579,-119.307],[476.19,-111.738],[477.798,-104.169],[479.409,-96.6],[481.021,-89.033],[482.413,-81.425],[483.41,-73.753],[484.409,-66.078],[485.408,-58.405],[486.251,-50.718],[486.624,-42.99],[487,-35.26],[487.374,-27.532],[487.749,-19.801],[488.125,-12.073],[488.498,-4.345],[488.132,3.385],[487.759,11.113],[487.383,18.844],[487.01,26.572],[486.634,34.302],[486.258,42.03],[485.341,49.708],[484.221,57.363],[483.099,65.019],[481.979,72.675],[480.857,80.333],[479.735,87.989],[478.191,95.563],[476.339,103.074],[474.487,110.588],[472.633,118.102],[470.781,125.615],[468.929,133.129],[466.708,140.532],[464.148,147.834],[461.588,155.135],[459.031,162.44],[456.471,169.742],[453.913,177.046],[450.992,184.201],[447.758,191.23],[444.521,198.26],[441.287,205.29],[438.05,212.319],[434.816,219.349],[431.199,226.181],[427.324,232.878],[423.447,239.576],[419.57,246.273],[415.695,252.97],[411.817,259.667],[407.526,266.098],[403.049,272.407],[398.57,278.719],[394.093,285.029],[389.614,291.341],[385.137,297.65],[380.204,303.606],[375.167,309.479],[370.126,315.353],[365.088,321.227],[360.05,327.098],[355.012,332.972],[349.488,338.388],[343.934,343.775],[338.378,349.162],[332.825,354.55],[327.269,359.939],[321.679,365.286],[315.654,370.143],[309.631,374.998],[303.606,379.855],[297.58,384.71],[291.557,389.568],[285.445,394.307],[279.001,398.589],[272.556,402.871],[266.11,407.153],[259.665,411.435],[253.218,415.716],[246.656,419.803],[239.843,423.471],[233.028,427.136],[226.215,430.804],[219.399,434.469],[212.586,438.137],[205.646,441.54],[198.517,444.555],[191.392,447.568],[184.263,450.58],[177.137,453.596],[170.009,456.608],[162.77,459.313],[155.388,461.639],[148.01,463.965],[140.628,466.292],[133.25,468.62],[125.868,470.947],[118.405,472.958],[110.836,474.569],[103.269,476.18],[95.7,477.791],[88.131,479.402],[80.562,481.013],[72.957,482.405],[65.284,483.405],[57.609,484.402],[49.937,485.401],[42.25,486.246],[34.519,486.622],[26.791,486.995],[19.063,487.371],[11.333,487.744],[3.605,488.12],[-4.249,488.5],[-11.977,488.127],[-19.707,487.752],[-27.435,487.376],[-35.166,487.003],[-42.894,486.627],[-50.624,486.254],[-58.299,485.326],[-65.955,484.204],[-73.611,483.084],[-81.269,481.962],[-88.925,480.84],[-96.581,479.72],[-104.152,478.164],[-111.666,476.312],[-119.179,474.461],[-126.691,472.609],[-134.204,470.757],[-141.718,468.905],[-149.119,466.675],[-156.42,464.115],[-163.725,461.557],[-171.026,458.997],[-178.331,456.437],[-185.632,453.88],[-192.787,450.951],[-199.814,447.715],[-206.844,444.48],[-213.874,441.246],[-220.903,438.01],[-227.933,434.775],[-234.76,431.151],[-241.458,427.274],[-248.155,423.399],[-254.852,419.521],[-261.55,415.647],[-268.247,411.769],[-274.672,407.471],[-280.984,402.991],[-287.294,398.514],[-293.606,394.035],[-299.915,389.558],[-306.225,385.079],[-312.178,380.142],[-318.049,375.101],[-323.923,370.064],[-329.797,365.025],[-335.67,359.987],[-341.542,354.95],[-346.953,349.418],[-352.34,343.864],[-357.727,338.308],[-363.115,332.755],[-368.502,327.199],[-373.843,321.605],[-378.701,315.58],[-383.556,309.557],[-388.413,303.531],[-393.268,297.506],[-398.125,291.483],[-402.858,285.366],[-407.14,278.921],[-411.421,272.477],[-415.703,266.03],[-419.985,259.586],[-424.267,253.139],[-428.346,246.574],[-432.014,239.759],[-435.68,232.943],[-439.347,226.13],[-443.015,219.315],[-446.68,212.502],[-450.076,205.557],[-453.091,198.431],[-456.104,191.303],[-459.116,184.177],[-462.132,177.048],[-465.144,169.922],[-467.841,162.678],[-470.168,155.297],[-472.494,147.918],[-474.821,140.537],[-477.147,133.158],[-479.473,125.777],[-481.477,118.311],[-483.088,110.744],[-484.699,103.176],[-486.31,95.606],[-487.921,88.037],[-489.532,80.468],[-490.917,72.863],[-491.917,65.188],[-492.914,57.515],[-493.913,49.843],[-494.751,42.153],[-495.127,34.425],[-495.5,26.697],[-495.876,18.967],[-496.249,11.239],[-496.625,3.508],[-496.998,-4.22],[-496.627,-11.95],[-496.254,-19.678],[-495.878,-27.406],[-495.502,-35.137],[-495.129,-42.865],[-494.754,-50.595],[-493.831,-58.27],[-492.709,-65.926],[-491.589,-73.584],[-490.467,-81.24],[-489.345,-88.896],[-488.225,-96.552],[-486.674,-104.126],[-484.82,-111.637],[-482.968,-119.151],[-481.116,-126.664],[-479.264,-134.178],[-477.412,-141.692],[-475.184,-149.092],[-472.624,-156.394],[-470.067,-163.698],[-467.507,-171],[-464.949,-178.304],[-462.389,-185.606],[-459.463,-192.761],[-456.229,-199.79],[-452.992,-206.82],[-449.758,-213.847],[-446.524,-220.877],[-443.287,-227.906],[-439.665,-234.736],[-435.79,-241.434],[-431.913,-248.131],[-428.038,-254.828],[-424.161,-261.526],[-420.284,-268.223],[-415.987,-274.65],[-411.51,-280.96],[-407.031,-287.272],[-402.554,-293.582],[-398.075,-299.894],[-393.598,-306.203],[-388.661,-312.156],[-383.623,-318.03],[-378.585,-323.901],[-373.547,-329.775],[-368.507,-335.649],[-363.469,-341.522],[-357.942,-346.934],[-352.386,-352.321],[-346.832,-357.708],[-341.277,-363.095],[-335.723,-368.485],[-330.129,-373.826],[-324.103,-378.684],[-318.08,-383.539],[-312.055,-388.396],[-306.03,-393.251],[-300.007,-398.109],[-293.892,-402.843],[-287.448,-407.125],[-281.001,-411.407],[-274.556,-415.689],[-268.11,-419.971],[-261.665,-424.252],[-255.1,-428.334],[-248.285,-432.002],[-241.472,-435.667],[-234.657,-439.335],[-227.844,-443.003],[-221.029,-446.668],[-214.086,-450.066],[-206.96,-453.081],[-199.831,-456.094],[-192.705,-459.107],[-185.577,-462.122],[-178.451,-465.135],[-171.207,-467.834],[-163.828,-470.161],[-156.447,-472.487],[-149.068,-474.813],[-141.687,-477.14],[-134.308,-479.466],[-126.842,-481.472],[-119.273,-483.083],[-111.704,-484.694],[-104.138,-486.306],[-96.569,-487.917],[-88.999,-489.528],[-81.392,-490.917],[-73.719,-491.914],[-66.046,-492.914],[-58.371,-493.911],[-50.684,-494.751],[-42.956,-495.127],[-35.226,-495.5],[-27.498,-495.876],[-19.77,-496.251],[-12.039,-496.625],[-4.311,-497]],"c":true}]},{"t":180,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-0.652,-437.366],[8.33,-437.659],[17.312,-437.953],[26.249,-438.778],[35.158,-439.948],[44.07,-441.114],[52.848,-442.998],[61.602,-445.033],[70.348,-447.09],[78.906,-449.835],[87.432,-452.668],[95.787,-455.975],[104.114,-459.352],[112.356,-462.932],[120.6,-466.51],[128.842,-470.088],[137.086,-473.668],[145.494,-476.842],[153.901,-480.013],[162.309,-483.184],[170.98,-485.538],[179.663,-487.853],[188.349,-490.149],[197.221,-491.579],[206.092,-493.009],[214.984,-494.276],[223.954,-494.806],[232.926,-495.333],[241.897,-495.501],[250.877,-495.127],[259.857,-494.753],[268.778,-493.782],[277.678,-492.525],[286.574,-491.265],[295.31,-489.158],[304.044,-487.043],[312.697,-484.654],[321.19,-481.719],[329.683,-478.781],[337.963,-475.306],[346.144,-471.59],[354.301,-467.824],[362.109,-463.379],[369.919,-458.93],[377.531,-454.173],[384.91,-449.042],[392.286,-443.909],[399.256,-438.244],[406.146,-432.478],[412.915,-426.575],[419.27,-420.22],[425.623,-413.867],[431.614,-407.178],[437.38,-400.286],[443.14,-393.391],[448.274,-386.013],[453.404,-378.636],[458.262,-371.087],[462.71,-363.279],[467.158,-355.469],[471.032,-347.367],[474.745,-339.186],[478.338,-330.954],[481.276,-322.461],[484.212,-313.968],[486.723,-305.35],[488.838,-296.616],[490.956,-287.883],[492.333,-279.009],[493.59,-270.109],[494.694,-261.198],[495.065,-252.221],[495.439,-243.241],[495.406,-234.267],[494.88,-225.295],[494.35,-216.325],[493.216,-207.421],[491.786,-198.549],[490.356,-189.678],[488.193,-180.962],[485.878,-172.278],[483.559,-163.597],[480.481,-155.159],[477.307,-146.752],[474.136,-138.342],[470.618,-130.075],[467.038,-121.833],[463.46,-113.589],[459.882,-105.347],[456.543,-97.007],[453.374,-88.597],[450.208,-80.187],[447.684,-71.571],[445.361,-62.891],[443.04,-54.21],[441.544,-45.348],[440.087,-36.481],[438.775,-27.597],[438.19,-18.63],[437.605,-9.663],[437.362,-0.691],[437.653,8.291],[437.947,17.273],[438.77,26.21],[439.939,35.121],[441.105,44.031],[442.987,52.812],[445.022,61.566],[447.074,70.312],[449.819,78.87],[452.649,87.395],[455.956,95.753],[459.333,104.08],[462.911,112.322],[466.488,120.566],[470.069,128.808],[473.646,137.052],[476.823,145.458],[479.994,153.865],[483.165,162.275],[485.521,170.943],[487.84,179.627],[490.138,188.313],[491.568,197.184],[492.998,206.056],[494.27,214.945],[494.799,223.917],[495.326,232.887],[495.497,241.861],[495.123,250.838],[494.752,259.818],[493.783,268.742],[492.524,277.641],[491.267,286.538],[489.162,295.274],[487.047,304.008],[484.661,312.664],[481.725,321.156],[478.787,329.649],[475.315,337.926],[471.599,346.11],[467.838,354.267],[463.39,362.077],[458.944,369.885],[454.19,377.502],[449.059,384.879],[443.925,392.255],[438.263,399.227],[432.497,406.117],[426.596,412.888],[420.241,419.241],[413.888,425.596],[407.202,431.588],[400.31,437.356],[393.415,443.119],[386.039,448.252],[378.663,453.383],[371.113,458.243],[363.305,462.691],[355.498,467.14],[347.396,471.016],[339.215,474.732],[330.985,478.327],[322.492,481.265],[314,484.2],[305.381,486.714],[296.648,488.832],[287.914,490.947],[279.04,492.327],[270.143,493.586],[261.231,494.693],[252.252,495.067],[243.275,495.44],[234.298,495.41],[225.328,494.883],[216.356,494.354],[207.452,493.225],[198.581,491.795],[189.709,490.365],[180.993,488.207],[172.309,485.889],[163.628,483.573],[155.188,480.495],[146.781,477.323],[138.373,474.152],[130.106,470.634],[121.862,467.057],[113.62,463.476],[105.376,459.899],[97.036,456.559],[88.626,453.39],[80.216,450.224],[71.603,447.695],[62.922,445.374],[54.241,443.054],[45.382,441.553],[36.515,440.095],[27.631,438.781],[18.664,438.196],[9.697,437.612],[0.723,437.363],[-8.259,437.654],[-17.239,437.948],[-26.178,438.768],[-35.088,439.935],[-43.999,441.104],[-52.781,442.981],[-61.534,445.016],[-70.283,447.065],[-78.839,449.81],[-87.367,452.638],[-95.721,455.945],[-104.048,459.319],[-112.293,462.897],[-120.535,466.477],[-128.779,470.055],[-137.021,473.633],[-145.429,476.811],[-153.836,479.983],[-162.243,483.154],[-170.912,485.515],[-179.595,487.831],[-188.281,490.134],[-197.153,491.564],[-206.025,492.994],[-214.914,494.269],[-223.883,494.798],[-232.855,495.325],[-241.827,495.501],[-250.807,495.127],[-259.786,494.753],[-268.711,493.789],[-277.607,492.53],[-286.507,491.273],[-295.243,489.173],[-303.976,487.056],[-312.632,484.674],[-321.125,481.737],[-329.618,478.801],[-337.897,475.331],[-346.079,471.615],[-354.241,467.854],[-362.048,463.409],[-369.856,458.96],[-377.473,454.211],[-384.85,449.078],[-392.229,443.947],[-399.201,438.287],[-406.093,432.518],[-412.865,426.62],[-419.22,420.265],[-425.572,413.912],[-431.566,407.228],[-437.334,400.336],[-443.1,393.444],[-448.231,386.068],[-453.364,378.689],[-458.226,371.145],[-462.675,363.334],[-467.123,355.526],[-471.002,347.428],[-474.718,339.246],[-478.316,331.017],[-481.254,322.524],[-484.192,314.031],[-486.708,305.415],[-488.823,296.682],[-490.941,287.948],[-492.323,279.074],[-493.582,270.177],[-494.694,261.265],[-495.068,252.286],[-495.439,243.309],[-495.417,234.332],[-494.887,225.362],[-494.36,216.39],[-493.234,207.486],[-491.804,198.614],[-490.374,189.743],[-488.218,181.024],[-485.9,172.343],[-483.584,163.66],[-480.511,155.22],[-477.34,146.812],[-474.168,138.405],[-470.651,130.138],[-467.07,121.896],[-463.49,113.652],[-459.91,105.41],[-456.568,97.072],[-453.402,88.66],[-450.235,80.25],[-447.704,71.637],[-445.383,62.956],[-443.062,54.275],[-441.562,45.416],[-440.104,36.549],[-438.785,27.665],[-438.2,18.698],[-437.618,9.731],[-437.365,0.759],[-437.658,-8.223],[-437.949,-17.205],[-438.767,-26.145],[-439.934,-35.054],[-441.103,-43.963],[-442.977,-52.747],[-445.012,-61.498],[-447.059,-70.249],[-449.804,-78.805],[-452.631,-87.333],[-455.936,-95.69],[-459.31,-104.017],[-462.891,-112.259],[-466.468,-120.503],[-470.046,-128.745],[-473.684,-137.12],[-476.855,-145.53],[-480.027,-153.938],[-483.198,-162.345],[-485.546,-171.019],[-487.865,-179.699],[-490.153,-188.388],[-491.583,-197.26],[-493.013,-206.131],[-494.277,-215.023],[-494.807,-223.993],[-495.334,-232.965],[-495.497,-241.936],[-495.123,-250.916],[-494.752,-259.896],[-493.776,-268.817],[-492.516,-277.717],[-491.259,-286.613],[-489.149,-295.349],[-487.032,-304.083],[-484.641,-312.734],[-481.703,-321.227],[-478.767,-329.722],[-475.287,-337.996],[-471.572,-346.181],[-467.803,-354.335],[-463.357,-362.143],[-458.909,-369.953],[-454.149,-377.565],[-449.019,-384.941],[-443.885,-392.318],[-438.218,-399.285],[-432.452,-406.177],[-426.546,-412.944],[-420.193,-419.296],[-413.838,-425.652],[-407.147,-431.638],[-400.257,-437.406],[-393.358,-443.164],[-385.981,-448.295],[-378.605,-453.428],[-371.053,-458.283],[-363.245,-462.731],[-355.435,-467.177],[-347.334,-471.048],[-339.149,-474.764],[-330.917,-478.354],[-322.425,-481.29],[-313.932,-484.228],[-305.314,-486.734],[-296.58,-488.852],[-287.846,-490.967],[-278.97,-492.342],[-270.073,-493.599],[-261.161,-494.7],[-252.182,-495.072],[-243.202,-495.445],[-234.228,-495.41],[-225.258,-494.883],[-216.286,-494.354],[-207.382,-493.217],[-198.51,-491.787],[-189.639,-490.357],[-180.925,-488.192],[-172.242,-485.874],[-163.558,-483.558],[-155.123,-480.475],[-146.716,-477.301],[-138.306,-474.129],[-130.041,-470.609],[-121.797,-467.029],[-113.555,-463.449],[-105.313,-459.871],[-96.971,-456.534],[-88.561,-453.368],[-80.151,-450.199],[-71.535,-447.678],[-62.854,-445.357],[-54.171,-443.036],[-45.312,-441.543],[-36.445,-440.086],[-27.561,-438.778],[-18.594,-438.194],[-9.624,-437.609]],"c":true}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[8.9,8.9],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Material shape","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":150,"op":720,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":8,"ty":4,"nm":".cream","cl":"cream","parent":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[221,56,0],"ix":2,"l":2},"a":{"a":0,"k":[-83.117,-32.398,0],"ix":1,"l":2},"s":{"a":1,"k":[{"i":{"x":[0.18,0.18,0.667],"y":[1,1,1]},"o":{"x":[0.678,0.678,0.333],"y":[-0.009,-0.009,0]},"t":66,"s":[100,100,100]},{"i":{"x":[0.325,0.325,0.667],"y":[1,1,1]},"o":{"x":[0.678,0.678,0.333],"y":[0,0,0]},"t":76,"s":[105,105,100]},{"t":86,"s":[40,40,100]}],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[44,44],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":22,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-83.117,-32.398],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":86,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":9,"ty":4,"nm":".cream","cl":"cream","parent":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0],"y":[1]},"o":{"x":[0.05],"y":[0]},"t":156,"s":[0]},{"t":186,"s":[90]}],"ix":10},"p":{"s":true,"x":{"a":1,"k":[{"i":{"x":[0],"y":[1]},"o":{"x":[0.05],"y":[0]},"t":270,"s":[221]},{"i":{"x":[0],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":300,"s":[225.785]},{"i":{"x":[0],"y":[1]},"o":{"x":[0.05],"y":[0]},"t":368,"s":[225.785]},{"i":{"x":[0],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":398,"s":[288.943]},{"i":{"x":[0],"y":[1]},"o":{"x":[0.05],"y":[0]},"t":456,"s":[288.943]},{"t":486,"s":[349.708]}],"ix":3},"y":{"a":0,"k":56,"ix":4}},"a":{"a":0,"k":[-83.117,-32.398,0],"ix":1,"l":2},"s":{"a":1,"k":[{"i":{"x":[0.178,0.178,0.667],"y":[1,1,1]},"o":{"x":[0.562,0.562,0.333],"y":[0,0,0]},"t":88,"s":[40,40,100]},{"i":{"x":[0.351,0.351,0.667],"y":[1,1,1]},"o":{"x":[0.762,0.762,0.333],"y":[0,0,0]},"t":98,"s":[105,105,100]},{"i":{"x":[0.833,0.833,0.833],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0,0,0]},"t":108,"s":[100,100,100]},{"i":{"x":[0.8,0.8,0.8],"y":[0.15,0.15,1]},"o":{"x":[0.3,0.3,0.3],"y":[0,0,0]},"t":540,"s":[100,100,100]},{"t":552,"s":[20,20,100]}],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[44,44],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":1,"k":[{"i":{"x":[0],"y":[1]},"o":{"x":[0.05],"y":[0]},"t":156,"s":[22]},{"t":186,"s":[15]}],"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-83.117,-32.398],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":88,"op":552,"st":-10,"ct":1,"bm":0},{"ddd":0,"ind":10,"ty":4,"nm":".cream","cl":"cream","parent":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[275,56,0],"ix":2,"l":2},"a":{"a":0,"k":[-83.117,-32.398,0],"ix":1,"l":2},"s":{"a":1,"k":[{"i":{"x":[0.18,0.18,0.667],"y":[1,1,1]},"o":{"x":[0.678,0.678,0.333],"y":[-0.009,-0.009,0]},"t":72,"s":[100,100,100]},{"i":{"x":[0.325,0.325,0.667],"y":[1,1,1]},"o":{"x":[0.678,0.678,0.333],"y":[0,0,0]},"t":82,"s":[105,105,100]},{"t":92,"s":[40,40,100]}],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[44,44],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":22,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-83.117,-32.398],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":92,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":11,"ty":4,"nm":".cream","cl":"cream","parent":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[275,56,0],"ix":2,"l":2},"a":{"a":0,"k":[-83.117,-32.398,0],"ix":1,"l":2},"s":{"a":1,"k":[{"i":{"x":[0.178,0.178,0.667],"y":[1,1,1]},"o":{"x":[0.562,0.562,0.333],"y":[0,0,0]},"t":94,"s":[40,40,100]},{"i":{"x":[0.351,0.351,0.667],"y":[1,1,1]},"o":{"x":[0.762,0.762,0.333],"y":[0,0,0]},"t":104,"s":[105,105,100]},{"t":114,"s":[100,100,100]}],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[44,44],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":22,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-83.117,-32.398],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":94,"op":162,"st":-10,"ct":1,"bm":0},{"ddd":0,"ind":12,"ty":4,"nm":".cream","cl":"cream","parent":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0],"y":[1]},"o":{"x":[0.05],"y":[0]},"t":162,"s":[0]},{"t":192,"s":[90]}],"ix":10},"p":{"s":true,"x":{"a":1,"k":[{"i":{"x":[0],"y":[1]},"o":{"x":[0.05],"y":[0]},"t":270,"s":[275.262]},{"i":{"x":[0],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":300,"s":[286.267]},{"i":{"x":[0],"y":[1]},"o":{"x":[0.05],"y":[0]},"t":366,"s":[286.267]},{"t":396,"s":[349.664]}],"ix":3},"y":{"a":0,"k":56.117,"ix":4}},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":1,"k":[{"i":{"x":[0.8,0.8,0.8],"y":[0.15,0.15,1]},"o":{"x":[0.3,0.3,0.3],"y":[0,0,0]},"t":450,"s":[50,50,100]},{"t":462,"s":[20,20,100]}],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0,"y":1},"o":{"x":0.05,"y":0},"t":162,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[3.419,-496.632],[11.147,-496.256],[18.878,-495.883],[26.606,-495.507],[34.334,-495.132],[42.064,-494.758],[49.739,-493.839],[57.397,-492.716],[65.053,-491.594],[72.709,-490.474],[80.365,-489.352],[88.023,-488.232],[95.594,-486.684],[103.108,-484.832],[110.622,-482.977],[118.135,-481.125],[125.647,-479.273],[133.16,-477.422],[140.563,-475.196],[147.865,-472.639],[155.169,-470.079],[162.471,-467.521],[169.773,-464.961],[177.077,-462.401],[184.232,-459.48],[191.262,-456.243],[198.291,-453.009],[205.321,-449.772],[212.35,-446.538],[219.378,-443.302],[226.21,-439.684],[232.907,-435.807],[239.604,-431.932],[246.302,-428.055],[252.999,-424.178],[259.696,-420.303],[266.124,-416.009],[272.436,-411.53],[278.746,-407.053],[285.058,-402.573],[291.367,-398.097],[297.679,-393.617],[303.632,-388.683],[309.506,-383.645],[315.38,-378.607],[321.251,-373.569],[327.125,-368.531],[332.998,-363.493],[338.412,-357.966],[343.799,-352.41],[349.187,-346.857],[354.574,-341.301],[359.963,-335.747],[365.307,-330.155],[370.165,-324.13],[375.02,-318.107],[379.877,-312.082],[384.732,-306.056],[389.59,-300.033],[394.326,-293.921],[398.608,-287.474],[402.89,-281.03],[407.172,-274.585],[411.454,-268.138],[415.736,-261.694],[419.82,-255.129],[423.488,-248.316],[427.153,-241.501],[430.821,-234.688],[434.486,-227.873],[438.154,-221.057],[441.554,-214.117],[444.569,-206.989],[447.582,-199.863],[450.595,-192.734],[453.61,-185.608],[456.623,-178.48],[459.325,-171.238],[461.651,-163.859],[463.977,-156.478],[466.304,-149.099],[468.63,-141.718],[470.956,-134.339],[472.967,-126.876],[474.579,-119.307],[476.19,-111.738],[477.798,-104.169],[479.409,-96.6],[481.021,-89.033],[482.413,-81.425],[483.41,-73.753],[484.409,-66.078],[485.408,-58.405],[486.251,-50.718],[486.624,-42.99],[487,-35.26],[487.374,-27.532],[487.749,-19.801],[488.125,-12.073],[488.498,-4.345],[488.132,3.385],[487.759,11.113],[487.383,18.844],[487.01,26.572],[486.634,34.302],[486.258,42.03],[485.341,49.708],[484.221,57.363],[483.099,65.019],[481.979,72.675],[480.857,80.333],[479.735,87.989],[478.191,95.563],[476.339,103.074],[474.487,110.588],[472.633,118.102],[470.781,125.615],[468.929,133.129],[466.708,140.532],[464.148,147.834],[461.588,155.135],[459.031,162.44],[456.471,169.742],[453.913,177.046],[450.992,184.201],[447.758,191.23],[444.521,198.26],[441.287,205.29],[438.05,212.319],[434.816,219.349],[431.199,226.181],[427.324,232.878],[423.447,239.576],[419.57,246.273],[415.695,252.97],[411.817,259.667],[407.526,266.098],[403.049,272.407],[398.57,278.719],[394.093,285.029],[389.614,291.341],[385.137,297.65],[380.204,303.606],[375.167,309.479],[370.126,315.353],[365.088,321.227],[360.05,327.098],[355.012,332.972],[349.488,338.388],[343.934,343.775],[338.378,349.162],[332.825,354.55],[327.269,359.939],[321.679,365.286],[315.654,370.143],[309.631,374.998],[303.606,379.855],[297.58,384.71],[291.557,389.568],[285.445,394.307],[279.001,398.589],[272.556,402.871],[266.11,407.153],[259.665,411.435],[253.218,415.716],[246.656,419.803],[239.843,423.471],[233.028,427.136],[226.215,430.804],[219.399,434.469],[212.586,438.137],[205.646,441.54],[198.517,444.555],[191.392,447.568],[184.263,450.58],[177.137,453.596],[170.009,456.608],[162.77,459.313],[155.388,461.639],[148.01,463.965],[140.628,466.292],[133.25,468.62],[125.868,470.947],[118.405,472.958],[110.836,474.569],[103.269,476.18],[95.7,477.791],[88.131,479.402],[80.562,481.013],[72.957,482.405],[65.284,483.405],[57.609,484.402],[49.937,485.401],[42.25,486.246],[34.519,486.622],[26.791,486.995],[19.063,487.371],[11.333,487.744],[3.605,488.12],[-4.249,488.5],[-11.977,488.127],[-19.707,487.752],[-27.435,487.376],[-35.166,487.003],[-42.894,486.627],[-50.624,486.254],[-58.299,485.326],[-65.955,484.204],[-73.611,483.084],[-81.269,481.962],[-88.925,480.84],[-96.581,479.72],[-104.152,478.164],[-111.666,476.312],[-119.179,474.461],[-126.691,472.609],[-134.204,470.757],[-141.718,468.905],[-149.119,466.675],[-156.42,464.115],[-163.725,461.557],[-171.026,458.997],[-178.331,456.437],[-185.632,453.88],[-192.787,450.951],[-199.814,447.715],[-206.844,444.48],[-213.874,441.246],[-220.903,438.01],[-227.933,434.775],[-234.76,431.151],[-241.458,427.274],[-248.155,423.399],[-254.852,419.521],[-261.55,415.647],[-268.247,411.769],[-274.672,407.471],[-280.984,402.991],[-287.294,398.514],[-293.606,394.035],[-299.915,389.558],[-306.225,385.079],[-312.178,380.142],[-318.049,375.101],[-323.923,370.064],[-329.797,365.025],[-335.67,359.987],[-341.542,354.95],[-346.953,349.418],[-352.34,343.864],[-357.727,338.308],[-363.115,332.755],[-368.502,327.199],[-373.843,321.605],[-378.701,315.58],[-383.556,309.557],[-388.413,303.531],[-393.268,297.506],[-398.125,291.483],[-402.858,285.366],[-407.14,278.921],[-411.421,272.477],[-415.703,266.03],[-419.985,259.586],[-424.267,253.139],[-428.346,246.574],[-432.014,239.759],[-435.68,232.943],[-439.347,226.13],[-443.015,219.315],[-446.68,212.502],[-450.076,205.557],[-453.091,198.431],[-456.104,191.303],[-459.116,184.177],[-462.132,177.048],[-465.144,169.922],[-467.841,162.678],[-470.168,155.297],[-472.494,147.918],[-474.821,140.537],[-477.147,133.158],[-479.473,125.777],[-481.477,118.311],[-483.088,110.744],[-484.699,103.176],[-486.31,95.606],[-487.921,88.037],[-489.532,80.468],[-490.917,72.863],[-491.917,65.188],[-492.914,57.515],[-493.913,49.843],[-494.751,42.153],[-495.127,34.425],[-495.5,26.697],[-495.876,18.967],[-496.249,11.239],[-496.625,3.508],[-496.998,-4.22],[-496.627,-11.95],[-496.254,-19.678],[-495.878,-27.406],[-495.502,-35.137],[-495.129,-42.865],[-494.754,-50.595],[-493.831,-58.27],[-492.709,-65.926],[-491.589,-73.584],[-490.467,-81.24],[-489.345,-88.896],[-488.225,-96.552],[-486.674,-104.126],[-484.82,-111.637],[-482.968,-119.151],[-481.116,-126.664],[-479.264,-134.178],[-477.412,-141.692],[-475.184,-149.092],[-472.624,-156.394],[-470.067,-163.698],[-467.507,-171],[-464.949,-178.304],[-462.389,-185.606],[-459.463,-192.761],[-456.229,-199.79],[-452.992,-206.82],[-449.758,-213.847],[-446.524,-220.877],[-443.287,-227.906],[-439.665,-234.736],[-435.79,-241.434],[-431.913,-248.131],[-428.038,-254.828],[-424.161,-261.526],[-420.284,-268.223],[-415.987,-274.65],[-411.51,-280.96],[-407.031,-287.272],[-402.554,-293.582],[-398.075,-299.894],[-393.598,-306.203],[-388.661,-312.156],[-383.623,-318.03],[-378.585,-323.901],[-373.547,-329.775],[-368.507,-335.649],[-363.469,-341.522],[-357.942,-346.934],[-352.386,-352.321],[-346.832,-357.708],[-341.277,-363.095],[-335.723,-368.485],[-330.129,-373.826],[-324.103,-378.684],[-318.08,-383.539],[-312.055,-388.396],[-306.03,-393.251],[-300.007,-398.109],[-293.892,-402.843],[-287.448,-407.125],[-281.001,-411.407],[-274.556,-415.689],[-268.11,-419.971],[-261.665,-424.252],[-255.1,-428.334],[-248.285,-432.002],[-241.472,-435.667],[-234.657,-439.335],[-227.844,-443.003],[-221.029,-446.668],[-214.086,-450.066],[-206.96,-453.081],[-199.831,-456.094],[-192.705,-459.107],[-185.577,-462.122],[-178.451,-465.135],[-171.207,-467.834],[-163.828,-470.161],[-156.447,-472.487],[-149.068,-474.813],[-141.687,-477.14],[-134.308,-479.466],[-126.842,-481.472],[-119.273,-483.083],[-111.704,-484.694],[-104.138,-486.306],[-96.569,-487.917],[-88.999,-489.528],[-81.392,-490.917],[-73.719,-491.914],[-66.046,-492.914],[-58.371,-493.911],[-50.684,-494.751],[-42.956,-495.127],[-35.226,-495.5],[-27.498,-495.876],[-19.77,-496.251],[-12.039,-496.625],[-4.311,-497]],"c":true}]},{"t":192,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[6.428,-491.836],[14.758,-490.711],[22.933,-488.794],[30.879,-486.091],[38.523,-482.63],[45.798,-478.436],[52.619,-473.52],[58.782,-467.809],[64.461,-461.621],[69.338,-454.782],[73.871,-447.708],[78.192,-440.497],[82.517,-433.286],[86.839,-426.075],[91.16,-418.864],[95.482,-411.653],[99.804,-404.442],[104.126,-397.231],[108.483,-390.044],[113.214,-383.095],[118.623,-376.662],[124.659,-370.811],[131.256,-365.6],[138.343,-361.084],[145.852,-357.302],[153.702,-354.292],[161.813,-352.086],[170.105,-350.705],[178.493,-350.164],[186.896,-350.481],[195.21,-351.684],[203.407,-353.545],[211.562,-355.588],[219.718,-357.63],[227.872,-359.673],[236.027,-361.716],[244.181,-363.761],[252.338,-365.803],[260.492,-367.846],[268.646,-369.889],[276.914,-371.411],[285.269,-372.203],[293.657,-372.215],[302.017,-371.414],[310.252,-369.719],[318.231,-367.08],[325.908,-363.685],[333.216,-359.562],[340.096,-354.753],[346.486,-349.301],[352.314,-343.241],[357.412,-336.56],[361.837,-329.422],[365.549,-321.897],[368.509,-314.043],[370.689,-305.936],[372.039,-297.638],[372.361,-289.24],[372.004,-280.849],[370.621,-272.565],[368.824,-264.356],[366.781,-256.2],[364.736,-248.045],[362.693,-239.891],[360.651,-231.737],[358.608,-223.58],[356.565,-215.426],[354.522,-207.272],[352.518,-199.108],[350.948,-190.852],[350.222,-182.478],[350.352,-174.071],[351.328,-165.723],[353.146,-157.514],[355.778,-149.53],[359.199,-141.853],[363.374,-134.555],[368.261,-127.715],[373.81,-121.4],[379.976,-115.683],[386.704,-110.652],[393.816,-106.172],[401.027,-101.85],[408.238,-97.528],[415.449,-93.207],[422.657,-88.885],[429.868,-84.563],[437.079,-80.241],[444.29,-75.919],[451.501,-71.597],[458.424,-66.826],[464.892,-61.481],[470.836,-55.558],[476.182,-49.083],[480.806,-42.061],[484.584,-34.554],[487.613,-26.727],[489.868,-18.643],[491.334,-10.378],[492.001,-2.006],[491.837,6.399],[490.717,14.73],[488.802,22.906],[486.104,30.852],[482.645,38.498],[478.456,45.775],[473.541,52.596],[467.831,58.762],[461.649,64.443],[454.811,69.326],[447.737,73.86],[440.526,78.18],[433.315,82.501],[426.105,86.823],[418.894,91.145],[411.68,95.465],[404.469,99.786],[397.258,104.108],[390.069,108.463],[383.12,113.192],[376.687,118.601],[370.833,124.635],[365.62,131.228],[361.1,138.316],[357.315,145.823],[354.303,153.672],[352.094,161.784],[350.711,170.075],[350.167,178.464],[350.487,186.866],[351.683,195.181],[353.544,203.378],[355.589,211.532],[357.631,219.686],[359.674,227.843],[361.717,235.997],[363.762,244.151],[365.805,252.306],[367.847,260.462],[369.892,268.617],[371.413,276.884],[372.209,285.237],[372.224,293.628],[371.424,301.988],[369.729,310.223],[367.095,318.202],[363.7,325.879],[359.582,333.191],[354.775,340.071],[349.328,346.464],[343.269,352.292],[336.587,357.392],[329.452,361.82],[321.927,365.534],[314.075,368.499],[305.968,370.683],[297.67,372.031],[289.272,372.357],[280.883,372.005],[272.597,370.622],[264.388,368.83],[256.234,366.785],[248.077,364.742],[239.923,362.699],[231.769,360.657],[223.615,358.614],[215.458,356.571],[207.304,354.526],[199.14,352.521],[190.884,350.949],[182.51,350.221],[174.105,350.344],[165.754,351.32],[157.546,353.134],[149.562,355.763],[141.88,359.181],[134.582,363.354],[127.74,368.236],[121.423,373.785],[115.708,379.949],[110.672,386.673],[106.19,393.784],[101.868,400.995],[97.546,408.206],[93.224,415.417],[88.902,422.628],[84.581,429.839],[80.259,437.05],[75.937,444.261],[71.615,451.472],[66.846,458.394],[61.503,464.868],[55.583,470.811],[49.11,476.162],[42.088,480.786],[34.586,484.569],[26.758,487.6],[18.675,489.86],[10.412,491.328],[2.04,492],[-6.367,491.834],[-14.696,490.718],[-22.874,488.808],[-30.82,486.115],[-38.469,482.661],[-45.748,478.474],[-52.569,473.559],[-58.737,467.851],[-64.421,461.671],[-69.305,454.836],[-73.842,447.762],[-78.164,440.551],[-82.484,433.34],[-86.805,426.13],[-91.127,418.918],[-95.449,411.708],[-99.769,404.497],[-104.09,397.283],[-108.445,390.094],[-113.171,383.143],[-118.576,376.707],[-124.607,370.851],[-131.201,365.636],[-138.287,361.113],[-145.793,357.325],[-153.64,354.309],[-161.749,352.098],[-170.041,350.71],[-178.432,350.169],[-186.832,350.483],[-195.149,351.675],[-203.346,353.533],[-211.5,355.578],[-219.654,357.621],[-227.809,359.664],[-235.965,361.706],[-244.12,363.751],[-252.274,365.794],[-260.428,367.837],[-268.585,369.882],[-276.85,371.404],[-285.205,372.204],[-293.594,372.225],[-301.956,371.43],[-310.191,369.735],[-318.17,367.104],[-325.849,363.716],[-333.162,359.6],[-340.046,354.796],[-346.442,349.351],[-352.269,343.291],[-357.371,336.612],[-361.804,329.482],[-365.521,321.956],[-368.488,314.107],[-370.677,306],[-372.025,297.702],[-372.356,289.304],[-372.006,280.915],[-370.628,272.629],[-368.836,264.42],[-366.793,256.264],[-364.75,248.109],[-362.708,239.955],[-360.662,231.801],[-358.62,223.646],[-356.577,215.49],[-354.532,207.336],[-352.527,199.172],[-350.95,190.916],[-350.22,182.542],[-350.34,174.137],[-351.312,165.786],[-353.123,157.578],[-355.749,149.591],[-359.166,141.91],[-363.334,134.609],[-368.216,127.765],[-373.763,121.447],[-379.924,115.728],[-386.645,110.688],[-393.755,106.205],[-400.968,101.886],[-408.179,97.564],[-415.39,93.242],[-422.601,88.923],[-429.814,84.601],[-437.025,80.281],[-444.236,75.96],[-451.449,71.64],[-458.372,66.871],[-464.845,61.533],[-470.793,55.615],[-476.148,49.144],[-480.771,42.123],[-484.556,34.621],[-487.591,26.795],[-489.854,18.714],[-491.327,10.451],[-492.001,2.077],[-491.837,-6.328],[-490.724,-14.659],[-488.818,-22.835],[-486.128,-30.786],[-482.678,-38.434],[-478.496,-45.716],[-473.581,-52.537],[-467.878,-58.71],[-461.701,-64.396],[-454.868,-69.283],[-447.796,-73.822],[-440.586,-78.144],[-433.375,-82.463],[-426.161,-86.785],[-418.95,-91.107],[-411.739,-95.429],[-404.529,-99.751],[-397.318,-104.073],[-390.126,-108.425],[-383.172,-113.146],[-376.732,-118.549],[-370.874,-124.578],[-365.656,-131.167],[-361.128,-138.252],[-357.338,-145.757],[-354.319,-153.601],[-352.104,-161.71],[-350.714,-170.002],[-350.17,-178.393],[-350.482,-186.793],[-351.666,-195.11],[-353.525,-203.307],[-355.567,-211.461],[-357.61,-219.618],[-359.655,-227.772],[-361.698,-235.926],[-363.741,-244.081],[-365.783,-252.237],[-367.826,-260.391],[-369.871,-268.546],[-371.396,-276.813],[-372.202,-285.166],[-372.226,-293.555],[-371.436,-301.917],[-369.741,-310.152],[-367.117,-318.133],[-363.731,-325.815],[-359.617,-333.13],[-354.818,-340.017],[-349.378,-346.414],[-343.318,-352.242],[-336.642,-357.349],[-329.511,-361.784],[-321.991,-365.505],[-314.141,-368.475],[-306.037,-370.669],[-297.738,-372.017],[-289.34,-372.35],[-280.952,-372.005],[-272.665,-370.629],[-264.454,-368.839],[-256.3,-366.796],[-248.146,-364.754],[-239.989,-362.709],[-231.835,-360.666],[-223.681,-358.623],[-215.526,-356.581],[-207.372,-354.535],[-199.208,-352.528],[-190.953,-350.951],[-182.578,-350.216],[-174.174,-350.334],[-165.823,-351.306],[-157.612,-353.115],[-149.626,-355.736],[-141.942,-359.148],[-134.639,-363.314],[-127.794,-368.194],[-121.477,-373.74],[-115.753,-379.899],[-110.708,-386.616],[-106.225,-393.725],[-101.903,-400.936],[-97.582,-408.147],[-93.26,-415.36],[-88.94,-422.571],[-84.618,-429.782],[-80.297,-436.993],[-75.975,-444.204],[-71.584,-451.531],[-66.813,-458.453],[-61.463,-464.917],[-55.538,-470.858],[-49.058,-476.202],[-42.039,-480.826],[-34.53,-484.599],[-26.699,-487.623],[-18.616,-489.876],[-10.351,-491.337],[-1.977,-491.999]],"c":true}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[8.9,8.9],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Material shape","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":162,"op":462,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":13,"ty":4,"nm":".cream","cl":"cream","parent":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[329,56,0],"ix":2,"l":2},"a":{"a":0,"k":[-83.117,-32.398,0],"ix":1,"l":2},"s":{"a":1,"k":[{"i":{"x":[0.18,0.18,0.667],"y":[1,1,1]},"o":{"x":[0.678,0.678,0.333],"y":[-0.009,-0.009,0]},"t":78,"s":[100,100,100]},{"i":{"x":[0.325,0.325,0.667],"y":[1,1,1]},"o":{"x":[0.678,0.678,0.333],"y":[0,0,0]},"t":88,"s":[105,105,100]},{"t":98,"s":[40,40,100]}],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[44,44],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":22,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-83.117,-32.398],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":98,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":14,"ty":4,"nm":".cream","cl":"cream","parent":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[329,56,0],"ix":2,"l":2},"a":{"a":0,"k":[-83.117,-32.398,0],"ix":1,"l":2},"s":{"a":1,"k":[{"i":{"x":[0.178,0.178,0.667],"y":[1,1,1]},"o":{"x":[0.562,0.562,0.333],"y":[0,0,0]},"t":100,"s":[40,40,100]},{"i":{"x":[0.351,0.351,0.667],"y":[1,1,1]},"o":{"x":[0.762,0.762,0.333],"y":[0,0,0]},"t":110,"s":[105,105,100]},{"t":120,"s":[100,100,100]}],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[44,44],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":22,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-83.117,-32.398],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":100,"op":168,"st":-10,"ct":1,"bm":0},{"ddd":0,"ind":15,"ty":4,"nm":".cream","cl":"cream","parent":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0],"y":[1]},"o":{"x":[0.05],"y":[0]},"t":168,"s":[0]},{"t":198,"s":[180]}],"ix":10},"p":{"s":true,"x":{"a":1,"k":[{"i":{"x":[0],"y":[1]},"o":{"x":[0.05],"y":[0]},"t":270,"s":[329.262]},{"t":300,"s":[348.401]}],"ix":3},"y":{"a":0,"k":56.117,"ix":4}},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":1,"k":[{"i":{"x":[0.8,0.8,0.8],"y":[0.15,0.15,1]},"o":{"x":[0.3,0.3,0.3],"y":[0,0,0]},"t":360,"s":[50,50,100]},{"t":372,"s":[20,20,100]}],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0,"y":1},"o":{"x":0.05,"y":0},"t":168,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[3.419,-496.632],[11.147,-496.256],[18.878,-495.883],[26.606,-495.507],[34.334,-495.132],[42.064,-494.758],[49.739,-493.839],[57.397,-492.716],[65.053,-491.594],[72.709,-490.474],[80.365,-489.352],[88.023,-488.232],[95.594,-486.684],[103.108,-484.832],[110.622,-482.977],[118.135,-481.125],[125.647,-479.273],[133.16,-477.422],[140.563,-475.196],[147.865,-472.639],[155.169,-470.079],[162.471,-467.521],[169.773,-464.961],[177.077,-462.401],[184.232,-459.48],[191.262,-456.243],[198.291,-453.009],[205.321,-449.772],[212.35,-446.538],[219.378,-443.302],[226.21,-439.684],[232.907,-435.807],[239.604,-431.932],[246.302,-428.055],[252.999,-424.178],[259.696,-420.303],[266.124,-416.009],[272.436,-411.53],[278.746,-407.053],[285.058,-402.573],[291.367,-398.097],[297.679,-393.617],[303.632,-388.683],[309.506,-383.645],[315.38,-378.607],[321.251,-373.569],[327.125,-368.531],[332.998,-363.493],[338.412,-357.966],[343.799,-352.41],[349.187,-346.857],[354.574,-341.301],[359.963,-335.747],[365.307,-330.155],[370.165,-324.13],[375.02,-318.107],[379.877,-312.082],[384.732,-306.056],[389.59,-300.033],[394.326,-293.921],[398.608,-287.474],[402.89,-281.03],[407.172,-274.585],[411.454,-268.138],[415.736,-261.694],[419.82,-255.129],[423.488,-248.316],[427.153,-241.501],[430.821,-234.688],[434.486,-227.873],[438.154,-221.057],[441.554,-214.117],[444.569,-206.989],[447.582,-199.863],[450.595,-192.734],[453.61,-185.608],[456.623,-178.48],[459.325,-171.238],[461.651,-163.859],[463.977,-156.478],[466.304,-149.099],[468.63,-141.718],[470.956,-134.339],[472.967,-126.876],[474.579,-119.307],[476.19,-111.738],[477.798,-104.169],[479.409,-96.6],[481.021,-89.033],[482.413,-81.425],[483.41,-73.753],[484.409,-66.078],[485.408,-58.405],[486.251,-50.718],[486.624,-42.99],[487,-35.26],[487.374,-27.532],[487.749,-19.801],[488.125,-12.073],[488.498,-4.345],[488.132,3.385],[487.759,11.113],[487.383,18.844],[487.01,26.572],[486.634,34.302],[486.258,42.03],[485.341,49.708],[484.221,57.363],[483.099,65.019],[481.979,72.675],[480.857,80.333],[479.735,87.989],[478.191,95.563],[476.339,103.074],[474.487,110.588],[472.633,118.102],[470.781,125.615],[468.929,133.129],[466.708,140.532],[464.148,147.834],[461.588,155.135],[459.031,162.44],[456.471,169.742],[453.913,177.046],[450.992,184.201],[447.758,191.23],[444.521,198.26],[441.287,205.29],[438.05,212.319],[434.816,219.349],[431.199,226.181],[427.324,232.878],[423.447,239.576],[419.57,246.273],[415.695,252.97],[411.817,259.667],[407.526,266.098],[403.049,272.407],[398.57,278.719],[394.093,285.029],[389.614,291.341],[385.137,297.65],[380.204,303.606],[375.167,309.479],[370.126,315.353],[365.088,321.227],[360.05,327.098],[355.012,332.972],[349.488,338.388],[343.934,343.775],[338.378,349.162],[332.825,354.55],[327.269,359.939],[321.679,365.286],[315.654,370.143],[309.631,374.998],[303.606,379.855],[297.58,384.71],[291.557,389.568],[285.445,394.307],[279.001,398.589],[272.556,402.871],[266.11,407.153],[259.665,411.435],[253.218,415.716],[246.656,419.803],[239.843,423.471],[233.028,427.136],[226.215,430.804],[219.399,434.469],[212.586,438.137],[205.646,441.54],[198.517,444.555],[191.392,447.568],[184.263,450.58],[177.137,453.596],[170.009,456.608],[162.77,459.313],[155.388,461.639],[148.01,463.965],[140.628,466.292],[133.25,468.62],[125.868,470.947],[118.405,472.958],[110.836,474.569],[103.269,476.18],[95.7,477.791],[88.131,479.402],[80.562,481.013],[72.957,482.405],[65.284,483.405],[57.609,484.402],[49.937,485.401],[42.25,486.246],[34.519,486.622],[26.791,486.995],[19.063,487.371],[11.333,487.744],[3.605,488.12],[-4.249,488.5],[-11.977,488.127],[-19.707,487.752],[-27.435,487.376],[-35.166,487.003],[-42.894,486.627],[-50.624,486.254],[-58.299,485.326],[-65.955,484.204],[-73.611,483.084],[-81.269,481.962],[-88.925,480.84],[-96.581,479.72],[-104.152,478.164],[-111.666,476.312],[-119.179,474.461],[-126.691,472.609],[-134.204,470.757],[-141.718,468.905],[-149.119,466.675],[-156.42,464.115],[-163.725,461.557],[-171.026,458.997],[-178.331,456.437],[-185.632,453.88],[-192.787,450.951],[-199.814,447.715],[-206.844,444.48],[-213.874,441.246],[-220.903,438.01],[-227.933,434.775],[-234.76,431.151],[-241.458,427.274],[-248.155,423.399],[-254.852,419.521],[-261.55,415.647],[-268.247,411.769],[-274.672,407.471],[-280.984,402.991],[-287.294,398.514],[-293.606,394.035],[-299.915,389.558],[-306.225,385.079],[-312.178,380.142],[-318.049,375.101],[-323.923,370.064],[-329.797,365.025],[-335.67,359.987],[-341.542,354.95],[-346.953,349.418],[-352.34,343.864],[-357.727,338.308],[-363.115,332.755],[-368.502,327.199],[-373.843,321.605],[-378.701,315.58],[-383.556,309.557],[-388.413,303.531],[-393.268,297.506],[-398.125,291.483],[-402.858,285.366],[-407.14,278.921],[-411.421,272.477],[-415.703,266.03],[-419.985,259.586],[-424.267,253.139],[-428.346,246.574],[-432.014,239.759],[-435.68,232.943],[-439.347,226.13],[-443.015,219.315],[-446.68,212.502],[-450.076,205.557],[-453.091,198.431],[-456.104,191.303],[-459.116,184.177],[-462.132,177.048],[-465.144,169.922],[-467.841,162.678],[-470.168,155.297],[-472.494,147.918],[-474.821,140.537],[-477.147,133.158],[-479.473,125.777],[-481.477,118.311],[-483.088,110.744],[-484.699,103.176],[-486.31,95.606],[-487.921,88.037],[-489.532,80.468],[-490.917,72.863],[-491.917,65.188],[-492.914,57.515],[-493.913,49.843],[-494.751,42.153],[-495.127,34.425],[-495.5,26.697],[-495.876,18.967],[-496.249,11.239],[-496.625,3.508],[-496.998,-4.22],[-496.627,-11.95],[-496.254,-19.678],[-495.878,-27.406],[-495.502,-35.137],[-495.129,-42.865],[-494.754,-50.595],[-493.831,-58.27],[-492.709,-65.926],[-491.589,-73.584],[-490.467,-81.24],[-489.345,-88.896],[-488.225,-96.552],[-486.674,-104.126],[-484.82,-111.637],[-482.968,-119.151],[-481.116,-126.664],[-479.264,-134.178],[-477.412,-141.692],[-475.184,-149.092],[-472.624,-156.394],[-470.067,-163.698],[-467.507,-171],[-464.949,-178.304],[-462.389,-185.606],[-459.463,-192.761],[-456.229,-199.79],[-452.992,-206.82],[-449.758,-213.847],[-446.524,-220.877],[-443.287,-227.906],[-439.665,-234.736],[-435.79,-241.434],[-431.913,-248.131],[-428.038,-254.828],[-424.161,-261.526],[-420.284,-268.223],[-415.987,-274.65],[-411.51,-280.96],[-407.031,-287.272],[-402.554,-293.582],[-398.075,-299.894],[-393.598,-306.203],[-388.661,-312.156],[-383.623,-318.03],[-378.585,-323.901],[-373.547,-329.775],[-368.507,-335.649],[-363.469,-341.522],[-357.942,-346.934],[-352.386,-352.321],[-346.832,-357.708],[-341.277,-363.095],[-335.723,-368.485],[-330.129,-373.826],[-324.103,-378.684],[-318.08,-383.539],[-312.055,-388.396],[-306.03,-393.251],[-300.007,-398.109],[-293.892,-402.843],[-287.448,-407.125],[-281.001,-411.407],[-274.556,-415.689],[-268.11,-419.971],[-261.665,-424.252],[-255.1,-428.334],[-248.285,-432.002],[-241.472,-435.667],[-234.657,-439.335],[-227.844,-443.003],[-221.029,-446.668],[-214.086,-450.066],[-206.96,-453.081],[-199.831,-456.094],[-192.705,-459.107],[-185.577,-462.122],[-178.451,-465.135],[-171.207,-467.834],[-163.828,-470.161],[-156.447,-472.487],[-149.068,-474.813],[-141.687,-477.14],[-134.308,-479.466],[-126.842,-481.472],[-119.273,-483.083],[-111.704,-484.694],[-104.138,-486.306],[-96.569,-487.917],[-88.999,-489.528],[-81.392,-490.917],[-73.719,-491.914],[-66.046,-492.914],[-58.371,-493.911],[-50.684,-494.751],[-42.956,-495.127],[-35.226,-495.5],[-27.498,-495.876],[-19.77,-496.251],[-12.039,-496.625],[-4.311,-497]],"c":true}]},{"t":198,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[1.906,-488.758],[9.421,-487.243],[16.936,-485.728],[24.451,-484.213],[31.966,-482.698],[39.333,-480.59],[46.677,-478.385],[54.02,-476.18],[61.363,-473.975],[68.706,-471.77],[75.88,-469.081],[82.983,-466.201],[90.087,-463.319],[97.193,-460.436],[104.297,-457.556],[111.241,-454.323],[118.039,-450.782],[124.84,-447.241],[131.641,-443.702],[138.442,-440.161],[145.129,-436.429],[151.56,-432.254],[157.991,-428.079],[164.422,-423.907],[170.853,-419.732],[177.281,-415.554],[183.356,-410.878],[189.431,-406.2],[195.508,-401.524],[201.409,-396.642],[207.087,-391.489],[212.765,-386.336],[218.443,-381.184],[224.118,-376.031],[229.796,-370.878],[235.22,-365.461],[240.642,-360.04],[246.063,-354.618],[251.485,-349.197],[256.906,-343.775],[262.328,-338.354],[267.749,-332.932],[273.171,-327.513],[278.592,-322.092],[284.011,-316.671],[289.433,-311.249],[294.854,-305.828],[300.276,-300.406],[305.697,-294.985],[311.118,-289.563],[316.54,-284.142],[321.961,-278.72],[327.383,-273.299],[332.804,-267.88],[338.226,-262.458],[343.645,-257.037],[349.066,-251.615],[354.488,-246.194],[359.909,-240.772],[365.331,-235.351],[370.752,-229.929],[375.907,-224.256],[381.06,-218.578],[386.213,-212.9],[391.366,-207.222],[396.516,-201.547],[401.359,-195.612],[405.938,-189.462],[410.515,-183.315],[415.094,-177.165],[419.674,-171.015],[424.132,-164.785],[428.099,-158.223],[432.066,-151.662],[436.03,-145.1],[439.997,-138.539],[443.964,-131.978],[447.335,-125.097],[450.658,-118.187],[453.981,-111.277],[457.304,-104.369],[460.628,-97.459],[463.476,-90.348],[466.136,-83.158],[468.794,-75.967],[471.451,-68.776],[474.109,-61.583],[476.396,-54.274],[478.371,-46.868],[480.348,-39.459],[482.323,-32.051],[484.301,-24.645],[485.992,-17.176],[487.277,-9.617],[488.56,-2.058],[489.845,5.5],[491.128,13.059],[492.207,20.644],[492.793,28.287],[493.377,35.933],[493.962,43.576],[494.546,51.222],[495.001,58.87],[494.882,66.535],[494.766,74.203],[494.65,81.868],[494.531,89.533],[494.354,97.196],[493.536,104.819],[492.718,112.441],[491.9,120.065],[491.082,127.689],[490.264,135.31],[488.766,142.828],[487.248,150.345],[485.733,157.86],[484.218,165.375],[482.703,172.89],[480.597,180.258],[478.392,187.601],[476.188,194.944],[473.983,202.287],[471.778,209.63],[469.094,216.804],[466.211,223.908],[463.331,231.014],[460.448,238.117],[457.566,245.223],[454.337,252.167],[450.796,258.966],[447.255,265.767],[443.714,272.568],[440.173,279.369],[436.444,286.059],[432.269,292.489],[428.096,298.92],[423.921,305.351],[419.749,311.781],[415.571,318.21],[410.895,324.285],[406.219,330.362],[401.541,336.437],[396.661,342.34],[391.509,348.018],[386.356,353.696],[381.203,359.372],[376.05,365.05],[370.815,370.817],[365.139,375.97],[359.461,381.123],[353.783,386.276],[348.105,391.429],[342.43,396.579],[336.49,401.415],[330.34,405.994],[324.19,410.573],[318.04,415.15],[311.893,419.729],[305.658,424.182],[299.097,428.147],[292.535,432.114],[285.974,436.078],[279.412,440.045],[272.851,444.012],[265.965,447.376],[259.055,450.699],[252.145,454.022],[245.238,457.345],[238.328,460.668],[231.215,463.51],[224.024,466.167],[216.831,468.827],[209.64,471.485],[202.449,474.142],[195.138,476.42],[187.729,478.397],[180.323,480.372],[172.915,482.349],[165.506,484.324],[158.035,486.011],[150.476,487.294],[142.917,488.577],[135.359,489.862],[127.8,491.145],[120.217,492.217],[112.572,492.8],[104.928,493.386],[97.283,493.972],[89.639,494.555],[81.989,495],[74.324,494.884],[66.659,494.766],[58.991,494.649],[51.326,494.533],[43.663,494.347],[36.042,493.529],[28.418,492.711],[20.796,491.893],[13.173,491.075],[5.549,490.257],[-1.966,488.749],[-9.484,487.234],[-16.999,485.718],[-24.514,484.203],[-32.029,482.686],[-39.396,480.575],[-46.737,478.371],[-54.08,476.166],[-61.423,473.961],[-68.767,471.754],[-75.938,469.062],[-83.042,466.18],[-90.148,463.299],[-97.251,460.417],[-104.357,457.534],[-111.296,454.296],[-118.097,450.757],[-124.898,447.216],[-131.697,443.676],[-138.498,440.135],[-145.183,436.398],[-151.613,432.223],[-158.044,428.05],[-164.477,423.875],[-170.908,419.702],[-177.332,415.518],[-183.406,410.842],[-189.484,406.166],[-195.559,401.49],[-201.457,396.601],[-207.135,391.45],[-212.813,386.298],[-218.489,381.145],[-224.167,375.992],[-229.845,370.839],[-235.266,365.42],[-240.688,359.999],[-246.109,354.577],[-251.531,349.156],[-256.952,343.734],[-262.374,338.313],[-267.795,332.894],[-273.216,327.472],[-278.638,322.051],[-284.057,316.629],[-289.478,311.208],[-294.9,305.786],[-300.321,300.365],[-305.743,294.943],[-311.164,289.522],[-316.586,284.101],[-322.007,278.679],[-327.429,273.26],[-332.85,267.839],[-338.272,262.417],[-343.691,256.996],[-349.112,251.574],[-354.534,246.153],[-359.955,240.731],[-365.377,235.31],[-370.798,229.888],[-375.951,224.213],[-381.104,218.535],[-386.257,212.857],[-391.409,207.181],[-396.56,201.503],[-401.398,195.566],[-405.977,189.416],[-410.554,183.266],[-415.133,177.116],[-419.712,170.969],[-424.166,164.734],[-428.132,158.175],[-432.099,151.613],[-436.064,145.052],[-440.031,138.49],[-443.998,131.929],[-447.364,125.043],[-450.687,118.134],[-454.01,111.226],[-457.333,104.316],[-460.656,97.406],[-463.5,90.295],[-466.158,83.102],[-468.818,75.911],[-471.475,68.721],[-474.133,61.53],[-476.413,54.218],[-478.39,46.81],[-480.365,39.404],[-482.342,31.995],[-484.317,24.587],[-486.007,17.118],[-487.289,9.559],[-488.572,2],[-489.857,-5.558],[-491.14,-13.117],[-492.215,-20.702],[-492.798,-28.348],[-493.384,-35.991],[-493.969,-43.637],[-494.553,-51.28],[-495,-58.928],[-494.884,-66.596],[-494.768,-74.261],[-494.65,-81.926],[-494.533,-89.593],[-494.352,-97.254],[-493.534,-104.877],[-492.716,-112.499],[-491.895,-120.123],[-491.077,-127.747],[-490.259,-135.368],[-488.756,-142.886],[-487.239,-150.401],[-485.723,-157.918],[-484.208,-165.433],[-482.693,-172.948],[-480.583,-180.316],[-478.378,-187.659],[-476.173,-195],[-473.968,-202.343],[-471.763,-209.686],[-469.072,-216.86],[-466.192,-223.963],[-463.309,-231.067],[-460.426,-238.173],[-457.546,-245.277],[-454.31,-252.218],[-450.77,-259.019],[-447.229,-265.82],[-443.688,-272.619],[-440.149,-279.42],[-436.412,-286.107],[-432.24,-292.538],[-428.065,-298.968],[-423.892,-305.399],[-419.717,-311.83],[-415.537,-318.256],[-410.859,-324.331],[-406.183,-330.408],[-401.507,-336.483],[-396.62,-342.384],[-391.47,-348.062],[-386.317,-353.737],[-381.164,-359.415],[-376.011,-365.093],[-370.859,-370.771],[-365.185,-375.927],[-359.51,-381.079],[-353.832,-386.232],[-348.154,-391.385],[-342.476,-396.535],[-336.541,-401.376],[-330.394,-405.955],[-324.244,-410.532],[-318.094,-415.111],[-311.944,-419.69],[-305.714,-424.146],[-299.152,-428.113],[-292.591,-432.08],[-286.03,-436.044],[-279.468,-440.011],[-272.907,-443.978],[-266.023,-447.347],[-259.113,-450.67],[-252.203,-453.993],[-245.296,-457.316],[-238.386,-460.639],[-231.275,-463.486],[-224.084,-466.146],[-216.891,-468.803],[-209.701,-471.461],[-202.51,-474.118],[-195.198,-476.403],[-187.792,-478.378],[-180.384,-480.355],[-172.975,-482.33],[-165.569,-484.308],[-158.097,-485.997],[-150.539,-487.282],[-142.98,-488.565],[-135.422,-489.85],[-127.863,-491.133],[-120.28,-492.21],[-112.635,-492.793],[-104.991,-493.379],[-97.346,-493.965],[-89.702,-494.548],[-82.054,-495.001],[-74.387,-494.882],[-66.721,-494.766],[-59.056,-494.647],[-51.389,-494.531],[-43.729,-494.352],[-36.105,-493.534],[-28.481,-492.716],[-20.859,-491.898],[-13.235,-491.079],[-5.614,-490.262]],"c":true}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[8.9,8.9],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Material shape","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":168,"op":372,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":16,"ty":4,"nm":".cream","cl":"cream","parent":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"s":true,"x":{"a":1,"k":[{"i":{"x":[0],"y":[1]},"o":{"x":[0.05],"y":[0]},"t":270,"s":[375]},{"t":300,"s":[396.531]}],"ix":3},"y":{"a":0,"k":56,"ix":4}},"a":{"a":0,"k":[196.283,-128.858,0],"ix":1,"l":2},"s":{"a":1,"k":[{"i":{"x":[0.113,0.113,0.667],"y":[1,1,1]},"o":{"x":[0.353,0.353,0.333],"y":[0,0,0]},"t":174,"s":[40,40,100]},{"i":{"x":[0.311,0.311,0.667],"y":[1,1,1]},"o":{"x":[0.813,0.813,0.333],"y":[0,0,0]},"t":189,"s":[105,105,100]},{"t":204,"s":[100,100,100]}],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[18,18],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":20,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[196.283,-128.858],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":174,"op":720,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":17,"ty":4,"nm":".blue400","cl":"blue400","parent":20,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[352,240,0],"ix":2,"l":2},"a":{"a":0,"k":[352,240,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-1.317],[0.602,-1.186],[0.979,-0.753],[0.338,0.151],[0,0.376],[0,0],[-0.32,0.151],[-0.301,-0.188],[-0.603,-1.185]],"o":[[0,1.317],[-0.603,1.166],[-0.32,0.188],[-0.32,-0.188],[0,0],[0,-0.376],[0.338,-0.188],[0.979,0.79],[0.602,1.186]],"v":[[2.353,0.038],[1.449,3.801],[-0.904,6.661],[-1.882,6.717],[-2.352,5.871],[-2.352,-5.891],[-1.882,-6.681],[-0.904,-6.681],[1.449,-3.727]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.400000029919,0.61568627451,0.964705942191,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[353.047,240.118],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":285,"op":720,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":18,"ty":4,"nm":".blue400","cl":"blue400","parent":20,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0],"y":[1]},"o":{"x":[0.05],"y":[0]},"t":548,"s":[100]},{"t":578,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[352,240,0],"ix":2,"l":2},"a":{"a":0,"k":[352,240,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[1.374,2.145],[2.315,1.054],[0.226,0.452],[-0.15,0.47],[-0.471,0.226],[-0.508,-0.226],[-1.807,-2.785],[0,-3.387],[1.825,-2.785],[3.03,-1.336],[0.508,0.226],[0.169,0.489],[-0.226,0.452],[-0.47,0.226],[-1.373,2.126],[0,2.597]],"o":[[0,-2.597],[-1.373,-2.165],[-0.47,-0.226],[-0.226,-0.47],[0.188,-0.508],[0.508,-0.226],[3.049,1.355],[1.825,2.766],[0,3.387],[-1.826,2.767],[-0.508,0.226],[-0.471,-0.226],[-0.15,-0.47],[0.226,-0.47],[2.315,-1.072],[1.374,-2.164],[0,0]],"v":[[2.577,0.029],[0.507,-7.084],[-5.044,-11.921],[-6.079,-12.919],[-6.173,-14.329],[-5.194,-15.421],[-3.689,-15.421],[3.594,-9.212],[6.322,0.01],[3.594,9.268],[-3.689,15.421],[-5.194,15.421],[-6.173,14.348],[-6.079,12.975],[-5.044,11.939],[0.507,7.141],[2.577,-0.009]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.400000029919,0.61568627451,0.964705942191,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[357.528,240.098],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"2","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":285,"op":578,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":19,"ty":4,"nm":".blue400","cl":"blue400","parent":20,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0],"y":[1]},"o":{"x":[0.05],"y":[0]},"t":368,"s":[100]},{"t":398,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[352,240,0],"ix":2,"l":2},"a":{"a":0,"k":[352,240,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,5.231],[2.804,4.253],[4.685,2.088],[0.282,0],[0.282,-0.132],[0.226,-0.583],[-0.263,-0.546],[-0.564,-0.263],[-2.314,-3.613],[0,-4.347],[2.315,-3.613],[3.877,-1.769],[0.264,-0.546],[-0.169,-0.527],[-0.527,-0.244],[-0.264,0],[-0.282,0.131],[-2.804,4.253]],"o":[[2.804,-4.309],[0,-5.231],[-2.804,-4.309],[-0.282,-0.132],[-0.282,0],[-0.508,0.244],[-0.169,0.489],[0.245,0.489],[3.877,1.788],[2.296,3.557],[0,4.347],[-2.314,3.576],[-0.545,0.264],[-0.245,0.508],[0.207,0.546],[0.263,0.113],[0.263,0],[4.685,-2.089],[0,0]],"v":[[5.005,14.388],[9.239,0.011],[5.005,-14.291],[-6.304,-23.925],[-7.132,-24.114],[-7.96,-23.925],[-9.052,-22.721],[-8.92,-21.178],[-7.716,-20.049],[1.599,-11.92],[5.081,-0.008],[1.599,11.979],[-7.716,20.033],[-8.92,21.238],[-9.033,22.743],[-7.941,23.928],[-7.132,24.098],[-6.304,23.91],[5.005,14.35]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.400000029919,0.61568627451,0.964705942191,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[363.834,240.098],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"3","np":4,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":285,"op":398,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":20,"ty":4,"nm":".blue400","cl":"blue400","parent":21,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"s":true,"x":{"a":1,"k":[{"i":{"x":[0],"y":[1]},"o":{"x":[0.05],"y":[0]},"t":368,"s":[352]},{"i":{"x":[0],"y":[1]},"o":{"x":[0.05],"y":[0]},"t":398,"s":[357]},{"i":{"x":[0],"y":[1]},"o":{"x":[0.05],"y":[0]},"t":548,"s":[357]},{"t":578,"s":[360.25]}],"ix":3},"y":{"a":0,"k":240,"ix":4}},"a":{"a":0,"k":[352,240,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0.357,0.338],[0,0.546],[0,0],[-0.358,0.338],[-0.527,0],[0,0],[0,0],[-0.753,-0.339],[0,-0.847],[0,0],[0.771,-0.339],[0.583,0.583]],"o":[[0,0],[-0.527,0],[-0.339,-0.377],[0,0],[0,-0.527],[0.376,-0.377],[0,0],[0,0],[0.602,-0.602],[0.79,0.32],[0,0],[0,0.847],[-0.753,0.32],[0,0]],"v":[[-0.931,5.636],[-6.576,5.636],[-7.931,5.128],[-8.458,3.754],[-8.458,-3.773],[-7.931,-5.09],[-6.576,-5.655],[-0.931,-5.655],[5.279,-11.865],[7.293,-12.241],[8.459,-10.51],[8.459,10.472],[7.293,12.26],[5.279,11.846]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.400000029919,0.61568627451,0.964705942191,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[338.458,240.172],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"main","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":285,"op":720,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":21,"ty":4,"nm":".blue100","cl":"blue100","parent":27,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[-88.83,14.117,0],"ix":2,"l":2},"a":{"a":0,"k":[352,240,0],"ix":1,"l":2},"s":{"a":1,"k":[{"i":{"x":[0,0,0],"y":[1,1,1]},"o":{"x":[0.05,0.05,0.05],"y":[0,0,0]},"t":285,"s":[40,40,100]},{"t":315,"s":[100,100,100]}],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-10.693],[1.577,-4.275],[7.003,-2.584],[10.693,0],[4.275,1.577],[2.584,7.003],[0,10.693],[-1.577,4.275],[-7.003,2.584],[-10.693,0],[-4.275,-1.577],[-2.584,-7.003]],"o":[[0,10.693],[-2.584,7.003],[-4.275,1.577],[-10.693,0],[-7.003,-2.584],[-1.577,-4.275],[0,-10.693],[2.584,-7.003],[4.275,-1.577],[10.693,0],[7.003,2.584],[1.577,4.275]],"v":[[37,0],[35.423,20.315],[20.315,35.423],[0,37],[-20.315,35.423],[-35.423,20.315],[-37,0],[-35.423,-20.315],[-20.315,-35.423],[0,-37],[20.315,-35.423],[35.423,-20.315]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.823529471603,0.89019613827,0.988235353956,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[352,240],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"matte","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":285,"op":720,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":22,"ty":4,"nm":".grey700","cl":"grey700","parent":27,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[-288.83,-95.383,0],"ix":2,"l":2},"a":{"a":0,"k":[2.19,-41.445,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[223,29],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":20,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372549019608,0.388235294118,0.407843137255,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[113.69,-41.445],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":270,"op":720,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":23,"ty":4,"nm":".grey700","cl":"grey700","parent":27,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[-288.83,-65.383,0],"ix":2,"l":2},"a":{"a":0,"k":[2.19,-41.445,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[290,20],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":20,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372549019608,0.388235294118,0.407843137255,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[147.219,-37.89],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":270,"op":720,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":24,"ty":4,"nm":".grey700","cl":"grey700","parent":27,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[-384.858,-4.438,0],"ix":2,"l":2},"a":{"a":0,"k":[2.19,-41.445,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[98,20],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":20,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372549019608,0.388235294118,0.407843137255,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[147.219,-37.89],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":270,"op":720,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":25,"ty":4,"nm":".grey800","cl":"grey800","parent":27,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0],"y":[1]},"o":{"x":[0.05],"y":[0]},"t":368,"s":[0]},{"i":{"x":[0],"y":[1]},"o":{"x":[0.05],"y":[0]},"t":398,"s":[90]},{"i":{"x":[0],"y":[1]},"o":{"x":[0.05],"y":[0]},"t":456,"s":[90]},{"i":{"x":[0],"y":[1]},"o":{"x":[0.05],"y":[0]},"t":486,"s":[180]},{"i":{"x":[0],"y":[1]},"o":{"x":[0.05],"y":[0]},"t":548,"s":[180]},{"t":578,"s":[270]}],"ix":10},"p":{"s":true,"x":{"a":0,"k":-349.354,"ix":3},"y":{"a":0,"k":-81.358,"ix":4}},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[50.682,50.682,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0,"y":1},"o":{"x":0.05,"y":0},"t":368,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-0.652,-437.366],[8.33,-437.659],[17.312,-437.953],[26.249,-438.778],[35.158,-439.948],[44.07,-441.114],[52.848,-442.998],[61.602,-445.033],[70.348,-447.09],[78.906,-449.835],[87.432,-452.668],[95.787,-455.975],[104.114,-459.352],[112.356,-462.932],[120.6,-466.51],[128.842,-470.088],[137.086,-473.668],[145.494,-476.842],[153.901,-480.013],[162.309,-483.184],[170.98,-485.538],[179.663,-487.853],[188.349,-490.149],[197.221,-491.579],[206.092,-493.009],[214.984,-494.276],[223.954,-494.806],[232.926,-495.333],[241.897,-495.501],[250.877,-495.127],[259.857,-494.753],[268.778,-493.782],[277.678,-492.525],[286.574,-491.265],[295.31,-489.158],[304.044,-487.043],[312.697,-484.654],[321.19,-481.719],[329.683,-478.781],[337.963,-475.306],[346.144,-471.59],[354.301,-467.824],[362.109,-463.379],[369.919,-458.93],[377.531,-454.173],[384.91,-449.042],[392.286,-443.909],[399.256,-438.244],[406.146,-432.478],[412.915,-426.575],[419.27,-420.22],[425.623,-413.867],[431.614,-407.178],[437.38,-400.286],[443.14,-393.391],[448.274,-386.013],[453.404,-378.636],[458.262,-371.087],[462.71,-363.279],[467.158,-355.469],[471.032,-347.367],[474.745,-339.186],[478.338,-330.954],[481.276,-322.461],[484.212,-313.968],[486.723,-305.35],[488.838,-296.616],[490.956,-287.883],[492.333,-279.009],[493.59,-270.109],[494.694,-261.198],[495.065,-252.221],[495.439,-243.241],[495.406,-234.267],[494.88,-225.295],[494.35,-216.325],[493.216,-207.421],[491.786,-198.549],[490.356,-189.678],[488.193,-180.962],[485.878,-172.278],[483.559,-163.597],[480.481,-155.159],[477.307,-146.752],[474.136,-138.342],[470.618,-130.075],[467.038,-121.833],[463.46,-113.589],[459.882,-105.347],[456.543,-97.007],[453.374,-88.597],[450.208,-80.187],[447.684,-71.571],[445.361,-62.891],[443.04,-54.21],[441.544,-45.348],[440.087,-36.481],[438.775,-27.597],[438.19,-18.63],[437.605,-9.663],[437.362,-0.691],[437.653,8.291],[437.947,17.273],[438.77,26.21],[439.939,35.121],[441.105,44.031],[442.987,52.812],[445.022,61.566],[447.074,70.312],[449.819,78.87],[452.649,87.395],[455.956,95.753],[459.333,104.08],[462.911,112.322],[466.488,120.566],[470.069,128.808],[473.646,137.052],[476.823,145.458],[479.994,153.865],[483.165,162.275],[485.521,170.943],[487.84,179.627],[490.138,188.313],[491.568,197.184],[492.998,206.056],[494.27,214.945],[494.799,223.917],[495.326,232.887],[495.497,241.861],[495.123,250.838],[494.752,259.818],[493.783,268.742],[492.524,277.641],[491.267,286.538],[489.162,295.274],[487.047,304.008],[484.661,312.664],[481.725,321.156],[478.787,329.649],[475.315,337.926],[471.599,346.11],[467.838,354.267],[463.39,362.077],[458.944,369.885],[454.19,377.502],[449.059,384.879],[443.925,392.255],[438.263,399.227],[432.497,406.117],[426.596,412.888],[420.241,419.241],[413.888,425.596],[407.202,431.588],[400.31,437.356],[393.415,443.119],[386.039,448.252],[378.663,453.383],[371.113,458.243],[363.305,462.691],[355.498,467.14],[347.396,471.016],[339.215,474.732],[330.985,478.327],[322.492,481.265],[314,484.2],[305.381,486.714],[296.648,488.832],[287.914,490.947],[279.04,492.327],[270.143,493.586],[261.231,494.693],[252.252,495.067],[243.275,495.44],[234.298,495.41],[225.328,494.883],[216.356,494.354],[207.452,493.225],[198.581,491.795],[189.709,490.365],[180.993,488.207],[172.309,485.889],[163.628,483.573],[155.188,480.495],[146.781,477.323],[138.373,474.152],[130.106,470.634],[121.862,467.057],[113.62,463.476],[105.376,459.899],[97.036,456.559],[88.626,453.39],[80.216,450.224],[71.603,447.695],[62.922,445.374],[54.241,443.054],[45.382,441.553],[36.515,440.095],[27.631,438.781],[18.664,438.196],[9.697,437.612],[0.723,437.363],[-8.259,437.654],[-17.239,437.948],[-26.178,438.768],[-35.088,439.935],[-43.999,441.104],[-52.781,442.981],[-61.534,445.016],[-70.283,447.065],[-78.839,449.81],[-87.367,452.638],[-95.721,455.945],[-104.048,459.319],[-112.293,462.897],[-120.535,466.477],[-128.779,470.055],[-137.021,473.633],[-145.429,476.811],[-153.836,479.983],[-162.243,483.154],[-170.912,485.515],[-179.595,487.831],[-188.281,490.134],[-197.153,491.564],[-206.025,492.994],[-214.914,494.269],[-223.883,494.798],[-232.855,495.325],[-241.827,495.501],[-250.807,495.127],[-259.786,494.753],[-268.711,493.789],[-277.607,492.53],[-286.507,491.273],[-295.243,489.173],[-303.976,487.056],[-312.632,484.674],[-321.125,481.737],[-329.618,478.801],[-337.897,475.331],[-346.079,471.615],[-354.241,467.854],[-362.048,463.409],[-369.856,458.96],[-377.473,454.211],[-384.85,449.078],[-392.229,443.947],[-399.201,438.287],[-406.093,432.518],[-412.865,426.62],[-419.22,420.265],[-425.572,413.912],[-431.566,407.228],[-437.334,400.336],[-443.1,393.444],[-448.231,386.068],[-453.364,378.689],[-458.226,371.145],[-462.675,363.334],[-467.123,355.526],[-471.002,347.428],[-474.718,339.246],[-478.316,331.017],[-481.254,322.524],[-484.192,314.031],[-486.708,305.415],[-488.823,296.682],[-490.941,287.948],[-492.323,279.074],[-493.582,270.177],[-494.694,261.265],[-495.068,252.286],[-495.439,243.309],[-495.417,234.332],[-494.887,225.362],[-494.36,216.39],[-493.234,207.486],[-491.804,198.614],[-490.374,189.743],[-488.218,181.024],[-485.9,172.343],[-483.584,163.66],[-480.511,155.22],[-477.34,146.812],[-474.168,138.405],[-470.651,130.138],[-467.07,121.896],[-463.49,113.652],[-459.91,105.41],[-456.568,97.072],[-453.402,88.66],[-450.235,80.25],[-447.704,71.637],[-445.383,62.956],[-443.062,54.275],[-441.562,45.416],[-440.104,36.549],[-438.785,27.665],[-438.2,18.698],[-437.618,9.731],[-437.365,0.759],[-437.658,-8.223],[-437.949,-17.205],[-438.767,-26.145],[-439.934,-35.054],[-441.103,-43.963],[-442.977,-52.747],[-445.012,-61.498],[-447.059,-70.249],[-449.804,-78.805],[-452.631,-87.333],[-455.936,-95.69],[-459.31,-104.017],[-462.891,-112.259],[-466.468,-120.503],[-470.046,-128.745],[-473.684,-137.12],[-476.855,-145.53],[-480.027,-153.938],[-483.198,-162.345],[-485.546,-171.019],[-487.865,-179.699],[-490.153,-188.388],[-491.583,-197.26],[-493.013,-206.131],[-494.277,-215.023],[-494.807,-223.993],[-495.334,-232.965],[-495.497,-241.936],[-495.123,-250.916],[-494.752,-259.896],[-493.776,-268.817],[-492.516,-277.717],[-491.259,-286.613],[-489.149,-295.349],[-487.032,-304.083],[-484.641,-312.734],[-481.703,-321.227],[-478.767,-329.722],[-475.287,-337.996],[-471.572,-346.181],[-467.803,-354.335],[-463.357,-362.143],[-458.909,-369.953],[-454.149,-377.565],[-449.019,-384.941],[-443.885,-392.318],[-438.218,-399.285],[-432.452,-406.177],[-426.546,-412.944],[-420.193,-419.296],[-413.838,-425.652],[-407.147,-431.638],[-400.257,-437.406],[-393.358,-443.164],[-385.981,-448.295],[-378.605,-453.428],[-371.053,-458.283],[-363.245,-462.731],[-355.435,-467.177],[-347.334,-471.048],[-339.149,-474.764],[-330.917,-478.354],[-322.425,-481.29],[-313.932,-484.228],[-305.314,-486.734],[-296.58,-488.852],[-287.846,-490.967],[-278.97,-492.342],[-270.073,-493.599],[-261.161,-494.7],[-252.182,-495.072],[-243.202,-495.445],[-234.228,-495.41],[-225.258,-494.883],[-216.286,-494.354],[-207.382,-493.217],[-198.51,-491.787],[-189.639,-490.357],[-180.925,-488.192],[-172.242,-485.874],[-163.558,-483.558],[-155.123,-480.475],[-146.716,-477.301],[-138.306,-474.129],[-130.041,-470.609],[-121.797,-467.029],[-113.555,-463.449],[-105.313,-459.871],[-96.971,-456.534],[-88.561,-453.368],[-80.151,-450.199],[-71.535,-447.678],[-62.854,-445.357],[-54.171,-443.036],[-45.312,-441.543],[-36.445,-440.086],[-27.561,-438.778],[-18.594,-438.194],[-9.624,-437.609]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.05,"y":0},"t":398,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-0.166,-494.001],[7.12,-493.774],[14.408,-493.545],[21.649,-492.74],[28.884,-491.832],[36.083,-490.728],[43.201,-489.145],[50.316,-487.56],[57.326,-485.578],[64.297,-483.437],[71.118,-480.865],[77.874,-478.138],[84.452,-474.996],[90.937,-471.679],[97.177,-467.909],[103.351,-464.041],[109.218,-459.713],[115.084,-455.382],[120.918,-451.015],[126.346,-446.147],[131.773,-441.278],[137.2,-436.408],[142.626,-431.541],[148.053,-426.671],[153.481,-421.804],[158.906,-416.935],[164.135,-411.855],[169.32,-406.728],[174.504,-401.604],[179.687,-396.478],[184.872,-391.352],[190.056,-386.225],[195.241,-381.101],[200.426,-375.975],[205.61,-370.849],[210.795,-365.722],[215.952,-360.568],[221.106,-355.413],[226.261,-350.259],[231.417,-345.102],[236.572,-339.948],[241.726,-334.793],[246.883,-329.637],[252.037,-324.482],[257.192,-319.328],[262.348,-314.171],[267.503,-309.017],[272.66,-303.86],[277.814,-298.706],[282.968,-293.551],[288.125,-288.395],[293.279,-283.24],[298.434,-278.086],[303.591,-272.929],[308.745,-267.775],[313.899,-262.62],[319.056,-257.464],[324.21,-252.309],[329.367,-247.155],[334.522,-241.998],[339.676,-236.844],[344.833,-231.687],[349.987,-226.533],[355.141,-221.378],[360.298,-216.222],[365.453,-211.067],[370.493,-205.798],[375.53,-200.53],[380.57,-195.261],[385.608,-189.99],[390.646,-184.721],[395.683,-179.452],[400.723,-174.181],[405.761,-168.912],[410.798,-163.644],[415.836,-158.372],[420.876,-153.104],[425.914,-147.835],[430.952,-142.564],[435.991,-137.295],[441.029,-132.026],[446.067,-126.755],[450.661,-121.106],[455.085,-115.312],[459.508,-109.516],[463.855,-103.668],[467.716,-97.482],[471.57,-91.295],[474.768,-84.743],[477.969,-78.192],[480.665,-71.43],[483.133,-64.569],[485.537,-57.689],[487.344,-50.625],[489.151,-43.564],[490.61,-36.427],[491.744,-29.226],[492.879,-22.024],[493.364,-14.752],[493.82,-7.476],[494.002,-0.195],[493.775,7.093],[493.546,14.379],[492.743,21.622],[491.835,28.854],[490.734,36.056],[489.151,43.171],[487.566,50.289],[485.586,57.299],[483.445,64.27],[480.873,71.091],[478.151,77.849],[475.007,84.427],[471.692,90.913],[467.924,97.152],[464.056,103.329],[459.728,109.196],[455.4,115.062],[451.034,120.898],[446.165,126.326],[441.295,131.751],[436.428,137.178],[431.558,142.606],[426.691,148.031],[421.822,153.458],[416.954,158.886],[411.875,164.115],[406.748,169.3],[401.624,174.482],[396.498,179.667],[391.371,184.852],[386.245,190.036],[381.119,195.221],[375.995,200.406],[370.868,205.591],[365.742,210.775],[360.587,215.932],[355.433,221.086],[350.279,226.241],[345.122,231.398],[339.968,236.552],[334.813,241.706],[329.657,246.863],[324.502,252.017],[319.348,257.172],[314.191,262.328],[309.037,267.483],[303.88,272.637],[298.726,277.794],[293.571,282.948],[288.414,288.105],[283.26,293.259],[278.106,298.414],[272.949,303.571],[267.795,308.725],[262.64,313.879],[257.483,319.036],[252.329,324.19],[247.172,329.345],[242.018,334.502],[236.864,339.656],[231.707,344.813],[226.553,349.967],[221.398,355.121],[216.241,360.278],[211.005,365.514],[205.734,370.554],[200.465,375.592],[195.197,380.63],[189.926,385.667],[184.657,390.707],[179.388,395.745],[174.117,400.783],[168.848,405.82],[163.577,410.86],[158.308,415.898],[153.04,420.936],[147.768,425.973],[142.5,431.013],[137.231,436.051],[131.96,441.089],[126.691,446.129],[121.035,450.713],[115.238,455.137],[109.444,459.561],[103.59,463.901],[97.406,467.759],[91.212,471.606],[84.662,474.805],[78.112,478.005],[71.344,480.692],[64.484,483.159],[57.602,485.559],[50.538,487.366],[43.476,489.173],[36.34,490.623],[29.138,491.759],[21.936,492.894],[14.662,493.37],[7.386,493.825],[0.105,494.001],[-7.183,493.772],[-14.469,493.545],[-21.71,492.733],[-28.944,491.825],[-36.144,490.716],[-43.259,489.133],[-50.377,487.548],[-57.387,485.562],[-64.355,483.421],[-71.176,480.846],[-77.93,478.115],[-84.508,474.973],[-90.991,471.648],[-97.231,467.881],[-103.403,464.006],[-109.269,459.678],[-115.136,455.35],[-120.967,450.977],[-126.392,446.108],[-131.82,441.24],[-137.247,436.373],[-142.675,431.504],[-148.1,426.636],[-153.527,421.767],[-158.955,416.899],[-164.179,411.817],[-169.364,406.691],[-174.549,401.565],[-179.733,396.441],[-184.918,391.314],[-190.103,386.188],[-195.288,381.062],[-200.472,375.937],[-205.657,370.811],[-210.842,365.685],[-215.996,360.53],[-221.153,355.376],[-226.307,350.219],[-231.462,345.065],[-236.619,339.908],[-241.773,334.754],[-246.927,329.599],[-252.084,324.443],[-257.238,319.288],[-262.393,314.132],[-267.547,308.977],[-272.704,303.823],[-277.858,298.666],[-283.013,293.512],[-288.169,288.355],[-293.324,283.201],[-298.478,278.044],[-303.635,272.889],[-308.789,267.735],[-313.944,262.578],[-319.098,257.424],[-324.255,252.267],[-329.409,247.113],[-334.564,241.956],[-339.72,236.802],[-344.875,231.647],[-350.029,226.491],[-355.186,221.336],[-360.34,216.18],[-365.495,211.025],[-370.535,205.756],[-375.572,200.488],[-380.61,195.216],[-385.65,189.948],[-390.688,184.679],[-395.725,179.408],[-400.765,174.139],[-405.803,168.87],[-410.84,163.599],[-415.88,158.331],[-420.918,153.062],[-425.956,147.793],[-430.993,142.522],[-436.033,137.253],[-441.071,131.984],[-446.109,126.713],[-450.698,121.059],[-455.122,115.265],[-459.546,109.469],[-463.888,103.616],[-467.747,97.433],[-471.596,91.242],[-474.794,84.689],[-477.992,78.139],[-480.684,71.371],[-483.151,64.513],[-485.551,57.631],[-487.358,50.567],[-489.167,43.505],[-490.619,36.369],[-491.754,29.167],[-492.888,21.966],[-493.369,14.692],[-493.824,7.415],[-494.002,0.134],[-493.773,-7.151],[-493.546,-14.44],[-492.739,-21.681],[-491.828,-28.915],[-490.722,-36.115],[-489.139,-43.23],[-487.554,-50.347],[-485.57,-57.358],[-483.431,-64.328],[-480.857,-71.147],[-478.128,-77.903],[-474.986,-84.484],[-471.666,-90.966],[-467.898,-97.206],[-464.028,-103.378],[-459.697,-109.245],[-455.369,-115.111],[-450.999,-120.945],[-446.13,-126.37],[-441.26,-131.798],[-436.393,-137.223],[-431.523,-142.65],[-426.654,-148.075],[-421.787,-153.503],[-416.917,-158.93],[-411.835,-164.157],[-406.711,-169.34],[-401.585,-174.524],[-396.458,-179.709],[-391.332,-184.894],[-386.205,-190.078],[-381.081,-195.263],[-375.955,-200.448],[-370.829,-205.63],[-365.702,-210.815],[-360.548,-215.972],[-355.393,-221.129],[-350.239,-226.283],[-345.082,-231.437],[-339.928,-236.594],[-334.774,-241.748],[-329.617,-246.905],[-324.462,-252.06],[-319.308,-257.214],[-314.154,-262.371],[-308.997,-267.525],[-303.843,-272.682],[-298.688,-277.836],[-293.532,-282.993],[-288.377,-288.147],[-283.223,-293.302],[-278.066,-298.458],[-272.912,-303.613],[-267.757,-308.769],[-262.603,-313.924],[-257.446,-319.081],[-252.292,-324.235],[-247.137,-329.389],[-241.981,-334.546],[-236.826,-339.7],[-231.672,-344.857],[-226.515,-350.011],[-221.361,-355.166],[-216.206,-360.323],[-211.052,-365.477],[-205.781,-370.517],[-200.512,-375.555],[-195.243,-380.592],[-189.972,-385.632],[-184.703,-390.67],[-179.435,-395.708],[-174.164,-400.745],[-168.895,-405.783],[-163.624,-410.823],[-158.355,-415.861],[-153.086,-420.898],[-147.815,-425.936],[-142.546,-430.976],[-137.275,-436.014],[-132.006,-441.051],[-126.738,-446.089],[-121.084,-450.681],[-115.29,-455.105],[-109.493,-459.528],[-103.643,-463.87],[-97.459,-467.731],[-91.269,-471.583],[-84.718,-474.781],[-78.168,-477.982],[-71.403,-480.676],[-64.542,-483.143],[-57.662,-485.545],[-50.598,-487.352],[-43.534,-489.159],[-36.4,-490.616],[-29.199,-491.75],[-21.997,-492.885],[-14.723,-493.368],[-7.447,-493.823]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.05,"y":0},"t":456,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-0.166,-494.001],[7.12,-493.774],[14.408,-493.545],[21.649,-492.74],[28.884,-491.832],[36.083,-490.728],[43.201,-489.145],[50.316,-487.56],[57.326,-485.578],[64.297,-483.437],[71.118,-480.865],[77.874,-478.138],[84.452,-474.996],[90.937,-471.679],[97.177,-467.909],[103.351,-464.041],[109.218,-459.713],[115.084,-455.382],[120.918,-451.015],[126.346,-446.147],[131.773,-441.278],[137.2,-436.408],[142.626,-431.541],[148.053,-426.671],[153.481,-421.804],[158.906,-416.935],[164.135,-411.855],[169.32,-406.728],[174.504,-401.604],[179.687,-396.478],[184.872,-391.352],[190.056,-386.225],[195.241,-381.101],[200.426,-375.975],[205.61,-370.849],[210.795,-365.722],[215.952,-360.568],[221.106,-355.413],[226.261,-350.259],[231.417,-345.102],[236.572,-339.948],[241.726,-334.793],[246.883,-329.637],[252.037,-324.482],[257.192,-319.328],[262.348,-314.171],[267.503,-309.017],[272.66,-303.86],[277.814,-298.706],[282.968,-293.551],[288.125,-288.395],[293.279,-283.24],[298.434,-278.086],[303.591,-272.929],[308.745,-267.775],[313.899,-262.62],[319.056,-257.464],[324.21,-252.309],[329.367,-247.155],[334.522,-241.998],[339.676,-236.844],[344.833,-231.687],[349.987,-226.533],[355.141,-221.378],[360.298,-216.222],[365.453,-211.067],[370.493,-205.798],[375.53,-200.53],[380.57,-195.261],[385.608,-189.99],[390.646,-184.721],[395.683,-179.452],[400.723,-174.181],[405.761,-168.912],[410.798,-163.644],[415.836,-158.372],[420.876,-153.104],[425.914,-147.835],[430.952,-142.564],[435.991,-137.295],[441.029,-132.026],[446.067,-126.755],[450.661,-121.106],[455.085,-115.312],[459.508,-109.516],[463.855,-103.668],[467.716,-97.482],[471.57,-91.295],[474.768,-84.743],[477.969,-78.192],[480.665,-71.43],[483.133,-64.569],[485.537,-57.689],[487.344,-50.625],[489.151,-43.564],[490.61,-36.427],[491.744,-29.226],[492.879,-22.024],[493.364,-14.752],[493.82,-7.476],[494.002,-0.195],[493.775,7.093],[493.546,14.379],[492.743,21.622],[491.835,28.854],[490.734,36.056],[489.151,43.171],[487.566,50.289],[485.586,57.299],[483.445,64.27],[480.873,71.091],[478.151,77.849],[475.007,84.427],[471.692,90.913],[467.924,97.152],[464.056,103.329],[459.728,109.196],[455.4,115.062],[451.034,120.898],[446.165,126.326],[441.295,131.751],[436.428,137.178],[431.558,142.606],[426.691,148.031],[421.822,153.458],[416.954,158.886],[411.875,164.115],[406.748,169.3],[401.624,174.482],[396.498,179.667],[391.371,184.852],[386.245,190.036],[381.119,195.221],[375.995,200.406],[370.868,205.591],[365.742,210.775],[360.587,215.932],[355.433,221.086],[350.279,226.241],[345.122,231.398],[339.968,236.552],[334.813,241.706],[329.657,246.863],[324.502,252.017],[319.348,257.172],[314.191,262.328],[309.037,267.483],[303.88,272.637],[298.726,277.794],[293.571,282.948],[288.414,288.105],[283.26,293.259],[278.106,298.414],[272.949,303.571],[267.795,308.725],[262.64,313.879],[257.483,319.036],[252.329,324.19],[247.172,329.345],[242.018,334.502],[236.864,339.656],[231.707,344.813],[226.553,349.967],[221.398,355.121],[216.241,360.278],[211.005,365.514],[205.734,370.554],[200.465,375.592],[195.197,380.63],[189.926,385.667],[184.657,390.707],[179.388,395.745],[174.117,400.783],[168.848,405.82],[163.577,410.86],[158.308,415.898],[153.04,420.936],[147.768,425.973],[142.5,431.013],[137.231,436.051],[131.96,441.089],[126.691,446.129],[121.035,450.713],[115.238,455.137],[109.444,459.561],[103.59,463.901],[97.406,467.759],[91.212,471.606],[84.662,474.805],[78.112,478.005],[71.344,480.692],[64.484,483.159],[57.602,485.559],[50.538,487.366],[43.476,489.173],[36.34,490.623],[29.138,491.759],[21.936,492.894],[14.662,493.37],[7.386,493.825],[0.105,494.001],[-7.183,493.772],[-14.469,493.545],[-21.71,492.733],[-28.944,491.825],[-36.144,490.716],[-43.259,489.133],[-50.377,487.548],[-57.387,485.562],[-64.355,483.421],[-71.176,480.846],[-77.93,478.115],[-84.508,474.973],[-90.991,471.648],[-97.231,467.881],[-103.403,464.006],[-109.269,459.678],[-115.136,455.35],[-120.967,450.977],[-126.392,446.108],[-131.82,441.24],[-137.247,436.373],[-142.675,431.504],[-148.1,426.636],[-153.527,421.767],[-158.955,416.899],[-164.179,411.817],[-169.364,406.691],[-174.549,401.565],[-179.733,396.441],[-184.918,391.314],[-190.103,386.188],[-195.288,381.062],[-200.472,375.937],[-205.657,370.811],[-210.842,365.685],[-215.996,360.53],[-221.153,355.376],[-226.307,350.219],[-231.462,345.065],[-236.619,339.908],[-241.773,334.754],[-246.927,329.599],[-252.084,324.443],[-257.238,319.288],[-262.393,314.132],[-267.547,308.977],[-272.704,303.823],[-277.858,298.666],[-283.013,293.512],[-288.169,288.355],[-293.324,283.201],[-298.478,278.044],[-303.635,272.889],[-308.789,267.735],[-313.944,262.578],[-319.098,257.424],[-324.255,252.267],[-329.409,247.113],[-334.564,241.956],[-339.72,236.802],[-344.875,231.647],[-350.029,226.491],[-355.186,221.336],[-360.34,216.18],[-365.495,211.025],[-370.535,205.756],[-375.572,200.488],[-380.61,195.216],[-385.65,189.948],[-390.688,184.679],[-395.725,179.408],[-400.765,174.139],[-405.803,168.87],[-410.84,163.599],[-415.88,158.331],[-420.918,153.062],[-425.956,147.793],[-430.993,142.522],[-436.033,137.253],[-441.071,131.984],[-446.109,126.713],[-450.698,121.059],[-455.122,115.265],[-459.546,109.469],[-463.888,103.616],[-467.747,97.433],[-471.596,91.242],[-474.794,84.689],[-477.992,78.139],[-480.684,71.371],[-483.151,64.513],[-485.551,57.631],[-487.358,50.567],[-489.167,43.505],[-490.619,36.369],[-491.754,29.167],[-492.888,21.966],[-493.369,14.692],[-493.824,7.415],[-494.002,0.134],[-493.773,-7.151],[-493.546,-14.44],[-492.739,-21.681],[-491.828,-28.915],[-490.722,-36.115],[-489.139,-43.23],[-487.554,-50.347],[-485.57,-57.358],[-483.431,-64.328],[-480.857,-71.147],[-478.128,-77.903],[-474.986,-84.484],[-471.666,-90.966],[-467.898,-97.206],[-464.028,-103.378],[-459.697,-109.245],[-455.369,-115.111],[-450.999,-120.945],[-446.13,-126.37],[-441.26,-131.798],[-436.393,-137.223],[-431.523,-142.65],[-426.654,-148.075],[-421.787,-153.503],[-416.917,-158.93],[-411.835,-164.157],[-406.711,-169.34],[-401.585,-174.524],[-396.458,-179.709],[-391.332,-184.894],[-386.205,-190.078],[-381.081,-195.263],[-375.955,-200.448],[-370.829,-205.63],[-365.702,-210.815],[-360.548,-215.972],[-355.393,-221.129],[-350.239,-226.283],[-345.082,-231.437],[-339.928,-236.594],[-334.774,-241.748],[-329.617,-246.905],[-324.462,-252.06],[-319.308,-257.214],[-314.154,-262.371],[-308.997,-267.525],[-303.843,-272.682],[-298.688,-277.836],[-293.532,-282.993],[-288.377,-288.147],[-283.223,-293.302],[-278.066,-298.458],[-272.912,-303.613],[-267.757,-308.769],[-262.603,-313.924],[-257.446,-319.081],[-252.292,-324.235],[-247.137,-329.389],[-241.981,-334.546],[-236.826,-339.7],[-231.672,-344.857],[-226.515,-350.011],[-221.361,-355.166],[-216.206,-360.323],[-211.052,-365.477],[-205.781,-370.517],[-200.512,-375.555],[-195.243,-380.592],[-189.972,-385.632],[-184.703,-390.67],[-179.435,-395.708],[-174.164,-400.745],[-168.895,-405.783],[-163.624,-410.823],[-158.355,-415.861],[-153.086,-420.898],[-147.815,-425.936],[-142.546,-430.976],[-137.275,-436.014],[-132.006,-441.051],[-126.738,-446.089],[-121.084,-450.681],[-115.29,-455.105],[-109.493,-459.528],[-103.643,-463.87],[-97.459,-467.731],[-91.269,-471.583],[-84.718,-474.781],[-78.168,-477.982],[-71.403,-480.676],[-64.542,-483.143],[-57.662,-485.545],[-50.598,-487.352],[-43.534,-489.159],[-36.4,-490.616],[-29.199,-491.75],[-21.997,-492.885],[-14.723,-493.368],[-7.447,-493.823]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.05,"y":0},"t":486,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[1.906,-488.758],[9.421,-487.243],[16.936,-485.728],[24.451,-484.213],[31.966,-482.698],[39.333,-480.59],[46.677,-478.385],[54.02,-476.18],[61.363,-473.975],[68.706,-471.77],[75.88,-469.081],[82.983,-466.201],[90.087,-463.319],[97.193,-460.436],[104.297,-457.556],[111.241,-454.323],[118.039,-450.782],[124.84,-447.241],[131.641,-443.702],[138.442,-440.161],[145.129,-436.429],[151.56,-432.254],[157.991,-428.079],[164.422,-423.907],[170.853,-419.732],[177.281,-415.554],[183.356,-410.878],[189.431,-406.2],[195.508,-401.524],[201.409,-396.642],[207.087,-391.489],[212.765,-386.336],[218.443,-381.184],[224.118,-376.031],[229.796,-370.878],[235.22,-365.461],[240.642,-360.04],[246.063,-354.618],[251.485,-349.197],[256.906,-343.775],[262.328,-338.354],[267.749,-332.932],[273.171,-327.513],[278.592,-322.092],[284.011,-316.671],[289.433,-311.249],[294.854,-305.828],[300.276,-300.406],[305.697,-294.985],[311.118,-289.563],[316.54,-284.142],[321.961,-278.72],[327.383,-273.299],[332.804,-267.88],[338.226,-262.458],[343.645,-257.037],[349.066,-251.615],[354.488,-246.194],[359.909,-240.772],[365.331,-235.351],[370.752,-229.929],[375.907,-224.256],[381.06,-218.578],[386.213,-212.9],[391.366,-207.222],[396.516,-201.547],[401.359,-195.612],[405.938,-189.462],[410.515,-183.315],[415.094,-177.165],[419.674,-171.015],[424.132,-164.785],[428.099,-158.223],[432.066,-151.662],[436.03,-145.1],[439.997,-138.539],[443.964,-131.978],[447.335,-125.097],[450.658,-118.187],[453.981,-111.277],[457.304,-104.369],[460.628,-97.459],[463.476,-90.348],[466.136,-83.158],[468.794,-75.967],[471.451,-68.776],[474.109,-61.583],[476.396,-54.274],[478.371,-46.868],[480.348,-39.459],[482.323,-32.051],[484.301,-24.645],[485.992,-17.176],[487.277,-9.617],[488.56,-2.058],[489.845,5.5],[491.128,13.059],[492.207,20.644],[492.793,28.287],[493.377,35.933],[493.962,43.576],[494.546,51.222],[495.001,58.87],[494.882,66.535],[494.766,74.203],[494.65,81.868],[494.531,89.533],[494.354,97.196],[493.536,104.819],[492.718,112.441],[491.9,120.065],[491.082,127.689],[490.264,135.31],[488.766,142.828],[487.248,150.345],[485.733,157.86],[484.218,165.375],[482.703,172.89],[480.597,180.258],[478.392,187.601],[476.188,194.944],[473.983,202.287],[471.778,209.63],[469.094,216.804],[466.211,223.908],[463.331,231.014],[460.448,238.117],[457.566,245.223],[454.337,252.167],[450.796,258.966],[447.255,265.767],[443.714,272.568],[440.173,279.369],[436.444,286.059],[432.269,292.489],[428.096,298.92],[423.921,305.351],[419.749,311.781],[415.571,318.21],[410.895,324.285],[406.219,330.362],[401.541,336.437],[396.661,342.34],[391.509,348.018],[386.356,353.696],[381.203,359.372],[376.05,365.05],[370.815,370.817],[365.139,375.97],[359.461,381.123],[353.783,386.276],[348.105,391.429],[342.43,396.579],[336.49,401.415],[330.34,405.994],[324.19,410.573],[318.04,415.15],[311.893,419.729],[305.658,424.182],[299.097,428.147],[292.535,432.114],[285.974,436.078],[279.412,440.045],[272.851,444.012],[265.965,447.376],[259.055,450.699],[252.145,454.022],[245.238,457.345],[238.328,460.668],[231.215,463.51],[224.024,466.167],[216.831,468.827],[209.64,471.485],[202.449,474.142],[195.138,476.42],[187.729,478.397],[180.323,480.372],[172.915,482.349],[165.506,484.324],[158.035,486.011],[150.476,487.294],[142.917,488.577],[135.359,489.862],[127.8,491.145],[120.217,492.217],[112.572,492.8],[104.928,493.386],[97.283,493.972],[89.639,494.555],[81.989,495],[74.324,494.884],[66.659,494.766],[58.991,494.649],[51.326,494.533],[43.663,494.347],[36.042,493.529],[28.418,492.711],[20.796,491.893],[13.173,491.075],[5.549,490.257],[-1.966,488.749],[-9.484,487.234],[-16.999,485.718],[-24.514,484.203],[-32.029,482.686],[-39.396,480.575],[-46.737,478.371],[-54.08,476.166],[-61.423,473.961],[-68.767,471.754],[-75.938,469.062],[-83.042,466.18],[-90.148,463.299],[-97.251,460.417],[-104.357,457.534],[-111.296,454.296],[-118.097,450.757],[-124.898,447.216],[-131.697,443.676],[-138.498,440.135],[-145.183,436.398],[-151.613,432.223],[-158.044,428.05],[-164.477,423.875],[-170.908,419.702],[-177.332,415.518],[-183.406,410.842],[-189.484,406.166],[-195.559,401.49],[-201.457,396.601],[-207.135,391.45],[-212.813,386.298],[-218.489,381.145],[-224.167,375.992],[-229.845,370.839],[-235.266,365.42],[-240.688,359.999],[-246.109,354.577],[-251.531,349.156],[-256.952,343.734],[-262.374,338.313],[-267.795,332.894],[-273.216,327.472],[-278.638,322.051],[-284.057,316.629],[-289.478,311.208],[-294.9,305.786],[-300.321,300.365],[-305.743,294.943],[-311.164,289.522],[-316.586,284.101],[-322.007,278.679],[-327.429,273.26],[-332.85,267.839],[-338.272,262.417],[-343.691,256.996],[-349.112,251.574],[-354.534,246.153],[-359.955,240.731],[-365.377,235.31],[-370.798,229.888],[-375.951,224.213],[-381.104,218.535],[-386.257,212.857],[-391.409,207.181],[-396.56,201.503],[-401.398,195.566],[-405.977,189.416],[-410.554,183.266],[-415.133,177.116],[-419.712,170.969],[-424.166,164.734],[-428.132,158.175],[-432.099,151.613],[-436.064,145.052],[-440.031,138.49],[-443.998,131.929],[-447.364,125.043],[-450.687,118.134],[-454.01,111.226],[-457.333,104.316],[-460.656,97.406],[-463.5,90.295],[-466.158,83.102],[-468.818,75.911],[-471.475,68.721],[-474.133,61.53],[-476.413,54.218],[-478.39,46.81],[-480.365,39.404],[-482.342,31.995],[-484.317,24.587],[-486.007,17.118],[-487.289,9.559],[-488.572,2],[-489.857,-5.558],[-491.14,-13.117],[-492.215,-20.702],[-492.798,-28.348],[-493.384,-35.991],[-493.969,-43.637],[-494.553,-51.28],[-495,-58.928],[-494.884,-66.596],[-494.768,-74.261],[-494.65,-81.926],[-494.533,-89.593],[-494.352,-97.254],[-493.534,-104.877],[-492.716,-112.499],[-491.895,-120.123],[-491.077,-127.747],[-490.259,-135.368],[-488.756,-142.886],[-487.239,-150.401],[-485.723,-157.918],[-484.208,-165.433],[-482.693,-172.948],[-480.583,-180.316],[-478.378,-187.659],[-476.173,-195],[-473.968,-202.343],[-471.763,-209.686],[-469.072,-216.86],[-466.192,-223.963],[-463.309,-231.067],[-460.426,-238.173],[-457.546,-245.277],[-454.31,-252.218],[-450.77,-259.019],[-447.229,-265.82],[-443.688,-272.619],[-440.149,-279.42],[-436.412,-286.107],[-432.24,-292.538],[-428.065,-298.968],[-423.892,-305.399],[-419.717,-311.83],[-415.537,-318.256],[-410.859,-324.331],[-406.183,-330.408],[-401.507,-336.483],[-396.62,-342.384],[-391.47,-348.062],[-386.317,-353.737],[-381.164,-359.415],[-376.011,-365.093],[-370.859,-370.771],[-365.185,-375.927],[-359.51,-381.079],[-353.832,-386.232],[-348.154,-391.385],[-342.476,-396.535],[-336.541,-401.376],[-330.394,-405.955],[-324.244,-410.532],[-318.094,-415.111],[-311.944,-419.69],[-305.714,-424.146],[-299.152,-428.113],[-292.591,-432.08],[-286.03,-436.044],[-279.468,-440.011],[-272.907,-443.978],[-266.023,-447.347],[-259.113,-450.67],[-252.203,-453.993],[-245.296,-457.316],[-238.386,-460.639],[-231.275,-463.486],[-224.084,-466.146],[-216.891,-468.803],[-209.701,-471.461],[-202.51,-474.118],[-195.198,-476.403],[-187.792,-478.378],[-180.384,-480.355],[-172.975,-482.33],[-165.569,-484.308],[-158.097,-485.997],[-150.539,-487.282],[-142.98,-488.565],[-135.422,-489.85],[-127.863,-491.133],[-120.28,-492.21],[-112.635,-492.793],[-104.991,-493.379],[-97.346,-493.965],[-89.702,-494.548],[-82.054,-495.001],[-74.387,-494.882],[-66.721,-494.766],[-59.056,-494.647],[-51.389,-494.531],[-43.729,-494.352],[-36.105,-493.534],[-28.481,-492.716],[-20.859,-491.898],[-13.235,-491.079],[-5.614,-490.262]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.05,"y":0},"t":548,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[1.906,-488.758],[9.421,-487.243],[16.936,-485.728],[24.451,-484.213],[31.966,-482.698],[39.333,-480.59],[46.677,-478.385],[54.02,-476.18],[61.363,-473.975],[68.706,-471.77],[75.88,-469.081],[82.983,-466.201],[90.087,-463.319],[97.193,-460.436],[104.297,-457.556],[111.241,-454.323],[118.039,-450.782],[124.84,-447.241],[131.641,-443.702],[138.442,-440.161],[145.129,-436.429],[151.56,-432.254],[157.991,-428.079],[164.422,-423.907],[170.853,-419.732],[177.281,-415.554],[183.356,-410.878],[189.431,-406.2],[195.508,-401.524],[201.409,-396.642],[207.087,-391.489],[212.765,-386.336],[218.443,-381.184],[224.118,-376.031],[229.796,-370.878],[235.22,-365.461],[240.642,-360.04],[246.063,-354.618],[251.485,-349.197],[256.906,-343.775],[262.328,-338.354],[267.749,-332.932],[273.171,-327.513],[278.592,-322.092],[284.011,-316.671],[289.433,-311.249],[294.854,-305.828],[300.276,-300.406],[305.697,-294.985],[311.118,-289.563],[316.54,-284.142],[321.961,-278.72],[327.383,-273.299],[332.804,-267.88],[338.226,-262.458],[343.645,-257.037],[349.066,-251.615],[354.488,-246.194],[359.909,-240.772],[365.331,-235.351],[370.752,-229.929],[375.907,-224.256],[381.06,-218.578],[386.213,-212.9],[391.366,-207.222],[396.516,-201.547],[401.359,-195.612],[405.938,-189.462],[410.515,-183.315],[415.094,-177.165],[419.674,-171.015],[424.132,-164.785],[428.099,-158.223],[432.066,-151.662],[436.03,-145.1],[439.997,-138.539],[443.964,-131.978],[447.335,-125.097],[450.658,-118.187],[453.981,-111.277],[457.304,-104.369],[460.628,-97.459],[463.476,-90.348],[466.136,-83.158],[468.794,-75.967],[471.451,-68.776],[474.109,-61.583],[476.396,-54.274],[478.371,-46.868],[480.348,-39.459],[482.323,-32.051],[484.301,-24.645],[485.992,-17.176],[487.277,-9.617],[488.56,-2.058],[489.845,5.5],[491.128,13.059],[492.207,20.644],[492.793,28.287],[493.377,35.933],[493.962,43.576],[494.546,51.222],[495.001,58.87],[494.882,66.535],[494.766,74.203],[494.65,81.868],[494.531,89.533],[494.354,97.196],[493.536,104.819],[492.718,112.441],[491.9,120.065],[491.082,127.689],[490.264,135.31],[488.766,142.828],[487.248,150.345],[485.733,157.86],[484.218,165.375],[482.703,172.89],[480.597,180.258],[478.392,187.601],[476.188,194.944],[473.983,202.287],[471.778,209.63],[469.094,216.804],[466.211,223.908],[463.331,231.014],[460.448,238.117],[457.566,245.223],[454.337,252.167],[450.796,258.966],[447.255,265.767],[443.714,272.568],[440.173,279.369],[436.444,286.059],[432.269,292.489],[428.096,298.92],[423.921,305.351],[419.749,311.781],[415.571,318.21],[410.895,324.285],[406.219,330.362],[401.541,336.437],[396.661,342.34],[391.509,348.018],[386.356,353.696],[381.203,359.372],[376.05,365.05],[370.815,370.817],[365.139,375.97],[359.461,381.123],[353.783,386.276],[348.105,391.429],[342.43,396.579],[336.49,401.415],[330.34,405.994],[324.19,410.573],[318.04,415.15],[311.893,419.729],[305.658,424.182],[299.097,428.147],[292.535,432.114],[285.974,436.078],[279.412,440.045],[272.851,444.012],[265.965,447.376],[259.055,450.699],[252.145,454.022],[245.238,457.345],[238.328,460.668],[231.215,463.51],[224.024,466.167],[216.831,468.827],[209.64,471.485],[202.449,474.142],[195.138,476.42],[187.729,478.397],[180.323,480.372],[172.915,482.349],[165.506,484.324],[158.035,486.011],[150.476,487.294],[142.917,488.577],[135.359,489.862],[127.8,491.145],[120.217,492.217],[112.572,492.8],[104.928,493.386],[97.283,493.972],[89.639,494.555],[81.989,495],[74.324,494.884],[66.659,494.766],[58.991,494.649],[51.326,494.533],[43.663,494.347],[36.042,493.529],[28.418,492.711],[20.796,491.893],[13.173,491.075],[5.549,490.257],[-1.966,488.749],[-9.484,487.234],[-16.999,485.718],[-24.514,484.203],[-32.029,482.686],[-39.396,480.575],[-46.737,478.371],[-54.08,476.166],[-61.423,473.961],[-68.767,471.754],[-75.938,469.062],[-83.042,466.18],[-90.148,463.299],[-97.251,460.417],[-104.357,457.534],[-111.296,454.296],[-118.097,450.757],[-124.898,447.216],[-131.697,443.676],[-138.498,440.135],[-145.183,436.398],[-151.613,432.223],[-158.044,428.05],[-164.477,423.875],[-170.908,419.702],[-177.332,415.518],[-183.406,410.842],[-189.484,406.166],[-195.559,401.49],[-201.457,396.601],[-207.135,391.45],[-212.813,386.298],[-218.489,381.145],[-224.167,375.992],[-229.845,370.839],[-235.266,365.42],[-240.688,359.999],[-246.109,354.577],[-251.531,349.156],[-256.952,343.734],[-262.374,338.313],[-267.795,332.894],[-273.216,327.472],[-278.638,322.051],[-284.057,316.629],[-289.478,311.208],[-294.9,305.786],[-300.321,300.365],[-305.743,294.943],[-311.164,289.522],[-316.586,284.101],[-322.007,278.679],[-327.429,273.26],[-332.85,267.839],[-338.272,262.417],[-343.691,256.996],[-349.112,251.574],[-354.534,246.153],[-359.955,240.731],[-365.377,235.31],[-370.798,229.888],[-375.951,224.213],[-381.104,218.535],[-386.257,212.857],[-391.409,207.181],[-396.56,201.503],[-401.398,195.566],[-405.977,189.416],[-410.554,183.266],[-415.133,177.116],[-419.712,170.969],[-424.166,164.734],[-428.132,158.175],[-432.099,151.613],[-436.064,145.052],[-440.031,138.49],[-443.998,131.929],[-447.364,125.043],[-450.687,118.134],[-454.01,111.226],[-457.333,104.316],[-460.656,97.406],[-463.5,90.295],[-466.158,83.102],[-468.818,75.911],[-471.475,68.721],[-474.133,61.53],[-476.413,54.218],[-478.39,46.81],[-480.365,39.404],[-482.342,31.995],[-484.317,24.587],[-486.007,17.118],[-487.289,9.559],[-488.572,2],[-489.857,-5.558],[-491.14,-13.117],[-492.215,-20.702],[-492.798,-28.348],[-493.384,-35.991],[-493.969,-43.637],[-494.553,-51.28],[-495,-58.928],[-494.884,-66.596],[-494.768,-74.261],[-494.65,-81.926],[-494.533,-89.593],[-494.352,-97.254],[-493.534,-104.877],[-492.716,-112.499],[-491.895,-120.123],[-491.077,-127.747],[-490.259,-135.368],[-488.756,-142.886],[-487.239,-150.401],[-485.723,-157.918],[-484.208,-165.433],[-482.693,-172.948],[-480.583,-180.316],[-478.378,-187.659],[-476.173,-195],[-473.968,-202.343],[-471.763,-209.686],[-469.072,-216.86],[-466.192,-223.963],[-463.309,-231.067],[-460.426,-238.173],[-457.546,-245.277],[-454.31,-252.218],[-450.77,-259.019],[-447.229,-265.82],[-443.688,-272.619],[-440.149,-279.42],[-436.412,-286.107],[-432.24,-292.538],[-428.065,-298.968],[-423.892,-305.399],[-419.717,-311.83],[-415.537,-318.256],[-410.859,-324.331],[-406.183,-330.408],[-401.507,-336.483],[-396.62,-342.384],[-391.47,-348.062],[-386.317,-353.737],[-381.164,-359.415],[-376.011,-365.093],[-370.859,-370.771],[-365.185,-375.927],[-359.51,-381.079],[-353.832,-386.232],[-348.154,-391.385],[-342.476,-396.535],[-336.541,-401.376],[-330.394,-405.955],[-324.244,-410.532],[-318.094,-415.111],[-311.944,-419.69],[-305.714,-424.146],[-299.152,-428.113],[-292.591,-432.08],[-286.03,-436.044],[-279.468,-440.011],[-272.907,-443.978],[-266.023,-447.347],[-259.113,-450.67],[-252.203,-453.993],[-245.296,-457.316],[-238.386,-460.639],[-231.275,-463.486],[-224.084,-466.146],[-216.891,-468.803],[-209.701,-471.461],[-202.51,-474.118],[-195.198,-476.403],[-187.792,-478.378],[-180.384,-480.355],[-172.975,-482.33],[-165.569,-484.308],[-158.097,-485.997],[-150.539,-487.282],[-142.98,-488.565],[-135.422,-489.85],[-127.863,-491.133],[-120.28,-492.21],[-112.635,-492.793],[-104.991,-493.379],[-97.346,-493.965],[-89.702,-494.548],[-82.054,-495.001],[-74.387,-494.882],[-66.721,-494.766],[-59.056,-494.647],[-51.389,-494.531],[-43.729,-494.352],[-36.105,-493.534],[-28.481,-492.716],[-20.859,-491.898],[-13.235,-491.079],[-5.614,-490.262]],"c":true}]},{"t":578,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[6.428,-491.836],[14.758,-490.711],[22.933,-488.794],[30.879,-486.091],[38.523,-482.63],[45.798,-478.436],[52.619,-473.52],[58.782,-467.809],[64.461,-461.621],[69.338,-454.782],[73.871,-447.708],[78.192,-440.497],[82.517,-433.286],[86.839,-426.075],[91.16,-418.864],[95.482,-411.653],[99.804,-404.442],[104.126,-397.231],[108.483,-390.044],[113.214,-383.095],[118.623,-376.662],[124.659,-370.811],[131.256,-365.6],[138.343,-361.084],[145.852,-357.302],[153.702,-354.292],[161.813,-352.086],[170.105,-350.705],[178.493,-350.164],[186.896,-350.481],[195.21,-351.684],[203.407,-353.545],[211.562,-355.588],[219.718,-357.63],[227.872,-359.673],[236.027,-361.716],[244.181,-363.761],[252.338,-365.803],[260.492,-367.846],[268.646,-369.889],[276.914,-371.411],[285.269,-372.203],[293.657,-372.215],[302.017,-371.414],[310.252,-369.719],[318.231,-367.08],[325.908,-363.685],[333.216,-359.562],[340.096,-354.753],[346.486,-349.301],[352.314,-343.241],[357.412,-336.56],[361.837,-329.422],[365.549,-321.897],[368.509,-314.043],[370.689,-305.936],[372.039,-297.638],[372.361,-289.24],[372.004,-280.849],[370.621,-272.565],[368.824,-264.356],[366.781,-256.2],[364.736,-248.045],[362.693,-239.891],[360.651,-231.737],[358.608,-223.58],[356.565,-215.426],[354.522,-207.272],[352.518,-199.108],[350.948,-190.852],[350.222,-182.478],[350.352,-174.071],[351.328,-165.723],[353.146,-157.514],[355.778,-149.53],[359.199,-141.853],[363.374,-134.555],[368.261,-127.715],[373.81,-121.4],[379.976,-115.683],[386.704,-110.652],[393.816,-106.172],[401.027,-101.85],[408.238,-97.528],[415.449,-93.207],[422.657,-88.885],[429.868,-84.563],[437.079,-80.241],[444.29,-75.919],[451.501,-71.597],[458.424,-66.826],[464.892,-61.481],[470.836,-55.558],[476.182,-49.083],[480.806,-42.061],[484.584,-34.554],[487.613,-26.727],[489.868,-18.643],[491.334,-10.378],[492.001,-2.006],[491.837,6.399],[490.717,14.73],[488.802,22.906],[486.104,30.852],[482.645,38.498],[478.456,45.775],[473.541,52.596],[467.831,58.762],[461.649,64.443],[454.811,69.326],[447.737,73.86],[440.526,78.18],[433.315,82.501],[426.105,86.823],[418.894,91.145],[411.68,95.465],[404.469,99.786],[397.258,104.108],[390.069,108.463],[383.12,113.192],[376.687,118.601],[370.833,124.635],[365.62,131.228],[361.1,138.316],[357.315,145.823],[354.303,153.672],[352.094,161.784],[350.711,170.075],[350.167,178.464],[350.487,186.866],[351.683,195.181],[353.544,203.378],[355.589,211.532],[357.631,219.686],[359.674,227.843],[361.717,235.997],[363.762,244.151],[365.805,252.306],[367.847,260.462],[369.892,268.617],[371.413,276.884],[372.209,285.237],[372.224,293.628],[371.424,301.988],[369.729,310.223],[367.095,318.202],[363.7,325.879],[359.582,333.191],[354.775,340.071],[349.328,346.464],[343.269,352.292],[336.587,357.392],[329.452,361.82],[321.927,365.534],[314.075,368.499],[305.968,370.683],[297.67,372.031],[289.272,372.357],[280.883,372.005],[272.597,370.622],[264.388,368.83],[256.234,366.785],[248.077,364.742],[239.923,362.699],[231.769,360.657],[223.615,358.614],[215.458,356.571],[207.304,354.526],[199.14,352.521],[190.884,350.949],[182.51,350.221],[174.105,350.344],[165.754,351.32],[157.546,353.134],[149.562,355.763],[141.88,359.181],[134.582,363.354],[127.74,368.236],[121.423,373.785],[115.708,379.949],[110.672,386.673],[106.19,393.784],[101.868,400.995],[97.546,408.206],[93.224,415.417],[88.902,422.628],[84.581,429.839],[80.259,437.05],[75.937,444.261],[71.615,451.472],[66.846,458.394],[61.503,464.868],[55.583,470.811],[49.11,476.162],[42.088,480.786],[34.586,484.569],[26.758,487.6],[18.675,489.86],[10.412,491.328],[2.04,492],[-6.367,491.834],[-14.696,490.718],[-22.874,488.808],[-30.82,486.115],[-38.469,482.661],[-45.748,478.474],[-52.569,473.559],[-58.737,467.851],[-64.421,461.671],[-69.305,454.836],[-73.842,447.762],[-78.164,440.551],[-82.484,433.34],[-86.805,426.13],[-91.127,418.918],[-95.449,411.708],[-99.769,404.497],[-104.09,397.283],[-108.445,390.094],[-113.171,383.143],[-118.576,376.707],[-124.607,370.851],[-131.201,365.636],[-138.287,361.113],[-145.793,357.325],[-153.64,354.309],[-161.749,352.098],[-170.041,350.71],[-178.432,350.169],[-186.832,350.483],[-195.149,351.675],[-203.346,353.533],[-211.5,355.578],[-219.654,357.621],[-227.809,359.664],[-235.965,361.706],[-244.12,363.751],[-252.274,365.794],[-260.428,367.837],[-268.585,369.882],[-276.85,371.404],[-285.205,372.204],[-293.594,372.225],[-301.956,371.43],[-310.191,369.735],[-318.17,367.104],[-325.849,363.716],[-333.162,359.6],[-340.046,354.796],[-346.442,349.351],[-352.269,343.291],[-357.371,336.612],[-361.804,329.482],[-365.521,321.956],[-368.488,314.107],[-370.677,306],[-372.025,297.702],[-372.356,289.304],[-372.006,280.915],[-370.628,272.629],[-368.836,264.42],[-366.793,256.264],[-364.75,248.109],[-362.708,239.955],[-360.662,231.801],[-358.62,223.646],[-356.577,215.49],[-354.532,207.336],[-352.527,199.172],[-350.95,190.916],[-350.22,182.542],[-350.34,174.137],[-351.312,165.786],[-353.123,157.578],[-355.749,149.591],[-359.166,141.91],[-363.334,134.609],[-368.216,127.765],[-373.763,121.447],[-379.924,115.728],[-386.645,110.688],[-393.755,106.205],[-400.968,101.886],[-408.179,97.564],[-415.39,93.242],[-422.601,88.923],[-429.814,84.601],[-437.025,80.281],[-444.236,75.96],[-451.449,71.64],[-458.372,66.871],[-464.845,61.533],[-470.793,55.615],[-476.148,49.144],[-480.771,42.123],[-484.556,34.621],[-487.591,26.795],[-489.854,18.714],[-491.327,10.451],[-492.001,2.077],[-491.837,-6.328],[-490.724,-14.659],[-488.818,-22.835],[-486.128,-30.786],[-482.678,-38.434],[-478.496,-45.716],[-473.581,-52.537],[-467.878,-58.71],[-461.701,-64.396],[-454.868,-69.283],[-447.796,-73.822],[-440.586,-78.144],[-433.375,-82.463],[-426.161,-86.785],[-418.95,-91.107],[-411.739,-95.429],[-404.529,-99.751],[-397.318,-104.073],[-390.126,-108.425],[-383.172,-113.146],[-376.732,-118.549],[-370.874,-124.578],[-365.656,-131.167],[-361.128,-138.252],[-357.338,-145.757],[-354.319,-153.601],[-352.104,-161.71],[-350.714,-170.002],[-350.17,-178.393],[-350.482,-186.793],[-351.666,-195.11],[-353.525,-203.307],[-355.567,-211.461],[-357.61,-219.618],[-359.655,-227.772],[-361.698,-235.926],[-363.741,-244.081],[-365.783,-252.237],[-367.826,-260.391],[-369.871,-268.546],[-371.396,-276.813],[-372.202,-285.166],[-372.226,-293.555],[-371.436,-301.917],[-369.741,-310.152],[-367.117,-318.133],[-363.731,-325.815],[-359.617,-333.13],[-354.818,-340.017],[-349.378,-346.414],[-343.318,-352.242],[-336.642,-357.349],[-329.511,-361.784],[-321.991,-365.505],[-314.141,-368.475],[-306.037,-370.669],[-297.738,-372.017],[-289.34,-372.35],[-280.952,-372.005],[-272.665,-370.629],[-264.454,-368.839],[-256.3,-366.796],[-248.146,-364.754],[-239.989,-362.709],[-231.835,-360.666],[-223.681,-358.623],[-215.526,-356.581],[-207.372,-354.535],[-199.208,-352.528],[-190.953,-350.951],[-182.578,-350.216],[-174.174,-350.334],[-165.823,-351.306],[-157.612,-353.115],[-149.626,-355.736],[-141.942,-359.148],[-134.639,-363.314],[-127.794,-368.194],[-121.477,-373.74],[-115.753,-379.899],[-110.708,-386.616],[-106.225,-393.725],[-101.903,-400.936],[-97.582,-408.147],[-93.26,-415.36],[-88.94,-422.571],[-84.618,-429.782],[-80.297,-436.993],[-75.975,-444.204],[-71.584,-451.531],[-66.813,-458.453],[-61.463,-464.917],[-55.538,-470.858],[-49.058,-476.202],[-42.039,-480.826],[-34.53,-484.599],[-26.699,-487.623],[-18.616,-489.876],[-10.351,-491.337],[-1.977,-491.999]],"c":true}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.235294117647,0.250980392157,0.262745098039,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[8.9,8.9],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Material shape","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":270,"op":720,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":26,"ty":4,"nm":".grey700","cl":"grey700","parent":27,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[-349.33,-81.383,0],"ix":2,"l":2},"a":{"a":0,"k":[-212.824,66.939,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[77,77],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":772,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372549019608,0.388235294118,0.407843137255,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-212.824,66.939],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":270,"op":720,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":27,"ty":4,"nm":".grey800","cl":"grey800","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"s":true,"x":{"a":1,"k":[{"i":{"x":[0],"y":[1]},"o":{"x":[0.05],"y":[0]},"t":270,"s":[1256]},{"t":300,"s":[476]}],"ix":3},"y":{"a":0,"k":342,"ix":4}},"a":{"a":0,"k":[-202.83,-54.883,0],"ix":1,"l":2},"s":{"a":0,"k":[200,200,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[420,190],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":38,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.235294117647,0.250980392157,0.262745098039,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-202.83,-54.883],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":270,"op":720,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":28,"ty":4,"nm":".black","cl":"black","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[412,300,0],"ix":2,"l":2},"a":{"a":0,"k":[-46.322,-74.951,0],"ix":1,"l":2},"s":{"a":0,"k":[200,200,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[412,300],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":28,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-46.322,-74.951],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":720,"st":0,"ct":1,"bm":0}],"markers":[{"tm":360,"cm":"1","dr":0},{"tm":450,"cm":"2","dr":0},{"tm":540,"cm":"3","dr":0}],"props":{}}
\ No newline at end of file
diff --git a/res/values-af/strings.xml b/res/values-af/strings.xml
index 2781070..f0e4224 100644
--- a/res/values-af/strings.xml
+++ b/res/values-af/strings.xml
@@ -41,6 +41,8 @@
<string name="radioInfo_data_suspended" msgid="2001254415431299603">"Afgelas"</string>
<string name="radioInfo_unknown" msgid="2892562356748600367">"Onbekend"</string>
<string name="preview_pager_content_description" msgid="3762247188224576303">"Voorskou"</string>
+ <!-- no translation found for qr_code_content_description (1852208464419291347) -->
+ <skip />
<string name="font_size_make_smaller_desc" msgid="4978038055549590140">"Maak kleiner"</string>
<string name="font_size_make_larger_desc" msgid="5583046033381722247">"Maak groter"</string>
<string name="stay_awake_on_fold_title" msgid="6590454679898134221">"Altyd"</string>
@@ -283,7 +285,7 @@
<string name="location_settings_summary_location_off" msgid="4797932754681162262">"Af"</string>
<string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{Aan/# app het toegang tot ligging}other{Aan/# apps het toegang tot ligging}}"</string>
<string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"Laai tans …"</string>
- <string name="location_settings_footer_general" msgid="1040507068701188821">"Apps met die Toestelle in die Omtrek-toestemming kan die relatiewe posisie van gekoppelde toestelle bepaal."</string>
+ <string name="location_settings_footer_general" msgid="3447585552176173502">"Apps met die Toestelle in die Omtrek-toestemming kan die relatiewe posisie van gekoppelde toestelle bepaal."</string>
<string name="location_settings_footer_location_off" msgid="8568995909147566720">"Liggingtoegang is af vir apps en dienste. Jou toestelligging kan steeds aan nooddienste gestuur word wanneer jy \'n noodnommer bel of \'n SMS daarheen stuur."</string>
<string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Meer inligting oor ligginginstellings"</string>
<string name="location_settings_tooltip_text_for_chrome" msgid="5781821709250544575">"Gaan na ChromeOS-instellings > Privaatheid en sekuriteit > Privaatheidkontroles > Liggingtoegang om dit te verander"</string>
@@ -850,7 +852,6 @@
<string name="nfc_reboot_dialog_title" msgid="2033983438635768169">"Herbegin toestel?"</string>
<string name="nfc_reboot_dialog_message" msgid="4929353168157966992">"Gedetailleerde NFC-loglêers is slegs vir ontwikkelingdoeleindes bedoel. Bykomende NFC-data is by foutverslae ingesluit, wat privaat inligting kan bevat. Herbegin jou toestel om hierdie instelling te verander."</string>
<string name="nfc_reboot_dialog_confirm" msgid="4769763632008584567">"Herbegin"</string>
- <string name="keywords_external_display" msgid="4181375057920134909">"weerspieël, eksterne skerm, gekoppelde skerm, usb-skerm, resolusie, rotasie"</string>
<string name="external_display_on" msgid="2560104443500154333">"Aan"</string>
<string name="external_display_off" msgid="5634413756025351374">"Af"</string>
<string name="external_display_settings_title" msgid="6256884595821605779">"Eksterne skerm"</string>
@@ -1918,6 +1919,8 @@
<string name="slow_keys_summary" msgid="1784371292745423292">"Dit verstel die tyd wat dit neem vir ’n sleuteldruk om geaktiveer te word na <xliff:g id="SLOW_KEYS_THRESHOLD">%1$d</xliff:g> ms toe"</string>
<string name="sticky_keys" msgid="7317317044898161747">"Taaisleutels"</string>
<string name="sticky_keys_summary" msgid="1844953803625480623">"Druk een sleutel op ’n slag vir kortpaaie pleks van om die sleutels saam in te hou"</string>
+ <string name="mouse_keys" msgid="6237254627808525540">"Muissleutels"</string>
+ <string name="mouse_keys_summary" msgid="2396247040177734245">"Gebruik die fisieke sleutelbord om die muis te beheer."</string>
<string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"Kortpadsleutels"</string>
<string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"Wys lys met kortpaaie"</string>
<string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"Werkprofielsleutelborde en -nutsgoed"</string>
@@ -1942,14 +1945,10 @@
<string name="pointer_fill_style_yellow_button" msgid="5025969961559379024">"Verander wyserinvulstyl na geel"</string>
<string name="pointer_fill_style_pink_button" msgid="4106218142489635673">"Verander wyserinvulstyl na pienk"</string>
<string name="pointer_fill_style_blue_button" msgid="5594958078854032785">"Verander wyserinvulstyl na blou"</string>
- <!-- no translation found for pointer_stroke_style (1886986630216050665) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_white (673686194443825383) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_black (4655806167067437330) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_none (8953927511729800247) -->
- <skip />
+ <string name="pointer_stroke_style" msgid="1886986630216050665">"Styl van wyser se haal"</string>
+ <string name="pointer_stroke_style_name_white" msgid="673686194443825383">"Wit"</string>
+ <string name="pointer_stroke_style_name_black" msgid="4655806167067437330">"Swart"</string>
+ <string name="pointer_stroke_style_name_none" msgid="8953927511729800247">"Geen"</string>
<string name="trackpad_touch_gesture" msgid="8641725062131922497">"Leer raakpaneelgebare"</string>
<string name="keywords_touchpad" msgid="8159846254066666032">"stuurpaneel, stuurpaneel, muis, skermpyltjie, rollees, swiep, regsklik, klik, wyser"</string>
<string name="keywords_trackpad_bottom_right_tap" msgid="1285062446073929305">"regsklik, tik"</string>
@@ -2179,8 +2178,6 @@
<string name="accessibility_shortcut_edit_dialog_summary_floating_button" msgid="6266489864614886247">"Tik op die swewende knoppie"</string>
<string name="accessibility_shortcut_edit_dialog_title_software_by_gesture" msgid="4775049370625630546">"Toeganklikheidsgebaar"</string>
<string name="accessibility_shortcut_edit_dialog_summary_software" msgid="8315934725362849788">"Tik op die toeganklikheidknoppie <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g> onderaan jou skerm. Raak en hou die toeganklikheidknoppie om tussen kenmerke te wissel."</string>
- <string name="accessibility_shortcut_edit_dialog_summary_software_gesture" msgid="8292555254353761635">"Swiep met 2 vingers van die onderkant van die skerm af op.\n\nSwiep op met 2 vingers en hou om tussen kenmerke te wissel."</string>
- <string name="accessibility_shortcut_edit_dialog_summary_software_gesture_talkback" msgid="84483464524360845">"Swiep met 3 vingers van die onderkant van die skerm af op.\n\nSwiep op met 3 vingers en hou om tussen kenmerke te wissel."</string>
<string name="accessibility_shortcut_edit_dialog_summary_gesture" msgid="2081123009255579884">"{count,plural, =1{Swiep van die onderkant van jou skerm af op. Swiep op en hou om tussen kenmerke te wissel.}other{Swiep met # vingers van die onderkant van jou skerm af op. Swiep met # vingers op en hou om tussen kenmerke te wissel.}}"</string>
<string name="accessibility_shortcut_edit_dialog_summary_software_floating" msgid="4459254227203203324"><annotation id="link">"Meer opsies"</annotation></string>
<string name="footer_learn_more_content_description" msgid="8843798273152131341">"Kom meer te wete oor <xliff:g id="SERVICE">%1$s</xliff:g>"</string>
@@ -2191,16 +2188,12 @@
<string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="844089763968552142">"Volumesleutels"</string>
<string name="accessibility_shortcut_hardware_keyword" msgid="2483152542320987022">"Volumesleutels"</string>
<string name="accessibility_shortcut_edit_dialog_summary_hardware" msgid="2503134386397991634">"Druk en hou albei volumesleutels"</string>
- <string name="accessibility_shortcut_edit_dialog_title_two_finger_double_tap" msgid="2271778556854020996">"Tweevinger-dubbeltik op skerm"</string>
<string name="accessibility_shortcut_edit_screen_title_two_finger_double_tap" msgid="8952595692906527694">"%1$d-vinger-dubbeltik"</string>
<string name="accessibility_shortcut_edit_screen_summary_two_finger_double_tap" msgid="385404127425496362">"Tik vinnig twee keer op die skerm met %1$d vingers."</string>
<string name="accessibility_shortcut_edit_screen_title_triple_tap" msgid="3314488747597058942">"Tripeltik"</string>
<string name="accessibility_shortcut_edit_screen_summary_triple_tap" msgid="4839204951599629871">"Tik vinnig %1$d keer op die skerm. Dit kan jou toestel stadiger maak"</string>
<string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="6271718715836961167">"%1$d-vinger-dubbeltik"</string>
- <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"Tik vinnig {0,number,integer} keer op die skerm met twee vingers"</string>
- <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"Tik 3 keer op skerm"</string>
<string name="accessibility_shortcut_triple_tap_keyword" msgid="5359347130888464334">"Tripeltik"</string>
- <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"Tik {0,number,integer} keer vinnig op skerm. Hierdie kortpad kan jou toestel stadiger maak"</string>
<string name="accessibility_shortcut_edit_dialog_title_advance" msgid="4567868630655591506">"Gevorderd"</string>
<string name="accessibility_screen_magnification_navbar_configuration_warning" msgid="266736851606791552">"Die Toeganklikheidsknoppie is gestel op <xliff:g id="SERVICE">%1$s</xliff:g>. Raak en hou die Toeganklikheidsknoppie en kies vergroting as jy vergroting wil gebruik."</string>
<string name="accessibility_screen_magnification_gesture_navigation_warning" msgid="991017769735632046">"Die toeganklikheidgebaar is gestel op die <xliff:g id="SERVICE">%1$s</xliff:g>. Swiep met twee vingers op van die onderkant van die skerm af en hou om vergroting te gebruik. Kies dan vergroting."</string>
@@ -2369,6 +2362,7 @@
<string name="daltonizer_mode_tritanomaly_title" msgid="2278786218762602022">"Blou-geel"</string>
<string name="daltonizer_mode_grayscale_title" msgid="152005391387952588">"Grysskaal"</string>
<string name="daltonizer_saturation_title" msgid="2999486412114963068">"Intensiteit"</string>
+ <string name="daltonizer_saturation_unavailable_summary" msgid="8319753055567798775">"Onbeskikbaar vir grysskaalmodus of wanneer kleurregstelling gedeaktiveer is"</string>
<string name="daltonizer_mode_deuteranomaly_summary" msgid="2117727423019598455">"Groen swak, deuteranomalie"</string>
<string name="daltonizer_mode_protanomaly_summary" msgid="4617032854982040748">"Rooi swak, protanomalie"</string>
<string name="daltonizer_mode_tritanomaly_summary" msgid="2428218320118180070">"Tritanomalie"</string>
@@ -2418,15 +2412,8 @@
<string name="color_cyan" msgid="4341758639597035927">"Siaan"</string>
<string name="color_yellow" msgid="5957551912912679058">"Geel"</string>
<string name="color_magenta" msgid="8943538189219528423">"Magenta"</string>
- <string name="enable_service_title" msgid="7231533866953706788">"Gee <xliff:g id="SERVICE">%1$s</xliff:g> volle beheer oor jou toestel?"</string>
<string name="capabilities_list_title" msgid="1225853611983394386">"<xliff:g id="SERVICE">%1$s</xliff:g> moet:"</string>
<string name="touch_filtered_warning" msgid="4225815157460318241">"Instellings kan nie jou antwoord verifieer nie omdat \'n program \'n toestemmingversoek verberg."</string>
- <string name="accessibility_service_warning" msgid="6779187188736432618">"<xliff:g id="SERVICE">%1$s</xliff:g> versoek tans volle beheer van hierdie toestel. Die diens kan die skerm lees en namens gebruikers met toeganklikheidsbehoeftes optree. Hierdie vlak van beheer is nie vir die meeste programme toepaslik nie."</string>
- <string name="accessibility_service_warning_description" msgid="6573203795976134751">"Volle beheer is gepas vir apps wat jou help met toeganklikheidsbehoeftes, maar nie vir die meeste apps nie."</string>
- <string name="accessibility_service_screen_control_title" msgid="324795030658109870">"Bekyk en beheer skerm"</string>
- <string name="accessibility_service_screen_control_description" msgid="8431940515157990426">"Dit kan alle inhoud op die skerm lees en inhoud bo-oor ander apps vertoon."</string>
- <string name="accessibility_service_action_perform_title" msgid="1449360056585337833">"Bekyk en voer handelinge uit"</string>
- <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"Dit kan jou interaksies met \'n app of \'n hardewaresensor naspoor en namens jou met apps interaksie hê."</string>
<string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Laat toe"</string>
<string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Weier"</string>
<string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Skakel af"</string>
@@ -3368,10 +3355,8 @@
<string name="zen_mode_automation_settings_title" msgid="3709324184191870926">"Skedules"</string>
<string name="zen_mode_delete_automatic_rules" msgid="5020468289267191765">"Vee skedules uit"</string>
<string name="zen_mode_schedule_delete" msgid="5383420576833765114">"Vee uit"</string>
- <!-- no translation found for zen_mode_menu_rename_mode (4681802125016390837) -->
- <skip />
- <!-- no translation found for zen_mode_menu_delete_mode (5380084696402157428) -->
- <skip />
+ <string name="zen_mode_menu_rename_mode" msgid="4681802125016390837">"Hernoem"</string>
+ <string name="zen_mode_menu_delete_mode" msgid="5380084696402157428">"Vee uit"</string>
<string name="zen_mode_delete_mode_confirmation" msgid="7594340592051947392">"Vee “<xliff:g id="MODE">%1$s</xliff:g>”-modus uit?"</string>
<string name="zen_mode_rule_name_edit" msgid="1053237022416700481">"Wysig"</string>
<string name="zen_mode_automation_settings_page_title" msgid="6217433860514433311">"Skedules"</string>
@@ -3395,8 +3380,7 @@
<string name="zen_mode_visual_signals_settings_subtitle" msgid="7433077540895876672">"Laat visuele tekens toe"</string>
<string name="mode_interruption_filter_title" msgid="3343846700214702347">"Bly gefokus"</string>
<string name="mode_device_effects_title" msgid="5857008332618433744">"Bykomende handelinge"</string>
- <!-- no translation found for modes_sound_summary_off (6972648204528227879) -->
- <skip />
+ <string name="modes_sound_summary_off" msgid="6972648204528227879">"{count,plural, =0{Af}=1{Af / 1 modus kan automaties aanskakel}other{Af / # modusse kan automaties aanskakel}}"</string>
<string name="mode_display_settings_title" msgid="8132825978346535472">"Vertooninstellings"</string>
<string name="mode_display_options_section" msgid="5151597748243866532">"Vertoon opsies"</string>
<string name="mode_grayscale_title" msgid="6027553257331235461">"Grysskaal"</string>
@@ -3659,9 +3643,9 @@
<string name="notif_listener_not_migrated" msgid="6265206376374278226">"Hierdie program steun nie verbeterde instellings nie"</string>
<string name="notif_listener_more_settings" msgid="1348409392307208921">"Meer instellings"</string>
<string name="notif_listener_more_settings_desc" msgid="7995492074281663658">"Meer instellings is binne hierdie app beskikbaar"</string>
- <string name="notification_polite_title" msgid="4737150709382859870">"Aanpasbare kennisgewings"</string>
- <string name="notification_polite_main_control_title" msgid="7267191551379543859">"Gebruik aanpasbare kennisgewings"</string>
- <string name="notification_polite_description" msgid="7749280535620291610">"Wanneer jy binne ’n kort tydperk baie kennisgewings kry, sal jou foon vir tot twee minute die volume sagter stel en opspringers op die skerm minimeer. Oproepe, wekkers en prioriteitgesprekke vibreer steeds, maak ’n geluid of wys op die skerm, en alle kennisgewings is maklik om te kry wanneer jy van die bokant van die skerm af trek."</string>
+ <string name="notification_polite_title" msgid="6121016426991791557">"Kennisgewingbedaring"</string>
+ <string name="notification_polite_main_control_title" msgid="5812529809151927149">"Gebruik kennisgewingdemping"</string>
+ <string name="notification_polite_description" msgid="5497748284893832854">"Wanneer jy binne ’n kort tydperk baie kennisgewings kry, sal jou toestel vir tot 2 minute die volume sagter stel en waarskuwings minimeer. Oproepe, wekkers en prioriteitgesprekke word nie geraak nie. \n\nKennisgewings wat jy tydens demping kry, kan gekry word deur van die bokant van die skerm af te trek."</string>
<string name="notification_polite_work" msgid="8823596456640216391">"Pas toe op werkprofiele"</string>
<string name="notification_polite_work_summary" msgid="5014189280132951378">"Pas toe op werkprofielapps"</string>
<string name="vr_listeners_title" msgid="4960357292472540964">"VR-helperdienste"</string>
@@ -3818,7 +3802,9 @@
<string name="zen_mode_apps_priority_apps" msgid="7386196048313716076">"Geselekteerde apps"</string>
<string name="zen_mode_apps_none_apps" msgid="2493642312793604327">"Geen"</string>
<string name="zen_mode_apps_subtext" msgid="1764211974662012877">"{count,plural,offset:2 =0{Geen apps kan onderbreek nie}=1{{app_1} kan onderbreek}=2{{app_1} en {app_2} kan onderbreek}=3{{app_1}, {app_2} en {app_3} kan onderbreek}other{{app_1}, {app_2} en nog # kan onderbreek}}"</string>
+ <string name="zen_mode_apps_work_app" msgid="8528767938316361588">"<xliff:g id="APP_LABEL">%s</xliff:g> (Werk)"</string>
<string name="zen_mode_apps_calculating" msgid="5420121396943539286">"Bereken tans …"</string>
+ <string name="zen_mode_plus_n_items" msgid="6136713354369243421">"+<xliff:g id="NUMBER">%d</xliff:g>"</string>
<string name="zen_mode_bypassing_apps" msgid="625309443389126481">"Laat programme toe om te ignoreer"</string>
<string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"Programme wat kan onderbreek"</string>
<string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"Kies meer apps"</string>
@@ -3836,6 +3822,7 @@
<string name="zen_mode_sounds_none" msgid="6557474361948269420">"Niks kan onderbreek nie"</string>
<string name="zen_mode_people_none" msgid="4613147461974255046">"Niemand kan onderbreek nie"</string>
<string name="zen_mode_people_some" msgid="9101872681298810281">"Sekere mense kan onderbreek"</string>
+ <string name="zen_mode_people_repeat_callers" msgid="4499084111069828761">"Herhaalbellers kan onderbreek"</string>
<string name="zen_mode_people_all" msgid="311036110283015205">"Alle mense kan onderbreek"</string>
<string name="zen_mode_repeat_callers" msgid="2270356100287792138">"Herhaalbellers"</string>
<string name="zen_mode_repeat_callers_title" msgid="8016699240338264781">"Laat herhaalbellers toe"</string>
@@ -3855,13 +3842,37 @@
<string name="zen_mode_summary_alarms_only_by_hour" msgid="7400910210950788163">"{count,plural, =1{Verandering aan wekkers vir slegs een uur tot {time}}other{Verandering aan wekkers vir slegs # uur tot {time}}}"</string>
<string name="zen_mode_summary_alarms_only_by_time" msgid="8140619669703968810">"Verander tot <xliff:g id="FORMATTEDTIME">%1$s</xliff:g> na net wekkers"</string>
<string name="zen_mode_summary_always" msgid="722093064250082317">"Verander na onderbreek altyd"</string>
- <!-- no translation found for zen_mode_rename_title (8146882272966214558) -->
+ <string name="zen_mode_rename_title" msgid="8146882272966214558">"Wysig modus"</string>
+ <string name="zen_mode_new_custom_title" msgid="321750898430776191">"Voeg modus by"</string>
+ <string name="zen_mode_new_custom_default_name" msgid="2778307946775085105">"Gepasmaakte modus"</string>
+ <string name="zen_mode_edit_name_hint" msgid="4584652062167540536">"Modusnaam"</string>
+ <string name="zen_mode_trigger_title_schedule_calendar" msgid="9206609438617550331">"Kalendergeleenthede"</string>
+ <string name="zen_mode_trigger_title_bedtime" msgid="5086070900588489978">"Slaapskedule"</string>
+ <string name="zen_mode_trigger_title_driving" msgid="7890990983453164403">"Terwyl jy bestuur"</string>
+ <string name="zen_mode_trigger_title_generic" msgid="601273385119550420">"Gekoppel aan app"</string>
+ <string name="zen_mode_trigger_summary_settings_in_app" msgid="4860667191183702601">"Inligting en instellings in <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+ <string name="zen_mode_trigger_summary_managed_by_app" msgid="8631011868193102098">"Bestuur deur <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+ <string name="zen_mode_confirm_disable_title" msgid="1232297660775719796">"Deaktiveer modus"</string>
+ <string name="zen_mode_confirm_disable_message" msgid="7315541221665718491">"As jy hierdie kenmerk deaktiveer, sal die modus nie meer werk soos dit moet nie en sal sy instellings versteek word."</string>
+ <string name="zen_mode_action_disable" msgid="3552921561331044881">"Deaktiveer"</string>
+ <string name="zen_mode_confirm_enable_title" msgid="5683371335847448595">"Aktiveer modus"</string>
+ <string name="zen_mode_confirm_enable_message" msgid="7017879133260011419">"As jy hierdie kenmerk aktiveer, sal die modus outomaties aktiveer volgens sy skedule."</string>
+ <string name="zen_mode_action_enable" msgid="1161480633223176531">"Aktiveer"</string>
+ <!-- no translation found for zen_mode_blurb_schedule_time (8223898702097484009) -->
<skip />
- <!-- no translation found for zen_mode_new_custom_title (321750898430776191) -->
+ <!-- no translation found for zen_mode_blurb_schedule_calendar (382177907856065945) -->
<skip />
- <!-- no translation found for zen_mode_new_custom_default_name (2778307946775085105) -->
+ <!-- no translation found for zen_mode_blurb_bedtime (6155075956151013457) -->
<skip />
- <!-- no translation found for zen_mode_edit_name_hint (4584652062167540536) -->
+ <!-- no translation found for zen_mode_blurb_driving (1316054379000667305) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_immersive (5884004861848687869) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_theater (2999237960059524225) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_managed (5473921634985032149) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_generic (3041601339807075625) -->
<skip />
<string name="warning_button_text" msgid="1274234338874005639">"Waarskuwing"</string>
<string name="suggestion_button_close" msgid="6865170855573283759">"Maak toe"</string>
@@ -4849,9 +4860,8 @@
<string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"Battery"</string>
<string name="settings_panel_title" msgid="346363079938069215">"Instellingspaneel"</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>
+ <!-- no translation found for enable_desktop_mode_on_secondary_display (2609567824593768780) -->
+ <skip />
<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>
@@ -5026,7 +5036,6 @@
<string name="default_active_sim_mobile_data" msgid="6798083892814045301">"mobiele data"</string>
<string name="wifi_scan_notify_message" msgid="1331238142061476869">"Om toestelervaring te verbeter, kan apps en dienste steeds enige tyd na wi‑fi-netwerke soek, selfs wanneer wi‑fi af is. Dit kan byvoorbeeld gebruik word om ligginggegronde kenmerke en dienste te verbeter. Jy kan dit in Wi-fi-opsporinginstellings verander."</string>
<string name="wifi_scan_change" msgid="8438320311511852918">"Verander"</string>
- <string name="preference_summary_default_combination" msgid="4643585915107796253">"<xliff:g id="STATE">%1$s</xliff:g> / <xliff:g id="NETWORKMODE">%2$s</xliff:g>"</string>
<string name="mobile_data_connection_active" msgid="2422223108911581552">"Gekoppel"</string>
<string name="mobile_data_temp_connection_active" msgid="3430470299756236413">"Tydelik gekoppel"</string>
<string name="mobile_data_temp_using" msgid="5211002380149434155">"Gebruik <xliff:g id="SUBNAME">%1$s</xliff:g> tydelik"</string>
@@ -5172,9 +5181,11 @@
<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="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_enable_freeform_support" msgid="3697462756493543645">"’n Herselflaai word vereis om vryevormvenstersteun te aktiveer."</string>
+ <!-- no translation found for reboot_dialog_override_desktop_mode (7480950772574354130) -->
+ <skip />
+ <!-- no translation found for reboot_dialog_enable_desktop_mode_on_secondary_display (1153621881052401924) -->
+ <skip />
<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>
@@ -5292,10 +5303,8 @@
<string name="show_captions_enabled" msgid="7089043007924626">"Aan"</string>
<string name="live_caption_disabled" msgid="3562035026547887366">"Af"</string>
<string name="live_caption_enabled" msgid="5269360946200718949">"Aan"</string>
- <!-- no translation found for audio_seek_bar_state_left_first (8814986910920838972) -->
- <skip />
- <!-- no translation found for audio_seek_bar_state_right_first (1999368979633398876) -->
- <skip />
+ <string name="audio_seek_bar_state_left_first" msgid="8814986910920838972">"Oudio %1$d%% links, %2$d%% regs"</string>
+ <string name="audio_seek_bar_state_right_first" msgid="1999368979633398876">"Oudio %1$d%% regs, %2$d%% links"</string>
<string name="about_phone_device_name_warning" msgid="3243226572404472381">"Jou toestelnaam is sigbaar vir apps wat jy geïnstalleer het. Ander mense sal dit dalk ook kan sien as jy aan Bluetooth-toestelle koppel, aan ’n wi-fi-netwerk koppel, of ’n wi-fi-warmkol opstel."</string>
<string name="grammatical_gender_title" msgid="8584242850477270828">"Grammatikale geslag"</string>
<string name="grammatical_gender_dialog_title" msgid="8754048592099871587">"Kies grammatikale geslag"</string>
@@ -5407,5 +5416,6 @@
<string name="audio_streams_main_page_password_dialog_join_button" msgid="2967747276379153408">"Luister na stroom"</string>
<string name="audio_streams_main_page_qr_code_scanner_summary" msgid="5312980105735143360">"Skandeer ’n oudiostroom-QR-kode om op <xliff:g id="DEVICE_NAME">%1$s</xliff:g> te luister"</string>
<string name="audio_streams_main_page_password_dialog_cannot_edit" msgid="9020898619297520153">"Kan nie wagwoord wysig terwyl daar gedeel word nie. Skakel eers oudiodeling af om die wagwoord te verander."</string>
+ <string name="audio_streams_qr_code_scanner_label" msgid="8799703301071378034">"QR-kodeskandeerder"</string>
<string name="homepage_search" msgid="6759334912284663559">"Soekinstellings"</string>
</resources>
diff --git a/res/values-am/strings.xml b/res/values-am/strings.xml
index 58eabce..56adb99 100644
--- a/res/values-am/strings.xml
+++ b/res/values-am/strings.xml
@@ -41,6 +41,8 @@
<string name="radioInfo_data_suspended" msgid="2001254415431299603">"ታግዷል"</string>
<string name="radioInfo_unknown" msgid="2892562356748600367">"ያልታወቀ"</string>
<string name="preview_pager_content_description" msgid="3762247188224576303">"ቅድመ-ዕይታ"</string>
+ <!-- no translation found for qr_code_content_description (1852208464419291347) -->
+ <skip />
<string name="font_size_make_smaller_desc" msgid="4978038055549590140">"አነስ አድርግ"</string>
<string name="font_size_make_larger_desc" msgid="5583046033381722247">"ተለቅ አድርግ"</string>
<string name="stay_awake_on_fold_title" msgid="6590454679898134221">"ሁልጊዜ"</string>
@@ -283,7 +285,7 @@
<string name="location_settings_summary_location_off" msgid="4797932754681162262">"ጠፍቷል"</string>
<string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{በርቷል / # መተግበሪያ የአካባቢ መዳረሻ አለው}one{በርቷል / # መተግበሪያ የአካባቢ መዳረሻ አለው}other{በርቷል / # መተግበሪያዎች የአካባቢ መዳረሻ አላቸው}}"</string>
<string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"በመጫን ላይ…"</string>
- <string name="location_settings_footer_general" msgid="1040507068701188821">"በአቅራቢያ ያሉ የመሣሪያዎች ፈቃድ ያላቸው መተግበሪያዎች የተገናኙ መሣሪያዎችን አንጻራዊ አቀማመጥ ማወቅ ይችላሉ።"</string>
+ <string name="location_settings_footer_general" msgid="3447585552176173502">"በአቅራቢያ ያሉ የመሣሪያዎች ፈቃድ ያላቸው መተግበሪያዎች የተገናኙ መሣሪያዎችን አንጻራዊ አቀማመጥ መወሰን ይችላሉ።"</string>
<string name="location_settings_footer_location_off" msgid="8568995909147566720">"ለመተግበሪያዎች እና ለአገልግሎቶች የአካባቢ መዳረሻ ጠፍቷል። ወደ የአደጋ ጊዜ ቁጥር ሲደውሉ ወይም የጽሑፍ መልዕክት ሲልኩ የመሣሪያዎ አካባቢ አሁንም ወደ የድንገተኛ ጊዜ አደጋ ምላሽ ሰጪዎች ሊላክ ይችላል።"</string>
<string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"ስለ የአካባቢ ቅንብሮች የበለጠ ይወቁ"</string>
<string name="location_settings_tooltip_text_for_chrome" msgid="5781821709250544575">"ለመለወጥ ወደ ChromeOS ቅንብሮች > ግላዊነት እና ደህንነት > የግላዊነት ቁጥጥሮች > የቦታ መዳረሻ ይሂዱ"</string>
@@ -850,7 +852,6 @@
<string name="nfc_reboot_dialog_title" msgid="2033983438635768169">"መሣሪያ እንደገና ይጀምር?"</string>
<string name="nfc_reboot_dialog_message" msgid="4929353168157966992">"ዝርዝር የኤንኤፍሲ ምዝግብ ማስታወሻ ለግንባታ ዓላማዎች ብቻ የታሰበ ነው። በሳንካ ሪፖርቶች ውስጥ የግል መረጃን ሊይዝ የሚችል ተጨማሪ የኤንኤፍሲ ውሂብ ተካትቷል። ይህን ቅንብር ለመለወጥ መሣሪያዎን እንደገና ያስጀምሩ።"</string>
<string name="nfc_reboot_dialog_confirm" msgid="4769763632008584567">"ዳግም አስጀምር"</string>
- <string name="keywords_external_display" msgid="4181375057920134909">"አንጸባርቅ፣ ውጫዊ ማሳያ፣ የተገናኘ ማሳያ፣ USB ማሳያ፣ ጥራት፣ ማዞር"</string>
<string name="external_display_on" msgid="2560104443500154333">"በርቷል"</string>
<string name="external_display_off" msgid="5634413756025351374">"ጠፍቷል"</string>
<string name="external_display_settings_title" msgid="6256884595821605779">"ውጫዊ ማሳያ"</string>
@@ -1635,7 +1636,7 @@
<string name="lockpassword_choose_your_profile_password_header" msgid="7038997227611893312">"የሥራ የይለፍ ቃል ያቀናብሩ"</string>
<string name="lockpassword_choose_your_pin_header" msgid="7754265746504679473">"ፒን ያቀናብሩ"</string>
<string name="lockpassword_choose_your_profile_pin_header" msgid="4581749963670819048">"የሥራ ፒን ያቀናብሩ"</string>
- <string name="lockpassword_choose_your_pattern_header" msgid="5674909390779586252">"ስርዓተ-ጥለት ያቀናብሩ"</string>
+ <string name="lockpassword_choose_your_pattern_header" msgid="5674909390779586252">"ሥርዓተ-ጥለት ያቀናብሩ"</string>
<string name="lockpassword_choose_your_pattern_description" msgid="6808109256008481046">"ለተጨማሪ ደህንነት ሲባል መሣሪያውን ለመክፈት ስርዓተ ጥለት ያቀናብሩ"</string>
<string name="lockpassword_choose_your_profile_pattern_header" msgid="3101811498330756641">"የሥራ ስርዓተ-ጥለት ያቀናብሩ"</string>
<string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="3167261267229254090">"የጣት አሻራን ለመጠቀም የይለፍ ቃል ያቀናብሩ"</string>
@@ -1918,6 +1919,8 @@
<string name="slow_keys_summary" msgid="1784371292745423292">"የቁልፍ መጫን ለማግበር የሚወስደውን ጊዜ ወደ <xliff:g id="SLOW_KEYS_THRESHOLD">%1$d</xliff:g> ሚሊሰከንድ ያስተካክላል"</string>
<string name="sticky_keys" msgid="7317317044898161747">"ተጣባቂ ቁልፎች"</string>
<string name="sticky_keys_summary" msgid="1844953803625480623">"አቋራጮችን ለማግኘት ቁልፎችን በአንድ ላይ ከመያዝ ይልቅ ቁልፎችን አንድ በአንድ ይጫኑ"</string>
+ <string name="mouse_keys" msgid="6237254627808525540">"የመዳፊት ቁልፎች"</string>
+ <string name="mouse_keys_summary" msgid="2396247040177734245">"መዳፊቱን ለመቆጣጠር አካላዊ የቁልፍ ሰሌዳውን ይጠቀሙ።"</string>
<string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"የቁልፍ ሰሌዳ አቋራጮች"</string>
<string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"የአቋራጭ ዝርዝርን አሳይ"</string>
<string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"የሥራ መገለጫ የቁልፍ ሰሌዳዎች እና መሣሪያዎች"</string>
@@ -1942,14 +1945,10 @@
<string name="pointer_fill_style_yellow_button" msgid="5025969961559379024">"የጠቋሚ ሙሌት ቅጥን ወደ ቢጫ ይለውጡ"</string>
<string name="pointer_fill_style_pink_button" msgid="4106218142489635673">"የጠቋሚ ሙሌት ቅጥን ወደ ሮዝ ይለውጡ"</string>
<string name="pointer_fill_style_blue_button" msgid="5594958078854032785">"የጠቋሚ ሙሌት ቅጥን ወደ ሰማያዊ ይለውጡ"</string>
- <!-- no translation found for pointer_stroke_style (1886986630216050665) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_white (673686194443825383) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_black (4655806167067437330) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_none (8953927511729800247) -->
- <skip />
+ <string name="pointer_stroke_style" msgid="1886986630216050665">"የጠቋሚ ጭረት ቅጥ"</string>
+ <string name="pointer_stroke_style_name_white" msgid="673686194443825383">"ነጭ"</string>
+ <string name="pointer_stroke_style_name_black" msgid="4655806167067437330">"ጥቁር"</string>
+ <string name="pointer_stroke_style_name_none" msgid="8953927511729800247">"ምንም"</string>
<string name="trackpad_touch_gesture" msgid="8641725062131922497">"የመዳሰሻ ሰሌዳ ምልክቶችን ይወቁ"</string>
<string name="keywords_touchpad" msgid="8159846254066666032">"የመከታተያ ፓድ፣ የትራክ ፓድ፣ መዳፊት፣ ጠቋሚ፣ ሸብልል፣ ማንሸራተት፣ የቀኝ ጠቅታ፣ ጠቅ ያድርጉ፣ ጠቋሚ"</string>
<string name="keywords_trackpad_bottom_right_tap" msgid="1285062446073929305">"የቀኝ ጠቅታ፣ መታ ያድርጉ"</string>
@@ -2179,8 +2178,6 @@
<string name="accessibility_shortcut_edit_dialog_summary_floating_button" msgid="6266489864614886247">"ተንሳፋፊውን አዝራር መታ ያድርጉ"</string>
<string name="accessibility_shortcut_edit_dialog_title_software_by_gesture" msgid="4775049370625630546">"የተደራሽነት እጅ ምልክት"</string>
<string name="accessibility_shortcut_edit_dialog_summary_software" msgid="8315934725362849788">"በማያ ገጽዎ ግርጌ ላይ የ<xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g> ተደራሽነት አዝራሩን መታ ያድርጉት። በባህሪያት መካከል ለመቀያየር የተደራሽነት አዝራሩን ይንኩ እና ይያዙ።"</string>
- <string name="accessibility_shortcut_edit_dialog_summary_software_gesture" msgid="8292555254353761635">"በ2 ጣቶች ከማያ ገጹ ግርጌ ላይ በጣት ወደ ላይ ጠረግ ያድርጉ።\n\nበባሕሪያት መካከል ለመቀያየር በ2 ጣቶች ወደ ላይ ጠረግ ያድርጉ እና ይያዙ።"</string>
- <string name="accessibility_shortcut_edit_dialog_summary_software_gesture_talkback" msgid="84483464524360845">"በ3 ጣቶች ከማያ ገጹ ግርጌ ላይ በጣት ወደ ላይ ጠረግ ያድርጉ።\n\nበባሕሪያት መካከል ለመቀያየር በ3 ጣቶች ወደ ላይ ጠረግ ያድርጉ እና ይያዙ።"</string>
<string name="accessibility_shortcut_edit_dialog_summary_gesture" msgid="2081123009255579884">"{count,plural, =1{ከማያ ገጽዎ የታችኛው ክፍል ወደ ላይ ያንሸራትቱ። በባህሪያት መካከል ለመቀያየር፣ ወደ ላይ ያንሸራትቱ እና ይያዙ።}one{ከማያ ገጽዎ የታችኛው ክፍል ሆነው በ# ጣት ወደ ላይ ያንሸራትቱ። በባህሪያት መካከል ለመቀያየር፣ በ# ጣት ወደ ላይ ያንሸራትቱ እና ይያዙ።}other{ከማያ ገጽዎ የታችኛው ክፍል ሆነው በ# ጣቶች ወደ ላይ ያንሸራትቱ። በባህሪያት መካከል ለመቀያየር፣ በ# ጣቶች ወደ ላይ ያንሸራትቱ እና ይያዙ።}}"</string>
<string name="accessibility_shortcut_edit_dialog_summary_software_floating" msgid="4459254227203203324"><annotation id="link">"ተጨማሪ አማራጮች"</annotation></string>
<string name="footer_learn_more_content_description" msgid="8843798273152131341">"ስለ<xliff:g id="SERVICE">%1$s</xliff:g> የበለጠ ይወቁ"</string>
@@ -2191,16 +2188,12 @@
<string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="844089763968552142">"የድምፅ መጠን ቁልፍ"</string>
<string name="accessibility_shortcut_hardware_keyword" msgid="2483152542320987022">"የድምፅ መጠን ቁልፍ"</string>
<string name="accessibility_shortcut_edit_dialog_summary_hardware" msgid="2503134386397991634">"ሁለቱንም የድምፅ ቁልፎች ተጭነው ይያዙ"</string>
- <string name="accessibility_shortcut_edit_dialog_title_two_finger_double_tap" msgid="2271778556854020996">"ማያ ገጽን በሁለት ጣት ሁለቴ መታ ያድርጉ"</string>
<string name="accessibility_shortcut_edit_screen_title_two_finger_double_tap" msgid="8952595692906527694">"በ%1$d-ጣት ሁለቴ መታ ያድርጉ"</string>
<string name="accessibility_shortcut_edit_screen_summary_two_finger_double_tap" msgid="385404127425496362">"በ%1$d ጣቶች ማያ ገጹን ሁለት ጊዜ በፍጥነት መታ ያድርጉ"</string>
<string name="accessibility_shortcut_edit_screen_title_triple_tap" msgid="3314488747597058942">"ሦስቴ መታ ማድረግ"</string>
<string name="accessibility_shortcut_edit_screen_summary_triple_tap" msgid="4839204951599629871">"ማያ ገጹን %1$d ጊዜ በፍጥነት መታ ያድርጉ። ይህ መሣሪያዎን ሊያዘገየው ይችላል።"</string>
<string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="6271718715836961167">"በ%1$d-ጣት ሁለቴ መታ ያድርጉ"</string>
- <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"ማያ ገጽን {0፣ቁጥር፣ኢንቲጀር} ጊዜያት በሁለት ጣቶች በፍጥነት መታ ያድርጉ"</string>
- <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"ማያ ገጽን ሦስቴ መታ ያድርጉ"</string>
<string name="accessibility_shortcut_triple_tap_keyword" msgid="5359347130888464334">"ሦስቴ መታ ማድረግ"</string>
- <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"ማያ ገጹን በፍጥነት {0,number,integer} ጊዜዎችን መታ ያድርጉ። ይህ አቋራጭ መሣሪያዎን ሊያንቀራፍፈው ይችላል።"</string>
<string name="accessibility_shortcut_edit_dialog_title_advance" msgid="4567868630655591506">"የላቀ"</string>
<string name="accessibility_screen_magnification_navbar_configuration_warning" msgid="266736851606791552">"የተደራሽነት አዝራሩ ወደ <xliff:g id="SERVICE">%1$s</xliff:g> ተቀናብሯል። ማጉላትን ለመጠቀም የተደራሽነት አዛሩን ነክተው ይያዙ፣ ከዚያ ማጉላትን ይምረጡ።"</string>
<string name="accessibility_screen_magnification_gesture_navigation_warning" msgid="991017769735632046">"የተደራሽነት ጣት ምልክት ወደ <xliff:g id="SERVICE">%1$s</xliff:g> ተቀናብሯል። ማጉላትን ልለመጠቀም በሁለት ጣቶች ከማያ ገጹ ግርጌ ወደ ላይ ጠርገው ይያዙ። ከዚያ ማጉላትን ይምረጡ።"</string>
@@ -2369,6 +2362,7 @@
<string name="daltonizer_mode_tritanomaly_title" msgid="2278786218762602022">"ሰማያዊ-ቢጫ"</string>
<string name="daltonizer_mode_grayscale_title" msgid="152005391387952588">"ግርጥነት"</string>
<string name="daltonizer_saturation_title" msgid="2999486412114963068">"ክብደት"</string>
+ <string name="daltonizer_saturation_unavailable_summary" msgid="8319753055567798775">"ለግርጥነት ሁነታ ወይም የቀለም ማስተካከያ ሲሰናከል አይገኝም"</string>
<string name="daltonizer_mode_deuteranomaly_summary" msgid="2117727423019598455">"አረንጓዴ ደካማ፣ ዲዩቴራኖማሊ"</string>
<string name="daltonizer_mode_protanomaly_summary" msgid="4617032854982040748">"ቀይ ደካማ፣ ፕሮታኖማሊ"</string>
<string name="daltonizer_mode_tritanomaly_summary" msgid="2428218320118180070">"ትራይታኖማሊ"</string>
@@ -2418,15 +2412,8 @@
<string name="color_cyan" msgid="4341758639597035927">"ሳያን"</string>
<string name="color_yellow" msgid="5957551912912679058">"ቢጫ"</string>
<string name="color_magenta" msgid="8943538189219528423">"ማጀንታ"</string>
- <string name="enable_service_title" msgid="7231533866953706788">"<xliff:g id="SERVICE">%1$s</xliff:g> ሙሉ የመሣሪያዎ ቁጥጥር እንዲኖረው ይፈቀድለት?"</string>
<string name="capabilities_list_title" msgid="1225853611983394386">"<xliff:g id="SERVICE">%1$s</xliff:g> ይህን ማድረግ አለበት፦"</string>
<string name="touch_filtered_warning" msgid="4225815157460318241">"አንድ መተግበሪያ የፍቃድ ጥያቄ እያገደ ስለሆነ ቅንብሮች ጥያቄዎን ማረጋገጥ አይችሉም።"</string>
- <string name="accessibility_service_warning" msgid="6779187188736432618">"<xliff:g id="SERVICE">%1$s</xliff:g> ሙሉ የዚህ መሣሪያ ቁጥጥር እየጠየቀ ነው። አገልግሎቱ የተደራሽነት ፍላጎቶች ያላቸውን ተጠቃሚዎች ወክሎ ማያ ገጹን ማንበብ እና ለእነሱ መስራት ይችላል። ይህ የቁጥጥር ደረጃ ለአብዛኛዎቹ መተግበሪያዎች አግባብ አይደለም።"</string>
- <string name="accessibility_service_warning_description" msgid="6573203795976134751">"ሙሉ ቁጥጥር ከተደራሽነት ፍላጎቶች ጋር እርስዎን ለሚያግዝዎት መተግበሪያዎች ተገቢ ነው ሆኖም ግን ለአብዛኛዎቹ መተግበሪያዎች አይሆንም።"</string>
- <string name="accessibility_service_screen_control_title" msgid="324795030658109870">"ማያ ገጽን ይመልከቱ እና ይቆጣጠሩ"</string>
- <string name="accessibility_service_screen_control_description" msgid="8431940515157990426">"በማያ ገጹ ላይ ሁሉንም ይዘት ሊያነብ እና በሌሎች መተግበሪያዎች ላይ ይዘትን ሊያሳይ ይችላል።"</string>
- <string name="accessibility_service_action_perform_title" msgid="1449360056585337833">"ይመልከቱ እና እርምጃዎችን ይውሰዱ"</string>
- <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"ከመተግበሪያ ጋር ወይም የሃርድዌር ዳሳሽ ጋር እርስዎ ያልዎትን መስተጋብሮች ዱካ መከታተል እና በእርስዎ ምትክ ከመተግበሪያዎች ጋር መስተጋብር መፈጸም ይችላል።"</string>
<string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"ፍቀድ"</string>
<string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"ከልክል"</string>
<string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"አጥፋ"</string>
@@ -3368,10 +3355,8 @@
<string name="zen_mode_automation_settings_title" msgid="3709324184191870926">"መርሐግብሮች"</string>
<string name="zen_mode_delete_automatic_rules" msgid="5020468289267191765">"መርሐግብሮችን ሰርዝ"</string>
<string name="zen_mode_schedule_delete" msgid="5383420576833765114">"ሰርዝ"</string>
- <!-- no translation found for zen_mode_menu_rename_mode (4681802125016390837) -->
- <skip />
- <!-- no translation found for zen_mode_menu_delete_mode (5380084696402157428) -->
- <skip />
+ <string name="zen_mode_menu_rename_mode" msgid="4681802125016390837">"እንደገና ሰይም"</string>
+ <string name="zen_mode_menu_delete_mode" msgid="5380084696402157428">"ሰርዝ"</string>
<string name="zen_mode_delete_mode_confirmation" msgid="7594340592051947392">"«<xliff:g id="MODE">%1$s</xliff:g>» ሁነታ ይሰረዝ?"</string>
<string name="zen_mode_rule_name_edit" msgid="1053237022416700481">"አርትዕ"</string>
<string name="zen_mode_automation_settings_page_title" msgid="6217433860514433311">"መርሐግብሮች"</string>
@@ -3395,8 +3380,7 @@
<string name="zen_mode_visual_signals_settings_subtitle" msgid="7433077540895876672">"ምስላዊ ምልክቶችን ፍቀድ"</string>
<string name="mode_interruption_filter_title" msgid="3343846700214702347">"እንዳተኮሩ ይቆዩ"</string>
<string name="mode_device_effects_title" msgid="5857008332618433744">"ተጨማሪ እርምጃዎች"</string>
- <!-- no translation found for modes_sound_summary_off (6972648204528227879) -->
- <skip />
+ <string name="modes_sound_summary_off" msgid="6972648204528227879">"{count,plural, =0{ጠፍቷል}=1{ጠፍቷል / 1 ሁነታ በራስ-ሰር መብራት ይችላል}one{ጠፍቷል / # ሁነታ በራስ-ሰር መብራት ይችላል}other{ጠፍቷል / # ሁነታዎች በራስ-ሰር መብራት ይችላሉ}}"</string>
<string name="mode_display_settings_title" msgid="8132825978346535472">"የማሳያ ቅንብሮች"</string>
<string name="mode_display_options_section" msgid="5151597748243866532">"የማሳያ አማራጮች"</string>
<string name="mode_grayscale_title" msgid="6027553257331235461">"ግርጥነት"</string>
@@ -3659,9 +3643,9 @@
<string name="notif_listener_not_migrated" msgid="6265206376374278226">"ይህ መተግበሪያ የተሻሻሉ ቅንብሮችን አይደግፍም"</string>
<string name="notif_listener_more_settings" msgid="1348409392307208921">"ተጨማሪ ቅንብሮች"</string>
<string name="notif_listener_more_settings_desc" msgid="7995492074281663658">"በዚህ መተግበሪያ ውስጥ ተጨማሪ ቅንብሮች ይገኛሉ"</string>
- <string name="notification_polite_title" msgid="4737150709382859870">"ተስማሚ ማሳወቂያዎች"</string>
- <string name="notification_polite_main_control_title" msgid="7267191551379543859">"ተስማሚ ማሳወቂያዎችን ይጠቀሙ"</string>
- <string name="notification_polite_description" msgid="7749280535620291610">"በአጭር ጊዜ ውስጥ ብዙ ማሳወቂያዎች ሲያገኙ ስልክዎ እስከ ሁለት ደቂቃዎች ድረስ የድምፅ መጠን ይቀንሳል እና በማያ ገፅ ላይ ብቅ ባዮችን ያሳንሳል። ጥሪዎች፣ ማንቂያዎች እና የቅድሚያ ውይይቶች አሁንም ንዝረት ይኖራቸዋል፣ ድምፅ ያሰማሉ ወይም ማያ ገፁ ላይ ይታያሉ እና ከማያ ገፁ አናት ላይ ወደታች ሲጎትቱ ሁሉም ማሳወቂያዎች ለማግኘት ቀላል ናቸው።"</string>
+ <string name="notification_polite_title" msgid="6121016426991791557">"የማሳወቂያ ረጋ ማለት"</string>
+ <string name="notification_polite_main_control_title" msgid="5812529809151927149">"የማሳወቂያ ረጋ ማለትን ይጠቀሙ"</string>
+ <string name="notification_polite_description" msgid="5497748284893832854">"በአጭር ጊዜ ውስጥ ብዙ ማሳወቂያዎች ሲያገኙ መሣሪያዎ ለ2 ደቂቃዎች ያህል የድምፅ መጠኑን ይቀንሳል እና ማንቂያዎችን ያሳንሳል። ጥሪዎች፣ ማንቂያዎች እና የቅድሚያ ውይይቶች ተጽዕኖ አያድርባቸውም። \n\nበረጋ ማለቱ ወቅት የደረሱ ማሳወቂያዎች ከማያ ገፁ አናት ላይ ወደታች በመጎተት ሊገኙ ይችላሉ።"</string>
<string name="notification_polite_work" msgid="8823596456640216391">"የሥራ መገለጫዎች ላይ ይተግብሩ"</string>
<string name="notification_polite_work_summary" msgid="5014189280132951378">"ለሥራ መገለጫ መተግበሪያዎች ያመልክቱ"</string>
<string name="vr_listeners_title" msgid="4960357292472540964">"የምናባዊ ዕውነታ አጋዥ አገልግሎቶች"</string>
@@ -3818,7 +3802,9 @@
<string name="zen_mode_apps_priority_apps" msgid="7386196048313716076">"የተመረጡ መተግበሪያዎች"</string>
<string name="zen_mode_apps_none_apps" msgid="2493642312793604327">"ምንም"</string>
<string name="zen_mode_apps_subtext" msgid="1764211974662012877">"{count,plural,offset:2 =0{ምንም መተግበሪያዎች ማቋረጥ አይችሉም}=1{{app_1} ማቋረጥ ይችላል}=2{{app_1} እና {app_2} ማቋረጥ ይችላሉ}=3{{app_1}፣ {app_2} እና {app_3} ማቋረጥ ይችላሉ}one{{app_1}፣ {app_2} እና # ተጨማሪ ማቋረጥ ይችላሉ}other{{app_1}፣ {app_2} እና # ተጨማሪ ማቋረጥ ይችላሉ}}"</string>
+ <string name="zen_mode_apps_work_app" msgid="8528767938316361588">"<xliff:g id="APP_LABEL">%s</xliff:g> (ሥራ)"</string>
<string name="zen_mode_apps_calculating" msgid="5420121396943539286">"በማስላት ላይ…"</string>
+ <string name="zen_mode_plus_n_items" msgid="6136713354369243421">"+<xliff:g id="NUMBER">%d</xliff:g>"</string>
<string name="zen_mode_bypassing_apps" msgid="625309443389126481">"መተግበሪያዎች እንዲሽሩ ይፍቀዱ"</string>
<string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"አቋርጠው መግባት የሚችሉ መተግበሪያዎች"</string>
<string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"ተጨማሪ መተግበሪያዎችን ይምረጡ"</string>
@@ -3836,6 +3822,7 @@
<string name="zen_mode_sounds_none" msgid="6557474361948269420">"ምንም ማቋረጥ አይችልም"</string>
<string name="zen_mode_people_none" msgid="4613147461974255046">"ማንም ማቋረጥ አይችልም"</string>
<string name="zen_mode_people_some" msgid="9101872681298810281">"አንዳንድ ሰዎች ማቋረጥ ይችላሉ"</string>
+ <string name="zen_mode_people_repeat_callers" msgid="4499084111069828761">"ደጋግሞ ደዋዮች ማቋረጥ ይችላሉ"</string>
<string name="zen_mode_people_all" msgid="311036110283015205">"ሁሉም ሰዎች ማቋረጥ ይችላሉ"</string>
<string name="zen_mode_repeat_callers" msgid="2270356100287792138">"ደዋዮችን ድገም"</string>
<string name="zen_mode_repeat_callers_title" msgid="8016699240338264781">"ተደጋጋሚ ደዋዮችን ፍቀድ"</string>
@@ -3855,13 +3842,37 @@
<string name="zen_mode_summary_alarms_only_by_hour" msgid="7400910210950788163">"{count,plural, =1{እስከ {time} ድረስ ለአንድ ሰዓት ብቻ ወደ ማንቂያዎች ይለውጡ}one{እስከ {time} ድረስ ለ# ሰዓት ብቻ ወደ ማንቂያዎች ይለውጡ}other{እስከ {time} ድረስ ለ# ሰዓታት ብቻ ወደ ማንቂያዎች ይለውጡ}}"</string>
<string name="zen_mode_summary_alarms_only_by_time" msgid="8140619669703968810">"እስከ <xliff:g id="FORMATTEDTIME">%1$s</xliff:g> ድረስ ብቻ ወደ ማንቂያዎች ይቀይሩ"</string>
<string name="zen_mode_summary_always" msgid="722093064250082317">"ወደ ሁልጊዜ አቋርጥ ለውጥ"</string>
- <!-- no translation found for zen_mode_rename_title (8146882272966214558) -->
+ <string name="zen_mode_rename_title" msgid="8146882272966214558">"የአርትዖት ሁነታ"</string>
+ <string name="zen_mode_new_custom_title" msgid="321750898430776191">"የአክል ሁነታ"</string>
+ <string name="zen_mode_new_custom_default_name" msgid="2778307946775085105">"ብጁ ሁነታ"</string>
+ <string name="zen_mode_edit_name_hint" msgid="4584652062167540536">"የሁነታ ስም"</string>
+ <string name="zen_mode_trigger_title_schedule_calendar" msgid="9206609438617550331">"የቀን መቁጠሪያ ክስተቶች"</string>
+ <string name="zen_mode_trigger_title_bedtime" msgid="5086070900588489978">"የእንቅልፍ መርሐግብር"</string>
+ <string name="zen_mode_trigger_title_driving" msgid="7890990983453164403">"እየነዱ ሳለ"</string>
+ <string name="zen_mode_trigger_title_generic" msgid="601273385119550420">"ከመተግበሪያ ጋር የተገናኘ"</string>
+ <string name="zen_mode_trigger_summary_settings_in_app" msgid="4860667191183702601">"መረጃ እና ቅንብሮች <xliff:g id="APP_NAME">%1$s</xliff:g> ውስጥ"</string>
+ <string name="zen_mode_trigger_summary_managed_by_app" msgid="8631011868193102098">"በ<xliff:g id="APP_NAME">%1$s</xliff:g> የሚተዳደር"</string>
+ <string name="zen_mode_confirm_disable_title" msgid="1232297660775719796">"ሁነታን ያሰናክሉ"</string>
+ <string name="zen_mode_confirm_disable_message" msgid="7315541221665718491">"ይህን ባህሪ ካሰናከሉት፣ ሁነታው እንደታሰበው አይሰራም እና ቅንብሮቹ ይደበቃሉ።"</string>
+ <string name="zen_mode_action_disable" msgid="3552921561331044881">"አሰናክል"</string>
+ <string name="zen_mode_confirm_enable_title" msgid="5683371335847448595">"ሁነታን ያንቁ"</string>
+ <string name="zen_mode_confirm_enable_message" msgid="7017879133260011419">"ይህን ባህሪ ካነቁት፣ ሁነታው በመርሃግብሩ ላይ ተመስርቶ በራስ-ሰር ገቢር ይሆናል"</string>
+ <string name="zen_mode_action_enable" msgid="1161480633223176531">"አንቃ"</string>
+ <!-- no translation found for zen_mode_blurb_schedule_time (8223898702097484009) -->
<skip />
- <!-- no translation found for zen_mode_new_custom_title (321750898430776191) -->
+ <!-- no translation found for zen_mode_blurb_schedule_calendar (382177907856065945) -->
<skip />
- <!-- no translation found for zen_mode_new_custom_default_name (2778307946775085105) -->
+ <!-- no translation found for zen_mode_blurb_bedtime (6155075956151013457) -->
<skip />
- <!-- no translation found for zen_mode_edit_name_hint (4584652062167540536) -->
+ <!-- no translation found for zen_mode_blurb_driving (1316054379000667305) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_immersive (5884004861848687869) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_theater (2999237960059524225) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_managed (5473921634985032149) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_generic (3041601339807075625) -->
<skip />
<string name="warning_button_text" msgid="1274234338874005639">"ማስጠንቀቂያ"</string>
<string name="suggestion_button_close" msgid="6865170855573283759">"ዝጋ"</string>
@@ -4849,9 +4860,8 @@
<string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"ባትሪ"</string>
<string name="settings_panel_title" msgid="346363079938069215">"የቅንብሮች ፓነል"</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>
+ <!-- no translation found for enable_desktop_mode_on_secondary_display (2609567824593768780) -->
+ <skip />
<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>
@@ -5026,7 +5036,6 @@
<string name="default_active_sim_mobile_data" msgid="6798083892814045301">"የተንቀሳቃሽ ስልክ ውሂብ"</string>
<string name="wifi_scan_notify_message" msgid="1331238142061476869">"የመሣሪያ ተምክሮን ለማሻሻል መተግበሪያዎች እና አገልግሎቶች አሁንም በማንኛውም ሰዓት፣ Wi-Fi ጠፍቶም እንኳ የWi-Fi አውታረ መረቦችን መቃኘት ይችላሉ። ይህም ለምሳሌ አካባቢ ላይ የተመሠረቱ ባህሪያትን እና አገልግሎቶችን ለማሻሻል ሥራ ላይ ሊውል ይችላል። ይህን በWi‑Fi ቅኝት ቅንብሮች ውስጥ መቀየር ይችላሉ።"</string>
<string name="wifi_scan_change" msgid="8438320311511852918">"ቀይር"</string>
- <string name="preference_summary_default_combination" msgid="4643585915107796253">"<xliff:g id="STATE">%1$s</xliff:g> / <xliff:g id="NETWORKMODE">%2$s</xliff:g>"</string>
<string name="mobile_data_connection_active" msgid="2422223108911581552">"ተገናኝቷል"</string>
<string name="mobile_data_temp_connection_active" msgid="3430470299756236413">"በጊዜያዊነት ተገናኝቷል"</string>
<string name="mobile_data_temp_using" msgid="5211002380149434155">"<xliff:g id="SUBNAME">%1$s</xliff:g>ን በጊዜያዊነት በመጠቀም ላይ"</string>
@@ -5172,9 +5181,11 @@
<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="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_enable_freeform_support" msgid="3697462756493543645">"የነጻ ቅርጽ ድጋፍ መስኮትን ለማንቃት ዳግም ማስነሳት ያስፈልጋል።"</string>
+ <!-- no translation found for reboot_dialog_override_desktop_mode (7480950772574354130) -->
+ <skip />
+ <!-- no translation found for reboot_dialog_enable_desktop_mode_on_secondary_display (1153621881052401924) -->
+ <skip />
<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>
@@ -5292,10 +5303,8 @@
<string name="show_captions_enabled" msgid="7089043007924626">"በርቷል"</string>
<string name="live_caption_disabled" msgid="3562035026547887366">"ጠፍቷል"</string>
<string name="live_caption_enabled" msgid="5269360946200718949">"በርቷል"</string>
- <!-- no translation found for audio_seek_bar_state_left_first (8814986910920838972) -->
- <skip />
- <!-- no translation found for audio_seek_bar_state_right_first (1999368979633398876) -->
- <skip />
+ <string name="audio_seek_bar_state_left_first" msgid="8814986910920838972">"ኦዲዮ %1$d%% ግራ፣ %2$d%% ቀኝ"</string>
+ <string name="audio_seek_bar_state_right_first" msgid="1999368979633398876">"ኦዲዮ %1$d%% ቀኝ፣ %2$d%% ግራ"</string>
<string name="about_phone_device_name_warning" msgid="3243226572404472381">"የመሣሪያዎ ስም በጫኗቸው መተግበሪያዎች ላይ ይታያል። እንዲሁም ከብሉቱዝ መሣሪያዎች ጋር ሲገናኙ፣ ከWi-Fi አውታረ መረብ ሲገናኙ ወይም የWi-Fi መገናኛ ነጥብን ሲያዋቅሩ በሌሎች ሰዎች ሊታይ ይችላል።"</string>
<string name="grammatical_gender_title" msgid="8584242850477270828">"ሰዋሰዋዊ ጾታ"</string>
<string name="grammatical_gender_dialog_title" msgid="8754048592099871587">"ሰዋሰዋዊ ጾታ ይምረጡ"</string>
@@ -5407,5 +5416,6 @@
<string name="audio_streams_main_page_password_dialog_join_button" msgid="2967747276379153408">"ዥረት ያዳምጡ"</string>
<string name="audio_streams_main_page_qr_code_scanner_summary" msgid="5312980105735143360">"በ<xliff:g id="DEVICE_NAME">%1$s</xliff:g> ለማዳመጥ የኦዲዮ ዥረት QR ኮድ ይቃኙ"</string>
<string name="audio_streams_main_page_password_dialog_cannot_edit" msgid="9020898619297520153">"እያጋሩ እያለ የይለፍ ቃልን ማርተዕ አልተቻለም። የይለፍ ቃሉን ለመቀየር በቅድሚያ የድምፅ ማጋራትን ያጥፉ።"</string>
+ <string name="audio_streams_qr_code_scanner_label" msgid="8799703301071378034">"የQR ኮድ መቃኛ"</string>
<string name="homepage_search" msgid="6759334912284663559">"ቅንብሮች ውስጥ ይፈልጉ"</string>
</resources>
diff --git a/res/values-ar/strings.xml b/res/values-ar/strings.xml
index f3435a6..dcbe5e2 100644
--- a/res/values-ar/strings.xml
+++ b/res/values-ar/strings.xml
@@ -41,6 +41,8 @@
<string name="radioInfo_data_suspended" msgid="2001254415431299603">"معلق"</string>
<string name="radioInfo_unknown" msgid="2892562356748600367">"غير معروف"</string>
<string name="preview_pager_content_description" msgid="3762247188224576303">"معاينة"</string>
+ <!-- no translation found for qr_code_content_description (1852208464419291347) -->
+ <skip />
<string name="font_size_make_smaller_desc" msgid="4978038055549590140">"تصغير"</string>
<string name="font_size_make_larger_desc" msgid="5583046033381722247">"تكبير"</string>
<string name="stay_awake_on_fold_title" msgid="6590454679898134221">"دائمًا"</string>
@@ -65,8 +67,7 @@
<string name="bluetooth_disconnect_title" msgid="4581951246357823044">"هل تريد قطع الاتصال بالجهاز؟"</string>
<string name="bluetooth_pairing_pref_title" msgid="3497193027590444598">"إقران جهاز جديد"</string>
<string name="keywords_add_bt_device" msgid="4533191164203174011">"بلوتوث"</string>
- <!-- no translation found for bluetooth_screen_auto_on_title (2203993262483477532) -->
- <skip />
+ <string name="bluetooth_screen_auto_on_title" msgid="2203993262483477532">"التفعيل تلقائيًا غدًا"</string>
<string name="bluetooth_pair_right_ear_button" msgid="3979894494803078852">"إقران السماعة اليمنى"</string>
<string name="bluetooth_pair_left_ear_button" msgid="1019938875726073791">"إقران السماعة اليسرى"</string>
<string name="bluetooth_pair_other_ear_dialog_title" msgid="3814943511999984012">"إقران السماعة الأخرى"</string>
@@ -284,7 +285,7 @@
<string name="location_settings_summary_location_off" msgid="4797932754681162262">"خدمة الموقع الجغرافي غير مفعّلة."</string>
<string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{الخدمة مفعّلة - يملك تطبيق واحد إذن الوصول إلى بيانات الموقع الجغرافي}zero{الخدمة مفعّلة - يملك # تطبيق إذن الوصول إلى بيانات الموقع الجغرافي}two{الخدمة مفعّلة - يملك تطبيقان إذن الوصول إلى بيانات الموقع الجغرافي}few{الخدمة مفعّلة - تملك # تطبيقات إذن الوصول إلى بيانات الموقع الجغرافي}many{الخدمة مفعّلة - يمتلك # تطبيقًا إذن الوصول إلى بيانات الموقع الجغرافي}other{الخدمة مفعّلة - يملك # تطبيق إذن الوصول إلى بيانات الموقع الجغرافي}}"</string>
<string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"جارٍ التحميل..."</string>
- <string name="location_settings_footer_general" msgid="1040507068701188821">"يمكن للتطبيقات التي لديها إذن بالوصول إلى الأجهزة المجاورة تحديد الموضع النسبي للأجهزة المتصلة بجهازك."</string>
+ <string name="location_settings_footer_general" msgid="3447585552176173502">"يمكن للتطبيقات التي لديها إذن بالوصول إلى الأجهزة المجاورة تحديد الموضع النسبي للأجهزة المتصلة بجهازك."</string>
<string name="location_settings_footer_location_off" msgid="8568995909147566720">"ميزة وصول التطبيقات والخدمات إلى الموقع الجغرافي غير مفّعلة. قد يستمر إرسال الموقع الجغرافي لجهازك إلى مسؤولي الاستجابة لحالات الطوارئ عند الاتصال برقم طوارئ أو مراسلته نصيًا."</string>
<string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"مزيد من المعلومات حول إعدادات الموقع الجغرافي"</string>
<string name="location_settings_tooltip_text_for_chrome" msgid="5781821709250544575">"لتغيير الإعداد، انتقِل إلى \"إعدادات ChromeOS\" > \"الخصوصية والأمان\" > \"عناصر التحكّم في الخصوصية\" > \"الوصول إلى الموقع الجغرافي\""</string>
@@ -300,14 +301,14 @@
<string name="safety_center_summary" msgid="3554867379951053869">"أمان التطبيقات، وقَفل الجهاز، والأذونات"</string>
<string name="security_settings_face_preference_summary" msgid="6675126437396914838">"تمت إضافة وجه"</string>
<string name="security_settings_face_preference_summary_none" msgid="523320857738436024">"يجب إعداد الميزة"</string>
- <string name="security_settings_face_preference_title" msgid="2126625155005348417">"فتح الجهاز بالتعرف على الوجه"</string>
- <string name="security_settings_face_profile_preference_title" msgid="7519527436266375005">"فتح قفل ملف العمل بالتعرّف على الوجه"</string>
- <string name="security_settings_face_enroll_education_title" msgid="6448806884597691208">"كيفية إعداد ميزة \"فتح الجهاز بالتعرف على الوجه\""</string>
- <string name="security_settings_face_enroll_education_title_accessibility" msgid="3701874093226957891">"إعداد ميزة \"فتح الجهاز بالتعرف على الوجه\""</string>
+ <string name="security_settings_face_preference_title" msgid="2126625155005348417">"فتح الجهاز ببصمة الوجه"</string>
+ <string name="security_settings_face_profile_preference_title" msgid="7519527436266375005">"فتح قفل ملف العمل ببصمة الوجه"</string>
+ <string name="security_settings_face_enroll_education_title" msgid="6448806884597691208">"كيفية إعداد ميزة \"فتح الجهاز ببصمة الوجه\""</string>
+ <string name="security_settings_face_enroll_education_title_accessibility" msgid="3701874093226957891">"إعداد ميزة \"فتح الجهاز ببصمة الوجه\""</string>
<string name="security_settings_face_enroll_education_title_unlock_disabled" msgid="8810954233979716906">"استخدام وجهك للمصادقة"</string>
<string name="security_settings_face_enroll_education_message" msgid="4308030157487176799"></string>
<string name="security_settings_face_enroll_education_start" msgid="8830924400907195590">"بدء"</string>
- <string name="security_settings_face_enroll_education_accessibility_dialog_message" msgid="2965952386172202665">"إذا تم إيقاف ميزة \"فتح الجهاز بالتعرف على الوجه\" السهلة الاستخدام، قد لا تعمل بعض خطوات الإعداد بشكل سليم باستخدام TalkBack."</string>
+ <string name="security_settings_face_enroll_education_accessibility_dialog_message" msgid="2965952386172202665">"إذا تم إيقاف ميزة \"فتح الجهاز ببصمة الوجه\" السهلة الاستخدام، قد لا تعمل بعض خطوات الإعداد بشكل سليم باستخدام TalkBack."</string>
<string name="security_settings_face_enroll_education_accessibility_dialog_negative" msgid="7872647360361245461">"رجوع"</string>
<string name="security_settings_face_enroll_education_accessibility_dialog_positive" msgid="3148077647572203458">"مواصلة الإعداد"</string>
<string name="security_settings_face_enroll_introduction_accessibility" msgid="5748221179069430975">"استخدام إعدادات \"سهولة الاستخدام\""</string>
@@ -318,7 +319,7 @@
<string name="security_settings_face_enroll_introduction_agree" msgid="6319476573697497750">"أوافق"</string>
<string name="security_settings_face_enroll_introduction_more" msgid="1970820298889710532">"المزيد"</string>
<string name="security_settings_face_enroll_introduction_title" msgid="7061610077237098046">"فتح القفل باستخدام وجهك"</string>
- <string name="security_settings_face_enroll_consent_introduction_title" msgid="3942331854413767814">"السماح بـ \"فتح الجهاز بالتعرف على الوجه\""</string>
+ <string name="security_settings_face_enroll_consent_introduction_title" msgid="3942331854413767814">"السماح بـ \"فتح الجهاز ببصمة الوجه\""</string>
<string name="security_settings_face_enroll_introduction_title_unlock_disabled" msgid="5903924766168353113">"استخدام وجهك للمصادقة"</string>
<string name="security_settings_face_enroll_introduction_message_unlock_disabled" msgid="5841976283789481311">"يمكنك استخدام وجهك لفتح الهاتف أو الموافقة على عمليات الشراء.\n\nملاحظة: لا يمكنك استخدام وجهك لفتح هذا الجهاز. للحصول على المزيد من المعلومات، اتصل بمشرف المؤسسة."</string>
<string name="security_settings_face_enroll_introduction_message_setup" msgid="765965418187421753">"استخدِم وجهك لفتح هاتفك أو السماح بعمليات الشراء أو تسجيل الدخول إلى التطبيقات."</string>
@@ -338,27 +339,27 @@
<string name="security_settings_face_enroll_error_generic_dialog_message" msgid="3186810411630091490">"تعذّر مسح الوجه."</string>
<string name="security_settings_face_enroll_finish_title" msgid="5882322568359775393">"اكتمل التسجيل بنجاح."</string>
<string name="security_settings_face_enroll_done" msgid="3048687969498187442">"تم"</string>
- <string name="security_settings_face_enroll_should_re_enroll_title" msgid="6835778900387289683">"تحسين أداء ميزة \"فتح الجهاز بالتعرف على الوجه\""</string>
- <string name="security_settings_face_enroll_should_re_enroll_subtitle" msgid="7055780282999744813">"إعادة إعداد ميزة \"فتح الجهاز بالتعرف على الوجه\""</string>
- <string name="security_settings_face_enroll_must_re_enroll_title" msgid="4421818770682557621">"إعادة إعداد ميزة \"فتح الجهاز بالتعرف على الوجه\""</string>
+ <string name="security_settings_face_enroll_should_re_enroll_title" msgid="6835778900387289683">"تحسين أداء ميزة \"فتح الجهاز ببصمة الوجه\""</string>
+ <string name="security_settings_face_enroll_should_re_enroll_subtitle" msgid="7055780282999744813">"إعادة إعداد ميزة \"فتح الجهاز ببصمة الوجه\""</string>
+ <string name="security_settings_face_enroll_must_re_enroll_title" msgid="4421818770682557621">"إعادة إعداد ميزة \"فتح الجهاز ببصمة الوجه\""</string>
<string name="security_settings_face_enroll_must_re_enroll_subtitle" msgid="3584740139535177961">"تحسين الأمان ومستوى الأداء"</string>
- <string name="security_settings_face_enroll_improve_face_alert_title" msgid="6194184776580066012">"إعداد ميزة \"فتح الجهاز بالتعرف على الوجه\""</string>
- <string name="security_settings_face_enroll_improve_face_alert_body" msgid="2670118180411127323">"يمكنك حذف نموذج الوجه الحالي لإعادة إعداد ميزة \"فتح الجهاز بالتعرف على الوجه\".\n\nسيتم حذف نموذج الوجه نهائيًا وبأمان.\n\nبعد الحذف، ستحتاج إلى رقم التعريف الشخصي أو النقش أو كلمة المرور لفتح قفل الهاتف أو للمصادقة في التطبيقات."</string>
- <string name="security_settings_face_enroll_improve_face_alert_body_fingerprint" msgid="2469599074650327489">"يمكنك حذف نموذج الوجه الحالي لإعادة إعداد ميزة \"فتح الجهاز بالتعرف على الوجه\".\n\nسيتم حذف نموذج الوجه نهائيًا وبأمان.\n\nبعد الحذف، ستحتاج إلى بصمة الإصبع أو رقم التعريف الشخصي أو النقش أو كلمة المرور لفتح قفل الهاتف أو للمصادقة في التطبيقات."</string>
- <string name="security_settings_face_settings_use_face_category" msgid="1638314154119800188">"استخدام \"فتح الجهاز بالتعرف على الوجه\" من أجل"</string>
- <string name="security_settings_face_settings_preferences_category" msgid="7628929873407280453">"عند استخدام ميزة \"فتح الجهاز بالتعرف على الوجه\""</string>
+ <string name="security_settings_face_enroll_improve_face_alert_title" msgid="6194184776580066012">"إعداد ميزة \"فتح الجهاز ببصمة الوجه\""</string>
+ <string name="security_settings_face_enroll_improve_face_alert_body" msgid="2670118180411127323">"يمكنك حذف نموذج الوجه الحالي لإعادة إعداد ميزة \"فتح الجهاز ببصمة الوجه\".\n\nسيتم حذف نموذج الوجه نهائيًا وبأمان.\n\nبعد الحذف، ستحتاج إلى رقم التعريف الشخصي أو النقش أو كلمة المرور لفتح قفل الهاتف أو للمصادقة في التطبيقات."</string>
+ <string name="security_settings_face_enroll_improve_face_alert_body_fingerprint" msgid="2469599074650327489">"يمكنك حذف نموذج الوجه الحالي لإعادة إعداد ميزة \"فتح الجهاز ببصمة الوجه\".\n\nسيتم حذف نموذج الوجه نهائيًا وبأمان.\n\nبعد الحذف، ستحتاج إلى بصمة الإصبع أو رقم التعريف الشخصي أو النقش أو كلمة المرور لفتح قفل الهاتف أو للمصادقة في التطبيقات."</string>
+ <string name="security_settings_face_settings_use_face_category" msgid="1638314154119800188">"استخدام \"فتح الجهاز ببصمة الوجه\" من أجل"</string>
+ <string name="security_settings_face_settings_preferences_category" msgid="7628929873407280453">"عند استخدام ميزة \"فتح الجهاز ببصمة الوجه\""</string>
<string name="security_settings_face_settings_require_attention" msgid="4395309855914391104">"مطلوب فتح العينين"</string>
<string name="security_settings_face_settings_require_attention_details" msgid="2546230511769544074">"يتطلب فتح قفل الهاتف النظر إليه بعينين مفتوحتين."</string>
<string name="security_settings_face_settings_require_confirmation" msgid="6603039421004198334">"طلب التأكيد دائمًا"</string>
- <string name="security_settings_face_settings_require_confirmation_details" msgid="3498729789625461914">"طلب خطوة تأكيد دائمًا عند استخدام \"فتح الجهاز بالتعرف على الوجه\" في التطبيقات"</string>
+ <string name="security_settings_face_settings_require_confirmation_details" msgid="3498729789625461914">"طلب خطوة تأكيد دائمًا عند استخدام \"فتح الجهاز ببصمة الوجه\" في التطبيقات"</string>
<string name="security_settings_face_settings_remove_face_model" msgid="812920481303980846">"حذف نموذج الوجه"</string>
- <string name="security_settings_face_settings_enroll" msgid="3726313826693825029">"إعداد ميزة \"فتح الجهاز بالتعرف على الوجه\""</string>
+ <string name="security_settings_face_settings_enroll" msgid="3726313826693825029">"إعداد ميزة \"فتح الجهاز ببصمة الوجه\""</string>
<string name="security_settings_face_settings_remove_dialog_title" msgid="2899669764446232715">"هل تريد حذف نموذج الوجه؟"</string>
<string name="security_settings_face_settings_remove_dialog_details" msgid="916131485988121592">"سيتم حذف نموذج الوجه نهائيًا وبأمان.\n\nبعد حذفه، ستحتاج إلى رقم التعريف الشخصي أو النقش أو كلمة المرور لفتح قفل هاتفك أو لعمليات المصادقة في التطبيقات."</string>
<string name="security_settings_face_settings_remove_dialog_details_convenience" msgid="475568135197468990">"سيتم حذف نموذج الوجه نهائيًا وبأمان.\n\nبعد حذفه، ستحتاج إلى رقم التعريف الشخصي أو النقش أو كلمة المرور لفتح قفل الهاتف."</string>
<string name="security_settings_face_remove_dialog_details_fingerprint" msgid="7609582230650860974">"سيتم حذف نموذج الوجه نهائيًا وبشكلٍ آمن.\n\nبعد حذفه، ستحتاج إلى بصمة الإصبع أو رقم التعريف الشخصي أو النقش أو كلمة المرور لفتح قفل هاتفك أو لعمليات المصادقة في التطبيقات."</string>
<string name="security_settings_face_remove_dialog_details_fingerprint_conv" msgid="2627374706274503259">"سيتم حذف نموذج الوجه نهائيًا وبأمان.\n\nبعد حذفه، ستحتاج إلى بصمة الإصبع أو رقم التعريف الشخصي أو النقش أو كلمة المرور لفتح قفل الهاتف."</string>
- <string name="security_settings_face_settings_context_subtitle" msgid="8284262560781442403">"استخدام ميزة \"فتح الجهاز بالتعرف على الوجه\" لفتح قفل هاتفك"</string>
+ <string name="security_settings_face_settings_context_subtitle" msgid="8284262560781442403">"استخدام ميزة \"فتح الجهاز ببصمة الوجه\" لفتح قفل هاتفك"</string>
<string name="security_settings_fingerprint" msgid="6387775386189204201">"بصمة الإصبع"</string>
<string name="security_settings_fingerprint_preference_title" msgid="2484965173528415458">"بصمة الإصبع"</string>
<string name="security_settings_fingerprint_settings_preferences_category" msgid="8975029409126780752">"عند استخدام ميزة \"فتح الجهاز ببصمة الإصبع\""</string>
@@ -388,7 +389,7 @@
<string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_consent_6" msgid="3563942520716110478">"للحصول على أفضل النتائج، استخدم واقي شاشة مُعتمَد ويحمل شعار Made for Google. قد لا تعمل بصمة إصبع طفلك مع واقيات الشاشة الأخرى."</string>
<string name="security_settings_fingerprint_v2_enroll_introduction_message_learn_more" msgid="5856010507790137793"></string>
<string name="security_settings_activeunlock_preference_title" msgid="4257580421087062228">"فتح الهاتف من الساعة"</string>
- <string name="biometric_settings_intro_with_activeunlock" msgid="5032953826653108646">"في حال إعداد ميزتَي \"فتح الجهاز بالتعرف على الوجه\" و\"فتح الجهاز ببصمة الإصبع\"، سيطلب منك الهاتف إدخال بصمة إصبعك عندما تكون مرتديًا كمامة أو متواجدًا في منطقة مظلمة.\n\nوتوفِّر لك ميزة \"فتح الهاتف من الساعة\" طريقة سهلة أخرى لفتح هاتفك عندما تكون أصابعك مبتلة أو عندما لا يتم التعرّف على وجهك."</string>
+ <string name="biometric_settings_intro_with_activeunlock" msgid="5032953826653108646">"في حال إعداد ميزتَي \"فتح الجهاز ببصمة الوجه\" و\"فتح الجهاز ببصمة الإصبع\"، سيطلب منك الهاتف إدخال بصمة إصبعك عندما تكون مرتديًا كمامة أو متواجدًا في منطقة مظلمة.\n\nوتوفِّر لك ميزة \"فتح الهاتف من الساعة\" طريقة سهلة أخرى لفتح هاتفك عندما تكون أصابعك مبتلة أو عندما لا يتم التعرّف على وجهك."</string>
<string name="biometric_settings_intro_with_fingerprint" msgid="5881355884547769337">"توفِّر لك ميزة \"فتح الهاتف من الساعة\" طريقة سهلة أخرى لفتح قفل هاتفك عندما لا يتم التعرّف على بصمة إصبعك."</string>
<string name="biometric_settings_intro_with_face" msgid="7671919122230588521">"توفِّر لك ميزة \"فتح الهاتف من الساعة\" طريقة سهلة أخرى لفتح قفل هاتفك عندما لا يتم التعرّف على وجهك."</string>
<string name="biometric_settings_use_fingerprint_or_watch_for" msgid="1160830065613858095">"استخدام بصمة الإصبع أو الساعة من أجل"</string>
@@ -399,11 +400,11 @@
<string name="biometric_settings_use_fingerprint_or_watch_preference_summary" msgid="2425628094194828407">"استخدام بصمة الإصبع أو الساعة"</string>
<string name="biometric_settings_use_face_fingerprint_or_watch_preference_summary" msgid="188805113048792007">"استخدام الوجه أو بصمة الإصبع أو الساعة"</string>
<string name="biometric_settings_use_watch_preference_summary" msgid="2311453276747908475">"استخدام الساعة"</string>
- <string name="security_settings_activeunlock_require_face_fingerprint_setup_title" msgid="8776904312629209685">"إعداد ميزتَي فتح الجهاز بالتعرف على الوجه أو بصمة إصبع أولاً"</string>
+ <string name="security_settings_activeunlock_require_face_fingerprint_setup_title" msgid="8776904312629209685">"إعداد ميزتَي فتح الجهاز ببصمة الوجه أو بصمة إصبع أولاً"</string>
<string name="security_settings_activeunlock_require_face_fingerprint_setup_message" msgid="1669326067732567911">"يمكنك فتح الجهاز باستخدام ساعتك عندما لا يتم التعرف على وجهك أو بصمة إصبعك."</string>
<string name="security_settings_activeunlock_require_fingerprint_setup_title" msgid="6703703635881050623">"يجب إعداد ميزة \"فتح الجهاز ببصمة الإصبع\" أولاً"</string>
<string name="security_settings_activeunlock_require_fingerprint_setup_message" msgid="4966813766409918392">"يمكنك فتح الهاتف من ساعتك عندما لا يتم التعرف على بصمة الإصبع."</string>
- <string name="security_settings_activeunlock_require_face_setup_title" msgid="1428795376597739880">"يجب إعداد ميزة \"فتح الجهاز بالتعرف على الوجه\" أولاً"</string>
+ <string name="security_settings_activeunlock_require_face_setup_title" msgid="1428795376597739880">"يجب إعداد ميزة \"فتح الجهاز ببصمة الوجه\" أولاً"</string>
<string name="security_settings_activeunlock_require_face_setup_message" msgid="8904070645721933399">"يمكنك فتح الهاتف من ساعتك عندما لا يتم التعرف على وجهك."</string>
<string name="security_settings_activeunlock_biometric_setup" msgid="8876454457817955475">"الإعداد"</string>
<string name="security_settings_fingerprint_single_watch_preference_summary" msgid="6464470096384164369">"تمت إضافة بصمة إصبع و\"<xliff:g id="WATCH">%s</xliff:g>\"."</string>
@@ -439,12 +440,12 @@
<string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"مزيد من المعلومات عن ميزة \"فتح الهاتف من الساعة\""</string>
<string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"إضافة ساعة"</string>
<string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"إزالة ساعة"</string>
- <string name="security_settings_biometric_preference_title" msgid="298146483579539448">"فتح الجهاز بالتعرف على الوجه وببصمة الإصبع"</string>
- <string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"فتح قفل ملف العمل ببصمة الإصبع وبالتعرف على الوجه"</string>
+ <string name="security_settings_biometric_preference_title" msgid="298146483579539448">"فتح الجهاز ببصمة الوجه وببصمة الإصبع"</string>
+ <string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"فتح قفل ملف العمل ببصمة الإصبع وببصمة الوجه"</string>
<string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"يجب ضبط الإعدادات"</string>
<string name="security_settings_biometric_preference_summary_both_fp_multiple" msgid="4821859306609955966">"تمت إضافة وجه وبصمات أصابع."</string>
<string name="security_settings_biometric_preference_summary_both_fp_single" msgid="684409535278676426">"تمت إضافة وجه وبصمة إصبع"</string>
- <string name="biometric_settings_intro" msgid="4263069383955676756">"في حال إعداد ميزتَي \"فتح الجهاز بالتعرف على الوجه\" و\"فتح الجهاز ببصمة الإصبع\"، سيطلب منك الهاتف إدخال بصمة إصبعك عندما تكون في منطقة مظلمة أو ترتدي كمّامة."</string>
+ <string name="biometric_settings_intro" msgid="4263069383955676756">"في حال إعداد ميزتَي \"فتح الجهاز ببصمة الوجه\" و\"فتح الجهاز ببصمة الإصبع\"، سيطلب منك الهاتف إدخال بصمة إصبعك عندما تكون في منطقة مظلمة أو ترتدي كمّامة."</string>
<string name="biometric_settings_category_ways_to_unlock" msgid="3384767901580915266">"طرق فتح القفل"</string>
<string name="biometric_settings_category_use_face_fingerprint" msgid="4377659744376863913">"استخدام الوجه أو بصمة الإصبع من أجل:"</string>
<string name="biometric_settings_use_biometric_unlock_phone" msgid="8180914579885804358">"فتح قفل الهاتف"</string>
@@ -453,8 +454,8 @@
<string name="biometric_settings_use_fingerprint_preference_summary" msgid="6077762097826050165">"باستخدام بصمة الإصبع"</string>
<string name="biometric_settings_use_face_or_fingerprint_preference_summary" msgid="3029102492674234728">"باستخدام الوجه أو بصمة الإصبع"</string>
<string name="biometric_settings_hand_back_to_guardian_ok" msgid="1763788801883247426">"حسنًا"</string>
- <string name="biometric_settings_add_face_in_split_mode_title" msgid="6041232223862753222">"هل يتعذّر إعداد ميزة \"فتح الجهاز بالتعرف على الوجه\"؟"</string>
- <string name="biometric_settings_add_face_in_split_mode_message" msgid="1904738532939614456">"أغلِق وضع تقسيم الشاشة لإعداد ميزة \"فتح الجهاز بالتعرف على الوجه\"."</string>
+ <string name="biometric_settings_add_face_in_split_mode_title" msgid="6041232223862753222">"هل يتعذّر إعداد ميزة \"فتح الجهاز ببصمة الوجه\"؟"</string>
+ <string name="biometric_settings_add_face_in_split_mode_message" msgid="1904738532939614456">"أغلِق وضع تقسيم الشاشة لإعداد ميزة \"فتح الجهاز ببصمة الوجه\"."</string>
<string name="biometric_settings_add_fingerprint_in_split_mode_title" msgid="9194670722730454903">"يتعذّر إعداد بصمة الإصبع"</string>
<string name="biometric_settings_add_fingerprint_in_split_mode_message" msgid="6960548382076629454">"أغلِق وضع تقسيم الشاشة لإعداد ميزة \"فتح الجهاز ببصمة الإصبع\"."</string>
<string name="biometric_settings_add_biometrics_in_split_mode_ok" msgid="564103789097253645">"حسنًا"</string>
@@ -467,7 +468,7 @@
<string name="security_settings_sfps_enroll_find_sensor_title" msgid="8327884364635804363">"المس زر التشغيل بدون الضغط عليه"</string>
<string name="security_settings_udfps_enroll_find_sensor_title" msgid="8077484429913330179">"كيفية إعداد بصمة إصبعك"</string>
<string name="security_settings_fingerprint_enroll_find_sensor_message" msgid="6160543980992596286">"زر الاستشعار موجود على الجزء الخلفي لهاتفك. استخدِم إصبع السبابة."</string>
- <string name="security_settings_udfps_enroll_find_sensor_message" msgid="8383106460819519961">"تكون أداة استشعار بصمة الإصبع متوفرة على شاشتك. يمكنك تسجيل بصمة إصبعك في الشاشة التالية."</string>
+ <string name="security_settings_udfps_enroll_find_sensor_message" msgid="8383106460819519961">"تظهر أداة استشعار بصمة الإصبع على شاشتك. يمكنك تسجيل بصمة إصبعك في الشاشة التالية."</string>
<string name="security_settings_udfps_enroll_find_sensor_start_button" msgid="3172268783620336357">"بدء"</string>
<string name="security_settings_udfps_enroll_a11y" msgid="1899453114050362235">"يمكنك تحريك إصبعك على الشاشة للعثور على أداة الاستشعار. المس مع الاستمرار أداة استشعار بصمة الإصبع."</string>
<string name="security_settings_fingerprint_enroll_find_sensor_content_description" msgid="3065850549419750523">"صورة توضيحية تبرز الجهاز وموقع جهاز استشعار بصمة الإصبع"</string>
@@ -553,24 +554,24 @@
<string name="private_space_lock_title" msgid="7230836881433350526">"قفل المساحة الخاصة"</string>
<string name="private_space_one_lock_summary" msgid="2106513606571219068">"يمكنك فتح قفل المساحة الخاصة بالطريقة نفسها المستخدَمة لفتح قفل جهازك، أو يمكنك اختيار طريقة أخرى"</string>
<string name="private_space_screen_lock_title" msgid="8679383894967823163">"استخدام قفل شاشة الجهاز"</string>
- <string name="private_space_biometric_title" msgid="3934339826674553174">"فتح الجهاز ببصمة الإصبع والتعرّف على الوجه"</string>
+ <string name="private_space_biometric_title" msgid="3934339826674553174">"فتح الجهاز ببصمة الإصبع وببصمة الوجه"</string>
<string name="private_space_fingerprint_title" msgid="5989254643211889931">"فتح الجهاز ببصمة الإصبع"</string>
- <string name="private_space_face_title" msgid="3290402865367663079">"فتح الجهاز بالتعرّف على الوجه"</string>
+ <string name="private_space_face_title" msgid="3290402865367663079">"فتح الجهاز ببصمة الوجه"</string>
<string name="private_space_biometric_summary" msgid="4403837276018724581">"انقر لإعداد هذه الميزة."</string>
<string name="private_space_fingerprint_unlock_title" msgid="3614016453395789051">"فتح المساحة الخاصة باستخدام بصمة الإصبع"</string>
<string name="private_space_face_unlock_title" msgid="462248384776453613">"فتح المساحة الخاصة باستخدام بصمة الوجه"</string>
- <string name="private_space_biometric_unlock_title" msgid="1978145237698659673">"فتح المساحة الخاصة باستخدام ميزتي \"التعرّف على الوجه\" و\"بصمة الإصبع\""</string>
+ <string name="private_space_biometric_unlock_title" msgid="1978145237698659673">"فتح المساحة الخاصة باستخدام ميزتي \"بصمة الوجه\" و\"بصمة الإصبع\""</string>
<string name="private_space_fingerprint_enroll_introduction_title" msgid="5187730641333680942">"فتح المساحة الخاصة باستخدام بصمة الإصبع"</string>
<string name="private_space_fingerprint_enroll_introduction_message" msgid="9092068873421435300">"يمكنك استخدام بصمة الإصبع لفتح قفل المساحة الخاصّة أو لإثبات هويتك، مثلاً عند تسجيل الدخول إلى التطبيقات أو الموافقة على عملية شراء"</string>
<string name="private_space_fingerprint_enroll_introduction_footer_message" msgid="7125255484447984854">"يمكن فتح قفل المساحة الخاصّة بدون قصدك، مثلاً عندما يضع أحد الأشخاص الجهاز على إصبعك."</string>
<string name="private_space_fingerprint_enroll_finish_message" msgid="4754797926493316965">"يمكنك استخدام بصمة إصبعك لفتح قفل المساحة الخاصّة أو الموافقة على عمليات شراء"</string>
- <string name="private_space_face_enroll_introduction_title" msgid="3717541082520006032">"ضبط فتح الجهاز بالتعرف على الوجه للمساحة الخاصّة"</string>
+ <string name="private_space_face_enroll_introduction_title" msgid="3717541082520006032">"ضبط فتح الجهاز ببصمة الوجه للمساحة الخاصّة"</string>
<string name="private_space_face_enroll_introduction_message" msgid="250239418499081821">"يمكنك استخدام وجهك لفتح قفل المساحة الخاصّة أو لإثبات هويتك، مثلاً عند تسجيل الدخول إلى التطبيقات أو الموافقة على عملية شراء"</string>
<string name="private_space_face_enroll_introduction_info_looking" msgid="5694757845303924042">"يمكن أن يؤدي النظر للهاتف إلى فتح قفل المساحة الخاصّة حتى إذا كنت لا تقصد ذلك. يستطيع أيضًا شخص آخر فتح قفل المساحة الخاصّة إذا كان يشبهك بدرجة كبيرة، مثلاً توأم متماثل أو شقيق شديد الشبه، أو إذا قرَّب الشخص الجهاز من وجهك."</string>
<string name="private_space_face_enroll_introduction_info_less_secure" msgid="8460719783943533172">"قد يكون استخدام وجهك لفتح قفل المساحة الخاصّة أقل أمانًا من استخدام نقش أو رقم تعريف شخصي قوي أو كلمة مرور قوية"</string>
<string name="private_space_face_settings_require_attention_details" msgid="2799569069549999689">"لفتح قفل المساحة الخاصّة، يجب النظر إلي الجهاز بعينين مفتوحتين. للحصول على أفضل النتائج، يُرجى خلع النظارات الشمسية."</string>
<string name="private_space_face_settings_footer" msgid="7722256209563543711">"يمكنك استخدام وجهك لفتح قفل المساحة الخاصّة.\n\nملاحظة:\nلا يمكنك إعداد أكثر من وجه واحد في كل مرة. لإضافة وجه آخر، يُرجى حذف الوجه الحالي.\n\nقد يؤدي النظر إلي الهاتف إلى فتح قفل المساحة الخاصّة حتى إذا كنت لا تقصد ذلك.\n\nويمكن لشخص آخر فتح قفل المساحة الخاصّة إذا قرَّب الجهاز من وجهك.\n\nويمكن أيضًا لشخص يشبهك كثيرًا، مثل شقيقك التوأم، فتح قفل المساحة الخاصّة."</string>
- <string name="private_space_face_settings_require_confirmation_details" msgid="5406498664903812249">"طلب خطوة تأكيد دائمًا عند استخدام \"فتح الجهاز بالتعرّف على الوجه\""</string>
+ <string name="private_space_face_settings_require_confirmation_details" msgid="5406498664903812249">"طلب خطوة تأكيد دائمًا عند استخدام \"فتح الجهاز ببصمة الوجه\""</string>
<string name="private_space_category_ways_to_unlock" msgid="4356631225316950046">"طُرق فتح القفل"</string>
<string name="private_space_screen_lock_summary" msgid="394837965365561070">"نفس قفل شاشة الجهاز"</string>
<string name="private_space_new_lock_title" msgid="9056139964133004094">"هل تريد اختيار طريقة جديدة لقفل المساحة الخاصة؟"</string>
@@ -616,8 +617,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>
@@ -691,7 +692,7 @@
<string name="face_unlock_set_unlock_pattern" msgid="4206669838203096608">"النقش• الوجه"</string>
<string name="face_unlock_set_unlock_pin" msgid="9034912683791069602">"رقم التعريف الشخصي • الوجه"</string>
<string name="face_unlock_set_unlock_password" msgid="5874950853246424756">"كلمة المرور • الوجه"</string>
- <string name="face_unlock_skip_face" msgid="189695556498300008">"المتابعة بدون إعداد ميزة \"فتح الجهاز بالتعرف على الوجه\""</string>
+ <string name="face_unlock_skip_face" msgid="189695556498300008">"المتابعة بدون إعداد ميزة \"فتح الجهاز ببصمة الوجه\""</string>
<string name="biometrics_unlock_skip_biometrics" msgid="7399882488272450182">"المتابعة بدون استخدام الوجه أو بصمة الإصبع"</string>
<string name="unlock_set_unlock_mode_off" msgid="4632139864722236359">"بدون قفل"</string>
<string name="unlock_set_unlock_mode_none" msgid="5596049938457028214">"التمرير السريع"</string>
@@ -750,12 +751,12 @@
</xliff:g>لن تكون ميزة \"الدفع بدون تلامس الأجهزة\" متاحة.<xliff:g id="EMPTY_LINE_1">
</xliff:g>قد يتأثّر عمل \"محفظة Google\" وGoogle Pay وغيرهما من التطبيقات التي تتطلب المصادقة."</string>
- <string name="unlock_disable_frp_warning_content_face_authbound_keys" msgid="8120786951217029818">"ستتم إزالة ميزَتي \"قفل الشاشة\" و\"فتح الجهاز بالتعرّف على الوجه\".<xliff:g id="EMPTY_LINE_0">
+ <string name="unlock_disable_frp_warning_content_face_authbound_keys" msgid="8120786951217029818">"ستتم إزالة ميزَتي \"قفل الشاشة\" و\"فتح الجهاز ببصمة الوجه\".<xliff:g id="EMPTY_LINE_0">
</xliff:g>لن تكون ميزة \"الدفع بدون تلامس الأجهزة\" متاحة.<xliff:g id="EMPTY_LINE_1">
</xliff:g>قد يتأثّر عمل \"محفظة Google\" وGoogle Pay وغيرهما من التطبيقات التي تتطلب المصادقة."</string>
- <string name="unlock_disable_frp_warning_content_face_fingerprint_authbound_keys" msgid="1574263040292024543">"ستتم إزالة ميزَتي \"قفل الشاشة\" و\"فتح الجهاز بالتعرّف على الوجه وببصمة الإصبع\".<xliff:g id="EMPTY_LINE_0">
+ <string name="unlock_disable_frp_warning_content_face_fingerprint_authbound_keys" msgid="1574263040292024543">"ستتم إزالة ميزَتي \"قفل الشاشة\" و\"فتح الجهاز ببصمة الوجه وببصمة الإصبع\".<xliff:g id="EMPTY_LINE_0">
</xliff:g>لن تكون ميزة \"الدفع بدون تلامس الأجهزة\" متاحة.<xliff:g id="EMPTY_LINE_1">
@@ -773,9 +774,9 @@
<string name="lock_last_pattern_attempt_before_wipe_user" msgid="8283944727199433440">"عند إدخال نقش غير صحيح في المحاولة التالية، سيتم حذف هذا المستخدم"</string>
<string name="lock_last_pin_attempt_before_wipe_user" msgid="972834567684477451">"عند إدخال رقم تعريف شخصي غير صحيح في المحاولة التالية، سيتم حذف هذا المستخدم"</string>
<string name="lock_last_password_attempt_before_wipe_user" msgid="3797239847079686727">"عند إدخال كلمة مرور غير صحيحة في المحاولة التالية، سيتم حذف هذا المستخدم"</string>
- <string name="lock_last_pattern_attempt_before_wipe_profile" msgid="2479195488386373253">"عند إدخال نقش غير صحيح في المحاولة التالية، سيتم حذف ملفك الشخصي للعمل وبياناته"</string>
- <string name="lock_last_pin_attempt_before_wipe_profile" msgid="7086428013814722436">"عند إدخال رقم تعريف شخصي غير صحيح في المحاولة التالية، سيتم حذف ملفك الشخصي للعمل وبياناته"</string>
- <string name="lock_last_password_attempt_before_wipe_profile" msgid="253673907244112643">"عند إدخال كلمة مرور غير صحيحة في المحاولة التالية، سيتم حذف ملفك الشخصي للعمل وبياناته"</string>
+ <string name="lock_last_pattern_attempt_before_wipe_profile" msgid="2479195488386373253">"عند إدخال نقش غير صحيح في المحاولة التالية، سيتم حذف ملف العمل الخاص بك وبياناته"</string>
+ <string name="lock_last_pin_attempt_before_wipe_profile" msgid="7086428013814722436">"عند إدخال رقم تعريف شخصي غير صحيح في المحاولة التالية، سيتم حذف ملف العمل الخاص بك وبياناته"</string>
+ <string name="lock_last_password_attempt_before_wipe_profile" msgid="253673907244112643">"عند إدخال كلمة مرور غير صحيحة في المحاولة التالية، سيتم حذف ملف العمل الخاص بك وبياناته"</string>
<string name="lockpassword_password_too_short" msgid="1938086368137797700">"{count,plural, =1{يجب أن تحتوي كلمة المرور على حرف واحد على الأقل}zero{يجب ألّا يقل عدد الحروف عن #}two{يجب ألّا يقل عدد الحروف عن حرفَين}few{يجب ألّا يقل عدد الحروف عن #}many{يجب ألّا يقل عدد الحروف عن #}other{يجب ألّا يقل عدد الحروف عن #}}"</string>
<string name="lockpassword_password_too_short_all_numeric" msgid="4301294924022401502">"{count,plural, =1{في حال استخدام الأرقام فقط، يجب أن تحتوي كلمة المرور على رقم واحد على الأقل.}zero{في حال استخدام الأرقام فقط، يجب أن تحتوي كلمة المرور على # رقم على الأقل.}two{في حال استخدام الأرقام فقط، يجب أن تحتوي كلمة المرور على رقمَين على الأقل.}few{في حال استخدام الأرقام فقط، يجب أن تحتوي كلمة المرور على # أرقام على الأقل.}many{في حال استخدام الأرقام فقط، يجب أن تحتوي كلمة المرور على # رقمًا على الأقل.}other{في حال استخدام الأرقام فقط، يجب أن تحتوي كلمة المرور على # رقم على الأقل.}}"</string>
<string name="lockpassword_pin_too_short" msgid="8910105226463085689">"{count,plural, =1{يجب أن يحتوي رقم التعريف الشخصي على رقم واحد على الأقل.}zero{يجب أن يحتوي رقم التعريف الشخصي على # رقم على الأقل.}two{يجب أن يحتوي رقم التعريف الشخصي على رقمَين على الأقل.}few{يجب أن يحتوي رقم التعريف الشخصي على # أرقام على الأقل.}many{يجب أن يحتوي رقم التعريف الشخصي على # رقمًا على الأقل.}other{يجب أن يحتوي رقم التعريف الشخصي على # رقم على الأقل.}}"</string>
@@ -851,36 +852,20 @@
<string name="nfc_reboot_dialog_title" msgid="2033983438635768169">"هل تريد إعادة تشغيل الجهاز؟"</string>
<string name="nfc_reboot_dialog_message" msgid="4929353168157966992">"تسجيل الدخول عبر اتصال قصير المدى (NFC) مفصَّل مصمَّم لأغراض التطوير فقط. يتم تضمين بيانات إضافية عن الاتصال القصير المدى (NFC) في تقارير الأخطاء وقد تحتوي على معلومات خاصة. عليك إعادة تشغيل جهازك لتغيير هذا الخيار."</string>
<string name="nfc_reboot_dialog_confirm" msgid="4769763632008584567">"إعادة التشغيل"</string>
- <!-- no translation found for keywords_external_display (4181375057920134909) -->
- <skip />
- <!-- no translation found for external_display_on (2560104443500154333) -->
- <skip />
- <!-- no translation found for external_display_off (5634413756025351374) -->
- <skip />
- <!-- no translation found for external_display_settings_title (6256884595821605779) -->
- <skip />
- <!-- no translation found for external_display_use_title (8198257340836261386) -->
- <skip />
- <!-- no translation found for external_display_resolution_settings_title (2446784716488289268) -->
- <skip />
- <!-- no translation found for external_display_not_found (1912355133386555798) -->
- <skip />
- <!-- no translation found for external_display_rotation (7160062306817490204) -->
- <skip />
- <!-- no translation found for external_display_standard_rotation (545969032327487219) -->
- <skip />
- <!-- no translation found for external_display_rotation_90 (7371530414227542947) -->
- <skip />
- <!-- no translation found for external_display_rotation_180 (6469137724447819841) -->
- <skip />
- <!-- no translation found for external_display_rotation_270 (7819322302457740514) -->
- <skip />
- <!-- no translation found for external_display_change_resolution_footer_title (9024291681663573443) -->
- <skip />
- <!-- no translation found for external_display_not_found_footer_title (8882902921634316363) -->
- <skip />
- <!-- no translation found for external_display_more_options_title (1222751990705118774) -->
- <skip />
+ <string name="external_display_on" msgid="2560104443500154333">"مشغَّلة"</string>
+ <string name="external_display_off" msgid="5634413756025351374">"مطفأة"</string>
+ <string name="external_display_settings_title" msgid="6256884595821605779">"الشاشة الخارجية"</string>
+ <string name="external_display_use_title" msgid="8198257340836261386">"استخدام الشاشة الخارجية"</string>
+ <string name="external_display_resolution_settings_title" msgid="2446784716488289268">"دقة الشاشة"</string>
+ <string name="external_display_not_found" msgid="1912355133386555798">"الشاشة الخارجية غير متصلة"</string>
+ <string name="external_display_rotation" msgid="7160062306817490204">"الدوران"</string>
+ <string name="external_display_standard_rotation" msgid="545969032327487219">"عادي"</string>
+ <string name="external_display_rotation_90" msgid="7371530414227542947">"90 درجة"</string>
+ <string name="external_display_rotation_180" msgid="6469137724447819841">"180 درجة"</string>
+ <string name="external_display_rotation_270" msgid="7819322302457740514">"270 درجة"</string>
+ <string name="external_display_change_resolution_footer_title" msgid="9024291681663573443">"عند تغيير زاوية الدوران أو درجة الدقة، قد تتوقف أي تطبيقات تعمل حاليًا"</string>
+ <string name="external_display_not_found_footer_title" msgid="8882902921634316363">"يجب توصيل جهازك بشاشة خارجية لنسخ محتوى شاشتك بشكل مطابق"</string>
+ <string name="external_display_more_options_title" msgid="1222751990705118774">"خيارات إضافية"</string>
<string name="wifi_display_settings_title" msgid="6451625615274960175">"البث"</string>
<string name="keywords_wifi_display_settings" msgid="5753883229564422679">"انعكاس"</string>
<string name="wifi_display_enable_menu_item" msgid="7391841780777318134">"تفعيل عرض شاشة لاسلكي"</string>
@@ -1197,7 +1182,7 @@
<string name="wifi_disconnected_from" msgid="5249576734324159708">"تم قطع الاتصال بشبكة <xliff:g id="SSID">%1$s</xliff:g>."</string>
<string name="sound_settings" msgid="7622986039384531304">"الصوت والاهتزاز"</string>
<string name="account_settings" msgid="255404935489127404">"الحسابات"</string>
- <string name="accessibility_category_work" msgid="5133894487353964944">"حسابات الملفات الشخصية للعمل - <xliff:g id="MANAGED_BY">%s</xliff:g>"</string>
+ <string name="accessibility_category_work" msgid="5133894487353964944">"حسابات ملفات العمل - <xliff:g id="MANAGED_BY">%s</xliff:g>"</string>
<string name="accessibility_category_personal" msgid="2228088849803484780">"حسابات الملفات الشخصية"</string>
<string name="accessibility_category_clone" msgid="7893383448944567885">"استنساخ حسابات الملفات الشخصية"</string>
<string name="accessibility_work_account_title" msgid="7622485151217943839">"حساب العمل - <xliff:g id="MANAGED_BY">%s</xliff:g>"</string>
@@ -1673,9 +1658,9 @@
<string name="lockpassword_password_set_toast" msgid="6615759749393973795">"تم ضبط كلمة المرور"</string>
<string name="lockpassword_pin_set_toast" msgid="5415783847198570890">"تم ضبط رمز PIN"</string>
<string name="lockpassword_pattern_set_toast" msgid="3090582314362416762">"تم ضبط النقش"</string>
- <string name="lockpassword_choose_your_password_header_for_face" msgid="622276003801157839">"ضبط كلمة مرور لاستخدام \"فتح الجهاز بالتعرف على الوجه\""</string>
- <string name="lockpassword_choose_your_pattern_header_for_face" msgid="7333603579958317102">"ضبط نقش لاستخدام \"فتح الجهاز بالتعرف على الوجه\""</string>
- <string name="lockpassword_choose_your_pin_header_for_face" msgid="704061826984851309">"ضبط رقم PIN لاستخدام \"فتح الجهاز بالتعرف على الوجه\""</string>
+ <string name="lockpassword_choose_your_password_header_for_face" msgid="622276003801157839">"ضبط كلمة مرور لاستخدام \"فتح الجهاز ببصمة الوجه\""</string>
+ <string name="lockpassword_choose_your_pattern_header_for_face" msgid="7333603579958317102">"ضبط نقش لاستخدام \"فتح الجهاز ببصمة الوجه\""</string>
+ <string name="lockpassword_choose_your_pin_header_for_face" msgid="704061826984851309">"ضبط رقم PIN لاستخدام \"فتح الجهاز ببصمة الوجه\""</string>
<string name="lockpassword_choose_your_password_header_for_biometrics" msgid="2053366309272487015">"يجب ضبط كلمة مرور لفتح جهازك ببصمة إصبع أو بالتعرف على الوجه"</string>
<string name="lockpassword_choose_your_pattern_header_for_biometrics" msgid="4038476475293734905">"يجب ضبط نقش لفتح جهازك ببصمة الإصبع أو بالتعرف على الوجه"</string>
<string name="lockpassword_choose_your_pin_header_for_biometrics" msgid="9086039918921009380">"يجب ضبط رقم PIN لفتح جهازك ببصمة الإصبع أو بالتعرف على الوجه"</string>
@@ -1686,8 +1671,8 @@
<string name="lockpassword_confirm_your_pin_generic" msgid="8990266101852808091">"يجب إدخال رقم التعريف الشخصي للمتابعة."</string>
<string name="lockpassword_confirm_your_password_generic" msgid="8823867445451497224">"يجب إدخال كلمة المرور للمتابعة."</string>
<string name="lockpassword_confirm_your_pattern_generic_profile" msgid="7003851856761939690">"يجب رسم نقش ملفك الشخصي الخاص بالعمل للمتابعة."</string>
- <string name="lockpassword_confirm_your_pin_generic_profile" msgid="6524208128570235127">"أدخل رقم التعريف الشخصي لملفك الشخصي للعمل للمتابعة."</string>
- <string name="lockpassword_confirm_your_password_generic_profile" msgid="5918738487760814147">"أدخل كلمة مرور ملفك الشخصي للعمل للمتابعة."</string>
+ <string name="lockpassword_confirm_your_pin_generic_profile" msgid="6524208128570235127">"أدخل رقم التعريف الشخصي لملف العمل الخاص بك للمتابعة."</string>
+ <string name="lockpassword_confirm_your_password_generic_profile" msgid="5918738487760814147">"أدخل كلمة مرور ملف العمل الخاص بك للمتابعة."</string>
<string name="lockpassword_strong_auth_required_device_pattern" msgid="113817518413715557">"استخدام نقش للجهاز لزيادة الأمان"</string>
<string name="lockpassword_strong_auth_required_device_pin" msgid="9163822166411129815">"إدخال رقم تعريف شخصي للجهاز لزيادة الأمان"</string>
<string name="lockpassword_strong_auth_required_device_password" msgid="8310047427464299337">"إدخال كلمة مرور للجهاز لزيادة الأمان"</string>
@@ -1749,7 +1734,7 @@
<string name="lock_settings_profile_unification_summary" msgid="1317553536289481654">"استخدام القفل نفسه لملف العمل وشاشة الجهاز"</string>
<string name="lock_settings_profile_unification_dialog_title" msgid="5163178097464820825">"هل تريد استخدام قفل واحد؟"</string>
<string name="lock_settings_profile_unification_dialog_body" msgid="1222905637428672355">"سيستخدم جهازك قفل الشاشة لملف العمل. وسيتم تطبيق سياسات العمل على كلا القفلين."</string>
- <string name="lock_settings_profile_unification_dialog_uncompliant_body" msgid="8844682343443755895">"لا يتوافق قفل شاشة ملف العمل مع متطلبات الأمان في مؤسستك. يمكنك استخدام القفل ذاته لكل من شاشة جهازك وملفك الشخصي للعمل، ولكن ستنطبق أي سياسات متعلقة بقفل ملف العمل على قفل شاشة الجهاز أيضًا."</string>
+ <string name="lock_settings_profile_unification_dialog_uncompliant_body" msgid="8844682343443755895">"لا يتوافق قفل شاشة ملف العمل مع متطلبات الأمان في مؤسستك. يمكنك استخدام القفل ذاته لكل من شاشة جهازك وملف العمل، ولكن ستنطبق أي سياسات متعلقة بقفل ملف العمل على قفل شاشة الجهاز أيضًا."</string>
<string name="lock_settings_profile_unification_dialog_confirm" msgid="6276915393736137843">"استخدام قفل واحد"</string>
<string name="lock_settings_profile_unification_dialog_uncompliant_confirm" msgid="8509287115116369677">"استخدام قفل واحد"</string>
<string name="lock_settings_profile_unified_summary" msgid="777095092175037385">"نفس قفل شاشة الجهاز"</string>
@@ -1934,6 +1919,8 @@
<string name="slow_keys_summary" msgid="1784371292745423292">"لضبط الوقت المُستغرق لتنشيط المفتاح عند الضغط عليه على <xliff:g id="SLOW_KEYS_THRESHOLD">%1$d</xliff:g> ملي ثانية"</string>
<string name="sticky_keys" msgid="7317317044898161747">"تثبيت المفاتيح"</string>
<string name="sticky_keys_summary" msgid="1844953803625480623">"اضغط على مفتاح واحد في كل مرة للحصول على الاختصارات بدلاً من الضغط باستمرار على المفاتيح معًا"</string>
+ <string name="mouse_keys" msgid="6237254627808525540">"مفاتيح الماوس"</string>
+ <string name="mouse_keys_summary" msgid="2396247040177734245">"يمكنك استخدام لوحة المفاتيح الخارجية للتحكّم في مؤشر الماوس."</string>
<string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"اختصارات لوحة المفاتيح"</string>
<string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"إظهار قائمة الاختصارات"</string>
<string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"لوحات مفاتيح وأدوات ملف العمل"</string>
@@ -1958,14 +1945,10 @@
<string name="pointer_fill_style_yellow_button" msgid="5025969961559379024">"تغيير نمط منتصف المؤشر إلى الأصفر"</string>
<string name="pointer_fill_style_pink_button" msgid="4106218142489635673">"تغيير نمط منتصف المؤشر إلى الوردي"</string>
<string name="pointer_fill_style_blue_button" msgid="5594958078854032785">"تغيير نمط منتصف المؤشر إلى الأزرق"</string>
- <!-- no translation found for pointer_stroke_style (1886986630216050665) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_white (673686194443825383) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_black (4655806167067437330) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_none (8953927511729800247) -->
- <skip />
+ <string name="pointer_stroke_style" msgid="1886986630216050665">"نمط نقرة المؤشر"</string>
+ <string name="pointer_stroke_style_name_white" msgid="673686194443825383">"أبيض"</string>
+ <string name="pointer_stroke_style_name_black" msgid="4655806167067437330">"أسود"</string>
+ <string name="pointer_stroke_style_name_none" msgid="8953927511729800247">"بدون نمط"</string>
<string name="trackpad_touch_gesture" msgid="8641725062131922497">"التعرّف على إيماءات لوحة اللمس"</string>
<string name="keywords_touchpad" msgid="8159846254066666032">"لوحة اللمس، لوحة لمس، ماوس، مؤشر، الانتقال للأسفل أو للأعلى، تمرير سريع، النقر بزر الماوس الأيمن، نقرة، مؤشر"</string>
<string name="keywords_trackpad_bottom_right_tap" msgid="1285062446073929305">"النقر بزر الماوس الأيمن، النقر"</string>
@@ -2009,12 +1992,9 @@
<string name="user_selected_keyboard_layout_label" msgid="154742505924555156">"تنسيق محدَّد من المستخدم: <xliff:g id="LAYOUT_LABEL">%s</xliff:g>"</string>
<string name="speech_category_title" msgid="5995161659186229742">"الكلام"</string>
<string name="pointer_speed" msgid="7398649279282675718">"سرعة المؤشر"</string>
- <!-- no translation found for pointer_scale (4941564570571663964) -->
- <skip />
- <!-- no translation found for pointer_scale_decrease_content_description (4479646756230008068) -->
- <skip />
- <!-- no translation found for pointer_scale_increase_content_description (1049632123702664450) -->
- <skip />
+ <string name="pointer_scale" msgid="4941564570571663964">"حجم المؤشر"</string>
+ <string name="pointer_scale_decrease_content_description" msgid="4479646756230008068">"تصغير حجم المؤشر"</string>
+ <string name="pointer_scale_increase_content_description" msgid="1049632123702664450">"تكبير حجم المؤشر"</string>
<string name="game_controller_settings_category" msgid="8557472715034961918">"وحدة التحكم في الألعاب"</string>
<string name="vibrate_input_devices" msgid="5192591087864449142">"إعادة توجيه الاهتزاز"</string>
<string name="vibrate_input_devices_summary" msgid="8791680891376689823">"إرسال الاهتزاز إلى وحدة التحكم في الألعاب عند الاتصال"</string>
@@ -2198,8 +2178,6 @@
<string name="accessibility_shortcut_edit_dialog_summary_floating_button" msgid="6266489864614886247">"انقر على الزر العائم"</string>
<string name="accessibility_shortcut_edit_dialog_title_software_by_gesture" msgid="4775049370625630546">"إيماءة تسهيل الاستخدام"</string>
<string name="accessibility_shortcut_edit_dialog_summary_software" msgid="8315934725362849788">"انقر على رمز زر \"أدوات تسهيل الاستخدام\" <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g> في أسفل الشاشة. للتبديل بين الميزات، انقر مع الاستمرار على زر أدوات تسهيل الاستخدام."</string>
- <string name="accessibility_shortcut_edit_dialog_summary_software_gesture" msgid="8292555254353761635">"مرِّر سريعًا من أسفل الشاشة للأعلى بإصبعين.\n\nللتبديل بين الميزات، مرِّر سريعًا للأعلى بإصبعين مع تثبيتهما."</string>
- <string name="accessibility_shortcut_edit_dialog_summary_software_gesture_talkback" msgid="84483464524360845">"مرِّر سريعًا من أسفل الشاشة للأعلى بثلاثة أصابع.\n\nللتبديل بين الميزات، مرِّر سريعًا للأعلى بثلاثة أصابع مع تثبيتها."</string>
<string name="accessibility_shortcut_edit_dialog_summary_gesture" msgid="2081123009255579884">"{count,plural, =1{مرِّر سريعًا من أسفل الشاشة إلى أعلاها. للتبديل بين الميزات، مرِّر سريعًا من أسفل الشاشة إلى أعلاها واضغط مع الاستمرار.}zero{مرِّر سريعًا من أسفل الشاشة إلى أعلاها باستخدام # إصبع. للتبديل بين الميزات، مرِّر سريعًا من أسفل الشاشة إلى أعلاها واضغط مع الاستمرار باستخدام # إصبع.}two{مرِّر سريعًا من أسفل الشاشة إلى أعلاها باستخدام إصبعين. للتبديل بين الميزات، مرِّر سريعًا من أسفل الشاشة إلى أعلاها واضغط مع الاستمرار باستخدام إصبعين.}few{مرِّر سريعًا من أسفل الشاشة إلى أعلاها باستخدام # أصابع. للتبديل بين الميزات، مرِّر سريعًا من أسفل الشاشة إلى أعلاها واضغط مع الاستمرار باستخدام # أصابع.}many{مرِّر سريعًا من أسفل الشاشة إلى أعلاها باستخدام # إصبعًا. للتبديل بين الميزات، مرِّر سريعًا من أسفل الشاشة إلى أعلاها واضغط مع الاستمرار باستخدام # إصبعًا.}other{مرِّر سريعًا من أسفل الشاشة إلى أعلاها باستخدام # إصبع. للتبديل بين الميزات، مرِّر سريعًا من أسفل الشاشة إلى أعلاها واضغط مع الاستمرار باستخدام # إصبع.}}"</string>
<string name="accessibility_shortcut_edit_dialog_summary_software_floating" msgid="4459254227203203324"><annotation id="link">"خيارات إضافية"</annotation></string>
<string name="footer_learn_more_content_description" msgid="8843798273152131341">"مزيد من المعلومات عن <xliff:g id="SERVICE">%1$s</xliff:g>"</string>
@@ -2210,16 +2188,12 @@
<string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="844089763968552142">"مفتاحا مستوى الصوت"</string>
<string name="accessibility_shortcut_hardware_keyword" msgid="2483152542320987022">"مفتاحا مستوى الصوت"</string>
<string name="accessibility_shortcut_edit_dialog_summary_hardware" msgid="2503134386397991634">"اضغط مع الاستمرار على مفتاحَي مستوى الصوت"</string>
- <string name="accessibility_shortcut_edit_dialog_title_two_finger_double_tap" msgid="2271778556854020996">"النقر على الشاشة مرّتين باستخدام إصبعين"</string>
<string name="accessibility_shortcut_edit_screen_title_two_finger_double_tap" msgid="8952595692906527694">"النقر مرّتين باستخدام إصبعين"</string>
<string name="accessibility_shortcut_edit_screen_summary_two_finger_double_tap" msgid="385404127425496362">"انقر سريعًا على الشاشة مرّتين باستخدام إصبعين"</string>
<string name="accessibility_shortcut_edit_screen_title_triple_tap" msgid="3314488747597058942">"النقر ثلاث مرّات"</string>
<string name="accessibility_shortcut_edit_screen_summary_triple_tap" msgid="4839204951599629871">"انقر سريعًا على الشاشة %1$d مرّات. قد يؤدي ذلك إلى إبطاء جهازك."</string>
<string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="6271718715836961167">"النقر مرّتين باستخدام إصبعين"</string>
- <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"انقر سريعًا على الشاشة مرّتَين {0,number,integer} باستخدام إصبعين."</string>
- <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"النقر ثلاث مرات على الشاشة"</string>
<string name="accessibility_shortcut_triple_tap_keyword" msgid="5359347130888464334">"النقر ثلاث مرّات"</string>
- <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"انقر على الشاشة {0,number,integer} مرة. يمكن أن يؤدي استخدام هذا الاختصار إلى إبطاء الجهاز."</string>
<string name="accessibility_shortcut_edit_dialog_title_advance" msgid="4567868630655591506">"خيارات متقدمة"</string>
<string name="accessibility_screen_magnification_navbar_configuration_warning" msgid="266736851606791552">"تم ضبط زر \"سهولة الاستخدام\" لخدمة <xliff:g id="SERVICE">%1$s</xliff:g>. لاستخدام التكبير، المس زر \"سهولة الاستخدام\" مع الاستمرار ثم اختَر التكبير."</string>
<string name="accessibility_screen_magnification_gesture_navigation_warning" msgid="991017769735632046">"تم ضبط إيماءة تمكين الوصول على <xliff:g id="SERVICE">%1$s</xliff:g>. للتكبير، مرّر سريعًا من أسفل الشاشة إلى أعلاها باستخدام إصبعين مع تثبيتهما. ثم اختَر التكبير."</string>
@@ -2388,6 +2362,7 @@
<string name="daltonizer_mode_tritanomaly_title" msgid="2278786218762602022">"الأزرق والأصفر"</string>
<string name="daltonizer_mode_grayscale_title" msgid="152005391387952588">"تدرّج الرمادي"</string>
<string name="daltonizer_saturation_title" msgid="2999486412114963068">"كثافة اللون"</string>
+ <string name="daltonizer_saturation_unavailable_summary" msgid="8319753055567798775">"غير متوفّر في وضع \"تدرّج الرمادي\" أو في حال إيقاف ميزة \"تصحيح الألوان\""</string>
<string name="daltonizer_mode_deuteranomaly_summary" msgid="2117727423019598455">"ضعف إبصار الأخضر، عَمَى الأخضر والأحمر"</string>
<string name="daltonizer_mode_protanomaly_summary" msgid="4617032854982040748">"ضعف إبصار الأحمر، عَمَى الأحمر"</string>
<string name="daltonizer_mode_tritanomaly_summary" msgid="2428218320118180070">"غمش الأزرق"</string>
@@ -2437,15 +2412,8 @@
<string name="color_cyan" msgid="4341758639597035927">"سماوي"</string>
<string name="color_yellow" msgid="5957551912912679058">"أصفر"</string>
<string name="color_magenta" msgid="8943538189219528423">"أرجواني"</string>
- <string name="enable_service_title" msgid="7231533866953706788">"هل تريد السماح لـ \"<xliff:g id="SERVICE">%1$s</xliff:g>\" بالتحكّم الكامل في جهازك؟"</string>
<string name="capabilities_list_title" msgid="1225853611983394386">"خدمة <xliff:g id="SERVICE">%1$s</xliff:g> تحتاج إلى:"</string>
<string name="touch_filtered_warning" msgid="4225815157460318241">"نظرًا لأن هناك تطبيقًا يحجب طلب الإذن، لا تستطيع الإعدادات التحقق من ردك."</string>
- <string name="accessibility_service_warning" msgid="6779187188736432618">"تطلب خدمة <xliff:g id="SERVICE">%1$s</xliff:g> الحصول على تحكم كامل في هذا الجهاز. ويمكن للخدمة قراءة الشاشة والتصرف بالنيابة عن المستخدمين ذوي الاحتياجات المتعلقة بإمكانية الوصول. ولا يناسب هذا المستوى من التحكم معظم التطبيقات."</string>
- <string name="accessibility_service_warning_description" msgid="6573203795976134751">"إنّ التحكّم الكامل ليس ملائمًا لمعظم التطبيقات، باستثناء التطبيقات المعنية بتسهيل الاستخدام."</string>
- <string name="accessibility_service_screen_control_title" msgid="324795030658109870">"قراءة محتوى الشاشة والتحكم به"</string>
- <string name="accessibility_service_screen_control_description" msgid="8431940515157990426">"يمكنها قراءة كل المحتوى على الشاشة وعرض المحتوى فوق تطبيقات أخرى."</string>
- <string name="accessibility_service_action_perform_title" msgid="1449360056585337833">"عرض الإجراءات وتنفيذها"</string>
- <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"قد يؤدي ذلك إلى السماح للميزة بتتبّع تفاعلاتك مع تطبيق أو جهاز استشعار والتفاعل مع التطبيقات نيابةً عنك."</string>
<string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"سماح"</string>
<string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"رفض"</string>
<string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"إيقاف"</string>
@@ -3022,7 +2990,7 @@
<string name="done_button" msgid="6269449526248267">"تم"</string>
<string name="ssl_ca_cert_dialog_title" msgid="1032088078702042090">"{count,plural, =1{إضافة الشهادة أو إزالتها}zero{إضافة الشهادات أو إزالتها}two{إضافة الشهادتَين أو إزالتهما}few{إضافة الشهادات أو إزالتها}many{إضافة الشهادات أو إزالتها}other{إضافة الشهادات أو إزالتها}}"</string>
<string name="ssl_ca_cert_info_message_device_owner" msgid="7528581447864707873">"{numberOfCertificates,plural, =1{يتم تثبيت مرجع تصديق واحد من قِبل \"{orgName}\" على جهازك، وهذا قد يسمح لمَن أجرى التثبيت بمراقبة النشاط على شبكة الجهاز، بما في ذلك الرسائل الإلكترونية والتطبيقات والمواقع الإلكترونية الآمنة.\n\nللحصول على مزيد من المعلومات حول هذه الشهادة، يُرجى التواصُل مع المشرف.}zero{يتم تثبيت مرجع تصديق من قِبل \"{orgName}\" على جهازك، وهذا قد يسمح لمَن أجرى التثبيت بمراقبة النشاط على شبكة الجهاز، بما في ذلك الرسائل الإلكترونية والتطبيقات والمواقع الإلكترونية الآمنة.\n\nللحصول على مزيد من المعلومات حول هذه الشهادات، يُرجى التواصُل مع المشرف.}two{يتم تثبيت مرجعَي تصديق من قِبل \"{orgName}\" على جهازك، وهذا قد يسمح لمَن أجرى التثبيت بمراقبة النشاط على شبكة الجهاز، بما في ذلك الرسائل الإلكترونية والتطبيقات والمواقع الإلكترونية الآمنة.\n\nللحصول على مزيد من المعلومات حول هذه الشهادات، يُرجى التواصُل مع المشرف.}few{يتم تثبيت مراجع تصديق من قِبل \"{orgName}\" على جهازك، وهذا قد يسمح لمَن أجرى التثبيت بمراقبة النشاط على شبكة الجهاز، بما في ذلك الرسائل الإلكترونية والتطبيقات والمواقع الإلكترونية الآمنة.\n\nللحصول على مزيد من المعلومات حول هذه الشهادات، يُرجى التواصُل مع المشرف.}many{يتم تثبيت مرجع تصديق من قِبل \"{orgName}\" على جهازك، وهذا قد يسمح لمَن أجرى التثبيت بمراقبة النشاط على شبكة الجهاز، بما في ذلك الرسائل الإلكترونية والتطبيقات والمواقع الإلكترونية الآمنة.\n\nللحصول على مزيد من المعلومات حول هذه الشهادات، يُرجى التواصُل مع المشرف.}other{يتم تثبيت مرجع تصديق من قِبل \"{orgName}\" على جهازك، وهذا قد يسمح لمَن أجرى التثبيت بمراقبة النشاط على شبكة الجهاز، بما في ذلك الرسائل الإلكترونية والتطبيقات والمواقع الإلكترونية الآمنة.\n\nللحصول على مزيد من المعلومات حول هذه الشهادات، يُرجى التواصُل مع المشرف.}}"</string>
- <string name="ssl_ca_cert_info_message" msgid="3111724430981667845">"{numberOfCertificates,plural, =1{يتم تثبيت مرجع تصديق واحد من قِبل \"{orgName}\" لملفك الشخصي للعمل، وهذا قد يسمح لمَن أجرى التثبيت بمراقبة النشاط على شبكة العمل، بما في ذلك الرسائل الإلكترونية والتطبيقات والمواقع الإلكترونية الآمنة.\n\nللحصول على مزيد من المعلومات حول هذه الشهادة، يُرجى التواصُل مع المشرف.}zero{يتم تثبيت مرجع تصديق من قِبل \"{orgName}\" لملفك الشخصي للعمل، وهذا قد يسمح لمَن أجرى التثبيت بمراقبة النشاط على شبكة العمل، بما في ذلك الرسائل الإلكترونية والتطبيقات والمواقع الإلكترونية الآمنة.\n\nللحصول على مزيد من المعلومات حول هذه الشهادات، يُرجى التواصُل مع المشرف.}two{يتم تثبيت مرجعَي تصديق من قِبل \"{orgName}\" لملفك الشخصي للعمل، وهذا قد يسمح لمَن أجرى التثبيت بمراقبة النشاط على شبكة العمل، بما في ذلك الرسائل الإلكترونية والتطبيقات والمواقع الإلكترونية الآمنة.\n\nللحصول على مزيد من المعلومات حول هذه الشهادات، يُرجى التواصُل مع المشرف.}few{يتم تثبيت مراجع تصديق من قِبل \"{orgName}\" لملفك الشخصي للعمل، وهذا قد يسمح لمَن أجرى التثبيت بمراقبة النشاط على شبكة العمل، بما في ذلك الرسائل الإلكترونية والتطبيقات والمواقع الإلكترونية الآمنة.\n\nللحصول على مزيد من المعلومات حول هذه الشهادات، يُرجى التواصُل مع المشرف.}many{يتم تثبيت مرجع تصديق من قِبل \"{orgName}\" لملفك الشخصي للعمل، وهذا قد يسمح لمَن أجرى التثبيت بمراقبة النشاط على شبكة العمل، بما في ذلك الرسائل الإلكترونية والتطبيقات والمواقع الإلكترونية الآمنة.\n\nللحصول على مزيد من المعلومات حول هذه الشهادات، يُرجى التواصُل مع المشرف.}other{يتم تثبيت مرجع تصديق من قِبل \"{orgName}\" لملفك الشخصي للعمل، وهذا قد يسمح لمَن أجرى التثبيت بمراقبة النشاط على شبكة العمل، بما في ذلك الرسائل الإلكترونية والتطبيقات والمواقع الإلكترونية الآمنة.\n\nللحصول على مزيد من المعلومات حول هذه الشهادات، يُرجى التواصُل مع المشرف.}}"</string>
+ <string name="ssl_ca_cert_info_message" msgid="3111724430981667845">"{numberOfCertificates,plural, =1{يتم تثبيت مرجع تصديق واحد من قِبل \"{orgName}\" لملف العمل الخاص بك، وهذا قد يسمح لمَن أجرى التثبيت بمراقبة النشاط على شبكة العمل، بما في ذلك الرسائل الإلكترونية والتطبيقات والمواقع الإلكترونية الآمنة.\n\nللحصول على مزيد من المعلومات حول هذه الشهادة، يُرجى التواصُل مع المشرف.}zero{يتم تثبيت مرجع تصديق من قِبل \"{orgName}\" لملف العمل الخاص بك، وهذا قد يسمح لمَن أجرى التثبيت بمراقبة النشاط على شبكة العمل، بما في ذلك الرسائل الإلكترونية والتطبيقات والمواقع الإلكترونية الآمنة.\n\nللحصول على مزيد من المعلومات حول هذه الشهادات، يُرجى التواصُل مع المشرف.}two{يتم تثبيت مرجعَي تصديق من قِبل \"{orgName}\" لملف العمل الخاص بك، وهذا قد يسمح لمَن أجرى التثبيت بمراقبة النشاط على شبكة العمل، بما في ذلك الرسائل الإلكترونية والتطبيقات والمواقع الإلكترونية الآمنة.\n\nللحصول على مزيد من المعلومات حول هذه الشهادات، يُرجى التواصُل مع المشرف.}few{يتم تثبيت مراجع تصديق من قِبل \"{orgName}\" لملف العمل الخاص بك، وهذا قد يسمح لمَن أجرى التثبيت بمراقبة النشاط على شبكة العمل، بما في ذلك الرسائل الإلكترونية والتطبيقات والمواقع الإلكترونية الآمنة.\n\nللحصول على مزيد من المعلومات حول هذه الشهادات، يُرجى التواصُل مع المشرف.}many{يتم تثبيت مرجع تصديق من قِبل \"{orgName}\" لملف العمل الخاص بك، وهذا قد يسمح لمَن أجرى التثبيت بمراقبة النشاط على شبكة العمل، بما في ذلك الرسائل الإلكترونية والتطبيقات والمواقع الإلكترونية الآمنة.\n\nللحصول على مزيد من المعلومات حول هذه الشهادات، يُرجى التواصُل مع المشرف.}other{يتم تثبيت مرجع تصديق من قِبل \"{orgName}\" لملف العمل الخاص بك، وهذا قد يسمح لمَن أجرى التثبيت بمراقبة النشاط على شبكة العمل، بما في ذلك الرسائل الإلكترونية والتطبيقات والمواقع الإلكترونية الآمنة.\n\nللحصول على مزيد من المعلومات حول هذه الشهادات، يُرجى التواصُل مع المشرف.}}"</string>
<string name="ssl_ca_cert_warning_message" msgid="4374052724815563051">"يُمكن لأي جهة خارجية مراقبة نشاط الشبكة، بما في ذلك الرسائل الإلكترونية والتطبيقات ومواقع الويب الآمنة.\n\nويُمكن لبيانات اعتماد موثوقة ومثبتة على جهاز الكمبيوتر إتاحة إجراء ذلك."</string>
<string name="ssl_ca_cert_settings_button" msgid="2044927302268394991">"{count,plural, =1{الاطّلاع على الشهادة}zero{الاطّلاع على الشهادات}two{الاطّلاع على الشهادتَين}few{الاطّلاع على الشهادات}many{الاطّلاع على الشهادات}other{الاطّلاع على الشهادات}}"</string>
<string name="user_settings_title" msgid="9208831545558787202">"المستخدمون"</string>
@@ -3369,20 +3337,16 @@
<string name="zen_mode_settings_schedules_summary" msgid="2047688589286811617">"{count,plural, =0{ما من جداول زمنية}=1{تم ضبط جدول زمني واحد}two{تم ضبط جدولين زمنيين}few{تم ضبط # جداول زمنية}many{تم ضبط # جدولاً زمنيًا}other{تم ضبط # جدول زمني}}"</string>
<string name="zen_mode_settings_title" msgid="682676757791334259">"وضع \"عدم الإزعاج\""</string>
<string name="zen_modes_list_title" msgid="5138745349253275428">"الأوضاع ذات الأولوية"</string>
- <!-- no translation found for zen_modes_add_mode (4806287336036228772) -->
- <skip />
+ <string name="zen_modes_add_mode" msgid="4806287336036228772">"إضافة وضع"</string>
<string name="zen_mode_settings_summary" msgid="6040862775514495191">"ستصلك الإشعارات من الأشخاص المهمّين والتطبيقات المهمّة فقط"</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:00 بعد الظهر\""</string>
<string name="zen_mode_select_schedule_calendar" msgid="4320676795917533667">"التقويم"</string>
<string name="zen_mode_select_schedule_calendar_example" msgid="6549820995975678001">"على سبيل المثال: \"التقويم الشخصي\""</string>
- <!-- no translation found for zen_mode_active_text (5002406772481439437) -->
- <skip />
- <!-- no translation found for zen_mode_disabled_needs_setup (389269759040103728) -->
- <skip />
- <!-- no translation found for zen_mode_disabled_by_user (138592173630683253) -->
- <skip />
+ <string name="zen_mode_active_text" msgid="5002406772481439437">"مفعَّل"</string>
+ <string name="zen_mode_disabled_needs_setup" msgid="389269759040103728">"لم يتم ضبط الوضع"</string>
+ <string name="zen_mode_disabled_by_user" msgid="138592173630683253">"غير مفعَّل"</string>
<string name="zen_mode_new_title" msgid="4934720193004330740">"إنشاء وضع"</string>
<string name="zen_mode_new_option_custom" msgid="1060993879440003341">"مخصَّص"</string>
<string name="zen_mode_slice_subtitle" msgid="6849372107272604160">"الحد من المقاطعات"</string>
@@ -3391,12 +3355,9 @@
<string name="zen_mode_automation_settings_title" msgid="3709324184191870926">"الجداول الزمنية"</string>
<string name="zen_mode_delete_automatic_rules" msgid="5020468289267191765">"حذف الجداول الزمنية"</string>
<string name="zen_mode_schedule_delete" msgid="5383420576833765114">"حذف"</string>
- <!-- no translation found for zen_mode_menu_rename_mode (4681802125016390837) -->
- <skip />
- <!-- no translation found for zen_mode_menu_delete_mode (5380084696402157428) -->
- <skip />
- <!-- no translation found for zen_mode_delete_mode_confirmation (7594340592051947392) -->
- <skip />
+ <string name="zen_mode_menu_rename_mode" msgid="4681802125016390837">"إعادة التسمية"</string>
+ <string name="zen_mode_menu_delete_mode" msgid="5380084696402157428">"حذف"</string>
+ <string name="zen_mode_delete_mode_confirmation" msgid="7594340592051947392">"هل تريد حذف وضع \"<xliff:g id="MODE">%1$s</xliff:g>\"؟"</string>
<string name="zen_mode_rule_name_edit" msgid="1053237022416700481">"تعديل"</string>
<string name="zen_mode_automation_settings_page_title" msgid="6217433860514433311">"الجداول الزمنية"</string>
<string name="zen_mode_automatic_rule_settings_page_title" msgid="5264835276518295033">"الجدول الزمني"</string>
@@ -3419,8 +3380,7 @@
<string name="zen_mode_visual_signals_settings_subtitle" msgid="7433077540895876672">"السماح بالإشارات المرئية"</string>
<string name="mode_interruption_filter_title" msgid="3343846700214702347">"الحفاظ على التركيز"</string>
<string name="mode_device_effects_title" msgid="5857008332618433744">"الإجراءات الإضافية"</string>
- <!-- no translation found for modes_sound_summary_off (6972648204528227879) -->
- <skip />
+ <string name="modes_sound_summary_off" msgid="6972648204528227879">"{count,plural, =0{غير مفعَّلة}=1{غير مفعّلة / يمكن تفعيل وضع واحد تلقائيًا}two{غير مفعّلة / يمكن تفعيل وضعين تلقائيًا}few{غير مفعّلة / يمكن تفعيل # أوضاع تلقائيًا}many{غير مفعّلة / يمكن تفعيل # وضعًا تلقائيًا}other{غير مفعّلة / يمكن تفعيل # وضع تلقائيًا}}"</string>
<string name="mode_display_settings_title" msgid="8132825978346535472">"إعدادات العرض"</string>
<string name="mode_display_options_section" msgid="5151597748243866532">"خيارات العرض"</string>
<string name="mode_grayscale_title" msgid="6027553257331235461">"تدرّج الرمادي"</string>
@@ -3522,7 +3482,7 @@
<string name="work_sound_same_as_personal" msgid="1836913235401642334">"مثل الملف الشخصي"</string>
<string name="work_sync_dialog_title" msgid="7810248132303515469">"هل تريد استخدام أصوات الملف الشخصي؟"</string>
<string name="work_sync_dialog_yes" msgid="5785488304957707534">"تأكيد"</string>
- <string name="work_sync_dialog_message" msgid="5066178064994040223">"سيستخدم ملفك الشخصي للعمل الأصوات نفسها التي يستخدمها ملفك الشخصي."</string>
+ <string name="work_sync_dialog_message" msgid="5066178064994040223">"سيستخدم ملف العمل الخاص بك الأصوات نفسها التي يستخدمها ملفك الشخصي."</string>
<string name="configure_notification_settings" msgid="1492820231694314376">"الإشعارات"</string>
<string name="notification_dashboard_summary" msgid="7530169251902320652">"سجلّ الإشعارات، والمحادثات"</string>
<string name="conversation_notifs_category" msgid="2549844862379963273">"المحادثة"</string>
@@ -3590,8 +3550,8 @@
<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>
- <string name="lock_screen_notifs_redact_work" msgid="3833920196569208430">"الإشعارات الحساسة بالملف الشخصي للعمل"</string>
- <string name="lock_screen_notifs_redact_work_summary" msgid="3238238380405430156">"عرض المحتوى الحسّاس بالملف الشخصي للعمل عند قفل الجهاز"</string>
+ <string name="lock_screen_notifs_redact_work" msgid="3833920196569208430">"الإشعارات الحساسة بملف العمل"</string>
+ <string name="lock_screen_notifs_redact_work_summary" msgid="3238238380405430156">"عرض المحتوى الحسّاس بملف العمل عند قفل الجهاز"</string>
<string name="lock_screen_notifications_summary_show" msgid="6540443483088311328">"عرض محتوى الإشعارات كاملاً"</string>
<string name="lock_screen_notifications_summary_hide" msgid="7837303171531166789">"عرض المحتوى الحسّاس عند فتح القفل فقط"</string>
<string name="lock_screen_notifications_summary_disable" msgid="3388290397947365744">"عدم عرض الإشعارات على الإطلاق"</string>
@@ -3673,7 +3633,7 @@
<string name="notif_type_conversation_summary" msgid="179142405410217101">"الرسائل القصيرة SMS والرسائل النصية والاتصالات الأخرى"</string>
<string name="notif_type_alerting" msgid="4713073696855718576">"الإشعارات"</string>
<string name="notif_type_alerting_summary" msgid="4681068287836313604">"يمكن إصدار رنين أو اهتزاز بناءً على الإعدادات"</string>
- <string name="notif_type_silent" msgid="6273951794420331010">"صامت"</string>
+ <string name="notif_type_silent" msgid="6273951794420331010">"الوضع الصامت"</string>
<string name="notif_type_silent_summary" msgid="7820923063105060844">"الإشعارات التي لا تصدِر صوتًا أو اهتزازًا مطلقًا"</string>
<string name="notification_listener_allowed" msgid="5536962633536318551">"التطبيقات المسموح لها"</string>
<string name="notification_listener_not_allowed" msgid="3352962779597846538">"التطبيقات غير المسموح لها"</string>
@@ -3683,12 +3643,9 @@
<string name="notif_listener_not_migrated" msgid="6265206376374278226">"لا يتوافق هذا التطبيق مع الإعدادات المحسَّنة."</string>
<string name="notif_listener_more_settings" msgid="1348409392307208921">"إعدادات إضافية"</string>
<string name="notif_listener_more_settings_desc" msgid="7995492074281663658">"تتوفّر إعدادات إضافية داخل التطبيق."</string>
- <!-- no translation found for notification_polite_title (4737150709382859870) -->
- <skip />
- <!-- no translation found for notification_polite_main_control_title (7267191551379543859) -->
- <skip />
- <!-- no translation found for notification_polite_description (7749280535620291610) -->
- <skip />
+ <string name="notification_polite_title" msgid="6121016426991791557">"فترة توقُّف الإشعارات"</string>
+ <string name="notification_polite_main_control_title" msgid="5812529809151927149">"استخدام الإعداد \"تخفيض الإشعارات الصوتية والاهتزاز\""</string>
+ <string name="notification_polite_description" msgid="5497748284893832854">"حينما تتلقّى الكثير من الإشعارات خلال وقت قصير، سيتم خفض مستوى صوت الجهاز وتقليل ظهور التنبيهات لمدة تصل إلى دقيقتين. ولن تتأثر المكالمات والمنبّهات والمحادثات ذات الأولوية بتلك الإجراءات. \n\nيمكنك العثور على الإشعارات المُرسلة إليك أثناء فترة تخفيض الإشعارات الصوتية والاهتزاز من خلال سحب الشاشة من أعلى لأسفل."</string>
<string name="notification_polite_work" msgid="8823596456640216391">"التطبيق على ملفات العمل"</string>
<string name="notification_polite_work_summary" msgid="5014189280132951378">"يسري على تطبيقات ملف العمل"</string>
<string name="vr_listeners_title" msgid="4960357292472540964">"خدمات تحسّن تجربة الواقع الافتراضي"</string>
@@ -3722,7 +3679,7 @@
<string name="interact_across_profiles_consent_dialog_permissions_summary" msgid="995051542847604039">"يمكن لهذا التطبيق استخدام أذونات تطبيقك الشخصي <xliff:g id="NAME">%1$s</xliff:g>، مثلاً الوصول إلى الموقع الجغرافي أو مساحة التخزين أو جهات الاتصال."</string>
<string name="interact_across_profiles_number_of_connected_apps_none" msgid="8573289199942092964">"ما مِن تطبيقات مرتبطة."</string>
<string name="interact_across_profiles_number_of_connected_apps" msgid="4000424798291479207">"{count,plural, =1{تم ربط تطبيق واحد}zero{لم يتم ربط أي تطبيق}two{تم ربط تطبيقَين}few{تم ربط # تطبيقات}many{تم ربط # تطبيقًا}other{تم ربط # تطبيق}}"</string>
- <string name="interact_across_profiles_install_work_app_title" msgid="2821669067014436056">"لربط هذه التطبيقات، عليك تثبيت تطبيق <xliff:g id="NAME">%1$s</xliff:g> في ملفك الشخصي للعمل."</string>
+ <string name="interact_across_profiles_install_work_app_title" msgid="2821669067014436056">"لربط هذه التطبيقات، عليك تثبيت تطبيق <xliff:g id="NAME">%1$s</xliff:g> في ملف العمل الخاص بك."</string>
<string name="interact_across_profiles_install_personal_app_title" msgid="4790651223324866344">"لربط هذه التطبيقات، عليك تثبيت تطبيق <xliff:g id="NAME">%1$s</xliff:g> في ملفك الشخصي."</string>
<string name="interact_across_profiles_install_app_summary" msgid="7715324358034968657">"انقر لتنزيل التطبيق."</string>
<string name="manage_zen_access_title" msgid="1562322900340107269">"الوصول إلى إعداد \"عدم الإزعاج\""</string>
@@ -3844,9 +3801,10 @@
<string name="zen_mode_apps_category" msgid="4082380323683889391">"التطبيقات التي يمكنها إيقاف الوضع"</string>
<string name="zen_mode_apps_priority_apps" msgid="7386196048313716076">"التطبيقات المحدَّدة"</string>
<string name="zen_mode_apps_none_apps" msgid="2493642312793604327">"ما مِن تطبيقات"</string>
- <!-- no translation found for zen_mode_apps_subtext (1764211974662012877) -->
- <skip />
+ <string name="zen_mode_apps_subtext" msgid="1764211974662012877">"{count,plural,offset:2 =0{عدم السماح لأي تطبيقات بتخطّي وضع \"عدم الإزعاج\"}=1{بإمكان \"{app_1}\" تخطّي وضع \"عدم الإزعاج\"}=2{بإمكان \"{app_1}\" و\"{app_2}\" تخطّي وضع \"عدم الإزعاج\"}=3{بإمكان \"{app_1}\" و\"{app_2}\" و\"{app_3}\" تخطّي وضع \"عدم الإزعاج\"}few{بإمكان \"{app_1}\" و\"{app_2}\" و# تطبيقات إضافية تخطّي وضع \"عدم الإزعاج\"}many{بإمكان \"{app_1}\" و\"{app_2}\" و# تطبيقًا إضافيًا تخطّي وضع \"عدم الإزعاج\"}other{بإمكان \"{app_1}\" و\"{app_2}\" و# تطبيق إضافي تخطّي وضع \"عدم الإزعاج\"}}"</string>
+ <string name="zen_mode_apps_work_app" msgid="8528767938316361588">"<xliff:g id="APP_LABEL">%s</xliff:g> (ملف العمل)"</string>
<string name="zen_mode_apps_calculating" msgid="5420121396943539286">"جارٍ الحساب…"</string>
+ <string name="zen_mode_plus_n_items" msgid="6136713354369243421">"+<xliff:g id="NUMBER">%d</xliff:g>"</string>
<string name="zen_mode_bypassing_apps" msgid="625309443389126481">"السماح للتطبيقات بإلغاء وضع \"عدم الإزعاج\""</string>
<string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"التطبيقات التي يمكنها مقاطعة عمل الميزة"</string>
<string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"اختيار مزيد من التطبيقات"</string>
@@ -3864,6 +3822,7 @@
<string name="zen_mode_sounds_none" msgid="6557474361948269420">"عدم السماح لأي مصدر بتجاوز وضع \"عدم الإزعاج\""</string>
<string name="zen_mode_people_none" msgid="4613147461974255046">"عدم السماح لأي شخص بتجاوز وضع \"عدم الإزعاج\""</string>
<string name="zen_mode_people_some" msgid="9101872681298810281">"السماح لبعض الأشخاص بتجاوز وضع \"عدم الإزعاج\""</string>
+ <string name="zen_mode_people_repeat_callers" msgid="4499084111069828761">"بإمكان المتصلين المتكرّرين تخطّي وضع \"عدم الإزعاج\""</string>
<string name="zen_mode_people_all" msgid="311036110283015205">"السماح لكل المستخدمين بمقاطعة عمل الميزة"</string>
<string name="zen_mode_repeat_callers" msgid="2270356100287792138">"المتصلون المتكرّرون"</string>
<string name="zen_mode_repeat_callers_title" msgid="8016699240338264781">"السماح بالمتصلين المتكررين"</string>
@@ -3883,13 +3842,37 @@
<string name="zen_mode_summary_alarms_only_by_hour" msgid="7400910210950788163">"{count,plural, =1{التغيير إلى التنبيهات لمدة ساعة واحدة فقط حتى {time}}zero{التغيير إلى التنبيهات لمدة # ساعة فقط حتى {time}}two{التغيير إلى التنبيهات لمدة ساعتَين فقط حتى {time}}few{التغيير إلى التنبيهات لمدة # ساعات فقط حتى {time}}many{التغيير إلى التنبيهات لمدة # ساعة فقط حتى {time}}other{التغيير إلى التنبيهات لمدة # ساعة فقط حتى {time}}}"</string>
<string name="zen_mode_summary_alarms_only_by_time" msgid="8140619669703968810">"التغيير إلى التنبيهات فقط حتى <xliff:g id="FORMATTEDTIME">%1$s</xliff:g>"</string>
<string name="zen_mode_summary_always" msgid="722093064250082317">"تغيير إلى المقاطعة دائمًا"</string>
- <!-- no translation found for zen_mode_rename_title (8146882272966214558) -->
+ <string name="zen_mode_rename_title" msgid="8146882272966214558">"تعديل الوضع"</string>
+ <string name="zen_mode_new_custom_title" msgid="321750898430776191">"إضافة وضع"</string>
+ <string name="zen_mode_new_custom_default_name" msgid="2778307946775085105">"وضع مخصّص"</string>
+ <string name="zen_mode_edit_name_hint" msgid="4584652062167540536">"اسم الوضع"</string>
+ <string name="zen_mode_trigger_title_schedule_calendar" msgid="9206609438617550331">"أحداث في التقويم"</string>
+ <string name="zen_mode_trigger_title_bedtime" msgid="5086070900588489978">"الجدول الزمني للنوم"</string>
+ <string name="zen_mode_trigger_title_driving" msgid="7890990983453164403">"أثناء القيادة"</string>
+ <string name="zen_mode_trigger_title_generic" msgid="601273385119550420">"مرتبطة بالتطبيق"</string>
+ <string name="zen_mode_trigger_summary_settings_in_app" msgid="4860667191183702601">"المعلومات والإعدادات في \"<xliff:g id="APP_NAME">%1$s</xliff:g>\""</string>
+ <string name="zen_mode_trigger_summary_managed_by_app" msgid="8631011868193102098">"تحت إدارة \"<xliff:g id="APP_NAME">%1$s</xliff:g>\""</string>
+ <string name="zen_mode_confirm_disable_title" msgid="1232297660775719796">"إيقاف الوضع"</string>
+ <string name="zen_mode_confirm_disable_message" msgid="7315541221665718491">"في حال إيقاف هذه الميزة، لن يعمل الوضع على النحو المطلوب وسيتم إخفاء إعداداته."</string>
+ <string name="zen_mode_action_disable" msgid="3552921561331044881">"إيقاف"</string>
+ <string name="zen_mode_confirm_enable_title" msgid="5683371335847448595">"تفعيل الوضع"</string>
+ <string name="zen_mode_confirm_enable_message" msgid="7017879133260011419">"في حال تفعيل هذه الميزة، سيتم تلقائيًا تفعيل الوضع وفقًا لجدوله الزمني."</string>
+ <string name="zen_mode_action_enable" msgid="1161480633223176531">"تفعيل"</string>
+ <!-- no translation found for zen_mode_blurb_schedule_time (8223898702097484009) -->
<skip />
- <!-- no translation found for zen_mode_new_custom_title (321750898430776191) -->
+ <!-- no translation found for zen_mode_blurb_schedule_calendar (382177907856065945) -->
<skip />
- <!-- no translation found for zen_mode_new_custom_default_name (2778307946775085105) -->
+ <!-- no translation found for zen_mode_blurb_bedtime (6155075956151013457) -->
<skip />
- <!-- no translation found for zen_mode_edit_name_hint (4584652062167540536) -->
+ <!-- no translation found for zen_mode_blurb_driving (1316054379000667305) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_immersive (5884004861848687869) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_theater (2999237960059524225) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_managed (5473921634985032149) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_generic (3041601339807075625) -->
<skip />
<string name="warning_button_text" msgid="1274234338874005639">"تحذير"</string>
<string name="suggestion_button_close" msgid="6865170855573283759">"إغلاق"</string>
@@ -4160,7 +4143,7 @@
<string name="disabled_by_policy_parental_consent" msgid="9166060049019018978">"عليك إعطاء الهاتف لأحد الوالدَين للسماح بتغيير هذا الإعداد."</string>
<string name="default_admin_support_msg" msgid="8816296554831532033">"لمزيد من المعلومات، يمكنك التواصل مع مشرف تكنولوجيا المعلومات."</string>
<string name="admin_support_more_info" msgid="8407433155725898290">"مزيد من التفاصيل"</string>
- <string name="admin_profile_owner_message" msgid="8860709969532649195">"يمكن للمشرف مراقبة التطبيقات والبيانات المرتبطة بالملفات الشخصية للعمل وإدارتها، بما في ذلك الإعدادات والأذونات والدخول إلى المؤسسة ونشاط الشبكة ومعلومات موقع الجهاز."</string>
+ <string name="admin_profile_owner_message" msgid="8860709969532649195">"يمكن للمشرف مراقبة التطبيقات والبيانات المرتبطة بملفات العمل وإدارتها، بما في ذلك الإعدادات والأذونات والدخول إلى المؤسسة ونشاط الشبكة ومعلومات موقع الجهاز."</string>
<string name="admin_profile_owner_user_message" msgid="4929926887231544950">"يمكن للمشرف مراقبة التطبيقات والبيانات المرتبطة بهذا المستخدم وإدارتها، بما في ذلك الإعدادات والأذونات والدخول إلى المؤسسة ونشاط الشبكة ومعلومات موقع الجهاز."</string>
<string name="admin_device_owner_message" msgid="5503131744126520590">"يمكن للمشرف مراقبة التطبيقات والبيانات المرتبطة بهذا الجهاز وإدارتها، بما في ذلك الإعدادات والأذونات والدخول إلى المؤسسة ونشاط الشبكة ومعلومات موقع الجهاز."</string>
<string name="admin_financed_message" msgid="1156197630834947884">"قد يتمكن مشرف الجهاز من الوصول إلى البيانات المرتبطة بهذا الجهاز وإدارة التطبيقات وتغيير إعدادات الجهاز."</string>
@@ -4462,7 +4445,7 @@
<string name="enterprise_privacy_global_http_proxy" msgid="4350347418068037051">"تم ضبط الخادم الوكيل HTTP العام"</string>
<string name="enterprise_privacy_ca_certs_device" msgid="1816495877258727663">"بيانات الاعتماد الموثوقة"</string>
<string name="enterprise_privacy_ca_certs_personal" msgid="1516422660828485795">"بيانات اعتماد موثوقة في ملفك الشخصي"</string>
- <string name="enterprise_privacy_ca_certs_work" msgid="4318941788592655561">"بيانات اعتماد موثوقة في ملفك الشخصي للعمل"</string>
+ <string name="enterprise_privacy_ca_certs_work" msgid="4318941788592655561">"بيانات اعتماد موثوقة في ملف العمل الخاص بك"</string>
<string name="enterprise_privacy_number_ca_certs" msgid="4540897122831942658">"{count,plural, =1{شهادة CA واحدة كحد أدنى}zero{# شهادة CA كحد أدنى}two{شهادتا CA كحد أدنى}few{# شهادات CA كحد أدنى}many{# شهادة CA كحد أدنى}other{# شهادة CA كحد أدنى}}"</string>
<string name="enterprise_privacy_lock_device" msgid="464054894363899866">"يمكن للمشرف قفل الجهاز وإعادة ضبط كلمة المرور"</string>
<string name="enterprise_privacy_wipe_device" msgid="869589182352244591">"يمكن للمشرف حذف جميع بيانات الجهاز"</string>
@@ -4877,9 +4860,8 @@
<string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"البطارية"</string>
<string name="settings_panel_title" msgid="346363079938069215">"لوحة الإعدادات"</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>
+ <!-- no translation found for enable_desktop_mode_on_secondary_display (2609567824593768780) -->
+ <skip />
<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>
@@ -5058,7 +5040,6 @@
<string name="default_active_sim_mobile_data" msgid="6798083892814045301">"بيانات الجوّال"</string>
<string name="wifi_scan_notify_message" msgid="1331238142061476869">"لتحسين تجربة استخدامك للجهاز، يظل بإمكان التطبيقات والخدمات البحث عن شبكات Wi‑Fi في أي وقت، حتى عند إيقاف ميزة Wi‑Fi. ويمكن استخدام هذا الإجراء لتحسين الميزات والخدمات المستندة إلى الموقع الجغرافي مثلاً. وبإمكانك تغيير هذا الخيار في إعدادات البحث عن شبكات Wi-Fi."</string>
<string name="wifi_scan_change" msgid="8438320311511852918">"تغيير"</string>
- <string name="preference_summary_default_combination" msgid="4643585915107796253">"<xliff:g id="STATE">%1$s</xliff:g> / <xliff:g id="NETWORKMODE">%2$s</xliff:g>"</string>
<string name="mobile_data_connection_active" msgid="2422223108911581552">"متصلة بالإنترنت"</string>
<string name="mobile_data_temp_connection_active" msgid="3430470299756236413">"متصلة مؤقتًا"</string>
<string name="mobile_data_temp_using" msgid="5211002380149434155">"استخدام \"<xliff:g id="SUBNAME">%1$s</xliff:g>\" مؤقتًا"</string>
@@ -5090,8 +5071,7 @@
<string name="app_pinning_main_switch_title" msgid="5465506660064032876">"استخدام ميزة \"تثبيت الشاشة على تطبيق معيّن\""</string>
<string name="developer_options_main_switch_title" msgid="1720074589554152501">"استخدام ميزة \"خيارات المطورين\""</string>
<string name="default_print_service_main_switch_title" msgid="4697133737128324036">"استخدام خدمة الطباعة"</string>
- <!-- no translation found for multiple_users_main_switch_title (9158796544835843201) -->
- <skip />
+ <string name="multiple_users_main_switch_title" msgid="9158796544835843201">"السماح بتبديل المستخدمين"</string>
<string name="multiple_users_main_switch_keywords" msgid="4845954458094134356">"السماح، متعدد، مستخدم، سماح، عديد"</string>
<string name="multiple_users_title_keywords" msgid="2395593167746225172">"مستخدمون متعددون، مستخدمون، ملفات شخصية، أشخاص، حسابات، تبديل، غير ذلك"</string>
<string name="wireless_debugging_main_switch_title" msgid="8463499572781441719">"استخدام ميزة \"تصحيح الأخطاء اللاسلكي\""</string>
@@ -5205,9 +5185,11 @@
<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="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_enable_freeform_support" msgid="3697462756493543645">"يجب إعادة التشغيل لتفعيل عرض النوافذ الحرة."</string>
+ <!-- no translation found for reboot_dialog_override_desktop_mode (7480950772574354130) -->
+ <skip />
+ <!-- no translation found for reboot_dialog_enable_desktop_mode_on_secondary_display (1153621881052401924) -->
+ <skip />
<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>
@@ -5438,6 +5420,6 @@
<string name="audio_streams_main_page_password_dialog_join_button" msgid="2967747276379153408">"الاستماع إلى البث"</string>
<string name="audio_streams_main_page_qr_code_scanner_summary" msgid="5312980105735143360">"عليك أن تمسح ضوئيًا رمز الاستجابة السريعة للبث الصوتي للاستماع إليه باستخدام \"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\""</string>
<string name="audio_streams_main_page_password_dialog_cannot_edit" msgid="9020898619297520153">"لا يمكن تعديل كلمة المرور أثناء المشاركة. ولتعديلها، عليك أولاً إيقاف ميزة \"مشاركة الصوت\"."</string>
- <!-- no translation found for homepage_search (6759334912284663559) -->
- <skip />
+ <string name="audio_streams_qr_code_scanner_label" msgid="8799703301071378034">"الماسح الضوئي لرمز الاستجابة السريعة"</string>
+ <string name="homepage_search" msgid="6759334912284663559">"البحث في \"الإعدادات\""</string>
</resources>
diff --git a/res/values-as/strings.xml b/res/values-as/strings.xml
index 7b2d5c9..8e9d554 100644
--- a/res/values-as/strings.xml
+++ b/res/values-as/strings.xml
@@ -41,6 +41,7 @@
<string name="radioInfo_data_suspended" msgid="2001254415431299603">"স্থগিত"</string>
<string name="radioInfo_unknown" msgid="2892562356748600367">"অজ্ঞাত"</string>
<string name="preview_pager_content_description" msgid="3762247188224576303">"পূৰ্বদৰ্শন"</string>
+ <string name="qr_code_content_description" msgid="1852208464419291347">"কিউআৰ ক’ড"</string>
<string name="font_size_make_smaller_desc" msgid="4978038055549590140">"সৰু কৰক"</string>
<string name="font_size_make_larger_desc" msgid="5583046033381722247">"ডাঙৰ কৰক"</string>
<string name="stay_awake_on_fold_title" msgid="6590454679898134221">"সদায়"</string>
@@ -283,7 +284,7 @@
<string name="location_settings_summary_location_off" msgid="4797932754681162262">"অফ আছে"</string>
<string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{অন আছে / # টা এপে অৱস্থান এক্সেছ কৰিব পাৰে}one{অন আছে / # টা এপে অৱস্থান এক্সেছ কৰিব পাৰে}other{অন আছে / # টা এপে অৱস্থান এক্সেছ কৰিব পাৰে}}"</string>
<string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"ল’ড হৈ আছে…"</string>
- <string name="location_settings_footer_general" msgid="1040507068701188821">"নিকটৱৰ্তী ডিভাইচৰ সৈতে যোগাযোগ কৰিব পৰাৰ অনুমতি থকা এপ্সমূহে সংযুক্ত হৈ থকা ডিভাইচৰ আপেক্ষিক স্থান নিৰ্ধাৰণ কৰিব পাৰে।"</string>
+ <string name="location_settings_footer_general" msgid="3447585552176173502">"নিকটৱৰ্তী ডিভাইচৰ সৈতে যোগাযোগ কৰিব পৰাৰ অনুমতি থকা এপ্সমূহে সংযুক্ত হৈ থকা ডিভাইচৰ আপেক্ষিক স্থান নিৰ্ধাৰণ কৰিব পাৰে।"</string>
<string name="location_settings_footer_location_off" msgid="8568995909147566720">"এপ্ আৰু সেৱাৰ বাবে অৱস্থানৰ এক্সেছ অফ কৰা আছে। আপুনি কোনো জৰুৰীকালীন নম্বৰলৈ কল কৰিলে অথবা বাৰ্তা পঠিয়ালে আপোনাৰ ডিভাইচৰ অৱস্থান তথাপি জৰুৰীকালীন পৰিস্থিতিত সঁহাৰি দিয়া লোকলৈ পঠিওৱা হ’ব পাৰে।"</string>
<string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"অৱস্থানৰ ছেটিঙৰ বিষয়ে অধিক জানক"</string>
<string name="location_settings_tooltip_text_for_chrome" msgid="5781821709250544575">"সলনি কৰিবলৈ ChromeOS ছেটিং > গোপনীয়তা আৰু সুৰক্ষা > গোপনীয়তাৰ নিয়ন্ত্ৰণ > অৱস্থানৰ এক্সেছলৈ যাওক"</string>
@@ -850,7 +851,6 @@
<string name="nfc_reboot_dialog_title" msgid="2033983438635768169">"ডিভাইচটো ৰিষ্টাৰ্ট কৰিবনে?"</string>
<string name="nfc_reboot_dialog_message" msgid="4929353168157966992">"সবিশেষ NFC লগিং কেৱল বিকাশৰ উদ্দেশ্যে কৰা হয়। অতিৰিক্ত NFC ডেটা বাগ ৰিপ’ৰ্টসমূহত অন্তৰ্ভুক্ত কৰা হয়, য’ত ব্যক্তিগত তথ্য থাকিব পাৰে। এই ছেটিং সলনি কৰিবলৈ আপোনাৰ ডিভাইচটো ৰিষ্টাৰ্ট কৰক।"</string>
<string name="nfc_reboot_dialog_confirm" msgid="4769763632008584567">"ৰিষ্টাৰ্ট কৰক"</string>
- <string name="keywords_external_display" msgid="4181375057920134909">"মিৰ’ৰ, বাহ্যিক ডিছপ্লে’, সংযুক্ত ডিছপ্লে’, ইউএছবি ডিছপ্লে’, ৰিজ’লিউশ্বন, ঘূৰ্ণন"</string>
<string name="external_display_on" msgid="2560104443500154333">"অন আছে"</string>
<string name="external_display_off" msgid="5634413756025351374">"অফ আছে"</string>
<string name="external_display_settings_title" msgid="6256884595821605779">"বাহ্যিক ডিছপ্লে’"</string>
@@ -1918,6 +1918,8 @@
<string name="slow_keys_summary" msgid="1784371292745423292">"<xliff:g id="SLOW_KEYS_THRESHOLD">%1$d</xliff:g> এমএছ সক্ৰিয় কৰিবলৈ এটা কী টিপাৰ বাবে লগা সময় মিলাওক"</string>
<string name="sticky_keys" msgid="7317317044898161747">"ষ্টিকী কী"</string>
<string name="sticky_keys_summary" msgid="1844953803625480623">"একেলগে কীসমূহ টিপি ধৰি থকাৰ সলনি শ্বৰ্টকাটৰ বাবে এবাৰত এটা কী টিপক"</string>
+ <string name="mouse_keys" msgid="6237254627808525540">"মাউছ কীসমূহ"</string>
+ <string name="mouse_keys_summary" msgid="2396247040177734245">"মাউছটো নিয়ন্ত্ৰণ কৰিবলৈ কায়িক কীব\'ৰ্ড ব্যৱহাৰ কৰক।"</string>
<string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"কীব’ৰ্ডৰ শ্বৰ্টকাটসমূহ"</string>
<string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"শ্বৰ্টকাটৰ সূচী দেখুৱাওক"</string>
<string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"কৰ্মস্থানৰ প্ৰ’ফাইল আৰু সঁজুলি"</string>
@@ -2175,8 +2177,6 @@
<string name="accessibility_shortcut_edit_dialog_summary_floating_button" msgid="6266489864614886247">"ওপঙি থকা বুটামটোত টিপক"</string>
<string name="accessibility_shortcut_edit_dialog_title_software_by_gesture" msgid="4775049370625630546">"সাধ্য সুবিধাৰ নিৰ্দেশ"</string>
<string name="accessibility_shortcut_edit_dialog_summary_software" msgid="8315934725362849788">"আপোনাৰ স্ক্ৰীনখনৰ একেবাৰে তলৰ অংশত থকা সাধ্য সুবিধাৰ বুটামটো <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g> টিপক। সুবিধাসমূহ সালসলনিকৈ ব্যৱহাৰ কৰিবলৈ সাধ্য সুবিধাৰ বুটামটো স্পৰ্শ কৰি ধৰি ৰাখক।"</string>
- <string name="accessibility_shortcut_edit_dialog_summary_software_gesture" msgid="8292555254353761635">"একেবাৰে তলিৰ পৰা ওপৰলৈ ২ টা আঙুলিৰে ছোৱাইপ কৰক।\n\nসেৱাসমূহ সালসলনিকৈ ব্যৱহাৰ কৰিবলৈ ২ টা আঙুলিৰে ওপৰলৈ ছোৱাইপ কৰি ধৰি ৰাখক।"</string>
- <string name="accessibility_shortcut_edit_dialog_summary_software_gesture_talkback" msgid="84483464524360845">"একেবাৰে তলিৰ পৰা ওপৰলৈ ৩ টা আঙুলিৰে ছোৱাইপ কৰক।\n\nসেৱাসমূহ সালসলনিকৈ ব্যৱহাৰ কৰিবলৈ ৩ টা আঙুলিৰে ওপৰলৈ ছোৱাইপ কৰি ধৰি ৰাখক।"</string>
<string name="accessibility_shortcut_edit_dialog_summary_gesture" msgid="2081123009255579884">"{count,plural, =1{আপোনাৰ স্ক্ৰীনৰ একেবাৰে তলৰ অংশৰ পৰা ওপৰলৈ ছোৱাইপ কৰক। সুবিধাসমূহ সালসলনিকৈ ব্যৱহাৰ কৰিবলৈ, ওপৰলৈ ছোৱাইপ কৰি কিছু সময় ধৰি থাকক।}one{আপোনাৰ স্ক্ৰীনৰ একেবাৰে তলৰ অংশৰ পৰা ওপৰলৈ # টা আঙুলিৰে ছোৱাইপ কৰক। সুবিধাসমূহ সালসলনিকৈ ব্যৱহাৰ কৰিবলৈ # টা আঙুলিৰে ওপৰলৈ ছোৱাইপ কৰি ধৰি ৰাখক।}other{আপোনাৰ স্ক্ৰীনৰ একেবাৰে তলৰ অংশৰ পৰা ওপৰলৈ # টা আঙুলিৰে ছোৱাইপ কৰক। সুবিধাসমূহ সালসলনিকৈ ব্যৱহাৰ কৰিবলৈ # টা আঙুলিৰে ওপৰলৈ ছোৱাইপ কৰি ধৰি ৰাখক।}}"</string>
<string name="accessibility_shortcut_edit_dialog_summary_software_floating" msgid="4459254227203203324"><annotation id="link">"অধিক বিকল্প"</annotation></string>
<string name="footer_learn_more_content_description" msgid="8843798273152131341">"<xliff:g id="SERVICE">%1$s</xliff:g>ৰ বিষয়ে অধিক জানক"</string>
@@ -2187,16 +2187,12 @@
<string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="844089763968552142">"ভলিউম কী"</string>
<string name="accessibility_shortcut_hardware_keyword" msgid="2483152542320987022">"ভলিউম কী"</string>
<string name="accessibility_shortcut_edit_dialog_summary_hardware" msgid="2503134386397991634">"দুয়োটা ভলিউম কী টিপক আৰু হেঁচি ৰাখক"</string>
- <string name="accessibility_shortcut_edit_dialog_title_two_finger_double_tap" msgid="2271778556854020996">"দুটা আঙুলিৰে স্ক্ৰীনত দুবাৰ টিপা"</string>
<string name="accessibility_shortcut_edit_screen_title_two_finger_double_tap" msgid="8952595692906527694">"%1$d-টা আঙুলিৰে দুবাৰ টিপক"</string>
<string name="accessibility_shortcut_edit_screen_summary_two_finger_double_tap" msgid="385404127425496362">"স্ক্ৰীনখন ক্ষিপ্ৰভাৱে %1$d টা আঙুলিৰে দুবাৰ টিপক"</string>
<string name="accessibility_shortcut_edit_screen_title_triple_tap" msgid="3314488747597058942">"তিনিবাৰ টিপক"</string>
<string name="accessibility_shortcut_edit_screen_summary_triple_tap" msgid="4839204951599629871">"স্ক্ৰীনখন ক্ষিপ্ৰভাৱে %1$d বাৰ টিপক। এইটোৱে আপোনাৰ ডিভাইচটো লেহেমীয়া কৰিব পাৰে।"</string>
<string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="6271718715836961167">"%1$d-টা আঙুলিৰে দুবাৰ টিপক"</string>
- <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"দুটা আঙুলিৰে স্ক্ৰীনখনত খৰতকীয়াকৈ {0,number,integer} বাৰ টিপক"</string>
- <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"স্ক্রীনখনত তিনিবাৰ টিপক"</string>
<string name="accessibility_shortcut_triple_tap_keyword" msgid="5359347130888464334">"তিনিবাৰ টিপক"</string>
- <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"স্ক্ৰীনখনত ক্ষিপ্ৰতাৰে {0,number,integer} বাৰ টিপক। এই শ্বৰ্টকাটটোৱে আপোনাৰ ডিভাইচটো লেহেমীয়া কৰিব পাৰে"</string>
<string name="accessibility_shortcut_edit_dialog_title_advance" msgid="4567868630655591506">"উচ্চখাপৰ"</string>
<string name="accessibility_screen_magnification_navbar_configuration_warning" msgid="266736851606791552">"দিব্যাংগসকলৰ সুবিধাৰ বুটামটো <xliff:g id="SERVICE">%1$s</xliff:g> হিচাপে ছেট কৰা হৈ আছে। বিবৰ্ধন ব্যৱহাৰ কৰিবলৈ বুটামটো হেঁচি ৰাখক আৰু তাৰ পাছত বিবৰ্ধন বাছনি কৰক।"</string>
<string name="accessibility_screen_magnification_gesture_navigation_warning" msgid="991017769735632046">"সাধ্য সুবিধাৰ নিৰ্দেশ <xliff:g id="SERVICE">%1$s</xliff:g>ত ছেট কৰা হৈছে। বিবৰ্ধন ব্যৱহাৰ কৰিবলৈ দুটা আঙুলিৰে স্ক্ৰীনৰ তলৰ পৰা ওপৰলৈ ছোৱাইপ কৰক আৰু ধৰি ৰাখক। তাৰপাছত বিবৰ্ধন বাছনি কৰক।"</string>
@@ -2365,6 +2361,7 @@
<string name="daltonizer_mode_tritanomaly_title" msgid="2278786218762602022">"নীলা-হালধীয়া"</string>
<string name="daltonizer_mode_grayscale_title" msgid="152005391387952588">"গ্ৰে’স্কে’ল"</string>
<string name="daltonizer_saturation_title" msgid="2999486412114963068">"তীব্ৰতা"</string>
+ <string name="daltonizer_saturation_unavailable_summary" msgid="8319753055567798775">"গ্ৰে’স্কে’ল ম\'ডৰ বাবে বা ৰং শুধৰণী অক্ষম কৰি থোৱা থাকিলে উপলব্ধ নহয়"</string>
<string name="daltonizer_mode_deuteranomaly_summary" msgid="2117727423019598455">"সেউজীয়া দুৰ্বল, ডিউটাৰএন’মেলী"</string>
<string name="daltonizer_mode_protanomaly_summary" msgid="4617032854982040748">"ৰঙা দুৰ্বল, প্ৰ’টান’মেলী"</string>
<string name="daltonizer_mode_tritanomaly_summary" msgid="2428218320118180070">"ট্ৰাইটান\'মেলী"</string>
@@ -2414,15 +2411,8 @@
<string name="color_cyan" msgid="4341758639597035927">"চাইয়ান"</string>
<string name="color_yellow" msgid="5957551912912679058">"হালধীয়া"</string>
<string name="color_magenta" msgid="8943538189219528423">"মেজেণ্টা"</string>
- <string name="enable_service_title" msgid="7231533866953706788">"<xliff:g id="SERVICE">%1$s</xliff:g>ক আপোনাৰ ডিভাইচৰ সম্পূর্ণ নিয়ন্ত্ৰণ দিবনে?"</string>
<string name="capabilities_list_title" msgid="1225853611983394386">"<xliff:g id="SERVICE">%1$s</xliff:g>ক নিম্নোক্ত অনুমতিকেইটাৰ আৱশ্যক:"</string>
<string name="touch_filtered_warning" msgid="4225815157460318241">"যিহেতু এটা এপে অনুমতি বিচাৰি কৰা অনুৰোধ ঢাকি ধৰিছে, Settingsএ আপোনাৰ উত্তৰ সত্যাপন কৰিব পৰা নাই।"</string>
- <string name="accessibility_service_warning" msgid="6779187188736432618">"<xliff:g id="SERVICE">%1$s</xliff:g>এ এই ডিভাইচটোৰ সম্পূৰ্ণ নিয়ন্ত্ৰণ বিচাৰিছে। এই সেৱাটোৱে স্ক্ৰীন পঢ়িব পাৰে আৰু ব্যৱহাৰকাৰীৰ হৈ সাধ্য সুবিধাৰ প্ৰয়োজন অনুসৰি কাম কৰিব পাৰে। বেছিভাগ এপৰ ক্ষেত্ৰত এই নিয়ন্ত্ৰণৰ স্তৰ সঠিক নহয়।"</string>
- <string name="accessibility_service_warning_description" msgid="6573203795976134751">"আপোনাক সাধ্য সুবিধাৰ প্ৰয়োজনসমূহৰ জৰিয়তে সহায় কৰা এপ্সমূহৰ বাবে সম্পূর্ণ নিয়ন্ত্ৰণৰ সুবিধাটো সঠিক যদিও অধিকাংশ এপৰ বাবে এয়া সঠিক নহয়।"</string>
- <string name="accessibility_service_screen_control_title" msgid="324795030658109870">"চাওক আৰু স্ক্ৰীন নিয়ন্ত্ৰণ কৰক"</string>
- <string name="accessibility_service_screen_control_description" msgid="8431940515157990426">"ই স্ক্ৰীনৰ আটাইবোৰ সমল পঢ়িব পাৰে আৰু অন্য এপ্সমূহৰ ওপৰত সমল প্ৰদর্শন কৰিব পাৰে।"</string>
- <string name="accessibility_service_action_perform_title" msgid="1449360056585337833">"কার্যসমূহ চাওক আৰু কৰক"</string>
- <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"ই আপুনি কোনো এপ্ বা হার্ডৱেৰ ছেন্সৰৰ সৈতে কৰা ভাব-বিনিময় আৰু আপোনাৰ হৈ অন্য কোনো লোকে এপৰ সৈতে কৰা ভাব-বিনিময় ট্ৰেক কৰিব পাৰে।"</string>
<string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"অনুমতি দিয়ক"</string>
<string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"অস্বীকাৰ কৰক"</string>
<string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"অফ কৰক"</string>
@@ -3652,9 +3642,9 @@
<string name="notif_listener_not_migrated" msgid="6265206376374278226">"এই এপ্টোৱে উন্নত ছেটিং সমৰ্থন নকৰে"</string>
<string name="notif_listener_more_settings" msgid="1348409392307208921">"অধিক ছেটিং"</string>
<string name="notif_listener_more_settings_desc" msgid="7995492074281663658">"এই এপ্টোৰ ভিতৰত অধিক ছেটিং উপলব্ধ"</string>
- <string name="notification_polite_title" msgid="4737150709382859870">"অভিযোজিত জাননী"</string>
- <string name="notification_polite_main_control_title" msgid="7267191551379543859">"অভিযোজিত জাননী ব্যৱহাৰ কৰক"</string>
- <string name="notification_polite_description" msgid="7749280535620291610">"আপুনি কম সময়ৰ ভিতৰতে বহুতো জাননী পালে, আপোনাৰ ফ’নটোৱে ভলিউম হ্ৰাস কৰিব আৰু দুই মিনিটলৈকে স্ক্ৰীনত ওলোৱা পপ-আপ হ্ৰাস কৰিব। কল, এলাৰ্ম আৰু অগ্ৰাধিকাৰপ্ৰাপ্ত বাৰ্তালাপসমূহৰ বাবে তেতিয়াও কম্পন হ’ব, শব্দ কৰিব বা সেয়া স্ক্ৰীনত দেখা পোৱা যাব আৰু আপুনি স্ক্ৰীনখনৰ একেবাৰে ওপৰৰ পৰা তললৈ টানিলে আটাইবোৰ জাননী বিচাৰি পোৱাটো সহজ হ’ব।"</string>
+ <string name="notification_polite_title" msgid="6121016426991791557">"জাননী কুলডাউন কৰা"</string>
+ <string name="notification_polite_main_control_title" msgid="5812529809151927149">"জাননী কুলডাউন কৰাটো ব্যৱহাৰ কৰক"</string>
+ <string name="notification_polite_description" msgid="5497748284893832854">"আপুনি কম সময়ৰ ভিতৰতে বহুতো জাননী পালে, আপোনাৰ ডিভাইচটোৱে নিজৰ ভলিউম কমাব আৰু ২ মিনিটলৈকে সতৰ্কবাৰ্তাসমূহ মিনিমাইজ কৰিব। কল, এৰ্লাম আৰু অগ্ৰাধিকাৰপ্ৰাপ্ত বাৰ্তালাপত প্ৰভাৱ নপৰে। \n\nকুলডাউনৰ সময়ত পোৱা জাননী স্ক্ৰীনখনৰ একেবাৰে ওপৰৰ পৰা তললৈ টানি পাব পাৰি।"</string>
<string name="notification_polite_work" msgid="8823596456640216391">"কৰ্মস্থানৰ প্ৰ’ফাইলত প্ৰয়োগ কৰক"</string>
<string name="notification_polite_work_summary" msgid="5014189280132951378">"কৰ্মস্থানৰ প্ৰ’ফাইলৰ এপত প্ৰয়োগ কৰক"</string>
<string name="vr_listeners_title" msgid="4960357292472540964">"ভিআৰ সহায়ক সেৱা"</string>
@@ -3811,7 +3801,9 @@
<string name="zen_mode_apps_priority_apps" msgid="7386196048313716076">"বাছনি কৰা এপ্"</string>
<string name="zen_mode_apps_none_apps" msgid="2493642312793604327">"এটাও নহয়"</string>
<string name="zen_mode_apps_subtext" msgid="1764211974662012877">"{count,plural,offset:2 =0{কোনো এপে ব্যাঘাত জন্মাব নোৱাৰে}=1{{app_1}এ ব্যাঘাত জন্মাব পাৰে}=2{{app_1} আৰু {app_2}এ ব্যাঘাত জন্মাব পাৰে}=3{{app_1}, {app_2} আৰু {app_3}এ ব্যাঘাত জন্মাব পাৰে}one{{app_1}, {app_2} আৰু # টাই ব্যাঘাত জন্মাব পাৰে}other{{app_1}, {app_2} আৰু # টাই ব্যাঘাত জন্মাব পাৰে}}"</string>
+ <string name="zen_mode_apps_work_app" msgid="8528767938316361588">"<xliff:g id="APP_LABEL">%s</xliff:g> (কৰ্মস্থান)"</string>
<string name="zen_mode_apps_calculating" msgid="5420121396943539286">"গণনা কৰি থকা হৈছে…"</string>
+ <string name="zen_mode_plus_n_items" msgid="6136713354369243421">"+<xliff:g id="NUMBER">%d</xliff:g>"</string>
<string name="zen_mode_bypassing_apps" msgid="625309443389126481">"এপক অ\'ভাৰৰাইডৰ অনুমতি দিয়ক"</string>
<string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"ব্যাঘাত জন্মাব পৰা এপ্সমূহ"</string>
<string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"অধিক এপ্ বাছনি কৰক"</string>
@@ -3829,6 +3821,7 @@
<string name="zen_mode_sounds_none" msgid="6557474361948269420">"একোৱেই ব্যাঘাত জন্মাব নোৱাৰে"</string>
<string name="zen_mode_people_none" msgid="4613147461974255046">"কোনেও ব্যাঘাত জন্মাব নোৱাৰে"</string>
<string name="zen_mode_people_some" msgid="9101872681298810281">"কিছুমান মানুহে ব্যাঘাত জন্মাব পাৰে"</string>
+ <string name="zen_mode_people_repeat_callers" msgid="4499084111069828761">"বাৰে বাৰে কল কৰোঁতাই ব্যাঘাত জন্মাব পাৰে"</string>
<string name="zen_mode_people_all" msgid="311036110283015205">"সকলো মানুহে ব্যাঘাত জন্মাব পাৰে"</string>
<string name="zen_mode_repeat_callers" msgid="2270356100287792138">"পুনৰাই কল কৰা লোকসকল"</string>
<string name="zen_mode_repeat_callers_title" msgid="8016699240338264781">"পুনৰাই কল কৰা লোকসকলক অনুমতি দিয়ক"</string>
@@ -3852,6 +3845,26 @@
<string name="zen_mode_new_custom_title" msgid="321750898430776191">"ম’ড যোগ দিয়ক"</string>
<string name="zen_mode_new_custom_default_name" msgid="2778307946775085105">"কাষ্টম ক’ড"</string>
<string name="zen_mode_edit_name_hint" msgid="4584652062167540536">"ম’ডৰ নাম"</string>
+ <string name="zen_mode_trigger_title_schedule_calendar" msgid="9206609438617550331">"কেলেণ্ডাৰৰ অনুষ্ঠান"</string>
+ <string name="zen_mode_trigger_title_bedtime" msgid="5086070900588489978">"শোৱাৰ সময়সূচী"</string>
+ <string name="zen_mode_trigger_title_driving" msgid="7890990983453164403">"গাড়ী চলাই থাকোঁতে"</string>
+ <string name="zen_mode_trigger_title_generic" msgid="601273385119550420">"এপৰ সৈতে লিংক কৰা"</string>
+ <string name="zen_mode_trigger_summary_settings_in_app" msgid="4860667191183702601">"<xliff:g id="APP_NAME">%1$s</xliff:g>ত তথ্য আৰু ছেটিং"</string>
+ <string name="zen_mode_trigger_summary_managed_by_app" msgid="8631011868193102098">"<xliff:g id="APP_NAME">%1$s</xliff:g>এ পৰিচালনা কৰা"</string>
+ <string name="zen_mode_confirm_disable_title" msgid="1232297660775719796">"ম’ডটো অক্ষম কৰক"</string>
+ <string name="zen_mode_confirm_disable_message" msgid="7315541221665718491">"যদি আপুনি এই সুবিধাটো অক্ষম কৰে, তেন্তে ম’ডটোৱে আৰু বিচৰা ধৰণে কাম নকৰিব আৰু ইয়াৰ ছেটিং লুকুওৱা হ’ব।"</string>
+ <string name="zen_mode_action_disable" msgid="3552921561331044881">"অক্ষম কৰক"</string>
+ <string name="zen_mode_confirm_enable_title" msgid="5683371335847448595">"ম’ডটো সক্ষম কৰক"</string>
+ <string name="zen_mode_confirm_enable_message" msgid="7017879133260011419">"যদি আপুনি এই সুবিধাটো সক্ষম কৰে, তেন্তে ম’ডটো সেইটোৰ সময়সূচী অনুসৰি স্বয়ংক্ৰিয়ভাৱে সক্ৰিয় হ’ব।"</string>
+ <string name="zen_mode_action_enable" msgid="1161480633223176531">"সক্ষম কৰক"</string>
+ <string name="zen_mode_blurb_schedule_time" msgid="8223898702097484009">"নিয়মীয়া সময়সূচী অনুসৰণ কৰা এটা ম’ড ছেট কৰক"</string>
+ <string name="zen_mode_blurb_schedule_calendar" msgid="382177907856065945">"কেলেণ্ডাৰৰ অনুষ্ঠান আৰু আমন্ত্ৰণৰ সঁহাৰিৰ সৈতে ছিংক কৰিবলৈ এটা ম’ড ছেট কৰক"</string>
+ <string name="zen_mode_blurb_bedtime" msgid="6155075956151013457">"টোপনিৰ এক শান্তিদায়ক ৰুটিন ডিজাইন কৰক। এলাৰ্ম ছেট কৰক, স্ক্ৰীনৰ পোহৰ কমাওক আৰু জাননী অৱৰোধ কৰক।"</string>
+ <string name="zen_mode_blurb_driving" msgid="1316054379000667305">"এক ফ’কাছড আৰু বিভ্ৰান্তি-মুক্ত গাড়ী চালনাৰ বাবে পথত সুৰক্ষাক অগ্ৰাধিকাৰ দিয়ক"</string>
+ <string name="zen_mode_blurb_immersive" msgid="5884004861848687869">"মনোযোগ দিবলৈ আপোনাৰ ডিভাইচৰ পৰা বিভ্ৰান্তি বা বাধা অৱৰোধ কৰক"</string>
+ <string name="zen_mode_blurb_theater" msgid="2999237960059524225">"নীৰৱ পৰিৱেশৰ বাবে আটাইবোৰ বিভ্ৰান্তি আঁতৰাওক"</string>
+ <string name="zen_mode_blurb_managed" msgid="5473921634985032149">"পৃথক ব্যৱহাৰকাৰীৰ বাবে ডিভাইচৰ অভিজ্ঞতা আৰু ছেটিঙৰ ব্যক্তিগতকৰণ কৰক"</string>
+ <string name="zen_mode_blurb_generic" msgid="3041601339807075625">"কেৱল গুৰুত্বপূৰ্ণ লোক আৰু এপ্মূহক আপোনাৰ লগত যোগাযোগ কৰিবলৈ অনুমতি দি বাধা কম কৰক"</string>
<string name="warning_button_text" msgid="1274234338874005639">"সকীয়নি"</string>
<string name="suggestion_button_close" msgid="6865170855573283759">"বন্ধ কৰক"</string>
<string name="device_feedback" msgid="5351614458411688608">"ডিভাইচটো ব্যৱহাৰ কৰি কেনে লাগিছে জনাওক"</string>
@@ -4838,9 +4851,8 @@
<string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"বেটাৰী"</string>
<string name="settings_panel_title" msgid="346363079938069215">"ছেটিঙৰ পেনেল"</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>
+ <!-- no translation found for enable_desktop_mode_on_secondary_display (2609567824593768780) -->
+ <skip />
<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>
@@ -5015,7 +5027,6 @@
<string name="default_active_sim_mobile_data" msgid="6798083892814045301">"ম’বাইল ডেটা"</string>
<string name="wifi_scan_notify_message" msgid="1331238142061476869">"ডিভাইচৰ ব্যৱহাৰৰ অভিজ্ঞতা উন্নত কৰিবলৈ এপ্ আৰু সেৱাসমূহে তথাপি যিকোনো সময়ত, আনকি ৱাই-ফাই বন্ধ হৈ থাকিলেও ৱাই-ফাই নেটৱৰ্ক বিচাৰিবলৈ স্কেন কৰিব পাৰে। এয়া অৱস্থানভিত্তিক সুবিধা আৰু সেৱা উন্নত কৰা আদিৰ দৰে কাৰ্যৰ বাবে ব্যৱহাৰ কৰিব পাৰি। আপুনি ৱাই-ফাই স্কেনিঙৰ ছেটিঙত এইটো সলনি কৰিব পাৰে।"</string>
<string name="wifi_scan_change" msgid="8438320311511852918">"সলনি কৰক"</string>
- <string name="preference_summary_default_combination" msgid="4643585915107796253">"<xliff:g id="STATE">%1$s</xliff:g> / <xliff:g id="NETWORKMODE">%2$s</xliff:g>"</string>
<string name="mobile_data_connection_active" msgid="2422223108911581552">"সংযোজিত হৈ আছে"</string>
<string name="mobile_data_temp_connection_active" msgid="3430470299756236413">"অস্থায়ীভাৱে সংযোগ কৰা হৈছে"</string>
<string name="mobile_data_temp_using" msgid="5211002380149434155">"অস্থায়ীভাৱে <xliff:g id="SUBNAME">%1$s</xliff:g> ব্যৱহাৰ কৰা হৈছে"</string>
@@ -5161,9 +5172,11 @@
<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="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_enable_freeform_support" msgid="3697462756493543645">"ফ্ৰীফৰ্ম ৱিণ্ড’ সমৰ্থন সক্ষম কৰিবৰ বাবে এবাৰ ৰিবুট কৰাৰ প্ৰয়োজন।"</string>
+ <!-- no translation found for reboot_dialog_override_desktop_mode (7480950772574354130) -->
+ <skip />
+ <!-- no translation found for reboot_dialog_enable_desktop_mode_on_secondary_display (1153621881052401924) -->
+ <skip />
<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>
@@ -5394,5 +5407,6 @@
<string name="audio_streams_main_page_password_dialog_join_button" msgid="2967747276379153408">"ষ্ট্ৰীম শুনক"</string>
<string name="audio_streams_main_page_qr_code_scanner_summary" msgid="5312980105735143360">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>ৰ জৰিয়তে শুনিবলৈ অডিঅ’ ষ্ট্ৰীমৰ কিউআৰ ক’ড এটা স্কেন কৰক"</string>
<string name="audio_streams_main_page_password_dialog_cannot_edit" msgid="9020898619297520153">"শ্বেয়াৰ কৰি থকা সময়ত পাছৱৰ্ড সম্পাদনা কৰিব নোৱাৰি। পাছৱৰ্ডটো সলনি কৰিবলৈ, প্ৰথমে অডিঅ’ শ্বেয়াৰিং অফ কৰক।"</string>
+ <string name="audio_streams_qr_code_scanner_label" msgid="8799703301071378034">"কিউআৰ ক’ড স্কেনাৰ"</string>
<string name="homepage_search" msgid="6759334912284663559">"সন্ধানৰ ছেটিংসমূহ"</string>
</resources>
diff --git a/res/values-az/strings.xml b/res/values-az/strings.xml
index e7729f3..d907d97 100644
--- a/res/values-az/strings.xml
+++ b/res/values-az/strings.xml
@@ -41,6 +41,8 @@
<string name="radioInfo_data_suspended" msgid="2001254415431299603">"Dayandırılıb"</string>
<string name="radioInfo_unknown" msgid="2892562356748600367">"Naməlum"</string>
<string name="preview_pager_content_description" msgid="3762247188224576303">"Önizləmə"</string>
+ <!-- no translation found for qr_code_content_description (1852208464419291347) -->
+ <skip />
<string name="font_size_make_smaller_desc" msgid="4978038055549590140">"Kiçildin"</string>
<string name="font_size_make_larger_desc" msgid="5583046033381722247">"Böyüdün"</string>
<string name="stay_awake_on_fold_title" msgid="6590454679898134221">"Həmişə"</string>
@@ -283,7 +285,7 @@
<string name="location_settings_summary_location_off" msgid="4797932754681162262">"Deaktiv"</string>
<string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{Aktiv / # tətbiqin məkana girişi var}other{Aktiv / # tətbiqin məkana girişi var}}"</string>
<string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"Yüklənir…"</string>
- <string name="location_settings_footer_general" msgid="1040507068701188821">"\"Yaxınlıqdakı cihazlar\" icazəsi olan tətbiqlər qoşulmuş cihazların nisbi mövqeyini təyin edə bilər."</string>
+ <string name="location_settings_footer_general" msgid="3447585552176173502">"Yaxınlıqdakı cihazlar icazəsi olan tətbiqlər qoşulmuş cihazların nisbi mövqeyini təyin edə bilər."</string>
<string name="location_settings_footer_location_off" msgid="8568995909147566720">"Tətbiqlər və xidmətlər üçün məkan girişi deaktivdir. Təcili yardım nömrəsinə zəng etdikdə və ya mesaj göndərdikdə cihazınızın məkanı hələ də təcili yardım əməkdaşlarına göndərilə bilər."</string>
<string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Məkan ayarları haqqında ətraflı məlumat"</string>
<string name="location_settings_tooltip_text_for_chrome" msgid="5781821709250544575">"Dəyişmək üçün ChromeOS ayarları > Məxfilik və güvənlik > Məxfilik nizamlayıcıları > Məkana giriş bölməsinə keçin"</string>
@@ -850,7 +852,6 @@
<string name="nfc_reboot_dialog_title" msgid="2033983438635768169">"Cihaz yenidən başladılsın?"</string>
<string name="nfc_reboot_dialog_message" msgid="4929353168157966992">"Detallı NFC qeydi yalnız inkişaf məqsədləri üçün nəzərdə tutulub. Əlavə NFC məlumatları şəxsi məlumatları ehtiva edə bilən baq hesabatlarına daxil edilir. Bu ayarı dəyişmək üçün cihazı yenidən başladın."</string>
<string name="nfc_reboot_dialog_confirm" msgid="4769763632008584567">"Yenidən başladın"</string>
- <string name="keywords_external_display" msgid="4181375057920134909">"əksetdirmə, xarici displey, qoşulu displey, usb displey, ayırdetmə dəqiqliyi, fırlanma"</string>
<string name="external_display_on" msgid="2560104443500154333">"Aktiv"</string>
<string name="external_display_off" msgid="5634413756025351374">"Deaktiv"</string>
<string name="external_display_settings_title" msgid="6256884595821605779">"Xarici displey"</string>
@@ -1918,6 +1919,8 @@
<string name="slow_keys_summary" msgid="1784371292745423292">"Düymənin aktivləşdirilməsi vaxtını <xliff:g id="SLOW_KEYS_THRESHOLD">%1$d</xliff:g> ms-ə tənzimləyir"</string>
<string name="sticky_keys" msgid="7317317044898161747">"Əvəzedici düymələr"</string>
<string name="sticky_keys_summary" msgid="1844953803625480623">"Qısayollar üçün düymələri birlikdə basıb saxlamaq əvəzinə hər dəfə bir düyməyə basın"</string>
+ <string name="mouse_keys" msgid="6237254627808525540">"Maus düymələri"</string>
+ <string name="mouse_keys_summary" msgid="2396247040177734245">"Mausu idarə etmək üçün fiziki klaviaturadan istifadə edin."</string>
<string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"Klaviatura qısayolları"</string>
<string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"Qısayolların siyahısını göstərin"</string>
<string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"İş profili klaviaturaları və alətlər"</string>
@@ -1942,14 +1945,10 @@
<string name="pointer_fill_style_yellow_button" msgid="5025969961559379024">"Poynter doldurma üslubunu sarıya dəyişin"</string>
<string name="pointer_fill_style_pink_button" msgid="4106218142489635673">"Poynter doldurma üslubunu çəhrayıya dəyişin"</string>
<string name="pointer_fill_style_blue_button" msgid="5594958078854032785">"Poynter doldurma üslubunu maviyə dəyişin"</string>
- <!-- no translation found for pointer_stroke_style (1886986630216050665) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_white (673686194443825383) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_black (4655806167067437330) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_none (8953927511729800247) -->
- <skip />
+ <string name="pointer_stroke_style" msgid="1886986630216050665">"Poynterin vuruş tərzi"</string>
+ <string name="pointer_stroke_style_name_white" msgid="673686194443825383">"Ağ"</string>
+ <string name="pointer_stroke_style_name_black" msgid="4655806167067437330">"Qara"</string>
+ <string name="pointer_stroke_style_name_none" msgid="8953927511729800247">"Yoxdur"</string>
<string name="trackpad_touch_gesture" msgid="8641725062131922497">"Taçped jestlərini öyrənin"</string>
<string name="keywords_touchpad" msgid="8159846254066666032">"trekped, trek ped, maus, kursor, sürüşdürün, çəkin, sağ düymə ilə toxunun, klikləyin, poynter"</string>
<string name="keywords_trackpad_bottom_right_tap" msgid="1285062446073929305">"sağ düymə ilə toxunun, basın"</string>
@@ -2179,8 +2178,6 @@
<string name="accessibility_shortcut_edit_dialog_summary_floating_button" msgid="6266489864614886247">"Üzən düyməyə toxunun"</string>
<string name="accessibility_shortcut_edit_dialog_title_software_by_gesture" msgid="4775049370625630546">"Əlçatımlılıq jesti"</string>
<string name="accessibility_shortcut_edit_dialog_summary_software" msgid="8315934725362849788">"Ekranın aşağısında xüsusi imkanlar düyməsinə <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g> toxunun Funksiyalar arasında keçid üçün xüsusi imkanlar düyməsinə toxunub saxlayın."</string>
- <string name="accessibility_shortcut_edit_dialog_summary_software_gesture" msgid="8292555254353761635">"2 barmaq ilə ekranın aşağısından yuxarı doğru sürüşdürün\n\nFunksiyalar arasında keçid etmək üçün 2 barmaq ilə yuxarı doğru sürüşdürüb saxlayın."</string>
- <string name="accessibility_shortcut_edit_dialog_summary_software_gesture_talkback" msgid="84483464524360845">"3 barmaq ilə ekranın aşağısından yuxarı doğru sürüşdürün.\n\nFunksiyalar arasında keçid etmək üçün 3 barmaq ilə yuxarı sürüşdürüb saxlayın."</string>
<string name="accessibility_shortcut_edit_dialog_summary_gesture" msgid="2081123009255579884">"{count,plural, =1{Ekranın aşağısından yuxarı çəkin. Funksiyalar arasında keçid üçün yuxarı çəkib saxlayın.}other{Ekranın aşağısından # barmaqla yuxarı çəkin. Funksiyalar arasında keçid üçün # barmaqla yuxarı çəkib saxlayın.}}"</string>
<string name="accessibility_shortcut_edit_dialog_summary_software_floating" msgid="4459254227203203324"><annotation id="link">"Digər seçimlər"</annotation></string>
<string name="footer_learn_more_content_description" msgid="8843798273152131341">"<xliff:g id="SERVICE">%1$s</xliff:g> haqqında ətraflı məlumat"</string>
@@ -2191,16 +2188,12 @@
<string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="844089763968552142">"Səs düymələri"</string>
<string name="accessibility_shortcut_hardware_keyword" msgid="2483152542320987022">"səs düymələri"</string>
<string name="accessibility_shortcut_edit_dialog_summary_hardware" msgid="2503134386397991634">"Hər iki səs düyməsini basıb saxlayın"</string>
- <string name="accessibility_shortcut_edit_dialog_title_two_finger_double_tap" msgid="2271778556854020996">"Ekrana iki barmaqla iki dəfə toxunun"</string>
<string name="accessibility_shortcut_edit_screen_title_two_finger_double_tap" msgid="8952595692906527694">"%1$d barmaqla iki dəfə toxunun"</string>
<string name="accessibility_shortcut_edit_screen_summary_two_finger_double_tap" msgid="385404127425496362">"Ekrana %1$d barmaqla iki dəfə cəld toxunun"</string>
<string name="accessibility_shortcut_edit_screen_title_triple_tap" msgid="3314488747597058942">"Üç dəfə toxunun"</string>
<string name="accessibility_shortcut_edit_screen_summary_triple_tap" msgid="4839204951599629871">"Ekrana %1$d dəfə cəld toxunun. Cihaz yavaşlaya bilər."</string>
<string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="6271718715836961167">"%1$d barmaqla iki dəfə toxunun"</string>
- <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"Ekrana iki barmaqla {0,number,integer} dəfə cəld toxunun"</string>
- <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"Ekrana üç dəfə toxunun"</string>
<string name="accessibility_shortcut_triple_tap_keyword" msgid="5359347130888464334">"üç dəfə toxunun"</string>
- <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"Ekrana {0,number,integer} dəfə cəld toxunun. Bu qısayol cihazınızı yavaşlada bilər"</string>
<string name="accessibility_shortcut_edit_dialog_title_advance" msgid="4567868630655591506">"Qabaqcıl"</string>
<string name="accessibility_screen_magnification_navbar_configuration_warning" msgid="266736851606791552">"Əlçatımlılıq düyməsi <xliff:g id="SERVICE">%1$s</xliff:g> xidmətinə ayarlanıb. Böyütməni istifadə etmək üçün Əlçatımlılıq düyməsinə toxunaraq basıb saxlayın, daha sonra böyütmə seçin."</string>
<string name="accessibility_screen_magnification_gesture_navigation_warning" msgid="991017769735632046">"Əlçatımlılıq jesti <xliff:g id="SERVICE">%1$s</xliff:g> funksiyasına ayarlanıb. Miqyasdan istifadə etmək üçün ekranın yuxarısndan iki barmağınızla sürüşdürüb saxlayın. Sonra miqyası seçin."</string>
@@ -2369,6 +2362,7 @@
<string name="daltonizer_mode_tritanomaly_title" msgid="2278786218762602022">"Mavi-sarı"</string>
<string name="daltonizer_mode_grayscale_title" msgid="152005391387952588">"Ağ-qara"</string>
<string name="daltonizer_saturation_title" msgid="2999486412114963068">"İntensivlik"</string>
+ <string name="daltonizer_saturation_unavailable_summary" msgid="8319753055567798775">"Boz çalarlı rejim üçün və ya rəng korreksiyası deaktiv olduqda əlçatan deyil"</string>
<string name="daltonizer_mode_deuteranomaly_summary" msgid="2117727423019598455">"Yaşıl zəif, deuteranomaliya"</string>
<string name="daltonizer_mode_protanomaly_summary" msgid="4617032854982040748">"Qırmızı zəif, protanomaliya"</string>
<string name="daltonizer_mode_tritanomaly_summary" msgid="2428218320118180070">"Tritanomaliya"</string>
@@ -2418,15 +2412,8 @@
<string name="color_cyan" msgid="4341758639597035927">"Mavi"</string>
<string name="color_yellow" msgid="5957551912912679058">"Sarı"</string>
<string name="color_magenta" msgid="8943538189219528423">"Magenta"</string>
- <string name="enable_service_title" msgid="7231533866953706788">"<xliff:g id="SERVICE">%1$s</xliff:g> xidmətinin cihaza tam nəzarət etməsinə icazə vermək istəyirsiniz?"</string>
<string name="capabilities_list_title" msgid="1225853611983394386">"<xliff:g id="SERVICE">%1$s</xliff:g> etməlidir:"</string>
<string name="touch_filtered_warning" msgid="4225815157460318241">"Çünki, tətbiq icazə sorğusunu anlaşılmaz edir. Ayarlar cavabınızı doğrulaya bilməz."</string>
- <string name="accessibility_service_warning" msgid="6779187188736432618">"<xliff:g id="SERVICE">%1$s</xliff:g> cihaza tam nəzarət istəyir. Məlumatları ekrandan oxuya, xüsusi imkanlara ehtiyacı olan istifadəçilərin adından iş görə bilər. Tətbiqlərin çoxuna bu səviyyədə icazə vermək tövsiyə olunmur."</string>
- <string name="accessibility_service_warning_description" msgid="6573203795976134751">"Tam nəzarət icazəsi xüsusi imkanlara dair yardım edən tətbiqlərə lazımdır, digər tətbiqlərə lazım deyil."</string>
- <string name="accessibility_service_screen_control_title" msgid="324795030658109870">"Baxış və nəzarət ekranı"</string>
- <string name="accessibility_service_screen_control_description" msgid="8431940515157990426">"Ekrandakı bütün kontenti oxuya və kontenti digər tətbiqlərin üzərində göstərə bilər."</string>
- <string name="accessibility_service_action_perform_title" msgid="1449360056585337833">"Əməliyyatlara baxın və icra edin"</string>
- <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"Tətbiq və sensorlarla əlaqələrinizi izləyib tətbiqlərə adınızdan əmrlər verə bilər"</string>
<string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"İcazə verin"</string>
<string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"İmtina edin"</string>
<string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Deaktiv"</string>
@@ -3368,10 +3355,8 @@
<string name="zen_mode_automation_settings_title" msgid="3709324184191870926">"Cədvəllər"</string>
<string name="zen_mode_delete_automatic_rules" msgid="5020468289267191765">"Rejimləri silin"</string>
<string name="zen_mode_schedule_delete" msgid="5383420576833765114">"Silin"</string>
- <!-- no translation found for zen_mode_menu_rename_mode (4681802125016390837) -->
- <skip />
- <!-- no translation found for zen_mode_menu_delete_mode (5380084696402157428) -->
- <skip />
+ <string name="zen_mode_menu_rename_mode" msgid="4681802125016390837">"Yenidən adlandırın"</string>
+ <string name="zen_mode_menu_delete_mode" msgid="5380084696402157428">"Silin"</string>
<string name="zen_mode_delete_mode_confirmation" msgid="7594340592051947392">"\"<xliff:g id="MODE">%1$s</xliff:g>\" rejimi silinsin?"</string>
<string name="zen_mode_rule_name_edit" msgid="1053237022416700481">"Redaktə edin"</string>
<string name="zen_mode_automation_settings_page_title" msgid="6217433860514433311">"Cədvəllər"</string>
@@ -3395,8 +3380,7 @@
<string name="zen_mode_visual_signals_settings_subtitle" msgid="7433077540895876672">"Görünən siqnallara icazə verin"</string>
<string name="mode_interruption_filter_title" msgid="3343846700214702347">"Diqqətinizi cəmləyin"</string>
<string name="mode_device_effects_title" msgid="5857008332618433744">"Əlavə əməliyyatlar"</string>
- <!-- no translation found for modes_sound_summary_off (6972648204528227879) -->
- <skip />
+ <string name="modes_sound_summary_off" msgid="6972648204528227879">"{count,plural, =0{Sönülü}=1{Sönülü / 1 rejim avtomatik işə düşə bilər}other{Sönülü / # rejim avtomatik işə düşə bilər}}"</string>
<string name="mode_display_settings_title" msgid="8132825978346535472">"Displey ayarları"</string>
<string name="mode_display_options_section" msgid="5151597748243866532">"Displey seçimləri"</string>
<string name="mode_grayscale_title" msgid="6027553257331235461">"Boz çalarlı"</string>
@@ -3659,9 +3643,9 @@
<string name="notif_listener_not_migrated" msgid="6265206376374278226">"Bu tətbiq geniş ayarları dəstəkləmir"</string>
<string name="notif_listener_more_settings" msgid="1348409392307208921">"Digər ayarlar"</string>
<string name="notif_listener_more_settings_desc" msgid="7995492074281663658">"Bu tətbiqdə başqa ayarlar da var"</string>
- <string name="notification_polite_title" msgid="4737150709382859870">"Adaptiv bildirişlər"</string>
- <string name="notification_polite_main_control_title" msgid="7267191551379543859">"Adaptiv bildirişlərdən istifadə edin"</string>
- <string name="notification_polite_description" msgid="7749280535620291610">"Qısa müddətdə çoxlu bildiriş alanda telefon iki dəqiqəyədək səsi azaldacaq və ekrandakı popapları minimuma endirəcək. Zəng, alarm və prioritet söhbətlər yenə də vibrasiya edir, səs çıxarır və ya ekranda görünür. Ekranın yuxarısından aşağı çəkəndə bütün bildirişləri tapmaq olar."</string>
+ <string name="notification_polite_title" msgid="6121016426991791557">"Bildiriş səsinin azaldılması"</string>
+ <string name="notification_polite_main_control_title" msgid="5812529809151927149">"Bildiriş gözləmə müddətindən istifadə edin"</string>
+ <string name="notification_polite_description" msgid="5497748284893832854">"Qısa müddətdə çoxlu bildiriş alanda cihaz 2 dəqiqəyədək səsi azaldacaq və xəbərdarlıqları minimuma endirəcək. Zənglər, alarmlar və prioritet söhbətlər təsirə məruz qalmır. \n\nFasilə zamanı qəbul edilən bildirişləri ekranın yuxarısından aşağı çəkərək tapmaq olar."</string>
<string name="notification_polite_work" msgid="8823596456640216391">"İş profillərinə tətbiq edin"</string>
<string name="notification_polite_work_summary" msgid="5014189280132951378">"İş profili tətbiqlərinə tətbiq edin"</string>
<string name="vr_listeners_title" msgid="4960357292472540964">"VR köməkçi xidmətləri"</string>
@@ -3818,7 +3802,9 @@
<string name="zen_mode_apps_priority_apps" msgid="7386196048313716076">"Seçilmiş tətbiqlər"</string>
<string name="zen_mode_apps_none_apps" msgid="2493642312793604327">"Heç biri"</string>
<string name="zen_mode_apps_subtext" msgid="1764211974662012877">"{count,plural,offset:2 =0{Heç bir tətbiq bildiriş göndərə bilməz}=1{{app_1} bildiriş göndərə bilər}=2{{app_1} və {app_2} bildiriş göndərə bilər}=3{{app_1}, {app_2} və {app_3} bildiriş göndərə bilər}other{{app_1}, {app_2} və daha # tətbiq bildiriş göndərə bilər}}"</string>
+ <string name="zen_mode_apps_work_app" msgid="8528767938316361588">"<xliff:g id="APP_LABEL">%s</xliff:g> (İş)"</string>
<string name="zen_mode_apps_calculating" msgid="5420121396943539286">"Hesablanır…"</string>
+ <string name="zen_mode_plus_n_items" msgid="6136713354369243421">"+<xliff:g id="NUMBER">%d</xliff:g>"</string>
<string name="zen_mode_bypassing_apps" msgid="625309443389126481">"Tətbiqlərin rejimdən imtina etməsinə icazə verin"</string>
<string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"Narahat etmiş sayılmayan tətbiqlər"</string>
<string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"Daha çox tətbiq seçin"</string>
@@ -3836,6 +3822,7 @@
<string name="zen_mode_sounds_none" msgid="6557474361948269420">"Heç nə narahat edə bilməz"</string>
<string name="zen_mode_people_none" msgid="4613147461974255046">"Heç kim narahat edə bilməz"</string>
<string name="zen_mode_people_some" msgid="9101872681298810281">"Bəzi şəxslər narahat edə bilər"</string>
+ <string name="zen_mode_people_repeat_callers" msgid="4499084111069828761">"Təkrar zəng edənlər mane ola bilər"</string>
<string name="zen_mode_people_all" msgid="311036110283015205">"Bütün şəxslər narahat edə bilər"</string>
<string name="zen_mode_repeat_callers" msgid="2270356100287792138">"Təkrar zəng edənlər"</string>
<string name="zen_mode_repeat_callers_title" msgid="8016699240338264781">"Təkrarlanan zənglərə icazə verin"</string>
@@ -3855,13 +3842,37 @@
<string name="zen_mode_summary_alarms_only_by_hour" msgid="7400910210950788163">"{count,plural, =1{Yalnız bu vaxtadək bir saatlıq xəbərdarlıqlara dəyişin: {time}}other{Yalnız bu vaxtadək # saatlıq xəbərdarlıqlara dəyişin: {time}}}"</string>
<string name="zen_mode_summary_alarms_only_by_time" msgid="8140619669703968810">"Yalnız <xliff:g id="FORMATTEDTIME">%1$s</xliff:g> vaxtınadək xəbərdarlıqları dəyişin"</string>
<string name="zen_mode_summary_always" msgid="722093064250082317">"Həmişə fasiləyə dəyişin"</string>
- <!-- no translation found for zen_mode_rename_title (8146882272966214558) -->
+ <string name="zen_mode_rename_title" msgid="8146882272966214558">"Redaktə rejimi"</string>
+ <string name="zen_mode_new_custom_title" msgid="321750898430776191">"Rejim əlavə edin"</string>
+ <string name="zen_mode_new_custom_default_name" msgid="2778307946775085105">"Fərdi rejim"</string>
+ <string name="zen_mode_edit_name_hint" msgid="4584652062167540536">"Rejim adı"</string>
+ <string name="zen_mode_trigger_title_schedule_calendar" msgid="9206609438617550331">"Təqvim tədbirləri"</string>
+ <string name="zen_mode_trigger_title_bedtime" msgid="5086070900588489978">"Yuxu cədvəli"</string>
+ <string name="zen_mode_trigger_title_driving" msgid="7890990983453164403">"Avtomobil sürərkən"</string>
+ <string name="zen_mode_trigger_title_generic" msgid="601273385119550420">"Tətbiq ilə əlaqələndirilib"</string>
+ <string name="zen_mode_trigger_summary_settings_in_app" msgid="4860667191183702601">"<xliff:g id="APP_NAME">%1$s</xliff:g> tətbiqində məlumat və ayarlar"</string>
+ <string name="zen_mode_trigger_summary_managed_by_app" msgid="8631011868193102098">"<xliff:g id="APP_NAME">%1$s</xliff:g> tərəfindən idarə edilir"</string>
+ <string name="zen_mode_confirm_disable_title" msgid="1232297660775719796">"Rejimi deaktiv edin"</string>
+ <string name="zen_mode_confirm_disable_message" msgid="7315541221665718491">"Bu funksiyanı deaktiv etsəniz, rejim artıq nəzərdə tutulduğu kimi işləməyəcək və ayarları gizlədiləcək."</string>
+ <string name="zen_mode_action_disable" msgid="3552921561331044881">"Deaktiv edin"</string>
+ <string name="zen_mode_confirm_enable_title" msgid="5683371335847448595">"Rejimi aktivləşdirin"</string>
+ <string name="zen_mode_confirm_enable_message" msgid="7017879133260011419">"Bu funksiyanı aktivləşdirsəniz, rejim öz cədvəlinə uyğun olaraq avtomatik aktivləşəcək."</string>
+ <string name="zen_mode_action_enable" msgid="1161480633223176531">"Aktiv edin"</string>
+ <!-- no translation found for zen_mode_blurb_schedule_time (8223898702097484009) -->
<skip />
- <!-- no translation found for zen_mode_new_custom_title (321750898430776191) -->
+ <!-- no translation found for zen_mode_blurb_schedule_calendar (382177907856065945) -->
<skip />
- <!-- no translation found for zen_mode_new_custom_default_name (2778307946775085105) -->
+ <!-- no translation found for zen_mode_blurb_bedtime (6155075956151013457) -->
<skip />
- <!-- no translation found for zen_mode_edit_name_hint (4584652062167540536) -->
+ <!-- no translation found for zen_mode_blurb_driving (1316054379000667305) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_immersive (5884004861848687869) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_theater (2999237960059524225) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_managed (5473921634985032149) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_generic (3041601339807075625) -->
<skip />
<string name="warning_button_text" msgid="1274234338874005639">"Xəbərdarlıq"</string>
<string name="suggestion_button_close" msgid="6865170855573283759">"Bağlayın"</string>
@@ -4849,9 +4860,8 @@
<string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"Batareya"</string>
<string name="settings_panel_title" msgid="346363079938069215">"Ayarlar Paneli"</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>
+ <!-- no translation found for enable_desktop_mode_on_secondary_display (2609567824593768780) -->
+ <skip />
<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>
@@ -5026,7 +5036,6 @@
<string name="default_active_sim_mobile_data" msgid="6798083892814045301">"mobil data"</string>
<string name="wifi_scan_notify_message" msgid="1331238142061476869">"Cihaz təcrübəsini yaxşılaşdırmaq üçün Wi-Fi deaktiv olduqda belə, tətbiqlər və xidmətlər Wi-Fi şəbəkəsini axtara biləcək. Bununla da məkan haqqında məlumata ehtiyacı olan funksiya və xidmətlərin iş keyfiyyəti artmış olur. Bunu Wi-Fi axtarışı ayarlarında dəyişə bilərsiniz."</string>
<string name="wifi_scan_change" msgid="8438320311511852918">"Dəyişin"</string>
- <string name="preference_summary_default_combination" msgid="4643585915107796253">"<xliff:g id="STATE">%1$s</xliff:g> / <xliff:g id="NETWORKMODE">%2$s</xliff:g>"</string>
<string name="mobile_data_connection_active" msgid="2422223108911581552">"Qoşulub"</string>
<string name="mobile_data_temp_connection_active" msgid="3430470299756236413">"Müvəqqəti qoşulub"</string>
<string name="mobile_data_temp_using" msgid="5211002380149434155">"Müvəqqəti olaraq <xliff:g id="SUBNAME">%1$s</xliff:g> istifadə edir"</string>
@@ -5172,9 +5181,11 @@
<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="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_enable_freeform_support" msgid="3697462756493543645">"Sərbəst pəncərə dəstəyini aktivləşdirmək üçün yenidən başlatma tələb olunur."</string>
+ <!-- no translation found for reboot_dialog_override_desktop_mode (7480950772574354130) -->
+ <skip />
+ <!-- no translation found for reboot_dialog_enable_desktop_mode_on_secondary_display (1153621881052401924) -->
+ <skip />
<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>
@@ -5292,10 +5303,8 @@
<string name="show_captions_enabled" msgid="7089043007924626">"Aktiv"</string>
<string name="live_caption_disabled" msgid="3562035026547887366">"Deaktiv"</string>
<string name="live_caption_enabled" msgid="5269360946200718949">"Aktiv"</string>
- <!-- no translation found for audio_seek_bar_state_left_first (8814986910920838972) -->
- <skip />
- <!-- no translation found for audio_seek_bar_state_right_first (1999368979633398876) -->
- <skip />
+ <string name="audio_seek_bar_state_left_first" msgid="8814986910920838972">"Audio %1$d%% sol, %2$d%% sağ"</string>
+ <string name="audio_seek_bar_state_right_first" msgid="1999368979633398876">"Audio %1$d%% sağ, %2$d%% sol"</string>
<string name="about_phone_device_name_warning" msgid="3243226572404472381">"Cihaz adı quraşdırdığınız tətbiqlərə görünür. Bluetooth cihazlarına, Wi-Fi şəbəkəsinə qoşulduqda və ya Wi-Fi hotspotu ayarladıqda digər şəxslər də onu görə bilər."</string>
<string name="grammatical_gender_title" msgid="8584242850477270828">"Cins (qrammatika)"</string>
<string name="grammatical_gender_dialog_title" msgid="8754048592099871587">"Cins (qrammatika) seçin"</string>
@@ -5407,5 +5416,6 @@
<string name="audio_streams_main_page_password_dialog_join_button" msgid="2967747276379153408">"Yayımı dinləyin"</string>
<string name="audio_streams_main_page_qr_code_scanner_summary" msgid="5312980105735143360">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> ilə dinləmək üçün audio yayımı QR kodunu skanlayın"</string>
<string name="audio_streams_main_page_password_dialog_cannot_edit" msgid="9020898619297520153">"Paylaşarkən parolu redaktə etmək olmur. Parolu dəyişmək üçün əvvəlcə audio paylaşmanı deaktiv edin."</string>
+ <string name="audio_streams_qr_code_scanner_label" msgid="8799703301071378034">"QR kod skaneri"</string>
<string name="homepage_search" msgid="6759334912284663559">"Axtarış Ayarları"</string>
</resources>
diff --git a/res/values-b+sr+Latn/strings.xml b/res/values-b+sr+Latn/strings.xml
index 2f63a5d..db81708 100644
--- a/res/values-b+sr+Latn/strings.xml
+++ b/res/values-b+sr+Latn/strings.xml
@@ -41,6 +41,8 @@
<string name="radioInfo_data_suspended" msgid="2001254415431299603">"Obustavljeno"</string>
<string name="radioInfo_unknown" msgid="2892562356748600367">"Nepoznato"</string>
<string name="preview_pager_content_description" msgid="3762247188224576303">"Pregled"</string>
+ <!-- no translation found for qr_code_content_description (1852208464419291347) -->
+ <skip />
<string name="font_size_make_smaller_desc" msgid="4978038055549590140">"Umanji"</string>
<string name="font_size_make_larger_desc" msgid="5583046033381722247">"Uvećaj"</string>
<string name="stay_awake_on_fold_title" msgid="6590454679898134221">"Uvek"</string>
@@ -283,7 +285,7 @@
<string name="location_settings_summary_location_off" msgid="4797932754681162262">"Isključeno"</string>
<string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{Uključeno/# aplikacija ima pristup lokaciji}one{Uključeno/# aplikacija ima pristup lokaciji}few{Uključeno/# aplikacije imaju pristup lokaciji}other{Uključeno/# aplikacija ima pristup lokaciji}}"</string>
<string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"Učitava se…"</string>
- <string name="location_settings_footer_general" msgid="1040507068701188821">"Aplikacije sa dozvolom za uređaje u blizini mogu da odrede približan položaj povezanih uređaja."</string>
+ <string name="location_settings_footer_general" msgid="3447585552176173502">"Aplikacije sa dozvolom za uređaje u blizini mogu da odrede približni položaj povezanih uređaja."</string>
<string name="location_settings_footer_location_off" msgid="8568995909147566720">"Pristup lokaciji je isključen za aplikacije i usluge. Lokacija uređaja može i dalje da se šalje ekipama hitnih službi kada pozovete broj za hitne slučajeve ili pošaljete SMS na njega."</string>
<string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Saznajte više o podešavanjima lokacije"</string>
<string name="location_settings_tooltip_text_for_chrome" msgid="5781821709250544575">"Da biste to promenili, na ChromeOS-u otvorite Podešavanja > Bezbednost i privatnost > Kontrole privatnosti > Pristup lokaciji"</string>
@@ -666,7 +668,7 @@
<string name="lock_settings_picker_admin_restricted_personal_message" msgid="3532653662159888328">"Ako zaboravite otključavanje ekrana, administrator ne može da ga resetuje."</string>
<string name="lock_settings_picker_admin_restricted_personal_message_action" msgid="5956615234246626264">"Podesite zasebno zaključavanje za poslovne aplikacije"</string>
<string name="lock_settings_picker_profile_message" msgid="9142379549980873478">"Ako zaboravite kako da otključate, zatražite od IT administratora da to resetuje"</string>
- <string name="setup_lock_settings_options_button_label" msgid="6098297461618298505">"Opcije zaključavanja ekrana"</string>
+ <string name="setup_lock_settings_options_button_label" msgid="6098297461618298505">"Opcije otključavanja ekrana"</string>
<string name="setup_lock_settings_options_dialog_title" msgid="7985107300517468569">"Opcije otključavanja ekrana"</string>
<string name="lock_screen_auto_pin_confirm_title" msgid="3012128112186088375">"Otključavanje koje se automatski potvrđuje"</string>
<string name="lock_screen_auto_pin_confirm_summary" msgid="9050818870806580819">"Otključava se automatski ako unesete PIN sa 6 ili više cifara. To je malo manje pouzdano nego da dodirnete Enter da biste potvrdili."</string>
@@ -850,7 +852,6 @@
<string name="nfc_reboot_dialog_title" msgid="2033983438635768169">"Želite da restartujete uređaj?"</string>
<string name="nfc_reboot_dialog_message" msgid="4929353168157966992">"NFC evidentiranje detalja je namenjeno samo u svrhe programiranja. Dodatni NFC podaci uvršteni su u izveštaje o greškama, koji mogu da sadrže privatne podatke. Restartujte uređaj da biste promenili ovo podešavanje."</string>
<string name="nfc_reboot_dialog_confirm" msgid="4769763632008584567">"Restartuj"</string>
- <string name="keywords_external_display" msgid="4181375057920134909">"preslikati, spoljni ekran, povezani ekran, usb ekran, rezolucija, rotacija"</string>
<string name="external_display_on" msgid="2560104443500154333">"Uključeno"</string>
<string name="external_display_off" msgid="5634413756025351374">"Isključeno"</string>
<string name="external_display_settings_title" msgid="6256884595821605779">"Spoljni ekran"</string>
@@ -1918,6 +1919,8 @@
<string name="slow_keys_summary" msgid="1784371292745423292">"Priladite vreme potrebno da se taster aktivira posle pritiska na <xliff:g id="SLOW_KEYS_THRESHOLD">%1$d</xliff:g> ms"</string>
<string name="sticky_keys" msgid="7317317044898161747">"Lepljivi tasteri"</string>
<string name="sticky_keys_summary" msgid="1844953803625480623">"Pritiskajte jedan po jedan taster da biste koristili prečice umesto da istovremeno držite tastere"</string>
+ <string name="mouse_keys" msgid="6237254627808525540">"Tasteri miša"</string>
+ <string name="mouse_keys_summary" msgid="2396247040177734245">"Koristite fizičku tastaturu da biste upravljali mišem."</string>
<string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"Tasterske prečice"</string>
<string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"Prikazuje listu prečica"</string>
<string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"Tastature i alatke za poslovni profil"</string>
@@ -1942,14 +1945,10 @@
<string name="pointer_fill_style_yellow_button" msgid="5025969961559379024">"Promenite stil popune u žuto"</string>
<string name="pointer_fill_style_pink_button" msgid="4106218142489635673">"Promenite stil popune u roze"</string>
<string name="pointer_fill_style_blue_button" msgid="5594958078854032785">"Promenite stil popune u plavo"</string>
- <!-- no translation found for pointer_stroke_style (1886986630216050665) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_white (673686194443825383) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_black (4655806167067437330) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_none (8953927511729800247) -->
- <skip />
+ <string name="pointer_stroke_style" msgid="1886986630216050665">"Stil poteza pokazivača"</string>
+ <string name="pointer_stroke_style_name_white" msgid="673686194443825383">"Belo"</string>
+ <string name="pointer_stroke_style_name_black" msgid="4655806167067437330">"Crno"</string>
+ <string name="pointer_stroke_style_name_none" msgid="8953927511729800247">"Ništa"</string>
<string name="trackpad_touch_gesture" msgid="8641725062131922497">"Naučite pokrete za tačped"</string>
<string name="keywords_touchpad" msgid="8159846254066666032">"dodirna tabla, miš, kursor, skrolovanje, prevlačenje, desni klik, klik, pokazivač"</string>
<string name="keywords_trackpad_bottom_right_tap" msgid="1285062446073929305">"desni klik, dodir"</string>
@@ -2179,8 +2178,6 @@
<string name="accessibility_shortcut_edit_dialog_summary_floating_button" msgid="6266489864614886247">"Dodirnite plutajuće dugme"</string>
<string name="accessibility_shortcut_edit_dialog_title_software_by_gesture" msgid="4775049370625630546">"Pokret za pristupačnost"</string>
<string name="accessibility_shortcut_edit_dialog_summary_software" msgid="8315934725362849788">"Dodirnite dugme Pristupačnost <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g> u dnu ekrana. Da biste prelazili sa jedne funkcije na drugu, dodirnite i zadržite dugme Pristupačnost."</string>
- <string name="accessibility_shortcut_edit_dialog_summary_software_gesture" msgid="8292555254353761635">"Prevucite nagore od dna ekrana pomoću 2 prsta.\n\nDa biste prelazili sa jedne funkcije na drugu, prevucite nagore pomoću 2 prsta i zadržite."</string>
- <string name="accessibility_shortcut_edit_dialog_summary_software_gesture_talkback" msgid="84483464524360845">"Prevucite nagore od dna ekrana pomoću 3 prsta.\n\nDa biste prelazili sa jedne funkcije na drugu, prevucite nagore pomoću 3 prsta i zadržite."</string>
<string name="accessibility_shortcut_edit_dialog_summary_gesture" msgid="2081123009255579884">"{count,plural, =1{Prevucite nagore od dna ekrana. Da biste prelazili sa jedne funkcije na drugu, prevucite nagore i zadržite.}one{Prevucite nagore od dna ekrana pomoću # prsta. Da biste prelazili sa jedne funkcije na drugu, prevucite nagore pomoću # prsta i zadržite.}few{Prevucite nagore od dna ekrana pomoću # prsta. Da biste prelazili sa jedne funkcije na drugu, prevucite nagore pomoću # prsta i zadržite.}other{Prevucite nagore od dna ekrana pomoću # prstiju. Da biste prelazili sa jedne funkcije na drugu, prevucite nagore pomoću # prstiju i zadržite.}}"</string>
<string name="accessibility_shortcut_edit_dialog_summary_software_floating" msgid="4459254227203203324"><annotation id="link">"Još opcija"</annotation></string>
<string name="footer_learn_more_content_description" msgid="8843798273152131341">"Saznajte više o: <xliff:g id="SERVICE">%1$s</xliff:g>"</string>
@@ -2191,16 +2188,12 @@
<string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="844089763968552142">"Tasteri za jačinu zvuka"</string>
<string name="accessibility_shortcut_hardware_keyword" msgid="2483152542320987022">"tasteri za jačinu zvuka"</string>
<string name="accessibility_shortcut_edit_dialog_summary_hardware" msgid="2503134386397991634">"Pritisnite i zadržite oba tastera za jačinu zvuka"</string>
- <string name="accessibility_shortcut_edit_dialog_title_two_finger_double_tap" msgid="2271778556854020996">"Dvaput dodirnite ekran pomoću dva prsta"</string>
<string name="accessibility_shortcut_edit_screen_title_two_finger_double_tap" msgid="8952595692906527694">"Dvaput dodirnite pomoću %1$d prsta"</string>
<string name="accessibility_shortcut_edit_screen_summary_two_finger_double_tap" msgid="385404127425496362">"Brzo dodirnite ekran dvaput pomoću %1$d prsta"</string>
<string name="accessibility_shortcut_edit_screen_title_triple_tap" msgid="3314488747597058942">"Dodirnite triput"</string>
<string name="accessibility_shortcut_edit_screen_summary_triple_tap" msgid="4839204951599629871">"Brzo dodirnite ekran %1$d puta. Ovo može da uspori uređaj."</string>
<string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="6271718715836961167">"dvaput dodirnite pomoću %1$d prsta"</string>
- <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"Brzo dodirnite ekran {0,number,integer} puta pomoću dva prsta"</string>
- <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"Dodirnite ekran triput"</string>
<string name="accessibility_shortcut_triple_tap_keyword" msgid="5359347130888464334">"dodirnite triput"</string>
- <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"Brzo dodirnite ekran {0,number,integer} puta. Ova prečica može da uspori uređaj"</string>
<string name="accessibility_shortcut_edit_dialog_title_advance" msgid="4567868630655591506">"Napredno"</string>
<string name="accessibility_screen_magnification_navbar_configuration_warning" msgid="266736851606791552">"Dugme za pristupačnost je podešeno na <xliff:g id="SERVICE">%1$s</xliff:g>. Da biste koristili uvećanje, dodirnite i zadržite dugme za pristupačnost, pa izaberite uvećanje."</string>
<string name="accessibility_screen_magnification_gesture_navigation_warning" msgid="991017769735632046">"Pokret za pristupačnost je podešen na funkciju <xliff:g id="SERVICE">%1$s</xliff:g>. Da biste koristili uvećanje, prevlačite nagore od dna ekrana pomoću dva prsta i zadržite. Zatim odaberite uvećanje."</string>
@@ -2369,6 +2362,7 @@
<string name="daltonizer_mode_tritanomaly_title" msgid="2278786218762602022">"Plavo-žuto"</string>
<string name="daltonizer_mode_grayscale_title" msgid="152005391387952588">"Sivilo"</string>
<string name="daltonizer_saturation_title" msgid="2999486412114963068">"Intenzitet"</string>
+ <string name="daltonizer_saturation_unavailable_summary" msgid="8319753055567798775">"Nije dostupno za režim sivila ili kada je onemogućena korekcija boja"</string>
<string name="daltonizer_mode_deuteranomaly_summary" msgid="2117727423019598455">"Delimično slepilo za zelenu, deuteranomalija"</string>
<string name="daltonizer_mode_protanomaly_summary" msgid="4617032854982040748">"Delimično slepilo za crvenu, protanomalija"</string>
<string name="daltonizer_mode_tritanomaly_summary" msgid="2428218320118180070">"Tritanomalija"</string>
@@ -2418,15 +2412,8 @@
<string name="color_cyan" msgid="4341758639597035927">"Tirkizna"</string>
<string name="color_yellow" msgid="5957551912912679058">"Žuta"</string>
<string name="color_magenta" msgid="8943538189219528423">"Magenta"</string>
- <string name="enable_service_title" msgid="7231533866953706788">"Želite li da dozvolite da <xliff:g id="SERVICE">%1$s</xliff:g> ima potpunu kontrolu nad uređajem?"</string>
<string name="capabilities_list_title" msgid="1225853611983394386">"<xliff:g id="SERVICE">%1$s</xliff:g> treba:"</string>
<string name="touch_filtered_warning" msgid="4225815157460318241">"Pošto aplikacija skriva zahtev za dozvolu, Podešavanja ne mogu da verifikuju odgovor."</string>
- <string name="accessibility_service_warning" msgid="6779187188736432618">"<xliff:g id="SERVICE">%1$s</xliff:g> traži potpunu kontrolu nad ovim uređajem. Usluga može da čita sadržaj sa ekrana i da obavlja razne zadatke za korisnike usluga pristupačnosti. Ovaj nivo kontrole nije odgovarajući za većinu aplikacija."</string>
- <string name="accessibility_service_warning_description" msgid="6573203795976134751">"Potpuna kontrola je primerena za aplikacije koje vam pomažu kod usluga pristupačnosti, ali ne i za većinu aplikacija."</string>
- <string name="accessibility_service_screen_control_title" msgid="324795030658109870">"Pregledaj i kontroliši ekran"</string>
- <string name="accessibility_service_screen_control_description" msgid="8431940515157990426">"Može da čita sav sadržaj na ekranu i prikazuje ga u drugim aplikacijama."</string>
- <string name="accessibility_service_action_perform_title" msgid="1449360056585337833">"Pregledaj i obavljaj radnje"</string>
- <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"Može da prati interakcije sa aplikacijom ili senzorom hardvera i koristi aplikacije umesto vas."</string>
<string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Dozvoli"</string>
<string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Odbij"</string>
<string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Isključi"</string>
@@ -3656,9 +3643,9 @@
<string name="notif_listener_not_migrated" msgid="6265206376374278226">"Ova aplikacija ne podržava poboljšana podešavanja"</string>
<string name="notif_listener_more_settings" msgid="1348409392307208921">"Još podešavanja"</string>
<string name="notif_listener_more_settings_desc" msgid="7995492074281663658">"Dostupno je još podešavanja u aplikaciji"</string>
- <string name="notification_polite_title" msgid="4737150709382859870">"Prilagodljiva obaveštenja"</string>
- <string name="notification_polite_main_control_title" msgid="7267191551379543859">"Koristite prilagodljiva obaveštenja"</string>
- <string name="notification_polite_description" msgid="7749280535620291610">"Kada dobijete mnogo obaveštenja u kratkom periodu, telefon će utišati zvuk i smanjiti broj iskačućih prozora na ekranu na najviše dva minuta. Za pozive, alarme i prioritetne konverzacije ćete i dalje dobijati obaveštenja putem vibracije, zvuka ili prikaza na ekranu, a sva obaveštenja možete lako da pronađete kada prevučete nadole sa vrha ekrana."</string>
+ <string name="notification_polite_title" msgid="6121016426991791557">"Utišavanje obaveštenja"</string>
+ <string name="notification_polite_main_control_title" msgid="5812529809151927149">"Koristi utišavanje obaveštenja"</string>
+ <string name="notification_polite_description" msgid="5497748284893832854">"Kada primite mnogo obaveštenja u kratkom periodu, uređaj će utišati zvuk i smanjiti broj upozorenja na najviše dva minuta. To ne utiče na pozive, alarme ni prioritetne konverzacije. \n\nObaveštenja koja dobijete tokom utišavanja možete da pronađete povlačenjem nadole od vrha ekrana."</string>
<string name="notification_polite_work" msgid="8823596456640216391">"Primeni na poslovne profile"</string>
<string name="notification_polite_work_summary" msgid="5014189280132951378">"Primenite na aplikacije poslovnog profila"</string>
<string name="vr_listeners_title" msgid="4960357292472540964">"Usluge pomagača za virtuelnu realnost"</string>
@@ -3815,7 +3802,9 @@
<string name="zen_mode_apps_priority_apps" msgid="7386196048313716076">"Izabrane aplikacije"</string>
<string name="zen_mode_apps_none_apps" msgid="2493642312793604327">"Nijedna"</string>
<string name="zen_mode_apps_subtext" msgid="1764211974662012877">"{count,plural,offset:2 =0{Nijedna aplikacija ne može da prekine}=1{{app_1} može da prekine}=2{{app_1} i {app_2} mogu da prekinu}=3{{app_1}, {app_2} i {app_3} mogu da prekinu}one{{app_1}, {app_2} i još # mogu da prekinu}few{{app_1}, {app_2} i još # mogu da prekinu}other{{app_1}, {app_2} i još # mogu da prekinu}}"</string>
+ <string name="zen_mode_apps_work_app" msgid="8528767938316361588">"<xliff:g id="APP_LABEL">%s</xliff:g> (posao)"</string>
<string name="zen_mode_apps_calculating" msgid="5420121396943539286">"Izračunava se…"</string>
+ <string name="zen_mode_plus_n_items" msgid="6136713354369243421">"+<xliff:g id="NUMBER">%d</xliff:g>"</string>
<string name="zen_mode_bypassing_apps" msgid="625309443389126481">"Dozvoli da aplikacije zanemaruju"</string>
<string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"Aplikacije koje mogu da prekidaju"</string>
<string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"Izaberite još aplikacija"</string>
@@ -3833,6 +3822,7 @@
<string name="zen_mode_sounds_none" msgid="6557474361948269420">"Ništa ne može da prekine"</string>
<string name="zen_mode_people_none" msgid="4613147461974255046">"Niko ne može da prekine"</string>
<string name="zen_mode_people_some" msgid="9101872681298810281">"Neki ljudi mogu da prekinu"</string>
+ <string name="zen_mode_people_repeat_callers" msgid="4499084111069828761">"Ponovni pozivaoci mogu da prekidaju"</string>
<string name="zen_mode_people_all" msgid="311036110283015205">"Svi ljudi mogu da prekinu"</string>
<string name="zen_mode_repeat_callers" msgid="2270356100287792138">"Ponovni pozivaoci"</string>
<string name="zen_mode_repeat_callers_title" msgid="8016699240338264781">"Dozvoli ponovne pozivaoce"</string>
@@ -3856,6 +3846,34 @@
<string name="zen_mode_new_custom_title" msgid="321750898430776191">"Dodajte režim"</string>
<string name="zen_mode_new_custom_default_name" msgid="2778307946775085105">"Prilagođeni režim"</string>
<string name="zen_mode_edit_name_hint" msgid="4584652062167540536">"Naziv režima"</string>
+ <string name="zen_mode_trigger_title_schedule_calendar" msgid="9206609438617550331">"Događaji u kalendaru"</string>
+ <string name="zen_mode_trigger_title_bedtime" msgid="5086070900588489978">"Raspored spavanja"</string>
+ <string name="zen_mode_trigger_title_driving" msgid="7890990983453164403">"Tokom vožnje"</string>
+ <string name="zen_mode_trigger_title_generic" msgid="601273385119550420">"Povezano sa aplikacijom"</string>
+ <string name="zen_mode_trigger_summary_settings_in_app" msgid="4860667191183702601">"Informacije i podešavanja u aplikaciji <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+ <string name="zen_mode_trigger_summary_managed_by_app" msgid="8631011868193102098">"Upravlja <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+ <string name="zen_mode_confirm_disable_title" msgid="1232297660775719796">"Onemogućite režim"</string>
+ <string name="zen_mode_confirm_disable_message" msgid="7315541221665718491">"Ako onemogućite ovu funkciju, režim više neće ispravno raditi i podešavanja će biti skrivena."</string>
+ <string name="zen_mode_action_disable" msgid="3552921561331044881">"Onemogući"</string>
+ <string name="zen_mode_confirm_enable_title" msgid="5683371335847448595">"Omogućite režim"</string>
+ <string name="zen_mode_confirm_enable_message" msgid="7017879133260011419">"Ako omogućite ovu funkciju, režim će se automatski aktivirati prema rasporedu."</string>
+ <string name="zen_mode_action_enable" msgid="1161480633223176531">"Omogući"</string>
+ <!-- no translation found for zen_mode_blurb_schedule_time (8223898702097484009) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_schedule_calendar (382177907856065945) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_bedtime (6155075956151013457) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_driving (1316054379000667305) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_immersive (5884004861848687869) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_theater (2999237960059524225) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_managed (5473921634985032149) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_generic (3041601339807075625) -->
+ <skip />
<string name="warning_button_text" msgid="1274234338874005639">"Upozorenje"</string>
<string name="suggestion_button_close" msgid="6865170855573283759">"Zatvori"</string>
<string name="device_feedback" msgid="5351614458411688608">"Šalji povratne informacije o uređaju"</string>
@@ -4842,9 +4860,8 @@
<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="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>
+ <!-- no translation found for enable_desktop_mode_on_secondary_display (2609567824593768780) -->
+ <skip />
<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>
@@ -5020,7 +5037,6 @@
<string name="default_active_sim_mobile_data" msgid="6798083892814045301">"mobilni podaci"</string>
<string name="wifi_scan_notify_message" msgid="1331238142061476869">"Radi boljeg doživljaja, aplikacije i usluge mogu i dalje da traže WiFi mreže u bilo kom trenutku, čak i kada je WiFi isključen. To može da se koristi, na primer, za poboljšavanje funkcija i usluga zasnovanih na lokaciji. To možete da promenite u podešavanjima WiFi skeniranja."</string>
<string name="wifi_scan_change" msgid="8438320311511852918">"Promeni"</string>
- <string name="preference_summary_default_combination" msgid="4643585915107796253">"<xliff:g id="STATE">%1$s</xliff:g>/<xliff:g id="NETWORKMODE">%2$s</xliff:g>"</string>
<string name="mobile_data_connection_active" msgid="2422223108911581552">"Povezano"</string>
<string name="mobile_data_temp_connection_active" msgid="3430470299756236413">"Privremeno povezano"</string>
<string name="mobile_data_temp_using" msgid="5211002380149434155">"Privremeno se koristi <xliff:g id="SUBNAME">%1$s</xliff:g>"</string>
@@ -5052,7 +5068,7 @@
<string name="app_pinning_main_switch_title" msgid="5465506660064032876">"Koristi kačenje aplikacija"</string>
<string name="developer_options_main_switch_title" msgid="1720074589554152501">"Koristi opcije za programere"</string>
<string name="default_print_service_main_switch_title" msgid="4697133737128324036">"Koristi uslugu štampanja"</string>
- <string name="multiple_users_main_switch_title" msgid="9158796544835843201">"Omogućite promenu korisnika"</string>
+ <string name="multiple_users_main_switch_title" msgid="9158796544835843201">"Omogući promenu korisnika"</string>
<string name="multiple_users_main_switch_keywords" msgid="4845954458094134356">"omogućiti, više, korisnik, dozvoliti, mnogo"</string>
<string name="multiple_users_title_keywords" msgid="2395593167746225172">"više, korisnici, profili, ljudi, nalozi, promena, veliki broj"</string>
<string name="wireless_debugging_main_switch_title" msgid="8463499572781441719">"Koristi bežično otklanjanje grešaka"</string>
@@ -5166,9 +5182,11 @@
<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="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_enable_freeform_support" msgid="3697462756493543645">"Morate da restartujete da biste omogućili podršku za prozore proizvoljnog formata."</string>
+ <!-- no translation found for reboot_dialog_override_desktop_mode (7480950772574354130) -->
+ <skip />
+ <!-- no translation found for reboot_dialog_enable_desktop_mode_on_secondary_display (1153621881052401924) -->
+ <skip />
<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>
@@ -5399,5 +5417,6 @@
<string name="audio_streams_main_page_password_dialog_join_button" msgid="2967747276379153408">"Slušajte strim"</string>
<string name="audio_streams_main_page_qr_code_scanner_summary" msgid="5312980105735143360">"Skenirajte QR kôd audio strima da biste slušali pomoću: <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
<string name="audio_streams_main_page_password_dialog_cannot_edit" msgid="9020898619297520153">"Lozinka ne može da se menja tokom deljenja. Da biste promenili lozinku, prvo isključite deljenje zvuka."</string>
+ <string name="audio_streams_qr_code_scanner_label" msgid="8799703301071378034">"Skener QR koda"</string>
<string name="homepage_search" msgid="6759334912284663559">"Podešavanja pretrage"</string>
</resources>
diff --git a/res/values-be/strings.xml b/res/values-be/strings.xml
index 58c105f..b091c17 100644
--- a/res/values-be/strings.xml
+++ b/res/values-be/strings.xml
@@ -41,6 +41,8 @@
<string name="radioInfo_data_suspended" msgid="2001254415431299603">"Прыпынена"</string>
<string name="radioInfo_unknown" msgid="2892562356748600367">"Невядома"</string>
<string name="preview_pager_content_description" msgid="3762247188224576303">"Перадпрагляд"</string>
+ <!-- no translation found for qr_code_content_description (1852208464419291347) -->
+ <skip />
<string name="font_size_make_smaller_desc" msgid="4978038055549590140">"Паменшыць"</string>
<string name="font_size_make_larger_desc" msgid="5583046033381722247">"Павялічыць"</string>
<string name="stay_awake_on_fold_title" msgid="6590454679898134221">"Заўсёды"</string>
@@ -283,7 +285,7 @@
<string name="location_settings_summary_location_off" msgid="4797932754681162262">"Выкл."</string>
<string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{Уключана – # праграма мае доступ да даных месцазнаходжання}one{Уключана – # праграма мае доступ да даных месцазнаходжання}few{Уключана – # праграмы маюць доступ да даных месцазнаходжання}many{Уключана – # праграм маюць доступ да даных месцазнаходжання}other{Уключана – # праграмы маюць доступ да даных месцазнаходжання}}"</string>
<string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"Ідзе загрузка…"</string>
- <string name="location_settings_footer_general" msgid="1040507068701188821">"Праграмы з дазволам на доступ да прылад паблізу могуць вызначаць прыблізнае месцазнаходжанне падключаных прылад."</string>
+ <string name="location_settings_footer_general" msgid="3447585552176173502">"Праграмы з дазволам на доступ да прылад паблізу могуць вызначаць прыблізнае месцазнаходжанне падключаных прылад"</string>
<string name="location_settings_footer_location_off" msgid="8568995909147566720">"Для праграм і сэрвісаў доступ да геаданых выключаны. Інфармацыя пра месцазнаходжанне вашай прылады можа адпраўляцца экстранным службам, калі вы робіце выклік на іх нумар ці адпраўляеце ім SMS."</string>
<string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Даведацца больш пра налады месцазнаходжання"</string>
<string name="location_settings_tooltip_text_for_chrome" msgid="5781821709250544575">"Каб змяніць, у ChromeOS перайдзіце ў раздзел \"Налады > Прыватнасць і бяспека > Налады прыватнасці > Доступ да даных геалакацыі\""</string>
@@ -850,7 +852,6 @@
<string name="nfc_reboot_dialog_title" msgid="2033983438635768169">"Перазапусціць прыладу?"</string>
<string name="nfc_reboot_dialog_message" msgid="4929353168157966992">"Падрабязнае вядзенне журналаў NFC прызначана толькі для мэт распрацоўкі. У справаздачы пра памылкі ўключаюцца дадатковыя даныя NFC, якія могуць утрымліваць прыватную інфармацыю. Перазапусціце прыладу, каб змяніць гэту наладу."</string>
<string name="nfc_reboot_dialog_confirm" msgid="4769763632008584567">"Перазапусціць"</string>
- <string name="keywords_external_display" msgid="4181375057920134909">"дубліраваць, знешні дысплэй, падключаны дысплэй, usb-дысплэй, раздзяляльнасць, паварот"</string>
<string name="external_display_on" msgid="2560104443500154333">"Уключаны"</string>
<string name="external_display_off" msgid="5634413756025351374">"Выключаны"</string>
<string name="external_display_settings_title" msgid="6256884595821605779">"Знешні дысплэй"</string>
@@ -1918,6 +1919,8 @@
<string name="slow_keys_summary" msgid="1784371292745423292">"Рэгістрацыя націскання клавішы ажыццяўляецца пасля заканчэння зададзенага часу: <xliff:g id="SLOW_KEYS_THRESHOLD">%1$d</xliff:g> мс"</string>
<string name="sticky_keys" msgid="7317317044898161747">"Заліпанне клавіш"</string>
<string name="sticky_keys_summary" msgid="1844953803625480623">"Замест таго каб утрымліваць усе клавішы са спалучэння, націскайце іх па адной"</string>
+ <string name="mouse_keys" msgid="6237254627808525540">"Кнопкі мышы"</string>
+ <string name="mouse_keys_summary" msgid="2396247040177734245">"Выкарыстоўвайце фізічную клавіятуру, каб кіраваць мышшу."</string>
<string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"Гарачыя клавішы"</string>
<string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"Паказаць спіс спалучэнняў клавіш"</string>
<string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"Клавіятуры і інструменты працоўнага профілю"</string>
@@ -1942,14 +1945,10 @@
<string name="pointer_fill_style_yellow_button" msgid="5025969961559379024">"Змяніць стыль заліўкі на жоўты"</string>
<string name="pointer_fill_style_pink_button" msgid="4106218142489635673">"Змяніць стыль заліўкі на ружовы"</string>
<string name="pointer_fill_style_blue_button" msgid="5594958078854032785">"Змяніць стыль заліўкі на сіні"</string>
- <!-- no translation found for pointer_stroke_style (1886986630216050665) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_white (673686194443825383) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_black (4655806167067437330) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_none (8953927511729800247) -->
- <skip />
+ <string name="pointer_stroke_style" msgid="1886986630216050665">"Контур паказальніка"</string>
+ <string name="pointer_stroke_style_name_white" msgid="673686194443825383">"Белы"</string>
+ <string name="pointer_stroke_style_name_black" msgid="4655806167067437330">"Чорны"</string>
+ <string name="pointer_stroke_style_name_none" msgid="8953927511729800247">"Няма"</string>
<string name="trackpad_touch_gesture" msgid="8641725062131922497">"Даведацца пра жэсты сэнсарнай панэлі"</string>
<string name="keywords_touchpad" msgid="8159846254066666032">"сэнсарная панэль, мыш, курсор, прагартаць, правесці пальцам, націснуць правай кнопкай мышы, націснуць, націсканне, паказальнік"</string>
<string name="keywords_trackpad_bottom_right_tap" msgid="1285062446073929305">"націснуць правай кнопкай мышы, дакрануцца, націснуць, дотык"</string>
@@ -2179,8 +2178,6 @@
<string name="accessibility_shortcut_edit_dialog_summary_floating_button" msgid="6266489864614886247">"Націсніце плаваючую кнопку"</string>
<string name="accessibility_shortcut_edit_dialog_title_software_by_gesture" msgid="4775049370625630546">"Жэст спецыяльных магчымасцей"</string>
<string name="accessibility_shortcut_edit_dialog_summary_software" msgid="8315934725362849788">"Націсніце кнопку спецыяльных магчымасцей <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g>, якая знаходзіцца ўнізе экрана. Каб пераключыцца паміж функцыямі, націсніце і ўтрымлівайце кнопку спецыяльных магчымасцей."</string>
- <string name="accessibility_shortcut_edit_dialog_summary_software_gesture" msgid="8292555254353761635">"Правядзіце па экране двума пальцамі знізу ўверх.\n\nКаб пераключыцца на іншую функцыю, правядзіце двума пальцамі ўверх і ўтрымлівайце іх на экране."</string>
- <string name="accessibility_shortcut_edit_dialog_summary_software_gesture_talkback" msgid="84483464524360845">"Правядзіце па экране трыма пальцамі знізу ўверх.\n\nКаб пераключыцца на іншую функцыю, правядзіце трыма пальцамі ўверх і ўтрымлівайце іх на экране."</string>
<string name="accessibility_shortcut_edit_dialog_summary_gesture" msgid="2081123009255579884">"{count,plural, =1{Правядзіце пальцам уверх ад ніжняга краю экрана. Каб пераключыцца паміж функцыямі, правядзіце пальцам знізу ўверх і ўтрымлівайце яго на экране.}one{Правядзіце # пальцам уверх ад ніжняга краю экрана. Каб пераключыцца паміж функцыямі, правядзіце # пальцам знізу ўверх і ўтрымлівайце іх на экране.}few{Правядзіце # пальцамі ўверх ад ніжняга краю экрана. Каб пераключыцца паміж функцыямі, правядзіце # пальцамі знізу ўверх і ўтрымлівайце іх на экране.}many{Правядзіце # пальцамі ўверх ад ніжняга краю экрана. Каб пераключыцца паміж функцыямі, правядзіце # пальцамі знізу ўверх і ўтрымлівайце іх на экране.}other{Правядзіце # пальца ўверх ад ніжняга краю экрана. Каб пераключыцца паміж функцыямі, правядзіце # пальца знізу ўверх і ўтрымлівайце іх на экране.}}"</string>
<string name="accessibility_shortcut_edit_dialog_summary_software_floating" msgid="4459254227203203324"><annotation id="link">"Дадатковыя параметры"</annotation></string>
<string name="footer_learn_more_content_description" msgid="8843798273152131341">"Даведацца больш пра сэрвіс \"<xliff:g id="SERVICE">%1$s</xliff:g>\""</string>
@@ -2191,16 +2188,12 @@
<string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="844089763968552142">"Клавішы гучнасці"</string>
<string name="accessibility_shortcut_hardware_keyword" msgid="2483152542320987022">"клавішы гучнасці"</string>
<string name="accessibility_shortcut_edit_dialog_summary_hardware" msgid="2503134386397991634">"Націсніце і ўтрымлівайце абедзве клавішы гучнасці"</string>
- <string name="accessibility_shortcut_edit_dialog_title_two_finger_double_tap" msgid="2271778556854020996">"Двойчы націсніце на экран двума пальцамі"</string>
<string name="accessibility_shortcut_edit_screen_title_two_finger_double_tap" msgid="8952595692906527694">"Двайны дотык %1$d пальцамі"</string>
<string name="accessibility_shortcut_edit_screen_summary_two_finger_double_tap" msgid="385404127425496362">"Хутка дакраніцеся да экрана двойчы %1$d пальцамі"</string>
<string name="accessibility_shortcut_edit_screen_title_triple_tap" msgid="3314488747597058942">"Трайны дотык"</string>
<string name="accessibility_shortcut_edit_screen_summary_triple_tap" msgid="4839204951599629871">"Хутка дакраніцеся да экрана %1$d разы. Гэта можа запаволіць работу прылады."</string>
<string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="6271718715836961167">"двайны дотык %1$d пальцамі"</string>
- <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"Хутка націсніце на экран {0,number,integer} разы двума пальцамі"</string>
- <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"Тройчы націснуць на экран"</string>
<string name="accessibility_shortcut_triple_tap_keyword" msgid="5359347130888464334">"трайны дотык"</string>
- <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"Хутка націсніце на экран некалькі разоў ({0,number,integer}). Выкарыстанне гэтай каманды можа запаволіць працу прылады"</string>
<string name="accessibility_shortcut_edit_dialog_title_advance" msgid="4567868630655591506">"Пашыраныя налады"</string>
<string name="accessibility_screen_magnification_navbar_configuration_warning" msgid="266736851606791552">"Для кнопкі \"Спецыяльныя магчымасці\" зададзена наступнае: <xliff:g id="SERVICE">%1$s</xliff:g>. Каб павялічваць маштаб з яе дапамогай, краніце і ўтрымлівайце кнопку \"Спецыяльныя магчымасці\", а потым выберыце функцыю павелічэння."</string>
<string name="accessibility_screen_magnification_gesture_navigation_warning" msgid="991017769735632046">"Жэст спецыяльных магчымасцей усталяваны для службы \"<xliff:g id="SERVICE">%1$s</xliff:g>\". Каб выкарыстоўваць функцыю павелічэння, правядзіце двума пальцамі па экране знізу ўверх і затрымайце іх. Пасля выберыце функцыю павелічэння."</string>
@@ -2369,6 +2362,7 @@
<string name="daltonizer_mode_tritanomaly_title" msgid="2278786218762602022">"Сіні-жоўты"</string>
<string name="daltonizer_mode_grayscale_title" msgid="152005391387952588">"Адценні шэрага"</string>
<string name="daltonizer_saturation_title" msgid="2999486412114963068">"Інтэнсіўнасць"</string>
+ <string name="daltonizer_saturation_unavailable_summary" msgid="8319753055567798775">"Недаступна ў рэжыме \"Адценні шэрага\", ці калі выключана карэкцыя колераў"</string>
<string name="daltonizer_mode_deuteranomaly_summary" msgid="2117727423019598455">"Парушанае ўспрыманне зялёнага, дэйтаранамалія"</string>
<string name="daltonizer_mode_protanomaly_summary" msgid="4617032854982040748">"Парушанае ўспрыманне чырвонага, протанамалія"</string>
<string name="daltonizer_mode_tritanomaly_summary" msgid="2428218320118180070">"Трытанамалія"</string>
@@ -2418,15 +2412,8 @@
<string name="color_cyan" msgid="4341758639597035927">"Блакітны"</string>
<string name="color_yellow" msgid="5957551912912679058">"Жоўты"</string>
<string name="color_magenta" msgid="8943538189219528423">"Пурпурны"</string>
- <string name="enable_service_title" msgid="7231533866953706788">"<xliff:g id="SERVICE">%1$s</xliff:g>: дазволіць сэрвісу мець поўны кантроль над вашай прыладай?"</string>
<string name="capabilities_list_title" msgid="1225853611983394386">"<xliff:g id="SERVICE">%1$s</xliff:g> патрабуе:"</string>
<string name="touch_filtered_warning" msgid="4225815157460318241">"Паверх запыту дазволу адлюстроўваецца дадатак, таму ваш адказ не можа быць правераны ў Наладах."</string>
- <string name="accessibility_service_warning" msgid="6779187188736432618">"Праграма <xliff:g id="SERVICE">%1$s</xliff:g> запытвае поўны кантроль над гэтай прыладай. Яна можа чытаць змесціва экрана і дзейнічаць ад імя карыстальнікаў, якім патрабуюцца спецыяльныя магчымасці. Такі ўзровень доступу не прызначаны для большасці праграм."</string>
- <string name="accessibility_service_warning_description" msgid="6573203795976134751">"Поўны кантроль прызначаны для сэрвісаў спецыяльных магчымасцей, аднак не падыходзіць для большасці праграм."</string>
- <string name="accessibility_service_screen_control_title" msgid="324795030658109870">"Прагляд экрана і кіраванне ім"</string>
- <string name="accessibility_service_screen_control_description" msgid="8431940515157990426">"Функцыя можа распазнаваць усё змесціва на экране і адлюстроўваць яго паверх іншых праграм."</string>
- <string name="accessibility_service_action_perform_title" msgid="1449360056585337833">"Прагляд і выкананне дзеянняў"</string>
- <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"Гэта функцыя можа адсочваць вашы ўзаемадзеянні з праграмай ці датчыкам апаратнага забеспячэння і ўзаемадзейнічаць з праграмамі ад вашага імя."</string>
<string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Дазволіць"</string>
<string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Адмовіць"</string>
<string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Выключыць"</string>
@@ -3656,9 +3643,9 @@
<string name="notif_listener_not_migrated" msgid="6265206376374278226">"Гэта праграма не падтрымлівае пашыраныя налады"</string>
<string name="notif_listener_more_settings" msgid="1348409392307208921">"Дадатковыя налады"</string>
<string name="notif_listener_more_settings_desc" msgid="7995492074281663658">"Іншыя налады даступныя ўнутры гэтай праграмы"</string>
- <string name="notification_polite_title" msgid="4737150709382859870">"Адаптыўныя апавяшчэнні"</string>
- <string name="notification_polite_main_control_title" msgid="7267191551379543859">"Выкарыстоўваць адаптыўныя апавяшчэнні"</string>
- <string name="notification_polite_description" msgid="7749280535620291610">"Пры атрыманні мноства апавяшчэнняў за кароткі час тэлефон паменшыць іх гучнасць і абмяжуе ўсплывальныя вокны на экране на перыяд да дзвюх хвілін. Для выклікаў, будзільнікаў і прыярытэтных размоў будуць па-ранейшаму ўключаны вібрацыя, гукавы сігнал або адлюстраванне на экране. Усе атрыманыя апавяшчэнні будзе лёгка знайсці, правёўшы пальцам уніз ад верхняга краю экрана."</string>
+ <string name="notification_polite_title" msgid="6121016426991791557">"Зніжэнне гучнасці апавяшчэнняў"</string>
+ <string name="notification_polite_main_control_title" msgid="5812529809151927149">"Выкарыстаць зніжэнне гучнасці апавяшчэнняў"</string>
+ <string name="notification_polite_description" msgid="5497748284893832854">"Калі за кароткі час прыходзіць мноства апавяшчэнняў, прылада паменшыць іх гучнасць і абмяжуе абвесткі на перыяд да 2 хвілін. Гэта не закране выклікі, будзільнікі і прыярытэтныя размовы. \n\nКаб праглядзець апавяшчэнні, атрыманыя ў перыяд зніжэння гучнасці, правядзіце пальцам уніз ад верхняга краю экрана."</string>
<string name="notification_polite_work" msgid="8823596456640216391">"Прымяніць да працоўных профіляў"</string>
<string name="notification_polite_work_summary" msgid="5014189280132951378">"Прымяняць да праграм працоўнага профілю"</string>
<string name="vr_listeners_title" msgid="4960357292472540964">"Дапаможныя VR-сэрвісы"</string>
@@ -3815,7 +3802,9 @@
<string name="zen_mode_apps_priority_apps" msgid="7386196048313716076">"Выбраныя праграмы"</string>
<string name="zen_mode_apps_none_apps" msgid="2493642312793604327">"Ніякія"</string>
<string name="zen_mode_apps_subtext" msgid="1764211974662012877">"{count,plural,offset:2 =0{Рэжым \"Не турбаваць\" распаўсюджваецца на ўсе праграмы}=1{Рэжым \"Не турбаваць\" не распаўсюджваецца на праграму \"{app_1}\"}=2{Рэжым \"Не турбаваць\" не распаўсюджваецца на праграмы \"{app_1}\" і \"{app_2}\"}=3{Рэжым \"Не турбаваць\" не распаўсюджваецца на праграмы \"{app_1}\", \"{app_2}\" і \"{app_3}\"}one{Рэжым \"Не турбаваць\" не распаўсюджваецца на праграмы \"{app_1}\", \"{app_2}\" і яшчэ на # праграму}few{Рэжым \"Не турбаваць\" не распаўсюджваецца на праграмы \"{app_1}\", \"{app_2}\" і яшчэ на # праграмы}many{Рэжым \"Не турбаваць\" не распаўсюджваецца на праграмы \"{app_1}\", \"{app_2}\" і яшчэ на # праграм}other{Рэжым \"Не турбаваць\" не распаўсюджваецца на праграмы \"{app_1}\", \"{app_2}\" і яшчэ на # праграмы}}"</string>
+ <string name="zen_mode_apps_work_app" msgid="8528767938316361588">"<xliff:g id="APP_LABEL">%s</xliff:g> (праца)"</string>
<string name="zen_mode_apps_calculating" msgid="5420121396943539286">"Вядзецца падлік…"</string>
+ <string name="zen_mode_plus_n_items" msgid="6136713354369243421">"+<xliff:g id="NUMBER">%d</xliff:g>"</string>
<string name="zen_mode_bypassing_apps" msgid="625309443389126481">"Дазволіць праграмам перавызначаць"</string>
<string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"Гэты рэжым не распаўсюджваецца на наступныя праграмы"</string>
<string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"Выбраць іншыя праграмы"</string>
@@ -3833,6 +3822,7 @@
<string name="zen_mode_sounds_none" msgid="6557474361948269420">"Рэжым \"Не турбаваць\" распаўсюджваецца на ўсё без выключэння"</string>
<string name="zen_mode_people_none" msgid="4613147461974255046">"Гэты рэжым распаўсюджваецца на ўсіх людзей"</string>
<string name="zen_mode_people_some" msgid="9101872681298810281">"Гэты рэжым не распаўсюджваецца на некаторыя кантакты"</string>
+ <string name="zen_mode_people_repeat_callers" msgid="4499084111069828761">"Рэжым \"Не турбаваць\" не распаўсюджваецца на паўторныя выклікі"</string>
<string name="zen_mode_people_all" msgid="311036110283015205">"Гэты рэжым не распаўсюджваецца на людзей"</string>
<string name="zen_mode_repeat_callers" msgid="2270356100287792138">"Паўторныя выклікі"</string>
<string name="zen_mode_repeat_callers_title" msgid="8016699240338264781">"Дазволіць паўторныя выклікі"</string>
@@ -3856,6 +3846,34 @@
<string name="zen_mode_new_custom_title" msgid="321750898430776191">"Дадаць рэжым"</string>
<string name="zen_mode_new_custom_default_name" msgid="2778307946775085105">"Карыстальніцкі рэжым"</string>
<string name="zen_mode_edit_name_hint" msgid="4584652062167540536">"Назва рэжыму"</string>
+ <string name="zen_mode_trigger_title_schedule_calendar" msgid="9206609438617550331">"Падзеі ў календары"</string>
+ <string name="zen_mode_trigger_title_bedtime" msgid="5086070900588489978">"Расклад сну"</string>
+ <string name="zen_mode_trigger_title_driving" msgid="7890990983453164403">"За рулём"</string>
+ <string name="zen_mode_trigger_title_generic" msgid="601273385119550420">"З прывязкай да праграмы"</string>
+ <string name="zen_mode_trigger_summary_settings_in_app" msgid="4860667191183702601">"Інфармацыя і налады ў праграме \"<xliff:g id="APP_NAME">%1$s</xliff:g>\""</string>
+ <string name="zen_mode_trigger_summary_managed_by_app" msgid="8631011868193102098">"Пад кіраваннем праграмы \"<xliff:g id="APP_NAME">%1$s</xliff:g>\""</string>
+ <string name="zen_mode_confirm_disable_title" msgid="1232297660775719796">"Адключэнне рэжыму"</string>
+ <string name="zen_mode_confirm_disable_message" msgid="7315541221665718491">"Калі вы адключыце гэту функцыю, рэжым перастане працаваць належным чынам, а яго налады не будуць паказвацца."</string>
+ <string name="zen_mode_action_disable" msgid="3552921561331044881">"Адключыць"</string>
+ <string name="zen_mode_confirm_enable_title" msgid="5683371335847448595">"Уключэнне рэжыму"</string>
+ <string name="zen_mode_confirm_enable_message" msgid="7017879133260011419">"Калі вы ўключыце гэту функцыю, рэжым будзе аўтаматычна ўключацца згодна з раскладам."</string>
+ <string name="zen_mode_action_enable" msgid="1161480633223176531">"Уключыць"</string>
+ <!-- no translation found for zen_mode_blurb_schedule_time (8223898702097484009) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_schedule_calendar (382177907856065945) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_bedtime (6155075956151013457) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_driving (1316054379000667305) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_immersive (5884004861848687869) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_theater (2999237960059524225) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_managed (5473921634985032149) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_generic (3041601339807075625) -->
+ <skip />
<string name="warning_button_text" msgid="1274234338874005639">"Заўвага"</string>
<string name="suggestion_button_close" msgid="6865170855573283759">"Закрыць"</string>
<string name="device_feedback" msgid="5351614458411688608">"Адправіць водгук пра гэту прыладу"</string>
@@ -4842,9 +4860,8 @@
<string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"Акумулятар"</string>
<string name="settings_panel_title" msgid="346363079938069215">"Панель налад"</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>
+ <!-- no translation found for enable_desktop_mode_on_secondary_display (2609567824593768780) -->
+ <skip />
<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>
@@ -5021,7 +5038,6 @@
<string name="default_active_sim_mobile_data" msgid="6798083892814045301">"мабільная перадача даных"</string>
<string name="wifi_scan_notify_message" msgid="1331238142061476869">"Каб палепшыць працу прылады, вы можаце дазволіць праграмам і сэрвісам шукаць сеткі Wi-Fi, нават калі Wi‑Fi выключаны. Дзякуючы гэтаму палепшыцца праца функцый і сэрвісаў, звязаных з геалакацыяй. Змяніць гэты рэжым можна ў наладах пошуку сетак Wi-Fi."</string>
<string name="wifi_scan_change" msgid="8438320311511852918">"Змяніць"</string>
- <string name="preference_summary_default_combination" msgid="4643585915107796253">"<xliff:g id="STATE">%1$s</xliff:g> / <xliff:g id="NETWORKMODE">%2$s</xliff:g>"</string>
<string name="mobile_data_connection_active" msgid="2422223108911581552">"Падключана"</string>
<string name="mobile_data_temp_connection_active" msgid="3430470299756236413">"Падключана часова"</string>
<string name="mobile_data_temp_using" msgid="5211002380149434155">"Часова выкарыстоўваецца трафік аператара \"<xliff:g id="SUBNAME">%1$s</xliff:g>\""</string>
@@ -5167,9 +5183,11 @@
<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="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_enable_freeform_support" msgid="3697462756493543645">"Каб уключыць падтрымку вокнаў у адвольнай форме, патрабуецца перазагрузка."</string>
+ <!-- no translation found for reboot_dialog_override_desktop_mode (7480950772574354130) -->
+ <skip />
+ <!-- no translation found for reboot_dialog_enable_desktop_mode_on_secondary_display (1153621881052401924) -->
+ <skip />
<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>
@@ -5287,10 +5305,8 @@
<string name="show_captions_enabled" msgid="7089043007924626">"Уключана"</string>
<string name="live_caption_disabled" msgid="3562035026547887366">"Выключана"</string>
<string name="live_caption_enabled" msgid="5269360946200718949">"Уключана"</string>
- <!-- no translation found for audio_seek_bar_state_left_first (8814986910920838972) -->
- <skip />
- <!-- no translation found for audio_seek_bar_state_right_first (1999368979633398876) -->
- <skip />
+ <string name="audio_seek_bar_state_left_first" msgid="8814986910920838972">"Гук: %1$d%% злева, %2$d%% справа"</string>
+ <string name="audio_seek_bar_state_right_first" msgid="1999368979633398876">"Гук: %1$d%% справа, %2$d%% злева"</string>
<string name="about_phone_device_name_warning" msgid="3243226572404472381">"Назва прылады даступная для ўсталяваных вамі праграм. Яе таксама могуць пабачыць іншыя людзі, калі вы падключыцеся да прылад з Bluetooth або да сеткі Wi-Fi ці наладзіце хот-спот Wi-Fi."</string>
<string name="grammatical_gender_title" msgid="8584242850477270828">"Граматычны род"</string>
<string name="grammatical_gender_dialog_title" msgid="8754048592099871587">"Выберыце граматычны род"</string>
@@ -5402,5 +5418,6 @@
<string name="audio_streams_main_page_password_dialog_join_button" msgid="2967747276379153408">"Слухаць плынь"</string>
<string name="audio_streams_main_page_qr_code_scanner_summary" msgid="5312980105735143360">"Адсканіруйце QR-код аўдыяплыні для праслухоўвання на прыладзе \"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\""</string>
<string name="audio_streams_main_page_password_dialog_cannot_edit" msgid="9020898619297520153">"Калі ажыццяўляецца абагульванне, змяняць пароль нельга. Каб змяніць пароль, выключыце абагульванне аўдыя."</string>
+ <string name="audio_streams_qr_code_scanner_label" msgid="8799703301071378034">"Сканер QR-кодаў"</string>
<string name="homepage_search" msgid="6759334912284663559">"Шукаць у наладах"</string>
</resources>
diff --git a/res/values-bg/strings.xml b/res/values-bg/strings.xml
index 2944056..894d565 100644
--- a/res/values-bg/strings.xml
+++ b/res/values-bg/strings.xml
@@ -41,6 +41,8 @@
<string name="radioInfo_data_suspended" msgid="2001254415431299603">"Прекъсната"</string>
<string name="radioInfo_unknown" msgid="2892562356748600367">"Неизвестно"</string>
<string name="preview_pager_content_description" msgid="3762247188224576303">"Визуализация"</string>
+ <!-- no translation found for qr_code_content_description (1852208464419291347) -->
+ <skip />
<string name="font_size_make_smaller_desc" msgid="4978038055549590140">"Намаляване на размера"</string>
<string name="font_size_make_larger_desc" msgid="5583046033381722247">"Увеличаване на размера"</string>
<string name="stay_awake_on_fold_title" msgid="6590454679898134221">"Винаги"</string>
@@ -283,7 +285,7 @@
<string name="location_settings_summary_location_off" msgid="4797932754681162262">"Изкл."</string>
<string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{Включено/# приложение има достъп до местоположението}other{Включено/# приложения имат достъп до местоположението}}"</string>
<string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"Зарежда се…"</string>
- <string name="location_settings_footer_general" msgid="1040507068701188821">"Приложенията с разрешението за устройства в близост могат да определят относителната позиция на свързаните устройства."</string>
+ <string name="location_settings_footer_general" msgid="3447585552176173502">"Приложенията с разрешението за устройства в близост могат да определят относителната позиция на свързаните устройства."</string>
<string name="location_settings_footer_location_off" msgid="8568995909147566720">"Достъпът до местоположението е изключен за приложенията и услугите. Местоположението на устройството ви пак може да се изпраща до органите за бързо реагиране, когато се обадите на номер за спешни случаи или изпратите SMS до такъв."</string>
<string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Научете повече за настройките за местоположението"</string>
<string name="location_settings_tooltip_text_for_chrome" msgid="5781821709250544575">"За промяна отворете настройките на ChromeOS > „Поверителност и сигурност > Контроли за поверителност > Достъп до местоположението“"</string>
@@ -850,7 +852,6 @@
<string name="nfc_reboot_dialog_title" msgid="2033983438635768169">"Да се рестартира ли устройството?"</string>
<string name="nfc_reboot_dialog_message" msgid="4929353168157966992">"Подробното записване в регистрационни файлове посредством NFC е предназначено само за програмни цели. В сигналите за програмни грешки, които може да съдържат лична информация, са включени допълнителни данни от NFC. За да промените тази настройка, рестартирайте устройството си."</string>
<string name="nfc_reboot_dialog_confirm" msgid="4769763632008584567">"Рестартиране"</string>
- <string name="keywords_external_display" msgid="4181375057920134909">"дублиране, външен екран, свързан екран, екран с usb, разделителна способност, завъртане"</string>
<string name="external_display_on" msgid="2560104443500154333">"Вкл."</string>
<string name="external_display_off" msgid="5634413756025351374">"Изкл."</string>
<string name="external_display_settings_title" msgid="6256884595821605779">"Външен екран"</string>
@@ -1918,6 +1919,8 @@
<string name="slow_keys_summary" msgid="1784371292745423292">"Коригира времето, необходимо за активиране след натискане на даден клавиш, на <xliff:g id="SLOW_KEYS_THRESHOLD">%1$d</xliff:g> мсек"</string>
<string name="sticky_keys" msgid="7317317044898161747">"Фиксирани клавиши"</string>
<string name="sticky_keys_summary" msgid="1844953803625480623">"Натискайте клавишите от съответните комбинации един по един, вместо да ги задържате заедно"</string>
+ <string name="mouse_keys" msgid="6237254627808525540">"Бутони на мишката"</string>
+ <string name="mouse_keys_summary" msgid="2396247040177734245">"Използвайте физическата клавиатура, за да управлявате мишката."</string>
<string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"Клавишни комбинации"</string>
<string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"Показване на списък с клавишните комбинации"</string>
<string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"Клавиатури и инструменти за служебния потр. профил"</string>
@@ -1942,14 +1945,10 @@
<string name="pointer_fill_style_yellow_button" msgid="5025969961559379024">"Запълване на курсора в жълто"</string>
<string name="pointer_fill_style_pink_button" msgid="4106218142489635673">"Запълване на курсора в розово"</string>
<string name="pointer_fill_style_blue_button" msgid="5594958078854032785">"Запълване на курсора в синьо"</string>
- <!-- no translation found for pointer_stroke_style (1886986630216050665) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_white (673686194443825383) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_black (4655806167067437330) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_none (8953927511729800247) -->
- <skip />
+ <string name="pointer_stroke_style" msgid="1886986630216050665">"Стил на контура на курсора"</string>
+ <string name="pointer_stroke_style_name_white" msgid="673686194443825383">"Бяло"</string>
+ <string name="pointer_stroke_style_name_black" msgid="4655806167067437330">"Черно"</string>
+ <string name="pointer_stroke_style_name_none" msgid="8953927511729800247">"Без"</string>
<string name="trackpad_touch_gesture" msgid="8641725062131922497">"Жестове със сензорния панел: Урок"</string>
<string name="keywords_touchpad" msgid="8159846254066666032">"тракпад, мишка, курсор, превъртане, плъзгане, кликване с десния бутон, кликване, показалец"</string>
<string name="keywords_trackpad_bottom_right_tap" msgid="1285062446073929305">"кликване с десния бутон, докосване"</string>
@@ -2179,8 +2178,6 @@
<string name="accessibility_shortcut_edit_dialog_summary_floating_button" msgid="6266489864614886247">"Докоснете плаващия бутон"</string>
<string name="accessibility_shortcut_edit_dialog_title_software_by_gesture" msgid="4775049370625630546">"Жест за достъпност"</string>
<string name="accessibility_shortcut_edit_dialog_summary_software" msgid="8315934725362849788">"Докоснете бутона за достъпност <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g> в долната част на екрана. За превключване между функциите докоснете и задръжте бутона за достъпност."</string>
- <string name="accessibility_shortcut_edit_dialog_summary_software_gesture" msgid="8292555254353761635">"Плъзнете два пръста нагоре от долната част на екрана.\n\nЗа превключване между функциите плъзнете два пръста нагоре и задръжте."</string>
- <string name="accessibility_shortcut_edit_dialog_summary_software_gesture_talkback" msgid="84483464524360845">"Прекарайте три пръста нагоре от долната част на екрана.\n\nЗа превключване между функциите прекарайте три пръста нагоре и задръжте."</string>
<string name="accessibility_shortcut_edit_dialog_summary_gesture" msgid="2081123009255579884">"{count,plural, =1{Плъзнете пръст нагоре от долната част на екрана. За превключване между функциите плъзнете пръст нагоре и задръжте.}other{Плъзнете # пръста нагоре от долната част на екрана. За превключване между функциите плъзнете # пръста нагоре и задръжте.}}"</string>
<string name="accessibility_shortcut_edit_dialog_summary_software_floating" msgid="4459254227203203324"><annotation id="link">"Още опции"</annotation></string>
<string name="footer_learn_more_content_description" msgid="8843798273152131341">"Научете повече за <xliff:g id="SERVICE">%1$s</xliff:g>"</string>
@@ -2191,16 +2188,12 @@
<string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="844089763968552142">"Бутони за силата на звука"</string>
<string name="accessibility_shortcut_hardware_keyword" msgid="2483152542320987022">"бутони за силата на звука."</string>
<string name="accessibility_shortcut_edit_dialog_summary_hardware" msgid="2503134386397991634">"Натиснете и задръжте двата бутона за силата на звука"</string>
- <string name="accessibility_shortcut_edit_dialog_title_two_finger_double_tap" msgid="2271778556854020996">"Двукратно докосване на екрана с два пръста"</string>
<string name="accessibility_shortcut_edit_screen_title_two_finger_double_tap" msgid="8952595692906527694">"Двукратно докосване с %1$d пръста"</string>
<string name="accessibility_shortcut_edit_screen_summary_two_finger_double_tap" msgid="385404127425496362">"Докоснете бързо екрана два пъти с %1$d пръста"</string>
<string name="accessibility_shortcut_edit_screen_title_triple_tap" msgid="3314488747597058942">"Трикратно докосване"</string>
<string name="accessibility_shortcut_edit_screen_summary_triple_tap" msgid="4839204951599629871">"Докоснете бързо екрана %1$d пъти. Това може да забави работата на устройството ви."</string>
<string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="6271718715836961167">"двукратно докосване с %1$d пръста."</string>
- <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"Бързо докоснете екрана {0,number,integer} пъти с два пръста"</string>
- <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"Трикратно докосване на екрана"</string>
<string name="accessibility_shortcut_triple_tap_keyword" msgid="5359347130888464334">"трикратно докосване."</string>
- <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"Бързо докоснете екрана {0,number,integer} пъти. Този пряк път може да забави работата на устройството ви."</string>
<string name="accessibility_shortcut_edit_dialog_title_advance" msgid="4567868630655591506">"Разширени"</string>
<string name="accessibility_screen_magnification_navbar_configuration_warning" msgid="266736851606791552">"Бутонът за достъпност е настроен за <xliff:g id="SERVICE">%1$s</xliff:g>. За да използвате функцията за увеличение, докоснете и задръжте бутона за достъпност, след което я изберете."</string>
<string name="accessibility_screen_magnification_gesture_navigation_warning" msgid="991017769735632046">"За жеста за достъпност е зададено „<xliff:g id="SERVICE">%1$s</xliff:g>“. За да използвате функцията за увеличение, прекарайте два пръста нагоре от долната част на екрана и задръжте. След това изберете опцията."</string>
@@ -2369,6 +2362,7 @@
<string name="daltonizer_mode_tritanomaly_title" msgid="2278786218762602022">"Синьо-жълто"</string>
<string name="daltonizer_mode_grayscale_title" msgid="152005391387952588">"Сива скала"</string>
<string name="daltonizer_saturation_title" msgid="2999486412114963068">"Наситеност"</string>
+ <string name="daltonizer_saturation_unavailable_summary" msgid="8319753055567798775">"Не е налице в режим на сива скала или когато корекцията на цветове е деактивирана"</string>
<string name="daltonizer_mode_deuteranomaly_summary" msgid="2117727423019598455">"Нарушено възприем. на зелено, деутераномалия"</string>
<string name="daltonizer_mode_protanomaly_summary" msgid="4617032854982040748">"Нарушено възприемане на червено, протаномалия"</string>
<string name="daltonizer_mode_tritanomaly_summary" msgid="2428218320118180070">"Тританомалия"</string>
@@ -2418,15 +2412,8 @@
<string name="color_cyan" msgid="4341758639597035927">"Синьо-зелено"</string>
<string name="color_yellow" msgid="5957551912912679058">"Жълто"</string>
<string name="color_magenta" msgid="8943538189219528423">"Пурпурен"</string>
- <string name="enable_service_title" msgid="7231533866953706788">"Искате ли да разрешите на <xliff:g id="SERVICE">%1$s</xliff:g> да има пълен контрол над устройството ви?"</string>
<string name="capabilities_list_title" msgid="1225853611983394386">"<xliff:g id="SERVICE">%1$s</xliff:g> изисква:"</string>
<string name="touch_filtered_warning" msgid="4225815157460318241">"От Настройки не може да се получи потвърждение за отговора ви, защото заявката за разрешение се прикрива от приложение."</string>
- <string name="accessibility_service_warning" msgid="6779187188736432618">"<xliff:g id="SERVICE">%1$s</xliff:g> иска пълен контрол над това устройство. Услугата може да чете екрана и да действа от името на потребителите с увреждания. Това ниво на контрол не е подходящо за повечето приложения."</string>
- <string name="accessibility_service_warning_description" msgid="6573203795976134751">"Пълният контрол е подходящ за приложенията, които помагат на потребителите със специални нужди, но не и за повечето приложения."</string>
- <string name="accessibility_service_screen_control_title" msgid="324795030658109870">"Преглед и управление на екрана"</string>
- <string name="accessibility_service_screen_control_description" msgid="8431940515157990426">"Услугата може да чете цялото съдържание на екрана и да показва такова върху други приложения."</string>
- <string name="accessibility_service_action_perform_title" msgid="1449360056585337833">"Преглед и извършване на действия"</string>
- <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"Услугата може да проследява взаимодействията ви с дадено приложение или хардуерен сензор, както и да взаимодейства с приложенията от ваше име."</string>
<string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Разрешаване"</string>
<string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Отказ"</string>
<string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Изключване"</string>
@@ -3368,10 +3355,8 @@
<string name="zen_mode_automation_settings_title" msgid="3709324184191870926">"Графици"</string>
<string name="zen_mode_delete_automatic_rules" msgid="5020468289267191765">"Изтриване на графиците"</string>
<string name="zen_mode_schedule_delete" msgid="5383420576833765114">"Изтриване"</string>
- <!-- no translation found for zen_mode_menu_rename_mode (4681802125016390837) -->
- <skip />
- <!-- no translation found for zen_mode_menu_delete_mode (5380084696402157428) -->
- <skip />
+ <string name="zen_mode_menu_rename_mode" msgid="4681802125016390837">"Преименуване"</string>
+ <string name="zen_mode_menu_delete_mode" msgid="5380084696402157428">"Изтриване"</string>
<string name="zen_mode_delete_mode_confirmation" msgid="7594340592051947392">"Да се изтрие ли режимът „<xliff:g id="MODE">%1$s</xliff:g>“?"</string>
<string name="zen_mode_rule_name_edit" msgid="1053237022416700481">"Редактиране"</string>
<string name="zen_mode_automation_settings_page_title" msgid="6217433860514433311">"Графици"</string>
@@ -3395,8 +3380,7 @@
<string name="zen_mode_visual_signals_settings_subtitle" msgid="7433077540895876672">"Визуални сигнали: Разрешаване"</string>
<string name="mode_interruption_filter_title" msgid="3343846700214702347">"Концентрация"</string>
<string name="mode_device_effects_title" msgid="5857008332618433744">"Допълнителни действия"</string>
- <!-- no translation found for modes_sound_summary_off (6972648204528227879) -->
- <skip />
+ <string name="modes_sound_summary_off" msgid="6972648204528227879">"{count,plural, =0{Изкл.}=1{Изкл./1 режим може да се включва автоматично}other{Изкл./# режима могат да се включват автоматично}}"</string>
<string name="mode_display_settings_title" msgid="8132825978346535472">"Настройки за показване"</string>
<string name="mode_display_options_section" msgid="5151597748243866532">"Опции за показване"</string>
<string name="mode_grayscale_title" msgid="6027553257331235461">"Сива скала"</string>
@@ -3659,9 +3643,9 @@
<string name="notif_listener_not_migrated" msgid="6265206376374278226">"Това приложение не поддържа подобрените настройки"</string>
<string name="notif_listener_more_settings" msgid="1348409392307208921">"Още настройки"</string>
<string name="notif_listener_more_settings_desc" msgid="7995492074281663658">"Още настройки са налице в приложението"</string>
- <string name="notification_polite_title" msgid="4737150709382859870">"Адаптивни известия"</string>
- <string name="notification_polite_main_control_title" msgid="7267191551379543859">"Използване на адаптивни известия"</string>
- <string name="notification_polite_description" msgid="7749280535620291610">"Когато получавате много известия за кратък период от време, телефонът ви ще намали силата на звука и ще сведе до минимум изскачащите прозорци на екрана за период до две минути. При обаждания, будилници и разговори с приоритет устройството ви ще вибрира, ще издава звук или те ще се показват на екрана. Всички известия могат да бъдат намерени лесно, като плъзнете надолу от горната част на екрана."</string>
+ <string name="notification_polite_title" msgid="6121016426991791557">"Изчакване за известията"</string>
+ <string name="notification_polite_main_control_title" msgid="5812529809151927149">"Използване на функцията за изчакване за известията"</string>
+ <string name="notification_polite_description" msgid="5497748284893832854">"Когато получавате много известия за кратък период от време, устройството ви ще намали силата на звука си и ще сведе до минимум сигналите за период до две минути. Обажданията, будилниците и разговорите с приоритет няма да бъдат засегнати. \n\nПолучените по време на периода на изчакване известия могат да бъдат намерени, като плъзнете надолу от горната част на екрана."</string>
<string name="notification_polite_work" msgid="8823596456640216391">"Прилагане към служебните потребителски профили"</string>
<string name="notification_polite_work_summary" msgid="5014189280132951378">"Прилагане за приложенията в служебния потребителски профил"</string>
<string name="vr_listeners_title" msgid="4960357292472540964">"Помощни услуги за VR"</string>
@@ -3818,7 +3802,9 @@
<string name="zen_mode_apps_priority_apps" msgid="7386196048313716076">"Избрани приложения"</string>
<string name="zen_mode_apps_none_apps" msgid="2493642312793604327">"Никои"</string>
<string name="zen_mode_apps_subtext" msgid="1764211974662012877">"{count,plural,offset:2 =0{Нито едно приложение не може да прекъсва режима}=1{{app_1} може да прекъсва режима}=2{{app_1} и {app_2} могат да прекъсват режима}=3{{app_1}, {app_2} и {app_3} могат да прекъсват режима}other{{app_1}, {app_2} и още # могат да прекъсват режима}}"</string>
+ <string name="zen_mode_apps_work_app" msgid="8528767938316361588">"<xliff:g id="APP_LABEL">%s</xliff:g> (служ.)"</string>
<string name="zen_mode_apps_calculating" msgid="5420121396943539286">"Изчислява се…"</string>
+ <string name="zen_mode_plus_n_items" msgid="6136713354369243421">"+ <xliff:g id="NUMBER">%d</xliff:g>"</string>
<string name="zen_mode_bypassing_apps" msgid="625309443389126481">"Разрешаване на приложения да отменят режима"</string>
<string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"Приложения, които могат да прекъсват режима"</string>
<string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"Избиране на още приложения"</string>
@@ -3836,6 +3822,7 @@
<string name="zen_mode_sounds_none" msgid="6557474361948269420">"Нищо не може да прекъсва режима"</string>
<string name="zen_mode_people_none" msgid="4613147461974255046">"Никой не може да прекъсва режима"</string>
<string name="zen_mode_people_some" msgid="9101872681298810281">"Някои хора могат да прекъсват режима"</string>
+ <string name="zen_mode_people_repeat_callers" msgid="4499084111069828761">"Повторно обаждащите се могат да прекъсват"</string>
<string name="zen_mode_people_all" msgid="311036110283015205">"Всички хора могат да прекъсват режима"</string>
<string name="zen_mode_repeat_callers" msgid="2270356100287792138">"Повторно обаждащи се"</string>
<string name="zen_mode_repeat_callers_title" msgid="8016699240338264781">"Разрешаване на повторно обаждащи се"</string>
@@ -3855,13 +3842,37 @@
<string name="zen_mode_summary_alarms_only_by_hour" msgid="7400910210950788163">"{count,plural, =1{Активиране на режима „Само будилници“ за един час (до {time})}other{Активиране на режима „Само будилници“ за # часа (до {time})}}"</string>
<string name="zen_mode_summary_alarms_only_by_time" msgid="8140619669703968810">"Активиране на режима „Само будилници“ до <xliff:g id="FORMATTEDTIME">%1$s</xliff:g>"</string>
<string name="zen_mode_summary_always" msgid="722093064250082317">"Активиране на режима „Прекъсване винаги“"</string>
- <!-- no translation found for zen_mode_rename_title (8146882272966214558) -->
+ <string name="zen_mode_rename_title" msgid="8146882272966214558">"Редактир. на режима"</string>
+ <string name="zen_mode_new_custom_title" msgid="321750898430776191">"Добавяне на режим"</string>
+ <string name="zen_mode_new_custom_default_name" msgid="2778307946775085105">"Персонализиран режим"</string>
+ <string name="zen_mode_edit_name_hint" msgid="4584652062167540536">"Име на режима"</string>
+ <string name="zen_mode_trigger_title_schedule_calendar" msgid="9206609438617550331">"Събития от календара"</string>
+ <string name="zen_mode_trigger_title_bedtime" msgid="5086070900588489978">"График за времето за сън"</string>
+ <string name="zen_mode_trigger_title_driving" msgid="7890990983453164403">"По време на шофиране"</string>
+ <string name="zen_mode_trigger_title_generic" msgid="601273385119550420">"Свързано с приложение"</string>
+ <string name="zen_mode_trigger_summary_settings_in_app" msgid="4860667191183702601">"Информация и настройки в(ъв) <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+ <string name="zen_mode_trigger_summary_managed_by_app" msgid="8631011868193102098">"Управлява се от <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+ <string name="zen_mode_confirm_disable_title" msgid="1232297660775719796">"Деактивиране на режима"</string>
+ <string name="zen_mode_confirm_disable_message" msgid="7315541221665718491">"Ако деактивирате тази функция, режимът вече няма да работи по обичайния начин и настройките му ще бъдат скрити."</string>
+ <string name="zen_mode_action_disable" msgid="3552921561331044881">"Деактивиране"</string>
+ <string name="zen_mode_confirm_enable_title" msgid="5683371335847448595">"Активиране на режима"</string>
+ <string name="zen_mode_confirm_enable_message" msgid="7017879133260011419">"Ако активирате тази функция, режимът ще се активира автоматично според графика за него."</string>
+ <string name="zen_mode_action_enable" msgid="1161480633223176531">"Активиране"</string>
+ <!-- no translation found for zen_mode_blurb_schedule_time (8223898702097484009) -->
<skip />
- <!-- no translation found for zen_mode_new_custom_title (321750898430776191) -->
+ <!-- no translation found for zen_mode_blurb_schedule_calendar (382177907856065945) -->
<skip />
- <!-- no translation found for zen_mode_new_custom_default_name (2778307946775085105) -->
+ <!-- no translation found for zen_mode_blurb_bedtime (6155075956151013457) -->
<skip />
- <!-- no translation found for zen_mode_edit_name_hint (4584652062167540536) -->
+ <!-- no translation found for zen_mode_blurb_driving (1316054379000667305) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_immersive (5884004861848687869) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_theater (2999237960059524225) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_managed (5473921634985032149) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_generic (3041601339807075625) -->
<skip />
<string name="warning_button_text" msgid="1274234338874005639">"Предупреждение"</string>
<string name="suggestion_button_close" msgid="6865170855573283759">"Затваряне"</string>
@@ -4849,9 +4860,8 @@
<string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"Батерия"</string>
<string name="settings_panel_title" msgid="346363079938069215">"Панел за настройки"</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>
+ <!-- no translation found for enable_desktop_mode_on_secondary_display (2609567824593768780) -->
+ <skip />
<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>
@@ -5026,7 +5036,6 @@
<string name="default_active_sim_mobile_data" msgid="6798083892814045301">"мобилни данни"</string>
<string name="wifi_scan_notify_message" msgid="1331238142061476869">"С цел подобряване на практическата работа с устройството приложенията и услугите пак могат да сканират за Wi‑Fi мрежи по всяко време дори когато функцията за Wi‑Fi e изключена. Това може да послужи например за подобряване на базиращите се на местоположението функции и услуги. Можете да промените съответното поведение от настройките за сканиране за Wi‑Fi."</string>
<string name="wifi_scan_change" msgid="8438320311511852918">"Промяна"</string>
- <string name="preference_summary_default_combination" msgid="4643585915107796253">"<xliff:g id="STATE">%1$s</xliff:g>/<xliff:g id="NETWORKMODE">%2$s</xliff:g>"</string>
<string name="mobile_data_connection_active" msgid="2422223108911581552">"Свързано"</string>
<string name="mobile_data_temp_connection_active" msgid="3430470299756236413">"Установена е временна връзка"</string>
<string name="mobile_data_temp_using" msgid="5211002380149434155">"Временно се използва <xliff:g id="SUBNAME">%1$s</xliff:g>"</string>
@@ -5172,9 +5181,11 @@
<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="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_enable_freeform_support" msgid="3697462756493543645">"За да се активира поддръжката за прозорци в свободна форма, се изисква рестартиране."</string>
+ <!-- no translation found for reboot_dialog_override_desktop_mode (7480950772574354130) -->
+ <skip />
+ <!-- no translation found for reboot_dialog_enable_desktop_mode_on_secondary_display (1153621881052401924) -->
+ <skip />
<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>
@@ -5292,10 +5303,8 @@
<string name="show_captions_enabled" msgid="7089043007924626">"Вкл."</string>
<string name="live_caption_disabled" msgid="3562035026547887366">"Изкл."</string>
<string name="live_caption_enabled" msgid="5269360946200718949">"Вкл."</string>
- <!-- no translation found for audio_seek_bar_state_left_first (8814986910920838972) -->
- <skip />
- <!-- no translation found for audio_seek_bar_state_right_first (1999368979633398876) -->
- <skip />
+ <string name="audio_seek_bar_state_left_first" msgid="8814986910920838972">"Аудио: ляво %1$d%%, дясно %2$d%%"</string>
+ <string name="audio_seek_bar_state_right_first" msgid="1999368979633398876">"Аудио: дясно %1$d%%, ляво %2$d%%"</string>
<string name="about_phone_device_name_warning" msgid="3243226572404472381">"Името на устройството ви е видимо за инсталираните от вас приложения. То може да се вижда и от други хора, когато се свържете с устройства с Bluetooth или с Wi-Fi мрежа или настроите точка за достъп до Wi-Fi."</string>
<string name="grammatical_gender_title" msgid="8584242850477270828">"Граматически род"</string>
<string name="grammatical_gender_dialog_title" msgid="8754048592099871587">"Изберете граматически род"</string>
@@ -5407,5 +5416,6 @@
<string name="audio_streams_main_page_password_dialog_join_button" msgid="2967747276379153408">"Слушане на потока"</string>
<string name="audio_streams_main_page_qr_code_scanner_summary" msgid="5312980105735143360">"Сканирайте QR кода за даден аудиопоток, за да го слушате на <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
<string name="audio_streams_main_page_password_dialog_cannot_edit" msgid="9020898619297520153">"Паролата не може да се редактира по време на споделяне. За да я промените, първо изключете функцията за споделяне на звука."</string>
+ <string name="audio_streams_qr_code_scanner_label" msgid="8799703301071378034">"Скенер за QR кодове"</string>
<string name="homepage_search" msgid="6759334912284663559">"Настройки за търсенето"</string>
</resources>
diff --git a/res/values-bn/strings.xml b/res/values-bn/strings.xml
index bd90215..1f87f02 100644
--- a/res/values-bn/strings.xml
+++ b/res/values-bn/strings.xml
@@ -41,6 +41,8 @@
<string name="radioInfo_data_suspended" msgid="2001254415431299603">"স্থগিত করা হয়েছে"</string>
<string name="radioInfo_unknown" msgid="2892562356748600367">"অজানা"</string>
<string name="preview_pager_content_description" msgid="3762247188224576303">"প্রিভিউ"</string>
+ <!-- no translation found for qr_code_content_description (1852208464419291347) -->
+ <skip />
<string name="font_size_make_smaller_desc" msgid="4978038055549590140">"আরো ছোট করুন"</string>
<string name="font_size_make_larger_desc" msgid="5583046033381722247">"আরো বড় করুন"</string>
<string name="stay_awake_on_fold_title" msgid="6590454679898134221">"সবসময়"</string>
@@ -283,7 +285,7 @@
<string name="location_settings_summary_location_off" msgid="4797932754681162262">"বন্ধ আছে"</string>
<string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{চালু আছে / #টি অ্যাপ লোকেশন অ্যাক্সেস করতে পারবে}one{চালু আছে / #টি অ্যাপ লোকেশন অ্যাক্সেস করতে পারবে}other{চালু আছে / #টি অ্যাপ লোকেশন অ্যাক্সেস করতে পারবে}}"</string>
<string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"লোড হচ্ছে…"</string>
- <string name="location_settings_footer_general" msgid="1040507068701188821">"আশেপাশের ডিভাইসের অনুমতি থাকা অ্যাপগুলি কানেক্ট করা ডিভাইসের আপেক্ষিক অবস্থান নির্ণয় করতে পারে।"</string>
+ <string name="location_settings_footer_general" msgid="3447585552176173502">"কাছাকাছি ডিভাইসের অনুমতি থাকা অ্যাপ, কানেক্ট করা ডিভাইসের আপেক্ষিক অবস্থান নির্ণয় করতে পারে।"</string>
<string name="location_settings_footer_location_off" msgid="8568995909147566720">"অ্যাপ ও পরিষেবার লোকেশন অ্যাক্সেস বন্ধ রয়েছে। জরুরি নম্বরে কল অথবা টেক্সট করলে সাহায্যকারীর কাছে আপনার ডিভাইসের লোকেশন এখনও পাঠানো হতে পারে।"</string>
<string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"\'লোকেশন সেটিংস\' সম্পর্কে আরও জানুন"</string>
<string name="location_settings_tooltip_text_for_chrome" msgid="5781821709250544575">"পরিবর্তন করতে, \'ChromeOS সেটিংস > গোপনীয়তা ও সুরক্ষা > গোপনীয়তা নিয়ন্ত্রণ > লোকেশন অ্যাক্সেস\' বিকল্পে যান"</string>
@@ -314,7 +316,7 @@
<string name="security_settings_face_enroll_introduction_accessibility_vision" msgid="7700394302162170363"></string>
<string name="security_settings_face_enroll_introduction_cancel" msgid="7551159644361639436">"বাতিল করুন"</string>
<string name="security_settings_face_enroll_introduction_no_thanks" msgid="6603178409726203187">"এখন নয়"</string>
- <string name="security_settings_face_enroll_introduction_agree" msgid="6319476573697497750">"আমি সম্মতি জানাচ্ছি"</string>
+ <string name="security_settings_face_enroll_introduction_agree" msgid="6319476573697497750">"আমি সম্মত"</string>
<string name="security_settings_face_enroll_introduction_more" msgid="1970820298889710532">"আরও"</string>
<string name="security_settings_face_enroll_introduction_title" msgid="7061610077237098046">"আপনার ফেস দিয়ে আনলক করুন"</string>
<string name="security_settings_face_enroll_consent_introduction_title" msgid="3942331854413767814">"\'ফেস আনলক\' ফিচার ব্যবহার করার অনুমতি দিন"</string>
@@ -369,13 +371,13 @@
<string name="security_settings_fingerprint_enroll_consent_introduction_title" msgid="2278592030102282364">"\'ফিঙ্গারপ্রিন্ট আনলক\' করতে অনুমতি"</string>
<string name="security_settings_fingerprint_enroll_introduction_title_unlock_disabled" msgid="1911710308293783998">"আঙ্গুলের ছাপ ব্যবহার করুন"</string>
<string name="security_settings_fingerprint_settings_footer_learn_more" msgid="2508322993726483601">"\'ফিঙ্গারপ্রিন্ট আনলক\' ফিচার সম্পর্কে আরও জানুন"</string>
- <string name="security_settings_fingerprint_enroll_introduction_footer_title_1" msgid="6808124116419325722">"নিয়ন্ত্রণ আপনার কাছেই আছে"</string>
+ <string name="security_settings_fingerprint_enroll_introduction_footer_title_1" msgid="6808124116419325722">"নিয়ন্ত্রণ আপনার হাতেই রয়েছে"</string>
<string name="security_settings_fingerprint_enroll_introduction_footer_title_consent_1" msgid="1122676690472680734">"আপনি ও আপনার সন্তান এটি নিয়ন্ত্রণ করছেন"</string>
<string name="security_settings_fingerprint_enroll_introduction_footer_title_2" msgid="5663733424583416266">"মনে রাখবেন"</string>
<string name="security_settings_fingerprint_enroll_introduction_message_unlock_disabled" msgid="8957789840251747092">"আপনার ফোন আনলক বা কেনাকাটাগুলির অনুমোদন করতে আপনার আঙ্গুলের ছাপ ব্যবহার করুন। \n\nদ্রষ্টব্য: আপনি এই ডিভাইসটি আনলক করার জন্য আপনার আঙ্গুলের ছাপ ব্যবহার করতে পারবেন না। আরও তথ্যের জন্য, আপনার প্রতিষ্ঠানের প্রশাসকের সাথে যোগাযোগ করুন।"</string>
<string name="security_settings_fingerprint_enroll_introduction_cancel" msgid="6086532316718920562">"বাতিল করুন"</string>
<string name="security_settings_fingerprint_enroll_introduction_no_thanks" msgid="1663906389456119842">"এখন নয়"</string>
- <string name="security_settings_fingerprint_enroll_introduction_agree" msgid="4068276083536421828">"আমি রাজি"</string>
+ <string name="security_settings_fingerprint_enroll_introduction_agree" msgid="4068276083536421828">"আমি সম্মত"</string>
<string name="setup_fingerprint_enroll_skip_title" msgid="2473807887676247264">"ফিঙ্গারপ্রিন্ট এড়িয়ে যাবেন?"</string>
<string name="setup_fingerprint_enroll_skip_after_adding_lock_text" msgid="2412645723804450304">"ফিঙ্গারপ্রিন্ট সেট-আপ করতে এক থেকে দুই মিনিট মতো সময় লাগবে। আপনি যদি এড়িয়ে যেতে চান তবে পরে সেটিংসে গিয়ে পরিবর্তন করতে পারবেন।"</string>
<string name="security_settings_fingerprint_v2_enroll_introduction_message_setup" msgid="6255210343107484206">"এই আইকনটি দেখলে যাচাই করার জন্য আপনার আঙ্গুলের ছাপ ব্যবহার করুন, যেভাবে কোনও অ্যাপে সাইন-ইন করেন অথবা কেনাকাটায় অনুমোদন দেন"</string>
@@ -666,8 +668,8 @@
<string name="lock_settings_picker_admin_restricted_personal_message" msgid="3532653662159888328">"আপনি স্ক্রিন লক ভুলে গেলে, আইটি অ্যাডমিন তা রিসেট করতে পারবেন না।"</string>
<string name="lock_settings_picker_admin_restricted_personal_message_action" msgid="5956615234246626264">"অন্য একটি অফিস লক সেট করুন"</string>
<string name="lock_settings_picker_profile_message" msgid="9142379549980873478">"আপনি এই লকের প্যাটার্ন ভুলে গেলে, আপনার আইটি অ্যাডমিনকে এটা রিসেট করতে বলুন"</string>
- <string name="setup_lock_settings_options_button_label" msgid="6098297461618298505">"স্ক্রিন লক-এর বিকল্প"</string>
- <string name="setup_lock_settings_options_dialog_title" msgid="7985107300517468569">"স্ক্রিন লক-এর বিকল্পগুলি"</string>
+ <string name="setup_lock_settings_options_button_label" msgid="6098297461618298505">"স্ক্রিন লকের বিকল্প"</string>
+ <string name="setup_lock_settings_options_dialog_title" msgid="7985107300517468569">"স্ক্রিন লকের বিকল্প"</string>
<string name="lock_screen_auto_pin_confirm_title" msgid="3012128112186088375">"পিন অটোমেটিক কনফার্ম করে ডিভাইস আনলক করা"</string>
<string name="lock_screen_auto_pin_confirm_summary" msgid="9050818870806580819">"৬ বা তার বেশি সংখ্যার সঠিক পিন লিখলে অটোমেটিক আনলক করুন। \'এন্টার\' ট্যাপ করে কনফার্ম করার থেকে এই প্রক্রিয়াটি সামান্য কম নিরাপদ।"</string>
<string name="auto_pin_confirm_user_message" msgid="6194556173488939314">"সঠিক পিন অটোমেটিক কনফার্ম করুন"</string>
@@ -850,7 +852,6 @@
<string name="nfc_reboot_dialog_title" msgid="2033983438635768169">"ডিভাইস রিস্টার্ট করবেন?"</string>
<string name="nfc_reboot_dialog_message" msgid="4929353168157966992">"শুধুমাত্র উন্নতির উদ্দেশ্যে বিস্তারিত NFC লগিং করা হয়েছে। NFC সংক্রান্ত অতিরিক্ত ডেটা সমস্যার রিপোর্টে অন্তর্ভুক্ত করা হয়েছে, যার মধ্যে ব্যক্তিগত তথ্যও থাকতে পারে। এই সেটিং পরিবর্তন করতে, আপনার ডিভাইস রিস্টার্ট করুন।"</string>
<string name="nfc_reboot_dialog_confirm" msgid="4769763632008584567">"রিস্টার্ট করুন"</string>
- <string name="keywords_external_display" msgid="4181375057920134909">"মিরর, এক্সটার্নাল ডিসপ্লে, কানেক্টেড ডিসপ্লে, USB ডিসপ্লে, রেজোলিউশন, রোটেশন"</string>
<string name="external_display_on" msgid="2560104443500154333">"চালু আছে"</string>
<string name="external_display_off" msgid="5634413756025351374">"বন্ধ আছে"</string>
<string name="external_display_settings_title" msgid="6256884595821605779">"এক্সটার্নাল ডিসপ্লে"</string>
@@ -1918,6 +1919,8 @@
<string name="slow_keys_summary" msgid="1784371292745423292">"কোনও কী প্রেস করলে সেটি অ্যাক্টিভেট হতে যে সময় লাগে তা <xliff:g id="SLOW_KEYS_THRESHOLD">%1$d</xliff:g> মিলি সেকেন্ডে অ্যাডজাস্ট হয়"</string>
<string name="sticky_keys" msgid="7317317044898161747">"স্টিকি \'কী\'"</string>
<string name="sticky_keys_summary" msgid="1844953803625480623">"শর্টকাটের জন্য কীগুলি একসাথে ধরে রাখার পরিবর্তে একবারে একটি কী প্রেস করুন"</string>
+ <string name="mouse_keys" msgid="6237254627808525540">"মাউস \'কী\'"</string>
+ <string name="mouse_keys_summary" msgid="2396247040177734245">"মাউস কন্ট্রোল করতে ফিজিক্যাল কীবোর্ড ব্যবহার করুন।"</string>
<string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"কীবোর্ড শর্টকাট"</string>
<string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"শর্টকাটের তালিকা দেখান"</string>
<string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"অফিসের প্রোফাইলের কীবোর্ড ও টুল"</string>
@@ -1942,14 +1945,10 @@
<string name="pointer_fill_style_yellow_button" msgid="5025969961559379024">"পয়েন্টার ফিল স্টাইল বদলে হলুদ করুন"</string>
<string name="pointer_fill_style_pink_button" msgid="4106218142489635673">"পয়েন্টার ফিল স্টাইল বদলে গোলাপি করুন"</string>
<string name="pointer_fill_style_blue_button" msgid="5594958078854032785">"পয়েন্টার ফিল স্টাইল বদলে নীল করুন"</string>
- <!-- no translation found for pointer_stroke_style (1886986630216050665) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_white (673686194443825383) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_black (4655806167067437330) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_none (8953927511729800247) -->
- <skip />
+ <string name="pointer_stroke_style" msgid="1886986630216050665">"পয়েন্টার স্ট্রোক স্টাইল"</string>
+ <string name="pointer_stroke_style_name_white" msgid="673686194443825383">"সাদা"</string>
+ <string name="pointer_stroke_style_name_black" msgid="4655806167067437330">"কালো"</string>
+ <string name="pointer_stroke_style_name_none" msgid="8953927511729800247">"কোনওটিই নয়"</string>
<string name="trackpad_touch_gesture" msgid="8641725062131922497">"টাচপ্যাডের জেসচার সম্পর্কে জানুন"</string>
<string name="keywords_touchpad" msgid="8159846254066666032">"ট্র্যাকপ্যাড, ট্র্যাক প্যাড, মাউস, কার্সর, স্ক্রল, সোয়াইপ, ডানদিকের বোতামে ক্লিক, ক্লিক, পয়েন্টার"</string>
<string name="keywords_trackpad_bottom_right_tap" msgid="1285062446073929305">"ডানদিকের বোতামে ক্লিক, ট্যাপ"</string>
@@ -2179,8 +2178,6 @@
<string name="accessibility_shortcut_edit_dialog_summary_floating_button" msgid="6266489864614886247">"ফ্লোটিং বোতামে ট্যাপ করুন"</string>
<string name="accessibility_shortcut_edit_dialog_title_software_by_gesture" msgid="4775049370625630546">"অ্যাক্সেসিবিলিটি জেসচার"</string>
<string name="accessibility_shortcut_edit_dialog_summary_software" msgid="8315934725362849788">"স্ক্রিনের একেবারে নিচে অ্যাক্সেসিবিলিটি বোতামে <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g> ট্যাপ করুন। একটি ফিচার থেকে অন্যটিতে পাল্টে নিতে, অ্যাক্সেসিবিলিটি বোতাম টাচ করে ধরে থাকুন।"</string>
- <string name="accessibility_shortcut_edit_dialog_summary_software_gesture" msgid="8292555254353761635">"স্ক্রিনের নিচ থেকে উপরের দিকে দুটি আঙ্গুল দিয়ে সোয়াইপ করুন।\n\nএকটি ফিচার থেকে অন্যটিতে যেতে, দুটি আঙ্গুল দিয়ে নিচ থেকে উপরের দিকে সোয়াইপ করে ধরে থাকুন।"</string>
- <string name="accessibility_shortcut_edit_dialog_summary_software_gesture_talkback" msgid="84483464524360845">"স্ক্রিনের নিচ থেকে উপরের দিকে তিনটি আঙ্গুল দিয়ে সোয়াইপ করুন।\n\nএকটি ফিচার থেকে অন্যটিতে যেতে, তিনটি আঙ্গুল দিয়ে নিচ থেকে উপরের দিকে সোয়াইপ করে ধরে থাকুন।"</string>
<string name="accessibility_shortcut_edit_dialog_summary_gesture" msgid="2081123009255579884">"{count,plural, =1{আপনার স্ক্রিনের একেবারে নিচ থেকে সোয়াইপ করুন। একটি ফিচার থেকে অন্যটিতে পাল্টে নিতে, উপরের দিকে সোয়াইপ করে ধরে রাখুন।}one{#টি আঙ্গুল দিয়ে আপনার স্ক্রিনের একেবারে নিচ থেকে উপরের দিকে সোয়াইপ করুন। একটি ফিচার থেকে অন্যটিতে পাল্টে নিতে, #টি আঙ্গুল দিয়ে উপরের দিকে সোয়াইপ করে ধরে থাকুন।}other{#টি আঙ্গুল দিয়ে আপনার স্ক্রিনের একেবারে নিচ থেকে উপরের দিকে সোয়াইপ করুন। একটি ফিচার থেকে অন্যটিতে পাল্টে নিতে, #টি আঙ্গুল দিয়ে উপরের দিকে সোয়াইপ করে ধরে থাকুন।}}"</string>
<string name="accessibility_shortcut_edit_dialog_summary_software_floating" msgid="4459254227203203324"><annotation id="link">"আরও বিকল্প"</annotation></string>
<string name="footer_learn_more_content_description" msgid="8843798273152131341">"<xliff:g id="SERVICE">%1$s</xliff:g> সম্পর্কে আরও জানুন"</string>
@@ -2191,16 +2188,12 @@
<string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="844089763968552142">"ভলিউম কী"</string>
<string name="accessibility_shortcut_hardware_keyword" msgid="2483152542320987022">"ভলিউম কী"</string>
<string name="accessibility_shortcut_edit_dialog_summary_hardware" msgid="2503134386397991634">"উভয় ভলিউম কী প্রেস করে ধরে থাকুন"</string>
- <string name="accessibility_shortcut_edit_dialog_title_two_finger_double_tap" msgid="2271778556854020996">"দুই আঙুল দিয়ে স্ক্রিনে ডবল ট্যাপ করুন"</string>
<string name="accessibility_shortcut_edit_screen_title_two_finger_double_tap" msgid="8952595692906527694">"%1$dটি আঙুল দিয়ে ডবল ট্যাপ"</string>
<string name="accessibility_shortcut_edit_screen_summary_two_finger_double_tap" msgid="385404127425496362">"স্ক্রিনে দ্রুত %1$dটি আঙুল দিয়ে দুবার ট্যাপ করুন"</string>
<string name="accessibility_shortcut_edit_screen_title_triple_tap" msgid="3314488747597058942">"ট্রিপল ট্যাপ"</string>
<string name="accessibility_shortcut_edit_screen_summary_triple_tap" msgid="4839204951599629871">"স্ক্রিনে দ্রুত %1$d বার ট্যাপ করুন। এটি আপনার ডিভাইসের স্পিড কমিয়ে দিতে পারে।"</string>
<string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="6271718715836961167">"%1$d-টি আঙুল দিয়ে ডবল ট্যাপ"</string>
- <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"দুই আঙুল দিয়ে স্ক্রিনে দ্রুত {0,number,integer} বার ট্যাপ করুন"</string>
- <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"ট্রিপল-ট্যাপ স্ক্রিন"</string>
<string name="accessibility_shortcut_triple_tap_keyword" msgid="5359347130888464334">"ট্রিপল ট্যাপ"</string>
- <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"স্ক্রিনে ঝটপট {0,number,integer} বার ট্যাপ করুন। এই শর্টকাট ব্যবহারের ফলে আপনার ডিভাইসের স্পিড কমে যেতে পারে"</string>
<string name="accessibility_shortcut_edit_dialog_title_advance" msgid="4567868630655591506">"উন্নত"</string>
<string name="accessibility_screen_magnification_navbar_configuration_warning" msgid="266736851606791552">"অ্যাক্সেসযোগ্যতা বোতামটি <xliff:g id="SERVICE">%1$s</xliff:g> এর সাথে সেট করা আছে। ম্যাগনিফিকেশন ব্যবহার করার জন্য অ্যাক্সেসযোগ্যতা বোতামটি স্পর্শ করে টিপে ধরুন, তারপর ম্যাগনিফিকেশন বেছে নিন।"</string>
<string name="accessibility_screen_magnification_gesture_navigation_warning" msgid="991017769735632046">"অ্যাক্সেসিবিলিটি জেসচার <xliff:g id="SERVICE">%1$s</xliff:g>-এ সেট করা আছে। ম্যাগনিফিকেশন ব্যবহার করার জন্য, স্ক্রিনের নিচ থেকে দুটি আঙুল দিয়ে উপরের দিকে সোয়াইপ করুন এবং ধরে থাকুন। তার পরে ম্যাগনিফিকেশন বেছে নিন।"</string>
@@ -2369,6 +2362,7 @@
<string name="daltonizer_mode_tritanomaly_title" msgid="2278786218762602022">"নীল-হলুদ"</string>
<string name="daltonizer_mode_grayscale_title" msgid="152005391387952588">"গ্রেস্কেল"</string>
<string name="daltonizer_saturation_title" msgid="2999486412114963068">"ইন্টেন্সিটি"</string>
+ <string name="daltonizer_saturation_unavailable_summary" msgid="8319753055567798775">"গ্রেস্কেল মোডের জন্য অথবা রঙ সংশোধন করার ফিচার বন্ধ থাকলে উপলভ্য হয় না"</string>
<string name="daltonizer_mode_deuteranomaly_summary" msgid="2117727423019598455">"এমন সমস্যা যেখানে সবুজ রঙ লাল হিসেবে দেখা যায়"</string>
<string name="daltonizer_mode_protanomaly_summary" msgid="4617032854982040748">"এমন সমস্যা যেখানে লাল রঙ সবুজ হিসেবে দেখা যায়"</string>
<string name="daltonizer_mode_tritanomaly_summary" msgid="2428218320118180070">"ট্রিট্যানোম্যালি"</string>
@@ -2418,15 +2412,8 @@
<string name="color_cyan" msgid="4341758639597035927">"নীলাভ রঙ"</string>
<string name="color_yellow" msgid="5957551912912679058">"হলুদ"</string>
<string name="color_magenta" msgid="8943538189219528423">"রাণী রঙ"</string>
- <string name="enable_service_title" msgid="7231533866953706788">"<xliff:g id="SERVICE">%1$s</xliff:g> অ্যাপটিকে আপনার ডিভাইসে সম্পূর্ণ নিয়ন্ত্রণের অনুমতি দিতে চান?"</string>
<string name="capabilities_list_title" msgid="1225853611983394386">"<xliff:g id="SERVICE">%1$s</xliff:g> কে এটি করতে হবে:"</string>
<string name="touch_filtered_warning" msgid="4225815157460318241">"একটি অ্যাপ্লিকেশান কোনো অনুমোদনের অনুরোধকে অস্পষ্ট করছে, তাই সেটিংস আপনার প্রতিক্রিয়া যাচাই করতে পারেনি৷"</string>
- <string name="accessibility_service_warning" msgid="6779187188736432618">"এই ডিভাইসের সম্পূর্ণ নিয়ন্ত্রণ পেতে <xliff:g id="SERVICE">%1$s</xliff:g>-এর তরফে অনুরোধ জানানো হচ্ছে। পরিষেবাটি স্ক্রিন পড়তে পারে এবং ব্যবহারকারীর পক্ষ থেকে অ্যাক্সেসিবিলিটির প্রয়োজন অুযায়ী কাজ করতে পারে। বেশিরভাগ অ্যাপের জন্যই লেভেলের নিয়ন্ত্রণ ঠিক নয়।"</string>
- <string name="accessibility_service_warning_description" msgid="6573203795976134751">"যে অ্যাপগুলি আপনাকে অ্যাক্সেসিবিলিটির প্রয়োজন মেটাতে সাহায্য করে সেই অ্যাপগুলির জন্য সম্পূর্ণ নিয়ন্ত্রণের বিষয়টি উপযুক্ত, কিন্তু তা বলে সমস্ত অ্যাপের জন্য নয়।"</string>
- <string name="accessibility_service_screen_control_title" msgid="324795030658109870">"স্ক্রিন দেখে নিয়ন্ত্রণ করা"</string>
- <string name="accessibility_service_screen_control_description" msgid="8431940515157990426">"এটি স্ক্রিনের সমস্ত কন্টেন্ট পড়তে এবং অন্য অ্যাপেও কন্টেন্ট ডিসপ্লে করতে পারে।"</string>
- <string name="accessibility_service_action_perform_title" msgid="1449360056585337833">"দেখুন এবং কাজটি করুন"</string>
- <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"এটি কোনও একটি অ্যাপের সাথে অথবা হার্ডওয়্যার সেন্সরের সাথে আপনার ইন্টার্যাকশন ট্র্যাক করতে এবং আপনার হয়ে বিভিন্ন অ্যাপের সাথে ইন্টার্যাক্ট করতে পারে।"</string>
<string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"অনুমতি দিন"</string>
<string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"খারিজ করুন"</string>
<string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"বন্ধ করুন"</string>
@@ -2971,7 +2958,7 @@
<string name="vpn_lockdown_config_error" msgid="1992071316416371316">"সর্বদা-চালু VPN এর সার্ভার্র এবং DNS উভয়েরই জন্য আইপি অ্যাড্রেস প্রয়োজন।"</string>
<string name="vpn_no_network" msgid="7187593680049843763">"কোনো নেটওয়ার্ক কানেকশন নেই। দয়া করে পরে আবার চেষ্টা করুন।"</string>
<string name="vpn_disconnected" msgid="7694522069957717501">"VPN থেকে ডিসকানেক্ট হয়েছে"</string>
- <string name="vpn_disconnected_summary" msgid="721699709491697712">"কোনো কিছুই নয়"</string>
+ <string name="vpn_disconnected_summary" msgid="721699709491697712">"কোনওটাই নয়"</string>
<string name="vpn_missing_cert" msgid="5397309964971068272">"একটি সার্টিফিকেট পাওয়া যাচ্ছে না। প্রোফাইলটি সম্পাদনা করুন।"</string>
<string name="trusted_credentials_system_tab" msgid="675362923690364722">"সিস্টেম"</string>
<string name="trusted_credentials_user_tab" msgid="4978365619630094339">"ব্যবহারকারী"</string>
@@ -3368,10 +3355,8 @@
<string name="zen_mode_automation_settings_title" msgid="3709324184191870926">"সময়সূচি"</string>
<string name="zen_mode_delete_automatic_rules" msgid="5020468289267191765">"সময়সূচি মুছে দিন"</string>
<string name="zen_mode_schedule_delete" msgid="5383420576833765114">"মুছে দিন"</string>
- <!-- no translation found for zen_mode_menu_rename_mode (4681802125016390837) -->
- <skip />
- <!-- no translation found for zen_mode_menu_delete_mode (5380084696402157428) -->
- <skip />
+ <string name="zen_mode_menu_rename_mode" msgid="4681802125016390837">"নাম পরিবর্তন করুন"</string>
+ <string name="zen_mode_menu_delete_mode" msgid="5380084696402157428">"মুছুন"</string>
<string name="zen_mode_delete_mode_confirmation" msgid="7594340592051947392">"\"<xliff:g id="MODE">%1$s</xliff:g>\" মোড মুছতে চান?"</string>
<string name="zen_mode_rule_name_edit" msgid="1053237022416700481">"এডিট করুন"</string>
<string name="zen_mode_automation_settings_page_title" msgid="6217433860514433311">"সময়সূচি"</string>
@@ -3395,8 +3380,7 @@
<string name="zen_mode_visual_signals_settings_subtitle" msgid="7433077540895876672">"ভিজুয়াল সঙ্কেতগুলি চালু করুন"</string>
<string name="mode_interruption_filter_title" msgid="3343846700214702347">"মনোযোগ বজায় রাখুন"</string>
<string name="mode_device_effects_title" msgid="5857008332618433744">"অতিরিক্ত অ্যাকশন"</string>
- <!-- no translation found for modes_sound_summary_off (6972648204528227879) -->
- <skip />
+ <string name="modes_sound_summary_off" msgid="6972648204528227879">"{count,plural, =0{বন্ধ আছে}=1{বন্ধ আছে / ১টি মোড অটোমেটিক চালু হতে পারে}one{বন্ধ আছে / #টি মোড অটোমেটিক চালু হতে পারে}other{বন্ধ আছে / #টি মোড অটোমেটিক চালু হতে পারে}}"</string>
<string name="mode_display_settings_title" msgid="8132825978346535472">"ডিসপ্লে সেটিংস"</string>
<string name="mode_display_options_section" msgid="5151597748243866532">"ডিসপ্লে বিকল্প"</string>
<string name="mode_grayscale_title" msgid="6027553257331235461">"গ্রেস্কেল"</string>
@@ -3659,9 +3643,9 @@
<string name="notif_listener_not_migrated" msgid="6265206376374278226">"এই অ্যাপে উন্নত সেটিংস কাজ করে না"</string>
<string name="notif_listener_more_settings" msgid="1348409392307208921">"আরও সেটিংস"</string>
<string name="notif_listener_more_settings_desc" msgid="7995492074281663658">"এই অ্যাপের মধ্যে আরও সেটিংস উপলভ্য আছে"</string>
- <string name="notification_polite_title" msgid="4737150709382859870">"অ্যাডাপ্টিভ বিজ্ঞপ্তি"</string>
- <string name="notification_polite_main_control_title" msgid="7267191551379543859">"অ্যাডাপ্টিভ বিজ্ঞপ্তি ব্যবহার করুন"</string>
- <string name="notification_polite_description" msgid="7749280535620291610">"অল্প সময়ের মধ্যে আপনার কাছে অনেক বেশি বিজ্ঞপ্তি আসলে, আপনার ফোন দুই মিনিটের জন্য ভলিউম কমিয়ে দেবে এবং স্ক্রিনে আসা পপ-আপ মিনিমাইজ করবে। এরপরেও কল, অ্য়ালার্ম ও গুরুত্বপূর্ণ কথোপকথনের জন্য ফোনে ভাইব্রেশন, সাউন্ড হবে অথবা স্ক্রিনে তা দেখা যাবে। আপনি ফোনের স্ক্রিন উপর থেকে নিচের দিকে সোয়াইপ করলে সহজেই সবকটি বিজ্ঞপ্তি দেখতে পারবেন।"</string>
+ <string name="notification_polite_title" msgid="6121016426991791557">"বিজ্ঞপ্তির কুলডাউন"</string>
+ <string name="notification_polite_main_control_title" msgid="5812529809151927149">"নোটিফিকেশন কুলডাউন ব্যবহার করুন"</string>
+ <string name="notification_polite_description" msgid="5497748284893832854">"আপনি অল্প সময়ের মধ্যে একসঙ্গে অনেকগুলি বিজ্ঞপ্তি পেলে আপনার ডিভাইস নিজের ভলিউম এবং সতর্কবার্তা সর্বাধিক ২ মিনিটের জন্য কমিয়ে দেবে। কল, অ্যালার্ম ও গুরুত্বপূর্ণ কথোপকথনের উপরে এর কোনও প্রভাব পড়ে না। \n\nস্ক্রিনের একেবারে উপর থেকে নিচের দিকে টেনে নামালে কুলডাউনের সময়ে পাওয়া বিজ্ঞপ্তি দেখতে পাওয়া যায়।"</string>
<string name="notification_polite_work" msgid="8823596456640216391">"অফিস প্রোফাইলে প্রয়োগ করুন"</string>
<string name="notification_polite_work_summary" msgid="5014189280132951378">"অফিস প্রোফাইল অ্যাপে প্রয়োগ করুন"</string>
<string name="vr_listeners_title" msgid="4960357292472540964">"ভিআর(VR) সহায়তাকারী পরিষেবা"</string>
@@ -3818,7 +3802,9 @@
<string name="zen_mode_apps_priority_apps" msgid="7386196048313716076">"বেছে নেওয়া অ্যাপ"</string>
<string name="zen_mode_apps_none_apps" msgid="2493642312793604327">"কোনওটিই নয়"</string>
<string name="zen_mode_apps_subtext" msgid="1764211974662012877">"{count,plural,offset:2 =0{কোনও অ্যাপ বিঘ্ন ঘটাতে পারবে না}=1{{app_1} অ্যাপ বিঘ্ন ঘটাতে পারবে}=2{{app_1} ও {app_2} অ্যাপ বিঘ্ন ঘটাতে পারবে}=3{{app_1}, {app_2} ও {app_3} অ্যাপ বিঘ্ন ঘটাতে পারবে}one{{app_1}, {app_2}, ও আরও #টি অ্যাপ বিঘ্ন ঘটাতে পারবে}other{{app_1}, {app_2}, ও আরও #টি অ্যাপ বিঘ্ন ঘটাতে পারবে}}"</string>
+ <string name="zen_mode_apps_work_app" msgid="8528767938316361588">"<xliff:g id="APP_LABEL">%s</xliff:g> (অফিস)"</string>
<string name="zen_mode_apps_calculating" msgid="5420121396943539286">"গণনা করা হচ্ছে…"</string>
+ <string name="zen_mode_plus_n_items" msgid="6136713354369243421">"+<xliff:g id="NUMBER">%d</xliff:g>"</string>
<string name="zen_mode_bypassing_apps" msgid="625309443389126481">"অ্যাপ ওভাররাইডের অনুমতি দিন"</string>
<string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"যে অ্যাপগুলি \'বিরক্ত করবে না\' মোড এড়িয়ে নিজের কাজ করতে পারে"</string>
<string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"আরও অ্যাপ বেছে নিন"</string>
@@ -3836,6 +3822,7 @@
<string name="zen_mode_sounds_none" msgid="6557474361948269420">"কেউ বাধা দিতে পারবে না"</string>
<string name="zen_mode_people_none" msgid="4613147461974255046">"কেউই বাধা দিতে পারবে না"</string>
<string name="zen_mode_people_some" msgid="9101872681298810281">"কিছু লোকজন বাধা দিতে পারবে"</string>
+ <string name="zen_mode_people_repeat_callers" msgid="4499084111069828761">"রিপিট কলার বিঘ্ন ঘটাতে পারে"</string>
<string name="zen_mode_people_all" msgid="311036110283015205">"সবাই বাধা দিতে পারবে"</string>
<string name="zen_mode_repeat_callers" msgid="2270356100287792138">"রিপিট কলার"</string>
<string name="zen_mode_repeat_callers_title" msgid="8016699240338264781">"রিপিট কলারদের অনুমতি দিন"</string>
@@ -3855,13 +3842,37 @@
<string name="zen_mode_summary_alarms_only_by_hour" msgid="7400910210950788163">"{count,plural, =1{{time} পর্যন্ত এক ঘণ্টার জন্য অ্যালার্ম পরিবর্তন করুন}one{{time} পর্যন্ত # ঘণ্টার জন্য অ্যালার্ম পরিবর্তন করুন}other{{time} পর্যন্ত # ঘণ্টার জন্য অ্যালার্ম পরিবর্তন করুন}}"</string>
<string name="zen_mode_summary_alarms_only_by_time" msgid="8140619669703968810">"শুধুমাত্র <xliff:g id="FORMATTEDTIME">%1$s</xliff:g> পর্যন্ত অ্যালার্মগুলি পরিবর্তন করুন"</string>
<string name="zen_mode_summary_always" msgid="722093064250082317">"সর্বদা বাধা দেওয়াতে পরিবর্তন করুন"</string>
- <!-- no translation found for zen_mode_rename_title (8146882272966214558) -->
+ <string name="zen_mode_rename_title" msgid="8146882272966214558">"মোড এডিট করুন"</string>
+ <string name="zen_mode_new_custom_title" msgid="321750898430776191">"মোড যোগ করুন"</string>
+ <string name="zen_mode_new_custom_default_name" msgid="2778307946775085105">"কাস্টম মোড"</string>
+ <string name="zen_mode_edit_name_hint" msgid="4584652062167540536">"মোডের নাম"</string>
+ <string name="zen_mode_trigger_title_schedule_calendar" msgid="9206609438617550331">"ক্যালেন্ডার ইভেন্ট"</string>
+ <string name="zen_mode_trigger_title_bedtime" msgid="5086070900588489978">"ঘুমানোর সময়"</string>
+ <string name="zen_mode_trigger_title_driving" msgid="7890990983453164403">"ড্রাইভ করার সময়"</string>
+ <string name="zen_mode_trigger_title_generic" msgid="601273385119550420">"অ্যাপ থেকে লিঙ্ক করা মোড"</string>
+ <string name="zen_mode_trigger_summary_settings_in_app" msgid="4860667191183702601">"<xliff:g id="APP_NAME">%1$s</xliff:g> অ্যাপে তথ্য ও সেটিংস"</string>
+ <string name="zen_mode_trigger_summary_managed_by_app" msgid="8631011868193102098">"<xliff:g id="APP_NAME">%1$s</xliff:g> ম্যানেজ করে"</string>
+ <string name="zen_mode_confirm_disable_title" msgid="1232297660775719796">"মোড বন্ধ করুন"</string>
+ <string name="zen_mode_confirm_disable_message" msgid="7315541221665718491">"এই ফিচার বন্ধ থাকলে, মোড যেভাবে কাজ করা উচিৎ সেইভাবে আর কাজ করবে না এবং এর সাথে সম্পর্কিত সেটিংস লুকানো থাকবে।"</string>
+ <string name="zen_mode_action_disable" msgid="3552921561331044881">"বন্ধ করুন"</string>
+ <string name="zen_mode_confirm_enable_title" msgid="5683371335847448595">"মোড চালু করুন"</string>
+ <string name="zen_mode_confirm_enable_message" msgid="7017879133260011419">"এই ফিচার চালু থাকলে, মোড সময়সূচি অনুযায়ী অটোমেটিক চালু হবে।"</string>
+ <string name="zen_mode_action_enable" msgid="1161480633223176531">"চালু করুন"</string>
+ <!-- no translation found for zen_mode_blurb_schedule_time (8223898702097484009) -->
<skip />
- <!-- no translation found for zen_mode_new_custom_title (321750898430776191) -->
+ <!-- no translation found for zen_mode_blurb_schedule_calendar (382177907856065945) -->
<skip />
- <!-- no translation found for zen_mode_new_custom_default_name (2778307946775085105) -->
+ <!-- no translation found for zen_mode_blurb_bedtime (6155075956151013457) -->
<skip />
- <!-- no translation found for zen_mode_edit_name_hint (4584652062167540536) -->
+ <!-- no translation found for zen_mode_blurb_driving (1316054379000667305) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_immersive (5884004861848687869) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_theater (2999237960059524225) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_managed (5473921634985032149) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_generic (3041601339807075625) -->
<skip />
<string name="warning_button_text" msgid="1274234338874005639">"সতর্কতা"</string>
<string name="suggestion_button_close" msgid="6865170855573283759">"বন্ধ করুন"</string>
@@ -4849,9 +4860,8 @@
<string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"ব্যাটারি"</string>
<string name="settings_panel_title" msgid="346363079938069215">"সেটিংস প্যানেল"</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>
+ <!-- no translation found for enable_desktop_mode_on_secondary_display (2609567824593768780) -->
+ <skip />
<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>
@@ -5026,7 +5036,6 @@
<string name="default_active_sim_mobile_data" msgid="6798083892814045301">"মোবাইল ডেটা"</string>
<string name="wifi_scan_notify_message" msgid="1331238142061476869">"ডিভাইস সংক্রান্ত অভিজ্ঞতা আরও ভাল করতে, অ্যাপ ও পরিষেবা যেকোনও সময় আপনার ওয়াই-ফাই নেটওয়ার্ক স্ক্যান করতে পারবে, এমনকি ডিভাইসের ওয়াই-ফাই বন্ধ করা থাকলেও। যেমন, এটি লোকেশন-ভিত্তিক ফিচার ও পরিষেবার উন্নতির জন্য ব্যবহার করা যাবে। আপনি \'ওয়াই-ফাই স্ক্যানিং\' সেটিংস থেকে এটি পরিবর্তন করতে পারবেন।"</string>
<string name="wifi_scan_change" msgid="8438320311511852918">"পরিবর্তন করুন"</string>
- <string name="preference_summary_default_combination" msgid="4643585915107796253">"<xliff:g id="STATE">%1$s</xliff:g> / <xliff:g id="NETWORKMODE">%2$s</xliff:g>"</string>
<string name="mobile_data_connection_active" msgid="2422223108911581552">"কানেক্ট করা আছে"</string>
<string name="mobile_data_temp_connection_active" msgid="3430470299756236413">"সাময়িকভাবে কানেক্ট করা হয়েছে"</string>
<string name="mobile_data_temp_using" msgid="5211002380149434155">"সাময়িকভাবে <xliff:g id="SUBNAME">%1$s</xliff:g> ব্যবহার করা হচ্ছে"</string>
@@ -5172,9 +5181,11 @@
<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="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_enable_freeform_support" msgid="3697462756493543645">"ফ্রিফর্ম উইন্ডো সংক্রান্ত সহায়তা চালু করার জন্য ডিভাইস রিবুট করতে হবে।"</string>
+ <!-- no translation found for reboot_dialog_override_desktop_mode (7480950772574354130) -->
+ <skip />
+ <!-- no translation found for reboot_dialog_enable_desktop_mode_on_secondary_display (1153621881052401924) -->
+ <skip />
<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>
@@ -5405,5 +5416,6 @@
<string name="audio_streams_main_page_password_dialog_join_button" msgid="2967747276379153408">"স্ট্রিম শুনুন"</string>
<string name="audio_streams_main_page_qr_code_scanner_summary" msgid="5312980105735143360">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>-এর মাধ্যমে শুনতে অডিও স্ট্রিম QR কোড স্ক্যান করুন"</string>
<string name="audio_streams_main_page_password_dialog_cannot_edit" msgid="9020898619297520153">"শেয়ারিং চলাকালীন পাসওয়ার্ড এডিট করতে পারবেন না। পাসওয়ার্ড পরিবর্তন করতে, প্রথমে অডিও শেয়ারিং বন্ধ করুন।"</string>
+ <string name="audio_streams_qr_code_scanner_label" msgid="8799703301071378034">"QR কোড স্ক্যানার"</string>
<string name="homepage_search" msgid="6759334912284663559">"সেটিংস সার্চ করুন"</string>
</resources>
diff --git a/res/values-bs/strings.xml b/res/values-bs/strings.xml
index 7903d31..f2169d0 100644
--- a/res/values-bs/strings.xml
+++ b/res/values-bs/strings.xml
@@ -41,6 +41,8 @@
<string name="radioInfo_data_suspended" msgid="2001254415431299603">"Obustavljeno"</string>
<string name="radioInfo_unknown" msgid="2892562356748600367">"Nepoznato"</string>
<string name="preview_pager_content_description" msgid="3762247188224576303">"Pregled"</string>
+ <!-- no translation found for qr_code_content_description (1852208464419291347) -->
+ <skip />
<string name="font_size_make_smaller_desc" msgid="4978038055549590140">"Napravi manji"</string>
<string name="font_size_make_larger_desc" msgid="5583046033381722247">"Napravi veći"</string>
<string name="stay_awake_on_fold_title" msgid="6590454679898134221">"Uvijek"</string>
@@ -283,7 +285,7 @@
<string name="location_settings_summary_location_off" msgid="4797932754681162262">"Isključeno"</string>
<string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{Uključeno / # aplikacija ima pristup lokaciji}one{Uključeno / # aplikacija ima pristup lokaciji}few{Uključeno / # aplikacije imaju pristup lokaciji}other{Uključeno / # aplikacija ima pristup lokaciji}}"</string>
<string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"Učitavanje…"</string>
- <string name="location_settings_footer_general" msgid="1040507068701188821">"Aplikacije s odobrenjem za Uređaje u blizini mogu otkriti relativan položaj povezanih uređaja."</string>
+ <string name="location_settings_footer_general" msgid="3447585552176173502">"Aplikacije s odobrenjem za uređaje u blizini mogu otkrivati relativan položaj povezanih uređaja."</string>
<string name="location_settings_footer_location_off" msgid="8568995909147566720">"Pristup lokaciji je isključen za aplikacije i usluge. Lokacija uređaja se i dalje može slati hitnim službama kada pozovete broj za hitne slučajeve ili pošaljete SMS na njega."</string>
<string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Saznajte više o postavkama lokacije"</string>
<string name="location_settings_tooltip_text_for_chrome" msgid="5781821709250544575">"Da to promijenite, idite u Postavke ChromeOS-a > Privatnost i sigurnost > Kontrole privatnosti > Pristup lokaciji"</string>
@@ -850,7 +852,6 @@
<string name="nfc_reboot_dialog_title" msgid="2033983438635768169">"Ponovo pokrenuti uređaj?"</string>
<string name="nfc_reboot_dialog_message" msgid="4929353168157966992">"Detaljno zapisivanje NFC podataka je namijenjeno samo za svrhe programiranja. Dodatni NFC podaci su uključeni u izvještaje o greškama, koji mogu sadržavati privatne podatke. Ponovo pokrenite uređaj da promijenite ovu postavku."</string>
<string name="nfc_reboot_dialog_confirm" msgid="4769763632008584567">"Ponovo pokreni"</string>
- <string name="keywords_external_display" msgid="4181375057920134909">"preslikati, vanjski ekran, povezani ekran, USB ekran, rezolucija, rotacija"</string>
<string name="external_display_on" msgid="2560104443500154333">"Uključeno"</string>
<string name="external_display_off" msgid="5634413756025351374">"Isključeno"</string>
<string name="external_display_settings_title" msgid="6256884595821605779">"Vanjski ekran"</string>
@@ -1918,6 +1919,8 @@
<string name="slow_keys_summary" msgid="1784371292745423292">"Prilagođava vrijeme potrebno za aktiviranje pritiskanja tipke na <xliff:g id="SLOW_KEYS_THRESHOLD">%1$d</xliff:g> ms"</string>
<string name="sticky_keys" msgid="7317317044898161747">"Ljepljive tipke"</string>
<string name="sticky_keys_summary" msgid="1844953803625480623">"Za prečice pritišćite jednu po jednu tipku umjesto da ih istovremeno zadržavate"</string>
+ <string name="mouse_keys" msgid="6237254627808525540">"Tipke miša"</string>
+ <string name="mouse_keys_summary" msgid="2396247040177734245">"Koristite fizičku tastaturu da upravljate mišem."</string>
<string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"Prečice tastature"</string>
<string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"Prikaz liste prečica"</string>
<string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"Tastatura i alati radnog profila"</string>
@@ -1942,14 +1945,10 @@
<string name="pointer_fill_style_yellow_button" msgid="5025969961559379024">"Promjena ispune pokazivača u žutu"</string>
<string name="pointer_fill_style_pink_button" msgid="4106218142489635673">"Promjena ispune pokazivača u ružičastu"</string>
<string name="pointer_fill_style_blue_button" msgid="5594958078854032785">"Promjena ispune pokazivača u plavu"</string>
- <!-- no translation found for pointer_stroke_style (1886986630216050665) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_white (673686194443825383) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_black (4655806167067437330) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_none (8953927511729800247) -->
- <skip />
+ <string name="pointer_stroke_style" msgid="1886986630216050665">"Stil poteza pokazivačem"</string>
+ <string name="pointer_stroke_style_name_white" msgid="673686194443825383">"Bijela"</string>
+ <string name="pointer_stroke_style_name_black" msgid="4655806167067437330">"Crna"</string>
+ <string name="pointer_stroke_style_name_none" msgid="8953927511729800247">"Ništa"</string>
<string name="trackpad_touch_gesture" msgid="8641725062131922497">"Naučite pokrete dodirne podloge"</string>
<string name="keywords_touchpad" msgid="8159846254066666032">"dodirna tabla, tabla na dodir, miš, kursor, klizanje, prevlačenje, desni klik, klik, pokazivač"</string>
<string name="keywords_trackpad_bottom_right_tap" msgid="1285062446073929305">"desni klik, dodir"</string>
@@ -2179,8 +2178,6 @@
<string name="accessibility_shortcut_edit_dialog_summary_floating_button" msgid="6266489864614886247">"Dodirnite plutajuće dugme"</string>
<string name="accessibility_shortcut_edit_dialog_title_software_by_gesture" msgid="4775049370625630546">"Pokret za pristupačnost"</string>
<string name="accessibility_shortcut_edit_dialog_summary_software" msgid="8315934725362849788">"Dodirnite dugme za pristupačnost <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g> na dnu ekrana. Da prebacujete između funkcija, dodirnite i zadržite dugme za pristupačnost."</string>
- <string name="accessibility_shortcut_edit_dialog_summary_software_gesture" msgid="8292555254353761635">"Prevucite s dva prsta prema gore s dna ekrana.\n\nDa prebacujete između funkcija, s dva prsta prevucite prema gore i zadržite."</string>
- <string name="accessibility_shortcut_edit_dialog_summary_software_gesture_talkback" msgid="84483464524360845">"Prevucite s tri prsta prema gore s dna ekrana.\n\nDa prebacujete između funkcija, prevucite s tri prsta prema gore i zadržite."</string>
<string name="accessibility_shortcut_edit_dialog_summary_gesture" msgid="2081123009255579884">"{count,plural, =1{Prevucite s dna ekrana nagore. Da prebacujete između funkcija, prevucite nagore i zadržite.}one{Prevucite s dna ekrana nagore s # prstom. Da prebacujete između funkcija, prevucite nagore s # prstom i zadržite.}few{Prevucite s dna ekrana nagore s # prsta. Da prebacujete između funkcija, prevucite nagore s # prsta i zadržite.}other{Prevucite s dna ekrana nagore sa # prstiju. Da prebacujete između funkcija, prevucite nagore sa # prstiju i zadržite.}}"</string>
<string name="accessibility_shortcut_edit_dialog_summary_software_floating" msgid="4459254227203203324"><annotation id="link">"Više opcija"</annotation></string>
<string name="footer_learn_more_content_description" msgid="8843798273152131341">"<xliff:g id="SERVICE">%1$s</xliff:g> – saznajte više"</string>
@@ -2191,16 +2188,12 @@
<string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="844089763968552142">"Tipke za jačinu zvuka"</string>
<string name="accessibility_shortcut_hardware_keyword" msgid="2483152542320987022">"tipke za jačinu zvuka"</string>
<string name="accessibility_shortcut_edit_dialog_summary_hardware" msgid="2503134386397991634">"Pritisnite i zadržite obje tipke za jačinu zvuka"</string>
- <string name="accessibility_shortcut_edit_dialog_title_two_finger_double_tap" msgid="2271778556854020996">"Dvostruki dodir ekrana s dva prsta"</string>
<string name="accessibility_shortcut_edit_screen_title_two_finger_double_tap" msgid="8952595692906527694">"Dvostruki dodir s %1$d prsta"</string>
<string name="accessibility_shortcut_edit_screen_summary_two_finger_double_tap" msgid="385404127425496362">"Brzo dodirnite ekran dvaput s %1$d prsta"</string>
<string name="accessibility_shortcut_edit_screen_title_triple_tap" msgid="3314488747597058942">"Trostruki dodir"</string>
<string name="accessibility_shortcut_edit_screen_summary_triple_tap" msgid="4839204951599629871">"Brzo dodirnite ekran %1$d puta. Ovo može usporiti uređaj."</string>
<string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="6271718715836961167">"Dvostruki dodir s %1$d prsta"</string>
- <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"Brzo dodirnite ekran {0,number,integer} put(a) s dva prsta"</string>
- <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"Dodirnite ekran triput"</string>
<string name="accessibility_shortcut_triple_tap_keyword" msgid="5359347130888464334">"trostruki dodir"</string>
- <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"Brzo dodirnite ekran sljedeći broj puta: {0,number,integer}. Ova prečica može usporiti uređaj"</string>
<string name="accessibility_shortcut_edit_dialog_title_advance" msgid="4567868630655591506">"Napredno"</string>
<string name="accessibility_screen_magnification_navbar_configuration_warning" msgid="266736851606791552">"Dugme Pirstupačnost podešeno je za aktiviranje usluge <xliff:g id="SERVICE">%1$s</xliff:g>. Da koristite uvećavanje, dodirnite i držite dugme Pristupačnost, zatim odaberite uvećavanje."</string>
<string name="accessibility_screen_magnification_gesture_navigation_warning" msgid="991017769735632046">"Pokret za pristupačnost je postavljen na <xliff:g id="SERVICE">%1$s</xliff:g>. Za korištenje uvećavanja prevucite s dva prsta prema gore s dna ekrana i zadržite. Nakon toga odaberite uvećavanje."</string>
@@ -2369,6 +2362,7 @@
<string name="daltonizer_mode_tritanomaly_title" msgid="2278786218762602022">"Plavo-žuto"</string>
<string name="daltonizer_mode_grayscale_title" msgid="152005391387952588">"Nijanse sive"</string>
<string name="daltonizer_saturation_title" msgid="2999486412114963068">"Intenzitet"</string>
+ <string name="daltonizer_saturation_unavailable_summary" msgid="8319753055567798775">"Nije dostupno za način rada za nijanse sive ili kada je ispravka boja onemogućena"</string>
<string name="daltonizer_mode_deuteranomaly_summary" msgid="2117727423019598455">"Slabo prepoznavanje zelene, deuteranomalija"</string>
<string name="daltonizer_mode_protanomaly_summary" msgid="4617032854982040748">"Slabo prepoznavanje crvene, protanomalija"</string>
<string name="daltonizer_mode_tritanomaly_summary" msgid="2428218320118180070">"Tritanomalija"</string>
@@ -2418,15 +2412,8 @@
<string name="color_cyan" msgid="4341758639597035927">"Cijan"</string>
<string name="color_yellow" msgid="5957551912912679058">"Žuta"</string>
<string name="color_magenta" msgid="8943538189219528423">"Magenta"</string>
- <string name="enable_service_title" msgid="7231533866953706788">"Dozvoliti da usluga <xliff:g id="SERVICE">%1$s</xliff:g> ima punu kontrolu nad vašim uređajem?"</string>
<string name="capabilities_list_title" msgid="1225853611983394386">"Usluga <xliff:g id="SERVICE">%1$s</xliff:g> mora:"</string>
<string name="touch_filtered_warning" msgid="4225815157460318241">"Aplikacija nije dala odobrenje za zahtjev pa postavke ne mogu potvrditi vaš odgovor."</string>
- <string name="accessibility_service_warning" msgid="6779187188736432618">"Usluga <xliff:g id="SERVICE">%1$s</xliff:g> zahtijeva potpunu kontrolu ovog uređaja. Usluga može čitati sadržaj ekrana i djelovati u ime korisnika s potrebama za pristupačnost. Ovaj nivo kontrole nije prikladan za većinu aplikacija."</string>
- <string name="accessibility_service_warning_description" msgid="6573203795976134751">"Puna kontrola je prikladna za aplikacije koje vam pomažu kod potreba pristupačnosti, ali nije za većinu aplikacija."</string>
- <string name="accessibility_service_screen_control_title" msgid="324795030658109870">"Prikaz i kontrola ekrana"</string>
- <string name="accessibility_service_screen_control_description" msgid="8431940515157990426">"Može čitati sav sadržaj na ekranu i prikazivati sadržaj preko drugih aplikacija."</string>
- <string name="accessibility_service_action_perform_title" msgid="1449360056585337833">"Prikaz i izvršavanje radnji"</string>
- <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"Može pratiti vaše interakcije s aplikacijom ili hardverskim senzorom te ostvariti interakciju s aplikacijama umjesto vas."</string>
<string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Dozvoli"</string>
<string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Odbij"</string>
<string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Isključi"</string>
@@ -3368,7 +3355,7 @@
<string name="zen_mode_automation_settings_title" msgid="3709324184191870926">"Rasporedi"</string>
<string name="zen_mode_delete_automatic_rules" msgid="5020468289267191765">"Izbrišite rasporede"</string>
<string name="zen_mode_schedule_delete" msgid="5383420576833765114">"Izbriši"</string>
- <string name="zen_mode_menu_rename_mode" msgid="4681802125016390837">"Preimenuj"</string>
+ <string name="zen_mode_menu_rename_mode" msgid="4681802125016390837">"Promijenite naziv"</string>
<string name="zen_mode_menu_delete_mode" msgid="5380084696402157428">"Izbriši"</string>
<string name="zen_mode_delete_mode_confirmation" msgid="7594340592051947392">"Izbrisati način rada \"<xliff:g id="MODE">%1$s</xliff:g>\"?"</string>
<string name="zen_mode_rule_name_edit" msgid="1053237022416700481">"Uredi"</string>
@@ -3393,7 +3380,7 @@
<string name="zen_mode_visual_signals_settings_subtitle" msgid="7433077540895876672">"Dozvolite vizualnu signalizaciju"</string>
<string name="mode_interruption_filter_title" msgid="3343846700214702347">"Budite fokusirani"</string>
<string name="mode_device_effects_title" msgid="5857008332618433744">"Dodatne radnje"</string>
- <string name="modes_sound_summary_off" msgid="6972648204528227879">"{count,plural, =0{Isključeno}=1{Isključeno/jedan način može se automatski uključiti}one{Isključeno/# način može se automatski uključiti}few{Isključeno/# načina mogu se automatski uključiti}other{Isključeno/# načina može se automatski uključiti}}"</string>
+ <string name="modes_sound_summary_off" msgid="6972648204528227879">"{count,plural, =0{Isključeno}=1{Isključeno / 1 način rada se može automatski uključivati}one{Isključeno / # način rada se može automatski uključivati}few{Isključeno / # načina rada se mogu automatski uključivati}other{Isključeno / # načina rada se mogu automatski uključivati}}"</string>
<string name="mode_display_settings_title" msgid="8132825978346535472">"Postavke ekrana"</string>
<string name="mode_display_options_section" msgid="5151597748243866532">"Opcije ekrana"</string>
<string name="mode_grayscale_title" msgid="6027553257331235461">"Nijanse sive"</string>
@@ -3656,9 +3643,9 @@
<string name="notif_listener_not_migrated" msgid="6265206376374278226">"Ova aplikacija ne podržava poboljšane postavke"</string>
<string name="notif_listener_more_settings" msgid="1348409392307208921">"Više postavki"</string>
<string name="notif_listener_more_settings_desc" msgid="7995492074281663658">"Više postavki dostupno je unutar aplikacije"</string>
- <string name="notification_polite_title" msgid="4737150709382859870">"Prilagodljiva obavještenja"</string>
- <string name="notification_polite_main_control_title" msgid="7267191551379543859">"Koristite prilagodljiva obavještenja"</string>
- <string name="notification_polite_description" msgid="7749280535620291610">"Kada unutar kratkog vremenskog raspona dobijete mnogo obavještenja, telefon će smanjiti jačinu zvuka i minimizirati skočne prozore na ekranu do dvije minute. Pozivi, alarmi i prioritetni razgovori će i dalje vibrirati, zvoniti ili se prikazivati na ekranu, a sva obavještenja ćete moći lako pronaći kada prevučete s vrha ekrana nadolje."</string>
+ <string name="notification_polite_title" msgid="6121016426991791557">"Stišavanje obavještenja"</string>
+ <string name="notification_polite_main_control_title" msgid="5812529809151927149">"Koristite stišavanje obavještenja"</string>
+ <string name="notification_polite_description" msgid="5497748284893832854">"Kada unutar kratkog vremenskog raspona primite mnogo obavještenja, uređaj će smanjiti jačinu zvuka i minimizirati obavještenja do 2 minute. Ovo ne utiče na pozive, alarme i prioritetne razgovore. \n\nObavještenja primljena tokom stišavanja možete pronaći povlačenjem nadolje s vrha ekrana."</string>
<string name="notification_polite_work" msgid="8823596456640216391">"Primijeni na poslovne profile"</string>
<string name="notification_polite_work_summary" msgid="5014189280132951378">"Primijenite na aplikacije radnog profila"</string>
<string name="vr_listeners_title" msgid="4960357292472540964">"Usluge pomagača za VR"</string>
@@ -3815,7 +3802,9 @@
<string name="zen_mode_apps_priority_apps" msgid="7386196048313716076">"Odabrane aplikacije"</string>
<string name="zen_mode_apps_none_apps" msgid="2493642312793604327">"Nijedna"</string>
<string name="zen_mode_apps_subtext" msgid="1764211974662012877">"{count,plural,offset:2 =0{Nijedna aplikacija ne može prekinuti}=1{Aplikacija {app_1} može prekinuti}=2{Aplikacije {app_1} i {app_2} mogu prekinuti}=3{Aplikacije {app_1}, {app_2} i {app_3} mogu prekinuti}one{Aplikacije {app_1}, {app_2} i još # mogu prekinuti}few{Aplikacije {app_1}, {app_2} i još # mogu prekinuti}other{Aplikacije {app_1}, {app_2} i još # mogu prekinuti}}"</string>
+ <string name="zen_mode_apps_work_app" msgid="8528767938316361588">"<xliff:g id="APP_LABEL">%s</xliff:g> (radno)"</string>
<string name="zen_mode_apps_calculating" msgid="5420121396943539286">"Računanje…"</string>
+ <string name="zen_mode_plus_n_items" msgid="6136713354369243421">"još <xliff:g id="NUMBER">%d</xliff:g>"</string>
<string name="zen_mode_bypassing_apps" msgid="625309443389126481">"Dozvolite aplikacijama da zanemaruju"</string>
<string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"Aplikacije koje vas mogu prekinuti"</string>
<string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"Odaberite još aplikacija"</string>
@@ -3833,6 +3822,7 @@
<string name="zen_mode_sounds_none" msgid="6557474361948269420">"Ništa ne može prekinuti"</string>
<string name="zen_mode_people_none" msgid="4613147461974255046">"Niko ne može prekinuti"</string>
<string name="zen_mode_people_some" msgid="9101872681298810281">"Neke osobe mogu prekinuti"</string>
+ <string name="zen_mode_people_repeat_callers" msgid="4499084111069828761">"Ponovni pozivaoci mogu ometati"</string>
<string name="zen_mode_people_all" msgid="311036110283015205">"Sve osobe mogu prekinuti"</string>
<string name="zen_mode_repeat_callers" msgid="2270356100287792138">"Ponovni pozivaoci"</string>
<string name="zen_mode_repeat_callers_title" msgid="8016699240338264781">"Dozvoli ponovne pozivaoce"</string>
@@ -3852,10 +3842,38 @@
<string name="zen_mode_summary_alarms_only_by_hour" msgid="7400910210950788163">"{count,plural, =1{Promjena na alarme samo na jedan sat do {time}}one{Promjena na alarme samo na # sat do {time}}few{Promjena na alarme samo na # sata do {time}}other{Promjena na alarme samo na # sati do {time}}}"</string>
<string name="zen_mode_summary_alarms_only_by_time" msgid="8140619669703968810">"Pređi na postavku Samo alarmi do <xliff:g id="FORMATTEDTIME">%1$s</xliff:g>"</string>
<string name="zen_mode_summary_always" msgid="722093064250082317">"Promijeniti u uvijek prekini"</string>
- <string name="zen_mode_rename_title" msgid="8146882272966214558">"Uređivanje načina"</string>
- <string name="zen_mode_new_custom_title" msgid="321750898430776191">"Dodavanje načina"</string>
- <string name="zen_mode_new_custom_default_name" msgid="2778307946775085105">"Prilagođeni način"</string>
- <string name="zen_mode_edit_name_hint" msgid="4584652062167540536">"Naziv načina"</string>
+ <string name="zen_mode_rename_title" msgid="8146882272966214558">"Uredite način rada"</string>
+ <string name="zen_mode_new_custom_title" msgid="321750898430776191">"Dodajte način rada"</string>
+ <string name="zen_mode_new_custom_default_name" msgid="2778307946775085105">"Prilagođeni način rada"</string>
+ <string name="zen_mode_edit_name_hint" msgid="4584652062167540536">"Naziv načina rada"</string>
+ <string name="zen_mode_trigger_title_schedule_calendar" msgid="9206609438617550331">"Događaji u kalendaru"</string>
+ <string name="zen_mode_trigger_title_bedtime" msgid="5086070900588489978">"Raspored spavanja"</string>
+ <string name="zen_mode_trigger_title_driving" msgid="7890990983453164403">"U toku vožnje"</string>
+ <string name="zen_mode_trigger_title_generic" msgid="601273385119550420">"Povezano s aplikacijom"</string>
+ <string name="zen_mode_trigger_summary_settings_in_app" msgid="4860667191183702601">"Informacije i postavke u aplikaciji <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+ <string name="zen_mode_trigger_summary_managed_by_app" msgid="8631011868193102098">"Upravlja aplikacija <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+ <string name="zen_mode_confirm_disable_title" msgid="1232297660775719796">"Onemogućite način rada"</string>
+ <string name="zen_mode_confirm_disable_message" msgid="7315541221665718491">"Ako onemogućite ovu funkciju, način rada više neće funkcionirati kako je namijenjeno, a njegove postavke će biti sakrivene."</string>
+ <string name="zen_mode_action_disable" msgid="3552921561331044881">"Onemogući"</string>
+ <string name="zen_mode_confirm_enable_title" msgid="5683371335847448595">"Omogućite način rada"</string>
+ <string name="zen_mode_confirm_enable_message" msgid="7017879133260011419">"Ako omogućite ovu funkciju, način rada će se automatski aktivirati u skladu s rasporedom."</string>
+ <string name="zen_mode_action_enable" msgid="1161480633223176531">"Omogući"</string>
+ <!-- no translation found for zen_mode_blurb_schedule_time (8223898702097484009) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_schedule_calendar (382177907856065945) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_bedtime (6155075956151013457) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_driving (1316054379000667305) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_immersive (5884004861848687869) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_theater (2999237960059524225) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_managed (5473921634985032149) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_generic (3041601339807075625) -->
+ <skip />
<string name="warning_button_text" msgid="1274234338874005639">"Upozorenje"</string>
<string name="suggestion_button_close" msgid="6865170855573283759">"Zatvori"</string>
<string name="device_feedback" msgid="5351614458411688608">"Slanje povratnih informacija o uređaju"</string>
@@ -4842,9 +4860,8 @@
<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="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>
+ <!-- no translation found for enable_desktop_mode_on_secondary_display (2609567824593768780) -->
+ <skip />
<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>
@@ -5020,7 +5037,6 @@
<string name="default_active_sim_mobile_data" msgid="6798083892814045301">"prijenos podataka na mobilnoj mreži"</string>
<string name="wifi_scan_notify_message" msgid="1331238142061476869">"Radi poboljšanja iskustva s uređajem aplikacije i usluge i dalje mogu u bilo kojem trenutku skenirati WiFi mreže, čak i kada je WiFi isključen. Ovim se, naprimjer, mogu poboljšati funkcije i usluge zasnovane na lokaciji. Ovo možete promijeniti u postavkama Skeniranja WiFi mreže."</string>
<string name="wifi_scan_change" msgid="8438320311511852918">"Izmijenite"</string>
- <string name="preference_summary_default_combination" msgid="4643585915107796253">"<xliff:g id="STATE">%1$s</xliff:g>/<xliff:g id="NETWORKMODE">%2$s</xliff:g>"</string>
<string name="mobile_data_connection_active" msgid="2422223108911581552">"Povezano"</string>
<string name="mobile_data_temp_connection_active" msgid="3430470299756236413">"Privremeno povezano"</string>
<string name="mobile_data_temp_using" msgid="5211002380149434155">"Privremeno se koristi <xliff:g id="SUBNAME">%1$s</xliff:g>"</string>
@@ -5166,9 +5182,11 @@
<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="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_enable_freeform_support" msgid="3697462756493543645">"Potrebno je ponovno pokretanje da se omogući podrška za prilagodljive prozore."</string>
+ <!-- no translation found for reboot_dialog_override_desktop_mode (7480950772574354130) -->
+ <skip />
+ <!-- no translation found for reboot_dialog_enable_desktop_mode_on_secondary_display (1153621881052401924) -->
+ <skip />
<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>
@@ -5242,7 +5260,7 @@
<string name="flash_notifications_title" msgid="4490438861180492311">"Obavještenja blicanjem"</string>
<string name="flash_notifications_about_title" msgid="9004351252928121214">"Informacije o obavještenjima blicanjem"</string>
<string name="flash_notifications_summary_off" msgid="6056282996770691461">"Isključeno"</string>
- <string name="flash_notifications_summary_on_camera" msgid="3286405833586333730">"Uključeno / blicanje kamere"</string>
+ <string name="flash_notifications_summary_on_camera" msgid="3286405833586333730">"Uključeno / blic kamere"</string>
<string name="flash_notifications_summary_on_screen" msgid="9040640799633336219">"Uključeno / blicanje ekrana"</string>
<string name="flash_notifications_summary_on_camera_and_screen" msgid="2326268141063768701">"Uključeno / blicanje kamere i ekrana"</string>
<string name="flash_notifications_intro" msgid="8409873413480928249">"Kamera ili ekran blicaju kada primite obavještenje ili se alarm oglasi"</string>
@@ -5250,7 +5268,7 @@
<string name="flash_notifications_note" msgid="2426125248448055075">"Oprezno koristite obavještenja blicanjem ako ste osjetljivi na svjetlost"</string>
<string name="flash_notifications_keywords" msgid="2458759275318514836">"blicanje, svjetlo, oštećenje sluha, gubitak sluha"</string>
<string name="flash_notifications_preview" msgid="5320176885050440874">"Pregled"</string>
- <string name="camera_flash_notification_title" msgid="2475084876382922732">"Blicanje kamere"</string>
+ <string name="camera_flash_notification_title" msgid="2475084876382922732">"Blic kamere"</string>
<string name="screen_flash_notification_title" msgid="3773100725793316708">"Blicanje ekrana"</string>
<string name="screen_flash_notification_color_title" msgid="7213407653340970790">"Boja blicanja ekrana"</string>
<string name="screen_flash_color_blue" msgid="3585766657607931371">"Plava"</string>
@@ -5399,5 +5417,6 @@
<string name="audio_streams_main_page_password_dialog_join_button" msgid="2967747276379153408">"Slušajte prijenos"</string>
<string name="audio_streams_main_page_qr_code_scanner_summary" msgid="5312980105735143360">"Skenirajte QR kôd prijenosa zvuka da slušate s uređaja <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
<string name="audio_streams_main_page_password_dialog_cannot_edit" msgid="9020898619297520153">"Nije moguće urediti lozinku tokom dijeljenja. Da promijenite lozinku, prvo isključite dijeljenje zvuka."</string>
+ <string name="audio_streams_qr_code_scanner_label" msgid="8799703301071378034">"Skener QR koda"</string>
<string name="homepage_search" msgid="6759334912284663559">"Pretražite postavke"</string>
</resources>
diff --git a/res/values-ca/strings.xml b/res/values-ca/strings.xml
index ad45f07..548289d 100644
--- a/res/values-ca/strings.xml
+++ b/res/values-ca/strings.xml
@@ -41,6 +41,8 @@
<string name="radioInfo_data_suspended" msgid="2001254415431299603">"Suspesa"</string>
<string name="radioInfo_unknown" msgid="2892562356748600367">"Desconegut"</string>
<string name="preview_pager_content_description" msgid="3762247188224576303">"Previsualització"</string>
+ <!-- no translation found for qr_code_content_description (1852208464419291347) -->
+ <skip />
<string name="font_size_make_smaller_desc" msgid="4978038055549590140">"Redueix"</string>
<string name="font_size_make_larger_desc" msgid="5583046033381722247">"Amplia"</string>
<string name="stay_awake_on_fold_title" msgid="6590454679898134221">"Sempre"</string>
@@ -283,7 +285,7 @@
<string name="location_settings_summary_location_off" msgid="4797932754681162262">"Desactivat"</string>
<string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{Activada (# aplicació té accés a la ubicació)}other{Activada (# aplicacions tenen accés a la ubicació)}}"</string>
<string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"Carregant…"</string>
- <string name="location_settings_footer_general" msgid="1040507068701188821">"Les aplicacions amb permís per trobar dispositius propers poden determinar la posició relativa dels dispositius connectats."</string>
+ <string name="location_settings_footer_general" msgid="3447585552176173502">"Les aplicacions que tenen el permís de dispositius propers poden determinar la posició relativa dels dispositius connectats."</string>
<string name="location_settings_footer_location_off" msgid="8568995909147566720">"L\'accés a la ubicació està desactivat per a aplicacions i serveis. Tanmateix, la ubicació del dispositiu es pot continuar enviant als serveis d\'emergències quan truquis o enviïs un missatge de text a un número d\'emergència."</string>
<string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Més informació sobre la configuració d\'ubicació"</string>
<string name="location_settings_tooltip_text_for_chrome" msgid="5781821709250544575">"Per canviar-ho, ves a Configuració de ChromeOS > Privadesa i seguretat > Controls de privadesa > Accés a la ubicació"</string>
@@ -850,7 +852,6 @@
<string name="nfc_reboot_dialog_title" msgid="2033983438635768169">"Vols reiniciar el dispositiu?"</string>
<string name="nfc_reboot_dialog_message" msgid="4929353168157966992">"El registre detallat de l\'NFC només està indicat per a activitats de desenvolupament. Les dades de l\'NFC addicionals estan incloses als informes d\'errors, que poden contenir informació privada. Reinicia el dispositiu per canviar aquesta configuració."</string>
<string name="nfc_reboot_dialog_confirm" msgid="4769763632008584567">"Reinicia"</string>
- <string name="keywords_external_display" msgid="4181375057920134909">"duplicar, pantalla externa, pantalla connectada, pantalla usb, resolució, rotació"</string>
<string name="external_display_on" msgid="2560104443500154333">"Activat"</string>
<string name="external_display_off" msgid="5634413756025351374">"Desactivat"</string>
<string name="external_display_settings_title" msgid="6256884595821605779">"Pantalla externa"</string>
@@ -1918,6 +1919,8 @@
<string name="slow_keys_summary" msgid="1784371292745423292">"Ajusta el temps que tarda la pulsació d\'una tecla en activar-se a <xliff:g id="SLOW_KEYS_THRESHOLD">%1$d</xliff:g> ms"</string>
<string name="sticky_keys" msgid="7317317044898161747">"Tecles permanents"</string>
<string name="sticky_keys_summary" msgid="1844953803625480623">"Prem una tecla cada vegada per a les dreceres en lloc de mantenir premudes les tecles alhora"</string>
+ <string name="mouse_keys" msgid="6237254627808525540">"Tecles del ratolí"</string>
+ <string name="mouse_keys_summary" msgid="2396247040177734245">"Utilitza el teclat físic per controlar el ratolí."</string>
<string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"Tecles de drecera"</string>
<string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"Mostra la llista de dreceres"</string>
<string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"Teclats i eines del perfil de treball"</string>
@@ -1942,14 +1945,10 @@
<string name="pointer_fill_style_yellow_button" msgid="5025969961559379024">"Canvia emplenament del punter a groc"</string>
<string name="pointer_fill_style_pink_button" msgid="4106218142489635673">"Canvia emplenament del punter a rosa"</string>
<string name="pointer_fill_style_blue_button" msgid="5594958078854032785">"Canvia emplenament del punter a blau"</string>
- <!-- no translation found for pointer_stroke_style (1886986630216050665) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_white (673686194443825383) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_black (4655806167067437330) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_none (8953927511729800247) -->
- <skip />
+ <string name="pointer_stroke_style" msgid="1886986630216050665">"Estil de traç de punter"</string>
+ <string name="pointer_stroke_style_name_white" msgid="673686194443825383">"Blanc"</string>
+ <string name="pointer_stroke_style_name_black" msgid="4655806167067437330">"Negre"</string>
+ <string name="pointer_stroke_style_name_none" msgid="8953927511729800247">"Cap"</string>
<string name="trackpad_touch_gesture" msgid="8641725062131922497">"Aprèn els gestos del ratolí tàctil"</string>
<string name="keywords_touchpad" msgid="8159846254066666032">"ratolí tàctil, ratolí, cursor, desplaçar-se, lliscar, fer clic amb el botó dret, fer clic, punter"</string>
<string name="keywords_trackpad_bottom_right_tap" msgid="1285062446073929305">"fer clic amb el botó dret, tocar"</string>
@@ -2179,8 +2178,6 @@
<string name="accessibility_shortcut_edit_dialog_summary_floating_button" msgid="6266489864614886247">"Toca el botó flotant"</string>
<string name="accessibility_shortcut_edit_dialog_title_software_by_gesture" msgid="4775049370625630546">"Gest d\'accessibilitat"</string>
<string name="accessibility_shortcut_edit_dialog_summary_software" msgid="8315934725362849788">"Toca el botó d\'accessibilitat <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g> a la part inferior de la pantalla. Per canviar entre funcions, mantén premut el botó d\'accessibilitat."</string>
- <string name="accessibility_shortcut_edit_dialog_summary_software_gesture" msgid="8292555254353761635">"Llisca cap amunt amb 2 dits des de la part inferior de la pantalla.\n\nPer canviar entre funcions, llisca cap amunt amb 2 dits i mantén premut."</string>
- <string name="accessibility_shortcut_edit_dialog_summary_software_gesture_talkback" msgid="84483464524360845">"Llisca cap amunt amb 3 dits des de la part inferior de la pantalla.\n\nPer canviar entre funcions, llisca cap amunt amb 3 dits i mantén premut."</string>
<string name="accessibility_shortcut_edit_dialog_summary_gesture" msgid="2081123009255579884">"{count,plural, =1{Llisca cap amunt des de la part inferior de la pantalla. Per canviar entre funcions, llisca cap amunt i mantén premut.}other{Llisca cap amunt amb # dits des de la part inferior de la pantalla. Per canviar entre funcions, llisca cap amunt amb # dits i mantén premut.}}"</string>
<string name="accessibility_shortcut_edit_dialog_summary_software_floating" msgid="4459254227203203324"><annotation id="link">"Més opcions"</annotation></string>
<string name="footer_learn_more_content_description" msgid="8843798273152131341">"Més informació sobre <xliff:g id="SERVICE">%1$s</xliff:g>"</string>
@@ -2191,16 +2188,12 @@
<string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="844089763968552142">"Tecles de volum"</string>
<string name="accessibility_shortcut_hardware_keyword" msgid="2483152542320987022">"tecles de volum"</string>
<string name="accessibility_shortcut_edit_dialog_summary_hardware" msgid="2503134386397991634">"Mantén premudes les dues tecles de volum"</string>
- <string name="accessibility_shortcut_edit_dialog_title_two_finger_double_tap" msgid="2271778556854020996">"Doble toc a la pantalla amb dos dits"</string>
<string name="accessibility_shortcut_edit_screen_title_two_finger_double_tap" msgid="8952595692906527694">"Fes doble toc amb %1$d dits"</string>
<string name="accessibility_shortcut_edit_screen_summary_two_finger_double_tap" msgid="385404127425496362">"Toca ràpidament la pantalla dues vegades amb %1$d dits"</string>
<string name="accessibility_shortcut_edit_screen_title_triple_tap" msgid="3314488747597058942">"Fes triple toc"</string>
<string name="accessibility_shortcut_edit_screen_summary_triple_tap" msgid="4839204951599629871">"Toca ràpidament la pantalla %1$d vegades. Aquesta acció pot alentir el dispositiu."</string>
<string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="6271718715836961167">"Fes doble toc amb %1$d dits"</string>
- <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"Toca ràpidament la pantalla {0,number,integer} vegades amb dos dits"</string>
- <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"Fes tres tocs a la pantalla"</string>
<string name="accessibility_shortcut_triple_tap_keyword" msgid="5359347130888464334">"fes triple toc"</string>
- <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"Toca ràpidament la pantalla {0,number,integer} vegades. És possible que aquesta drecera alenteixi el dispositiu."</string>
<string name="accessibility_shortcut_edit_dialog_title_advance" msgid="4567868630655591506">"Configuració avançada"</string>
<string name="accessibility_screen_magnification_navbar_configuration_warning" msgid="266736851606791552">"El botó d\'accessibilitat està configurat per a <xliff:g id="SERVICE">%1$s</xliff:g>. Per utilitzar la funció d\'ampliació, toca i mantén premut el botó d\'accessibilitat i, a continuació, selecciona l\'ampliació."</string>
<string name="accessibility_screen_magnification_gesture_navigation_warning" msgid="991017769735632046">"El gest d\'accessibilitat està definit per a la funció <xliff:g id="SERVICE">%1$s</xliff:g>. Per utilitzar l\'ampliació, fes lliscar els dos dits cap amunt des de la part inferior de la pantalla i mantén premut. A continuació, selecciona l\'amplificació."</string>
@@ -2369,6 +2362,7 @@
<string name="daltonizer_mode_tritanomaly_title" msgid="2278786218762602022">"Blau-groc"</string>
<string name="daltonizer_mode_grayscale_title" msgid="152005391387952588">"Escala de grisos"</string>
<string name="daltonizer_saturation_title" msgid="2999486412114963068">"Intensitat"</string>
+ <string name="daltonizer_saturation_unavailable_summary" msgid="8319753055567798775">"No està disponible per al mode d\'escala de grisos ni quan la correcció de color està desactivada"</string>
<string name="daltonizer_mode_deuteranomaly_summary" msgid="2117727423019598455">"Percepció dèbil del verd, deuteranomalia"</string>
<string name="daltonizer_mode_protanomaly_summary" msgid="4617032854982040748">"Percepció dèbil del vermell, protanomalia"</string>
<string name="daltonizer_mode_tritanomaly_summary" msgid="2428218320118180070">"Tritanomalia"</string>
@@ -2418,15 +2412,8 @@
<string name="color_cyan" msgid="4341758639597035927">"Cian"</string>
<string name="color_yellow" msgid="5957551912912679058">"Groc"</string>
<string name="color_magenta" msgid="8943538189219528423">"Magenta"</string>
- <string name="enable_service_title" msgid="7231533866953706788">"Vols que <xliff:g id="SERVICE">%1$s</xliff:g> controli el teu dispositiu per complet?"</string>
<string name="capabilities_list_title" msgid="1225853611983394386">"<xliff:g id="SERVICE">%1$s</xliff:g> necessita:"</string>
<string name="touch_filtered_warning" msgid="4225815157460318241">"Com que hi ha una aplicació que oculta una sol·licitud de permís, no es pot verificar la teva resposta des de la configuració."</string>
- <string name="accessibility_service_warning" msgid="6779187188736432618">"<xliff:g id="SERVICE">%1$s</xliff:g> sol·licita un control total del dispositiu. El servei pot llegir la pantalla i actuar en nom dels usuaris amb necessitats d\'accessibilitat. Aquest nivell de control no és adequat per a la majoria d\'aplicacions."</string>
- <string name="accessibility_service_warning_description" msgid="6573203795976134751">"El control total és adequat per a les aplicacions que t\'ajuden amb l\'accessibilitat, però no per a la majoria de les aplicacions."</string>
- <string name="accessibility_service_screen_control_title" msgid="324795030658109870">"Veure i controlar la pantalla"</string>
- <string name="accessibility_service_screen_control_description" msgid="8431940515157990426">"Pot llegir tot el contingut de la pantalla i mostrar contingut per sobre d\'altres aplicacions."</string>
- <string name="accessibility_service_action_perform_title" msgid="1449360056585337833">"Veure i dur a terme accions"</string>
- <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"Pot fer un seguiment de les teves interaccions amb una aplicació o un sensor de maquinari, i interaccionar amb aplicacions en nom teu."</string>
<string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Permet"</string>
<string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Denega"</string>
<string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Desactiva"</string>
@@ -3656,9 +3643,9 @@
<string name="notif_listener_not_migrated" msgid="6265206376374278226">"Aquesta aplicació no és compatible amb la configuració avançada"</string>
<string name="notif_listener_more_settings" msgid="1348409392307208921">"Més opcions de configuració"</string>
<string name="notif_listener_more_settings_desc" msgid="7995492074281663658">"Hi ha més opcions de configuració disponibles en aquesta aplicació"</string>
- <string name="notification_polite_title" msgid="4737150709382859870">"Notificacions adaptatives"</string>
- <string name="notification_polite_main_control_title" msgid="7267191551379543859">"Utilitza les notificacions adaptatives"</string>
- <string name="notification_polite_description" msgid="7749280535620291610">"Quan rebis moltes notificacions en poc temps, el telèfon abaixarà el volum i minimitzarà les finestres emergents en pantalla durant un màxim de dos minuts. Les alertes de trucades, alarmes i converses prioritàries continuaran vibrant, emetent sons i mostrant-se a la pantalla. Totes les notificacions es poden trobar fàcilment en lliscar cap avall des de la part superior de la pantalla."</string>
+ <string name="notification_polite_title" msgid="6121016426991791557">"Moderació de notificacions"</string>
+ <string name="notification_polite_main_control_title" msgid="5812529809151927149">"Utilitza la moderació de notificacions"</string>
+ <string name="notification_polite_description" msgid="5497748284893832854">"Quan rebis moltes notificacions en poc temps, el dispositiu abaixarà el volum i minimitzarà les alertes durant un màxim de 2 minuts. Les trucades, les alarmes i les converses prioritàries no es veuran afectades. \n\nLes notificacions rebudes durant el període de moderació es podran trobar en lliscar cap avall des de la part superior de la pantalla."</string>
<string name="notification_polite_work" msgid="8823596456640216391">"Aplica als perfils de treball"</string>
<string name="notification_polite_work_summary" msgid="5014189280132951378">"Aplica a les aplicacions del perfil de treball"</string>
<string name="vr_listeners_title" msgid="4960357292472540964">"Serveis d\'ajuda per a RV"</string>
@@ -3815,7 +3802,9 @@
<string name="zen_mode_apps_priority_apps" msgid="7386196048313716076">"Aplicacions seleccionades"</string>
<string name="zen_mode_apps_none_apps" msgid="2493642312793604327">"Cap"</string>
<string name="zen_mode_apps_subtext" msgid="1764211974662012877">"{count,plural,offset:2 =0{Cap aplicació no pot interrompre}=1{{app_1} pot interrompre}=2{{app_1} i {app_2} poden interrompre}=3{{app_1}, {app_2} i {app_3} poden interrompre}other{{app_1}, {app_2} i # més poden interrompre}}"</string>
+ <string name="zen_mode_apps_work_app" msgid="8528767938316361588">"<xliff:g id="APP_LABEL">%s</xliff:g> (treball)"</string>
<string name="zen_mode_apps_calculating" msgid="5420121396943539286">"S\'està calculant…"</string>
+ <string name="zen_mode_plus_n_items" msgid="6136713354369243421">"+<xliff:g id="NUMBER">%d</xliff:g>"</string>
<string name="zen_mode_bypassing_apps" msgid="625309443389126481">"Permet que les aplicacions ignorin el mode No molestis"</string>
<string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"Aplicacions que poden interrompre"</string>
<string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"Selecciona més aplicacions"</string>
@@ -3833,6 +3822,7 @@
<string name="zen_mode_sounds_none" msgid="6557474361948269420">"Res no pot interrompre"</string>
<string name="zen_mode_people_none" msgid="4613147461974255046">"Ningú no pot interrompre"</string>
<string name="zen_mode_people_some" msgid="9101872681298810281">"Algunes persones poden interrompre"</string>
+ <string name="zen_mode_people_repeat_callers" msgid="4499084111069828761">"Les trucades repetides poden interrompre"</string>
<string name="zen_mode_people_all" msgid="311036110283015205">"Tothom pot interrompre"</string>
<string name="zen_mode_repeat_callers" msgid="2270356100287792138">"Trucades repetides"</string>
<string name="zen_mode_repeat_callers_title" msgid="8016699240338264781">"Permet les trucades repetides"</string>
@@ -3856,6 +3846,34 @@
<string name="zen_mode_new_custom_title" msgid="321750898430776191">"Afegeix un mode"</string>
<string name="zen_mode_new_custom_default_name" msgid="2778307946775085105">"Mode personalitzat"</string>
<string name="zen_mode_edit_name_hint" msgid="4584652062167540536">"Nom del mode"</string>
+ <string name="zen_mode_trigger_title_schedule_calendar" msgid="9206609438617550331">"Esdeveniments del calendari"</string>
+ <string name="zen_mode_trigger_title_bedtime" msgid="5086070900588489978">"Horari de son"</string>
+ <string name="zen_mode_trigger_title_driving" msgid="7890990983453164403">"Mentre condueixes"</string>
+ <string name="zen_mode_trigger_title_generic" msgid="601273385119550420">"Enllaçat a l\'aplicació"</string>
+ <string name="zen_mode_trigger_summary_settings_in_app" msgid="4860667191183702601">"Informació i configuració a <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+ <string name="zen_mode_trigger_summary_managed_by_app" msgid="8631011868193102098">"Gestionat per <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+ <string name="zen_mode_confirm_disable_title" msgid="1232297660775719796">"Desacitva el mode"</string>
+ <string name="zen_mode_confirm_disable_message" msgid="7315541221665718491">"Si desactives aquesta funció, el mode deixarà de funcionar de la manera prevista i la configuració s\'amagarà."</string>
+ <string name="zen_mode_action_disable" msgid="3552921561331044881">"Desactiva"</string>
+ <string name="zen_mode_confirm_enable_title" msgid="5683371335847448595">"Activa el mode"</string>
+ <string name="zen_mode_confirm_enable_message" msgid="7017879133260011419">"Si actives aquesta funció, el mode s\'activarà automàticament d\'acord amb la seva programació."</string>
+ <string name="zen_mode_action_enable" msgid="1161480633223176531">"Activa"</string>
+ <!-- no translation found for zen_mode_blurb_schedule_time (8223898702097484009) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_schedule_calendar (382177907856065945) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_bedtime (6155075956151013457) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_driving (1316054379000667305) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_immersive (5884004861848687869) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_theater (2999237960059524225) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_managed (5473921634985032149) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_generic (3041601339807075625) -->
+ <skip />
<string name="warning_button_text" msgid="1274234338874005639">"Advertiment"</string>
<string name="suggestion_button_close" msgid="6865170855573283759">"Tanca"</string>
<string name="device_feedback" msgid="5351614458411688608">"Envia suggeriments sobre el dispositiu"</string>
@@ -4842,9 +4860,8 @@
<string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"Bateria"</string>
<string name="settings_panel_title" msgid="346363079938069215">"Tauler de configuració"</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>
+ <!-- no translation found for enable_desktop_mode_on_secondary_display (2609567824593768780) -->
+ <skip />
<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>
@@ -5019,7 +5036,6 @@
<string name="default_active_sim_mobile_data" msgid="6798083892814045301">"dades mòbils"</string>
<string name="wifi_scan_notify_message" msgid="1331238142061476869">"Per millorar l\'experiència amb el dispositiu, les aplicacions i els serveis poden continuar cercant xarxes Wi‑Fi en qualsevol moment, fins i tot amb la Wi‑Fi desactivada. Això pot servir, per exemple, per millorar les funcions i els serveis basats en la ubicació. Pots canviar-ho a la configuració de cerca de xarxes Wi‑Fi."</string>
<string name="wifi_scan_change" msgid="8438320311511852918">"Canvia"</string>
- <string name="preference_summary_default_combination" msgid="4643585915107796253">"<xliff:g id="STATE">%1$s</xliff:g> / <xliff:g id="NETWORKMODE">%2$s</xliff:g>"</string>
<string name="mobile_data_connection_active" msgid="2422223108911581552">"Connectat"</string>
<string name="mobile_data_temp_connection_active" msgid="3430470299756236413">"Connexió temporal"</string>
<string name="mobile_data_temp_using" msgid="5211002380149434155">"S\'està utilitzant <xliff:g id="SUBNAME">%1$s</xliff:g> temporalment"</string>
@@ -5165,9 +5181,11 @@
<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="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_enable_freeform_support" msgid="3697462756493543645">"Cal reiniciar per activar la compatibilitat amb finestres de forma lliure."</string>
+ <!-- no translation found for reboot_dialog_override_desktop_mode (7480950772574354130) -->
+ <skip />
+ <!-- no translation found for reboot_dialog_enable_desktop_mode_on_secondary_display (1153621881052401924) -->
+ <skip />
<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>
@@ -5285,10 +5303,8 @@
<string name="show_captions_enabled" msgid="7089043007924626">"Activat"</string>
<string name="live_caption_disabled" msgid="3562035026547887366">"Desactivat"</string>
<string name="live_caption_enabled" msgid="5269360946200718949">"Activat"</string>
- <!-- no translation found for audio_seek_bar_state_left_first (8814986910920838972) -->
- <skip />
- <!-- no translation found for audio_seek_bar_state_right_first (1999368979633398876) -->
- <skip />
+ <string name="audio_seek_bar_state_left_first" msgid="8814986910920838972">"Àudio: %1$d%% esquerra, %2$d%% dreta"</string>
+ <string name="audio_seek_bar_state_right_first" msgid="1999368979633398876">"Àudio %1$d%% dreta, %2$d%% esquerra"</string>
<string name="about_phone_device_name_warning" msgid="3243226572404472381">"El nom del dispositiu és visible per a les aplicacions que has instal·lat. També el poden veure altres persones si el connectes a un dispositiu Bluetooth o a una xarxa Wi‑Fi, o si configures un punt d\'accés Wi‑Fi."</string>
<string name="grammatical_gender_title" msgid="8584242850477270828">"Gènere gramatical"</string>
<string name="grammatical_gender_dialog_title" msgid="8754048592099871587">"Selecciona el gènere gramatical"</string>
@@ -5400,5 +5416,6 @@
<string name="audio_streams_main_page_password_dialog_join_button" msgid="2967747276379153408">"Escolta el flux d\'àudio"</string>
<string name="audio_streams_main_page_qr_code_scanner_summary" msgid="5312980105735143360">"Escaneja el codi QR d\'un flux d\'àudio per escoltar-lo amb <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
<string name="audio_streams_main_page_password_dialog_cannot_edit" msgid="9020898619297520153">"No es pot editar la contrasenya durant la compartició. Per canviar-la, primer desactiva la compartició d\'àudio."</string>
+ <string name="audio_streams_qr_code_scanner_label" msgid="8799703301071378034">"Escàner de codis QR"</string>
<string name="homepage_search" msgid="6759334912284663559">"Configuració de la cerca"</string>
</resources>
diff --git a/res/values-cs/strings.xml b/res/values-cs/strings.xml
index 43a33d4..30a2d35 100644
--- a/res/values-cs/strings.xml
+++ b/res/values-cs/strings.xml
@@ -41,6 +41,8 @@
<string name="radioInfo_data_suspended" msgid="2001254415431299603">"Pozastaveno"</string>
<string name="radioInfo_unknown" msgid="2892562356748600367">"Neznámé"</string>
<string name="preview_pager_content_description" msgid="3762247188224576303">"Náhled"</string>
+ <!-- no translation found for qr_code_content_description (1852208464419291347) -->
+ <skip />
<string name="font_size_make_smaller_desc" msgid="4978038055549590140">"Zmenšit"</string>
<string name="font_size_make_larger_desc" msgid="5583046033381722247">"Zvětšit"</string>
<string name="stay_awake_on_fold_title" msgid="6590454679898134221">"Vždy"</string>
@@ -283,7 +285,7 @@
<string name="location_settings_summary_location_off" msgid="4797932754681162262">"Vypnuto"</string>
<string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{Zapnuto / k poloze má přístup # aplikace}few{Zapnuto / k poloze mají přístup # aplikace}many{Zapnuto / k poloze má přístup # aplikace}other{Zapnuto / k poloze má přístup # aplikací}}"</string>
<string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"Načítání…"</string>
- <string name="location_settings_footer_general" msgid="1040507068701188821">"Aplikace s oprávněním pro přístup k zařízením v okolí mohou zjišťovat relativní polohu připojených zařízení."</string>
+ <string name="location_settings_footer_general" msgid="3447585552176173502">"Aplikace s oprávněním k přístupu k zařízením v okolí mohou zjišťovat relativní polohu připojených zařízení."</string>
<string name="location_settings_footer_location_off" msgid="8568995909147566720">"Přístup aplikací a služeb k poloze je vypnutý. Poloha zařízení může být přesto odesílána záchranářům, když vytočíte číslo tísňového volání nebo na něj pošlete SMS."</string>
<string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Další informace o nastavení polohy"</string>
<string name="location_settings_tooltip_text_for_chrome" msgid="5781821709250544575">"Pokud chcete tuto možnost změnit, přejděte do nastavení systému ChromeOS > Ochrana soukromí a zabezpečení > Nastavení ochrany soukromí > Přístup k poloze"</string>
@@ -850,7 +852,6 @@
<string name="nfc_reboot_dialog_title" msgid="2033983438635768169">"Restartovat zařízení?"</string>
<string name="nfc_reboot_dialog_message" msgid="4929353168157966992">"Podrobné protokolování funkce NFC je určeno pouze pro účely vývoje. Další data funkce NFC budou zahrnuta ve zprávách o chybě, které mohou obsahovat soukromé informace. Pokud toto nastavení chcete změnit, restartujte zařízení."</string>
<string name="nfc_reboot_dialog_confirm" msgid="4769763632008584567">"Restartovat"</string>
- <string name="keywords_external_display" msgid="4181375057920134909">"zrcadlení, externí displej, připojený displej, usb displej, rozlišení, otočení"</string>
<string name="external_display_on" msgid="2560104443500154333">"Zapnuto"</string>
<string name="external_display_off" msgid="5634413756025351374">"Vypnuto"</string>
<string name="external_display_settings_title" msgid="6256884595821605779">"Externí displej"</string>
@@ -1918,6 +1919,8 @@
<string name="slow_keys_summary" msgid="1784371292745423292">"Upraví čas aktivace po stisknutí klávesy na <xliff:g id="SLOW_KEYS_THRESHOLD">%1$d</xliff:g> ms"</string>
<string name="sticky_keys" msgid="7317317044898161747">"Jedním prstem"</string>
<string name="sticky_keys_summary" msgid="1844953803625480623">"Místo držení více kláves aktivujte zkratky postupným tisknutím jednotlivých kláves"</string>
+ <string name="mouse_keys" msgid="6237254627808525540">"Klávesy pro myš"</string>
+ <string name="mouse_keys_summary" msgid="2396247040177734245">"Ovládat myš pomocí fyzické klávesnice."</string>
<string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"Klávesové zkratky"</string>
<string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"Zobrazit seznam zkratek"</string>
<string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"Klávesnice a nástroje v pracovním profilu"</string>
@@ -1942,14 +1945,10 @@
<string name="pointer_fill_style_yellow_button" msgid="5025969961559379024">"Změnit vyplnění ukazatele na žluté"</string>
<string name="pointer_fill_style_pink_button" msgid="4106218142489635673">"Změnit vyplnění ukazatele na růžové"</string>
<string name="pointer_fill_style_blue_button" msgid="5594958078854032785">"Změnit vyplnění ukazatele na modré"</string>
- <!-- no translation found for pointer_stroke_style (1886986630216050665) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_white (673686194443825383) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_black (4655806167067437330) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_none (8953927511729800247) -->
- <skip />
+ <string name="pointer_stroke_style" msgid="1886986630216050665">"Styl tahu ukazatele"</string>
+ <string name="pointer_stroke_style_name_white" msgid="673686194443825383">"Bílá"</string>
+ <string name="pointer_stroke_style_name_black" msgid="4655806167067437330">"Černá"</string>
+ <string name="pointer_stroke_style_name_none" msgid="8953927511729800247">"Žádné"</string>
<string name="trackpad_touch_gesture" msgid="8641725062131922497">"Naučte se gesta touchpadu"</string>
<string name="keywords_touchpad" msgid="8159846254066666032">"trackpad, track pad, myš, kurzor, posouvání, přejetí, kliknutí pravým tlačítkem, kliknutí, ukazatel"</string>
<string name="keywords_trackpad_bottom_right_tap" msgid="1285062446073929305">"kliknutí pravým tlačítkem, klepnutí"</string>
@@ -2179,8 +2178,6 @@
<string name="accessibility_shortcut_edit_dialog_summary_floating_button" msgid="6266489864614886247">"Klepněte na plovoucí tlačítko"</string>
<string name="accessibility_shortcut_edit_dialog_title_software_by_gesture" msgid="4775049370625630546">"Gesto přístupnosti"</string>
<string name="accessibility_shortcut_edit_dialog_summary_software" msgid="8315934725362849788">"Klepněte na tlačítko přístupnosti <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g> ve spodní části obrazovky. Pokud chcete přepnout mezi funkcemi, tlačítko přístupnosti podržte."</string>
- <string name="accessibility_shortcut_edit_dialog_summary_software_gesture" msgid="8292555254353761635">"Přejeďte dvěma prsty ze spodní části obrazovky nahoru.\n\nPokud chcete přepnout mezi funkcemi, přejeďte nahoru dvěma prsty a podržte je."</string>
- <string name="accessibility_shortcut_edit_dialog_summary_software_gesture_talkback" msgid="84483464524360845">"Přejeďte třemi prsty ze spodní části obrazovky nahoru.\n\nChcete-li přepnout mezi funkcemi, přejeďte nahoru třemi prsty a podržte je."</string>
<string name="accessibility_shortcut_edit_dialog_summary_gesture" msgid="2081123009255579884">"{count,plural, =1{Přejeďte prstem ze spodní části obrazovky nahoru. Mezi funkcemi můžete přepnout přejetím nahoru a podržením.}few{Přejeďte # prsty ze spodní části obrazovky nahoru. Mezi funkcemi můžete přepnout přejetím # prsty nahoru a podržením.}many{Přejeďte # prstu ze spodní části obrazovky nahoru. Mezi funkcemi můžete přepnout přejetím # prstu nahoru a podržením.}other{Přejeďte # prsty ze spodní části obrazovky nahoru. Mezi funkcemi můžete přepnout přejetím # prsty nahoru a podržením.}}"</string>
<string name="accessibility_shortcut_edit_dialog_summary_software_floating" msgid="4459254227203203324"><annotation id="link">"Další možnosti"</annotation></string>
<string name="footer_learn_more_content_description" msgid="8843798273152131341">"Další informace o funkci <xliff:g id="SERVICE">%1$s</xliff:g>"</string>
@@ -2191,16 +2188,12 @@
<string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="844089763968552142">"Tlačítka hlasitosti"</string>
<string name="accessibility_shortcut_hardware_keyword" msgid="2483152542320987022">"tlačítka hlasitosti"</string>
<string name="accessibility_shortcut_edit_dialog_summary_hardware" msgid="2503134386397991634">"Podržte obě tlačítka hlasitosti"</string>
- <string name="accessibility_shortcut_edit_dialog_title_two_finger_double_tap" msgid="2271778556854020996">"Dvakrát klepněte na obrazovku dvěma prsty"</string>
<string name="accessibility_shortcut_edit_screen_title_two_finger_double_tap" msgid="8952595692906527694">"Dvojité klepnutí %1$d prsty"</string>
<string name="accessibility_shortcut_edit_screen_summary_two_finger_double_tap" msgid="385404127425496362">"Dvakrát rychle klepněte na obrazovku %1$d prsty."</string>
<string name="accessibility_shortcut_edit_screen_title_triple_tap" msgid="3314488747597058942">"Trojité klepnutí"</string>
<string name="accessibility_shortcut_edit_screen_summary_triple_tap" msgid="4839204951599629871">"%1$d× rychle klepněte na obrazovku. Zařízení se může zpomalit."</string>
<string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="6271718715836961167">"Dvojité klepnutí %1$d prsty"</string>
- <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"Rychle {0,number,integer}krát klepněte na obrazovku dvěma prsty"</string>
- <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"Trojité klepnutí na obrazovku"</string>
<string name="accessibility_shortcut_triple_tap_keyword" msgid="5359347130888464334">"trojité klepnutí"</string>
- <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"Rychle {0,number,integer}krát klepněte na obrazovku. Tato zkratka může zařízení zpomalit."</string>
<string name="accessibility_shortcut_edit_dialog_title_advance" msgid="4567868630655591506">"Rozšířená nastavení"</string>
<string name="accessibility_screen_magnification_navbar_configuration_warning" msgid="266736851606791552">"Tlačítko Přístupnost je nastaveno na službu <xliff:g id="SERVICE">%1$s</xliff:g>. Chcete-li použít zvětšení, klepněte na tlačítko Přístupnost, podržte jej a vyberte zvětšení."</string>
<string name="accessibility_screen_magnification_gesture_navigation_warning" msgid="991017769735632046">"Gesto usnadnění přístupu je nastaveno na funkci <xliff:g id="SERVICE">%1$s</xliff:g>. Chcete-li použít zvětšení, přejeďte dvěma prsty ze spodní části obrazovky nahoru a podržte obrazovku. Potom vyberte zvětšení."</string>
@@ -2369,6 +2362,7 @@
<string name="daltonizer_mode_tritanomaly_title" msgid="2278786218762602022">"Modrá a žlutá"</string>
<string name="daltonizer_mode_grayscale_title" msgid="152005391387952588">"Zešednutí obrazovky"</string>
<string name="daltonizer_saturation_title" msgid="2999486412114963068">"Intenzita"</string>
+ <string name="daltonizer_saturation_unavailable_summary" msgid="8319753055567798775">"V režimu stupňů šedi a při vypnuté korekci barev tato funkce není k dispozici"</string>
<string name="daltonizer_mode_deuteranomaly_summary" msgid="2117727423019598455">"Oslabené vidění zelené barvy, deuteranomálie"</string>
<string name="daltonizer_mode_protanomaly_summary" msgid="4617032854982040748">"Oslabené vidění červené barvy, protanomálie"</string>
<string name="daltonizer_mode_tritanomaly_summary" msgid="2428218320118180070">"Tritanomálie"</string>
@@ -2418,15 +2412,8 @@
<string name="color_cyan" msgid="4341758639597035927">"Tyrkysová"</string>
<string name="color_yellow" msgid="5957551912912679058">"Žlutá"</string>
<string name="color_magenta" msgid="8943538189219528423">"Purpurová"</string>
- <string name="enable_service_title" msgid="7231533866953706788">"Má mít <xliff:g id="SERVICE">%1$s</xliff:g> plnou kontrolu nad vaším zařízením?"</string>
<string name="capabilities_list_title" msgid="1225853611983394386">"<xliff:g id="SERVICE">%1$s</xliff:g> potřebuje:"</string>
<string name="touch_filtered_warning" msgid="4225815157460318241">"Žádost o oprávnění je blokována jinou aplikací. Nastavení proto vaši odpověď nemůže ověřit."</string>
- <string name="accessibility_service_warning" msgid="6779187188736432618">"Služba <xliff:g id="SERVICE">%1$s</xliff:g> požaduje plnou kontrolu nad zařízením. Služba může číst obrazovku a vykonávat akce namísto uživatelů, kteří potřebují usnadnění přístupu. Tato úroveň kontroly není u většiny aplikací vhodná."</string>
- <string name="accessibility_service_warning_description" msgid="6573203795976134751">"Plná kontrola je vhodná u aplikací, které vám pomáhají s usnadněním přístupu. U většiny aplikací však vhodná není."</string>
- <string name="accessibility_service_screen_control_title" msgid="324795030658109870">"Zobrazení a ovládání obrazovky"</string>
- <string name="accessibility_service_screen_control_description" msgid="8431940515157990426">"Služba může číst veškerý obsah obrazovky a zobrazovat ho přes ostatní aplikace."</string>
- <string name="accessibility_service_action_perform_title" msgid="1449360056585337833">"Zobrazení a provádění akcí"</string>
- <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"Služba může sledovat vaše interakce s aplikací nebo hardwarovým senzorem a komunikovat s aplikacemi za vás."</string>
<string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Povolit"</string>
<string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Zakázat"</string>
<string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Vypnout"</string>
@@ -3368,10 +3355,8 @@
<string name="zen_mode_automation_settings_title" msgid="3709324184191870926">"Plány"</string>
<string name="zen_mode_delete_automatic_rules" msgid="5020468289267191765">"Smazat plány"</string>
<string name="zen_mode_schedule_delete" msgid="5383420576833765114">"Smazat"</string>
- <!-- no translation found for zen_mode_menu_rename_mode (4681802125016390837) -->
- <skip />
- <!-- no translation found for zen_mode_menu_delete_mode (5380084696402157428) -->
- <skip />
+ <string name="zen_mode_menu_rename_mode" msgid="4681802125016390837">"Přejmenovat"</string>
+ <string name="zen_mode_menu_delete_mode" msgid="5380084696402157428">"Smazat"</string>
<string name="zen_mode_delete_mode_confirmation" msgid="7594340592051947392">"Smazat režim <xliff:g id="MODE">%1$s</xliff:g>?"</string>
<string name="zen_mode_rule_name_edit" msgid="1053237022416700481">"Upravit"</string>
<string name="zen_mode_automation_settings_page_title" msgid="6217433860514433311">"Plány"</string>
@@ -3395,8 +3380,7 @@
<string name="zen_mode_visual_signals_settings_subtitle" msgid="7433077540895876672">"Povolit vizuální signály"</string>
<string name="mode_interruption_filter_title" msgid="3343846700214702347">"Soustřeďte se"</string>
<string name="mode_device_effects_title" msgid="5857008332618433744">"Další akce"</string>
- <!-- no translation found for modes_sound_summary_off (6972648204528227879) -->
- <skip />
+ <string name="modes_sound_summary_off" msgid="6972648204528227879">"{count,plural, =0{Vypnuto}=1{Vypnuto / 1 režim se může automaticky zapnout}few{Vypnuto / # režimy se můžou automaticky zapnout}many{Vypnuto / # režimu se může automaticky zapnout}other{Vypnuto / # režimů se může automaticky zapnout}}"</string>
<string name="mode_display_settings_title" msgid="8132825978346535472">"Nastavení displeje"</string>
<string name="mode_display_options_section" msgid="5151597748243866532">"Možnosti zobrazení"</string>
<string name="mode_grayscale_title" msgid="6027553257331235461">"Stupně šedi"</string>
@@ -3659,9 +3643,9 @@
<string name="notif_listener_not_migrated" msgid="6265206376374278226">"Tato aplikace nepodporuje rozšířená nastavení"</string>
<string name="notif_listener_more_settings" msgid="1348409392307208921">"Další nastavení"</string>
<string name="notif_listener_more_settings_desc" msgid="7995492074281663658">"Další nastavení jsou k dispozici uvnitř aplikace"</string>
- <string name="notification_polite_title" msgid="4737150709382859870">"Adaptivní oznámení"</string>
- <string name="notification_polite_main_control_title" msgid="7267191551379543859">"Používat adaptivní oznámení"</string>
- <string name="notification_polite_description" msgid="7749280535620291610">"Když během krátké doby obdržíte mnoho oznámení, telefon až na dvě minuty sníží hlasitost a minimalizuje na obrazovce vyskakovací okna. Hovory, budíky a prioritní konverzace budou dále vibrovat, vydávat zvuk nebo se zobrazovat na obrazovce a všechna oznámení snadno najdete přetažením z horní části obrazovky dolů."</string>
+ <string name="notification_polite_title" msgid="6121016426991791557">"Zeslabení oznámení"</string>
+ <string name="notification_polite_main_control_title" msgid="5812529809151927149">"Používat zeslabení oznámení"</string>
+ <string name="notification_polite_description" msgid="5497748284893832854">"Když během krátké doby obdržíte mnoho oznámení, zařízení až na dvě minuty sníží hlasitost a minimalizuje upozornění. Hovory, budíky a prioritní konverzace nebudou dotčeny. \n\nOznámení přijatá během zeslabení lze zobrazit přejetím prstem dolů z horního okraje obrazovky."</string>
<string name="notification_polite_work" msgid="8823596456640216391">"Použít na pracovní profily"</string>
<string name="notification_polite_work_summary" msgid="5014189280132951378">"Použít pro aplikace v pracovním profilu"</string>
<string name="vr_listeners_title" msgid="4960357292472540964">"Pomocné služby VR"</string>
@@ -3818,7 +3802,9 @@
<string name="zen_mode_apps_priority_apps" msgid="7386196048313716076">"Vybrané aplikace"</string>
<string name="zen_mode_apps_none_apps" msgid="2493642312793604327">"Nic"</string>
<string name="zen_mode_apps_subtext" msgid="1764211974662012877">"{count,plural,offset:2 =0{Vyrušovat nemohou žádné aplikace}=1{Vyrušovat může aplikace {app_1}}=2{Vyrušovat můžou aplikace {app_1} a {app_2}}=3{Vyrušovat můžou aplikace {app_1}, {app_2} a {app_3}}few{Vyrušovat můžou aplikace {app_1}, {app_2} a # další}many{Vyrušovat můžou aplikace {app_1}, {app_2} a # další}other{Vyrušovat můžou aplikace {app_1}, {app_2} a # dalších}}"</string>
+ <string name="zen_mode_apps_work_app" msgid="8528767938316361588">"<xliff:g id="APP_LABEL">%s</xliff:g> (pracovní)"</string>
<string name="zen_mode_apps_calculating" msgid="5420121396943539286">"Výpočet…"</string>
+ <string name="zen_mode_plus_n_items" msgid="6136713354369243421">"+<xliff:g id="NUMBER">%d</xliff:g>"</string>
<string name="zen_mode_bypassing_apps" msgid="625309443389126481">"Povolit přepisování aplikací"</string>
<string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"Aplikace, které smí vyrušovat"</string>
<string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"Vybrat další aplikace"</string>
@@ -3836,6 +3822,7 @@
<string name="zen_mode_sounds_none" msgid="6557474361948269420">"Nic nemůže vyrušovat"</string>
<string name="zen_mode_people_none" msgid="4613147461974255046">"Nikdo nemůže vyrušovat"</string>
<string name="zen_mode_people_some" msgid="9101872681298810281">"Vyrušovat mohou někteří lidé"</string>
+ <string name="zen_mode_people_repeat_callers" msgid="4499084111069828761">"Vyrušovat mohou lidé, kteří volají opakovaně"</string>
<string name="zen_mode_people_all" msgid="311036110283015205">"Všichni lidé mohou vyrušovat"</string>
<string name="zen_mode_repeat_callers" msgid="2270356100287792138">"Volající, kteří volají opakovaně"</string>
<string name="zen_mode_repeat_callers_title" msgid="8016699240338264781">"Povolit opakovaná volání"</string>
@@ -3855,13 +3842,37 @@
<string name="zen_mode_summary_alarms_only_by_hour" msgid="7400910210950788163">"{count,plural, =1{Na hodinu (tedy do {time}) přepnout do režimu Pouze budíky}few{Na # hodiny (tedy do {time}) přepnout do režimu Pouze budíky}many{Na # hodiny (tedy do {time}) přepnout do režimu Pouze budíky}other{Na # hodin (tedy do {time}) přepnout do režimu Pouze budíky}}"</string>
<string name="zen_mode_summary_alarms_only_by_time" msgid="8140619669703968810">"Přepnout do režimu Pouze budíky až do <xliff:g id="FORMATTEDTIME">%1$s</xliff:g>"</string>
<string name="zen_mode_summary_always" msgid="722093064250082317">"Přejít do režimu Vždy vyrušit"</string>
- <!-- no translation found for zen_mode_rename_title (8146882272966214558) -->
+ <string name="zen_mode_rename_title" msgid="8146882272966214558">"Upravit režim"</string>
+ <string name="zen_mode_new_custom_title" msgid="321750898430776191">"Přidat režim"</string>
+ <string name="zen_mode_new_custom_default_name" msgid="2778307946775085105">"Vlastní režim"</string>
+ <string name="zen_mode_edit_name_hint" msgid="4584652062167540536">"Název režimu"</string>
+ <string name="zen_mode_trigger_title_schedule_calendar" msgid="9206609438617550331">"Události v kalendáři"</string>
+ <string name="zen_mode_trigger_title_bedtime" msgid="5086070900588489978">"Spánkový plán"</string>
+ <string name="zen_mode_trigger_title_driving" msgid="7890990983453164403">"Při řízení"</string>
+ <string name="zen_mode_trigger_title_generic" msgid="601273385119550420">"Propojeno s aplikací"</string>
+ <string name="zen_mode_trigger_summary_settings_in_app" msgid="4860667191183702601">"Informace a nastavení najdete v aplikaci <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+ <string name="zen_mode_trigger_summary_managed_by_app" msgid="8631011868193102098">"Spravováno aplikací <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+ <string name="zen_mode_confirm_disable_title" msgid="1232297660775719796">"Vypnout režim"</string>
+ <string name="zen_mode_confirm_disable_message" msgid="7315541221665718491">"Pokut tuto funkci vypnete, režim už nebude fungovat, jak by měl, a jeho nastavení budou skryta."</string>
+ <string name="zen_mode_action_disable" msgid="3552921561331044881">"Vypnout"</string>
+ <string name="zen_mode_confirm_enable_title" msgid="5683371335847448595">"Zapnout režim"</string>
+ <string name="zen_mode_confirm_enable_message" msgid="7017879133260011419">"Pokud tuto funkci zapnete, režim se aktivuje automaticky podle plánu."</string>
+ <string name="zen_mode_action_enable" msgid="1161480633223176531">"Zapnout"</string>
+ <!-- no translation found for zen_mode_blurb_schedule_time (8223898702097484009) -->
<skip />
- <!-- no translation found for zen_mode_new_custom_title (321750898430776191) -->
+ <!-- no translation found for zen_mode_blurb_schedule_calendar (382177907856065945) -->
<skip />
- <!-- no translation found for zen_mode_new_custom_default_name (2778307946775085105) -->
+ <!-- no translation found for zen_mode_blurb_bedtime (6155075956151013457) -->
<skip />
- <!-- no translation found for zen_mode_edit_name_hint (4584652062167540536) -->
+ <!-- no translation found for zen_mode_blurb_driving (1316054379000667305) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_immersive (5884004861848687869) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_theater (2999237960059524225) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_managed (5473921634985032149) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_generic (3041601339807075625) -->
<skip />
<string name="warning_button_text" msgid="1274234338874005639">"Varování"</string>
<string name="suggestion_button_close" msgid="6865170855573283759">"Zavřít"</string>
@@ -4849,9 +4860,8 @@
<string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"Baterie"</string>
<string name="settings_panel_title" msgid="346363079938069215">"Panel nastavení"</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>
+ <!-- no translation found for enable_desktop_mode_on_secondary_display (2609567824593768780) -->
+ <skip />
<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>
@@ -5028,7 +5038,6 @@
<string name="default_active_sim_mobile_data" msgid="6798083892814045301">"mobilní data"</string>
<string name="wifi_scan_notify_message" msgid="1331238142061476869">"Za účelem lepšího fungování zařízení mohou aplikace a služby vyhledávat sítě Wi-Fi, i když je připojení Wi-Fi vypnuté. Lze tak vylepšit funkce a služby závislé na poloze. Toto chování můžete změnit v nastavení vyhledávání Wi-Fi."</string>
<string name="wifi_scan_change" msgid="8438320311511852918">"Změnit"</string>
- <string name="preference_summary_default_combination" msgid="4643585915107796253">"<xliff:g id="STATE">%1$s</xliff:g> / <xliff:g id="NETWORKMODE">%2$s</xliff:g>"</string>
<string name="mobile_data_connection_active" msgid="2422223108911581552">"Připojeno"</string>
<string name="mobile_data_temp_connection_active" msgid="3430470299756236413">"Dočasně připojeno"</string>
<string name="mobile_data_temp_using" msgid="5211002380149434155">"Dočasně se používá <xliff:g id="SUBNAME">%1$s</xliff:g>"</string>
@@ -5174,9 +5183,11 @@
<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="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_enable_freeform_support" msgid="3697462756493543645">"K zapnutí podpory plovoucích oken je potřeba restart."</string>
+ <!-- no translation found for reboot_dialog_override_desktop_mode (7480950772574354130) -->
+ <skip />
+ <!-- no translation found for reboot_dialog_enable_desktop_mode_on_secondary_display (1153621881052401924) -->
+ <skip />
<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>
@@ -5294,10 +5305,8 @@
<string name="show_captions_enabled" msgid="7089043007924626">"Zapnuto"</string>
<string name="live_caption_disabled" msgid="3562035026547887366">"Vypnuto"</string>
<string name="live_caption_enabled" msgid="5269360946200718949">"Zapnuto"</string>
- <!-- no translation found for audio_seek_bar_state_left_first (8814986910920838972) -->
- <skip />
- <!-- no translation found for audio_seek_bar_state_right_first (1999368979633398876) -->
- <skip />
+ <string name="audio_seek_bar_state_left_first" msgid="8814986910920838972">"Zvuk %1$d %% vlevo, %2$d %% vpravo"</string>
+ <string name="audio_seek_bar_state_right_first" msgid="1999368979633398876">"Zvuk %1$d %% vpravo, %2$d %% vlevo"</string>
<string name="about_phone_device_name_warning" msgid="3243226572404472381">"Název vašeho zařízení je viditelný pro nainstalované aplikace. Mohou ho vidět také ostatní uživatelé, když se připojíte k zařízení Bluetooth nebo síti Wi-Fi, případně když vytvoříte hotspot Wi-Fi."</string>
<string name="grammatical_gender_title" msgid="8584242850477270828">"Gramatický rod"</string>
<string name="grammatical_gender_dialog_title" msgid="8754048592099871587">"Vyberte mluvnický rod"</string>
@@ -5409,5 +5418,6 @@
<string name="audio_streams_main_page_password_dialog_join_button" msgid="2967747276379153408">"Poslouchat stream"</string>
<string name="audio_streams_main_page_qr_code_scanner_summary" msgid="5312980105735143360">"Naskenujte QR kód zvukového streamu a poslouchejte na zařízení <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
<string name="audio_streams_main_page_password_dialog_cannot_edit" msgid="9020898619297520153">"Heslo nelze upravit během sdílení. Pokud chcete změnit heslo, nejdříve vypněte sdílení zvuku."</string>
+ <string name="audio_streams_qr_code_scanner_label" msgid="8799703301071378034">"Čtečka QR kódů"</string>
<string name="homepage_search" msgid="6759334912284663559">"Vyhledávat v nastavení"</string>
</resources>
diff --git a/res/values-da/strings.xml b/res/values-da/strings.xml
index 3911434..8c3e02d 100644
--- a/res/values-da/strings.xml
+++ b/res/values-da/strings.xml
@@ -41,6 +41,8 @@
<string name="radioInfo_data_suspended" msgid="2001254415431299603">"Sat på pause"</string>
<string name="radioInfo_unknown" msgid="2892562356748600367">"Ukendt"</string>
<string name="preview_pager_content_description" msgid="3762247188224576303">"Forhåndsvisning"</string>
+ <!-- no translation found for qr_code_content_description (1852208464419291347) -->
+ <skip />
<string name="font_size_make_smaller_desc" msgid="4978038055549590140">"Formindsk"</string>
<string name="font_size_make_larger_desc" msgid="5583046033381722247">"Forstør"</string>
<string name="stay_awake_on_fold_title" msgid="6590454679898134221">"Altid"</string>
@@ -283,7 +285,7 @@
<string name="location_settings_summary_location_off" msgid="4797932754681162262">"Fra"</string>
<string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{Til/# app har adgang til din lokation}one{Til/# app har adgang til din lokation}other{Til/# apps har adgang til din lokation}}"</string>
<string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"Indlæser…"</string>
- <string name="location_settings_footer_general" msgid="1040507068701188821">"Apps med tilladelse fra enheder i nærheden kan fastslå den relative placering af forbundne enheder."</string>
+ <string name="location_settings_footer_general" msgid="3447585552176173502">"Apps med tilladelse fra enheder i nærheden kan fastslå den relative positionering af forbundne enheder."</string>
<string name="location_settings_footer_location_off" msgid="8568995909147566720">"Adgangen til Lokation er deaktiveret for apps og tjenester. Din enhedslokation kan stadig blive sendt til udrykningsberedskab, hvis du ringer eller sender en sms til et alarmnummer."</string>
<string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Få flere oplysninger om lokationsindstillinger"</string>
<string name="location_settings_tooltip_text_for_chrome" msgid="5781821709250544575">"Du kan skifte ved at gå til Indstillinger for ChromeOS > Privatliv og sikkerhed > Privatlivsindstillinger > Lokationsadgang"</string>
@@ -302,7 +304,7 @@
<string name="security_settings_face_preference_title" msgid="2126625155005348417">"Ansigtsoplåsning"</string>
<string name="security_settings_face_profile_preference_title" msgid="7519527436266375005">"Ansigtsoplåsning til arbejdsprofil"</string>
<string name="security_settings_face_enroll_education_title" msgid="6448806884597691208">"Sådan konfigurerer du ansigtsoplåsning"</string>
- <string name="security_settings_face_enroll_education_title_accessibility" msgid="3701874093226957891">"Konfigurer ansigtsoplåsning"</string>
+ <string name="security_settings_face_enroll_education_title_accessibility" msgid="3701874093226957891">"Konfigurer ansigtsoplåsning"</string>
<string name="security_settings_face_enroll_education_title_unlock_disabled" msgid="8810954233979716906">"Brug dit ansigt til godkendelse"</string>
<string name="security_settings_face_enroll_education_message" msgid="4308030157487176799"></string>
<string name="security_settings_face_enroll_education_start" msgid="8830924400907195590">"Start"</string>
@@ -341,7 +343,7 @@
<string name="security_settings_face_enroll_should_re_enroll_subtitle" msgid="7055780282999744813">"Konfigurer ansigtsoplåsning igen"</string>
<string name="security_settings_face_enroll_must_re_enroll_title" msgid="4421818770682557621">"Konfigurer ansigtsoplåsning igen"</string>
<string name="security_settings_face_enroll_must_re_enroll_subtitle" msgid="3584740139535177961">"Gør sikkerheden og registreringen bedre"</string>
- <string name="security_settings_face_enroll_improve_face_alert_title" msgid="6194184776580066012">"Konfigurer ansigtsoplåsning"</string>
+ <string name="security_settings_face_enroll_improve_face_alert_title" msgid="6194184776580066012">"Konfigurer ansigtsoplåsning"</string>
<string name="security_settings_face_enroll_improve_face_alert_body" msgid="2670118180411127323">"Slet din aktuelle ansigtsmodel for at konfigurere ansigtsoplåsning igen.\n\nDin ansigtsmodel slettes permanent og forsvarligt.\n\nEfter sletningen skal du bruge din pinkode, dit mønster eller din adgangskode til at låse telefonen op eller til godkendelse i apps."</string>
<string name="security_settings_face_enroll_improve_face_alert_body_fingerprint" msgid="2469599074650327489">"Slet din aktuelle ansigtsmodel for at konfigurere ansigtsoplåsning igen.\n\nDin ansigtsmodel slettes permanent og forsvarligt.\n\nEfter sletningen skal du bruge dit fingeraftryk, din pinkode, dit mønster eller din adgangskode til at låse telefonen op eller til godkendelse i apps."</string>
<string name="security_settings_face_settings_use_face_category" msgid="1638314154119800188">"Brug ansigtsoplåsning til"</string>
@@ -351,7 +353,7 @@
<string name="security_settings_face_settings_require_confirmation" msgid="6603039421004198334">"Bed altid om bekræftelse"</string>
<string name="security_settings_face_settings_require_confirmation_details" msgid="3498729789625461914">"Kræv altid et bekræftelsestrin ved brug af ansigtsoplåsning i apps"</string>
<string name="security_settings_face_settings_remove_face_model" msgid="812920481303980846">"Slet ansigtsmodel"</string>
- <string name="security_settings_face_settings_enroll" msgid="3726313826693825029">"Konfigurer ansigtsoplåsning"</string>
+ <string name="security_settings_face_settings_enroll" msgid="3726313826693825029">"Konfigurer ansigtsoplåsning"</string>
<string name="security_settings_face_settings_remove_dialog_title" msgid="2899669764446232715">"Skal ansigtsmodellen slettes?"</string>
<string name="security_settings_face_settings_remove_dialog_details" msgid="916131485988121592">"Din ansigtsmodel slettes permanent og på sikker vis.\n\nNår den er slettet, skal du bruge din pinkode, dit mønster eller din adgangskode til at låse din telefon op eller til godkendelse i apps."</string>
<string name="security_settings_face_settings_remove_dialog_details_convenience" msgid="475568135197468990">"Din ansigtsmodel slettes permanent og på sikker vis.\n\nNår den er slettet, skal du bruge din pinkode, dit mønster eller din adgangskode til at låse din telefon op."</string>
@@ -850,7 +852,6 @@
<string name="nfc_reboot_dialog_title" msgid="2033983438635768169">"Vil du genstarte enheden?"</string>
<string name="nfc_reboot_dialog_message" msgid="4929353168157966992">"Detaljeret NFC-logging er kun beregnet til udvikling. Yderligere NFC-data inkluderes i fejlrapporter, som muligvis indeholder private oplysninger. Genstart enheden for at ændre denne indstilling."</string>
<string name="nfc_reboot_dialog_confirm" msgid="4769763632008584567">"Genstart"</string>
- <string name="keywords_external_display" msgid="4181375057920134909">"spejl, ekstern skærm, forbundet skærm, usb-skærm, opløsning, rotation"</string>
<string name="external_display_on" msgid="2560104443500154333">"Til"</string>
<string name="external_display_off" msgid="5634413756025351374">"Fra"</string>
<string name="external_display_settings_title" msgid="6256884595821605779">"Ekstern skærm"</string>
@@ -1635,7 +1636,7 @@
<string name="lockpassword_choose_your_profile_password_header" msgid="7038997227611893312">"Indstil en adgangskode til arbejdsprofilen"</string>
<string name="lockpassword_choose_your_pin_header" msgid="7754265746504679473">"Angiv en pinkode"</string>
<string name="lockpassword_choose_your_profile_pin_header" msgid="4581749963670819048">"Angiv en pinkode til arbejdsprofilen"</string>
- <string name="lockpassword_choose_your_pattern_header" msgid="5674909390779586252">"Indstil et mønster"</string>
+ <string name="lockpassword_choose_your_pattern_header" msgid="5674909390779586252">"Angiv et mønster"</string>
<string name="lockpassword_choose_your_pattern_description" msgid="6808109256008481046">"Få ekstra beskyttelse ved at angive et mønster til oplåsning af enheden"</string>
<string name="lockpassword_choose_your_profile_pattern_header" msgid="3101811498330756641">"Indstil et mønster til arbejdsprofilen"</string>
<string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="3167261267229254090">"Angiv adgangskode for at bruge fingeraftryk"</string>
@@ -1918,6 +1919,8 @@
<string name="slow_keys_summary" msgid="1784371292745423292">"Juster tiden det tager, inden et tryk på en tast aktiveres, til <xliff:g id="SLOW_KEYS_THRESHOLD">%1$d</xliff:g> ms"</string>
<string name="sticky_keys" msgid="7317317044898161747">"Træge taster"</string>
<string name="sticky_keys_summary" msgid="1844953803625480623">"Tryk på én tast ad gangen for at bruge genveje i stedet for at holde flere taster nede på samme tid"</string>
+ <string name="mouse_keys" msgid="6237254627808525540">"Musetaster"</string>
+ <string name="mouse_keys_summary" msgid="2396247040177734245">"Brug det fysiske tastatur til at styre musen."</string>
<string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"Tastaturgenveje"</string>
<string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"Vis liste over genveje"</string>
<string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"Tastatur og værktøjer for arbejdsprofil"</string>
@@ -1942,14 +1945,10 @@
<string name="pointer_fill_style_yellow_button" msgid="5025969961559379024">"Skift udfyldningsstil for markør til gul"</string>
<string name="pointer_fill_style_pink_button" msgid="4106218142489635673">"Skift udfyldningsstil for markør til lyserød"</string>
<string name="pointer_fill_style_blue_button" msgid="5594958078854032785">"Skift udfyldningsstil for markør til blå"</string>
- <!-- no translation found for pointer_stroke_style (1886986630216050665) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_white (673686194443825383) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_black (4655806167067437330) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_none (8953927511729800247) -->
- <skip />
+ <string name="pointer_stroke_style" msgid="1886986630216050665">"Stregformat for markør"</string>
+ <string name="pointer_stroke_style_name_white" msgid="673686194443825383">"Hvid"</string>
+ <string name="pointer_stroke_style_name_black" msgid="4655806167067437330">"Sort"</string>
+ <string name="pointer_stroke_style_name_none" msgid="8953927511729800247">"Ingen"</string>
<string name="trackpad_touch_gesture" msgid="8641725062131922497">"Se bevægelser på touchpladen"</string>
<string name="keywords_touchpad" msgid="8159846254066666032">"touchplade, touch plade, mus, markør, rul, stryg, højreklik, klik, pointer"</string>
<string name="keywords_trackpad_bottom_right_tap" msgid="1285062446073929305">"højreklik, tryk"</string>
@@ -2179,8 +2178,6 @@
<string name="accessibility_shortcut_edit_dialog_summary_floating_button" msgid="6266489864614886247">"Tryk på den svævende knap"</string>
<string name="accessibility_shortcut_edit_dialog_title_software_by_gesture" msgid="4775049370625630546">"Bevægelse for hjælpefunktioner"</string>
<string name="accessibility_shortcut_edit_dialog_summary_software" msgid="8315934725362849788">"Tryk på knappen til hjælpefunktioner <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g> nederst på skærmen. Du kan skifte mellem funktioner ved at holde fingeren på knappen til hjælpefunktioner."</string>
- <string name="accessibility_shortcut_edit_dialog_summary_software_gesture" msgid="8292555254353761635">"Stryg opad fra bunden af skærmen med to fingre.\n\nDu kan skifte mellem funktioner ved at stryge opad med to fingre og holde dem nede."</string>
- <string name="accessibility_shortcut_edit_dialog_summary_software_gesture_talkback" msgid="84483464524360845">"Stryg opad fra bunden af skærmen med tre fingre.\n\nDu kan skifte mellem funktioner ved at stryge opad med tre fingre og holde dem nede."</string>
<string name="accessibility_shortcut_edit_dialog_summary_gesture" msgid="2081123009255579884">"{count,plural, =1{Stryg opad fra bunden af skærmen. Du kan skifte mellem funktioner ved at stryge opad og holde fingeren nede.}one{Stryg opad fra bunden af skærmen med # finger. Du kan skifte mellem funktioner ved at stryge opad med # finger og holde fingeren nede.}other{Stryg opad fra bunden af skærmen med # fingre. Du kan skifte mellem funktioner ved at stryge opad med # fingre og holde fingrene nede.}}"</string>
<string name="accessibility_shortcut_edit_dialog_summary_software_floating" msgid="4459254227203203324"><annotation id="link">"Flere valgmuligheder"</annotation></string>
<string name="footer_learn_more_content_description" msgid="8843798273152131341">"Få flere oplysninger om <xliff:g id="SERVICE">%1$s</xliff:g>"</string>
@@ -2191,16 +2188,12 @@
<string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="844089763968552142">"Lydstyrkeknapper"</string>
<string name="accessibility_shortcut_hardware_keyword" msgid="2483152542320987022">"lydstyrkeknapper"</string>
<string name="accessibility_shortcut_edit_dialog_summary_hardware" msgid="2503134386397991634">"Hold begge lydstyrkeknapper nede"</string>
- <string name="accessibility_shortcut_edit_dialog_title_two_finger_double_tap" msgid="2271778556854020996">"Tryk to gange på skærmen med to fingre"</string>
<string name="accessibility_shortcut_edit_screen_title_two_finger_double_tap" msgid="8952595692906527694">"Tryk to gange med %1$d fingre"</string>
<string name="accessibility_shortcut_edit_screen_summary_two_finger_double_tap" msgid="385404127425496362">"Tryk hurtigt på skærmen to gange med %1$d fingre"</string>
<string name="accessibility_shortcut_edit_screen_title_triple_tap" msgid="3314488747597058942">"Tryk tre gange"</string>
<string name="accessibility_shortcut_edit_screen_summary_triple_tap" msgid="4839204951599629871">"Tryk hurtigt på skærmen %1$d gange. Dette kan gøre din enhed langsommere."</string>
<string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="6271718715836961167">"Tryk to gange med %1$d fingre"</string>
- <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"Tryk hurtigt på skærmen {0,number,integer} gange med to fingre"</string>
- <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"Tryk tre gange på skærmen"</string>
<string name="accessibility_shortcut_triple_tap_keyword" msgid="5359347130888464334">"tryk tre gange"</string>
- <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"Tryk hurtigt på skærmen {0,number,integer} gange. Denne genvej kan gøre din enhed langsommere"</string>
<string name="accessibility_shortcut_edit_dialog_title_advance" msgid="4567868630655591506">"Avanceret"</string>
<string name="accessibility_screen_magnification_navbar_configuration_warning" msgid="266736851606791552">"Knappen til hjælpefunktioner er angivet til <xliff:g id="SERVICE">%1$s</xliff:g>. Hvis du vil bruge forstørrelse, skal du trykke på knappen til hjælpefunktioner, holde fingeren nede og derefter vælge forstørrelse."</string>
<string name="accessibility_screen_magnification_gesture_navigation_warning" msgid="991017769735632046">"Bevægelsen for hjælpefunktioner er indstillet til <xliff:g id="SERVICE">%1$s</xliff:g>. Hvis du vil bruge forstørrelse, kan du stryge opad med to fingre fra bunden af skærmen og holde dem nede. Vælg derefter forstørrelse."</string>
@@ -2369,6 +2362,7 @@
<string name="daltonizer_mode_tritanomaly_title" msgid="2278786218762602022">"Blå-gul"</string>
<string name="daltonizer_mode_grayscale_title" msgid="152005391387952588">"Gråtoner"</string>
<string name="daltonizer_saturation_title" msgid="2999486412114963068">"Intensitet"</string>
+ <string name="daltonizer_saturation_unavailable_summary" msgid="8319753055567798775">"Utilgængelig i tilstanden Gråtoner, eller når farvekorrigering er deaktiveret"</string>
<string name="daltonizer_mode_deuteranomaly_summary" msgid="2117727423019598455">"Farvesvaghed for grøn, deuteranomali"</string>
<string name="daltonizer_mode_protanomaly_summary" msgid="4617032854982040748">"Farvesvaghed for rød, protanomali"</string>
<string name="daltonizer_mode_tritanomaly_summary" msgid="2428218320118180070">"Tritanomali"</string>
@@ -2418,15 +2412,8 @@
<string name="color_cyan" msgid="4341758639597035927">"Grønblå"</string>
<string name="color_yellow" msgid="5957551912912679058">"Gul"</string>
<string name="color_magenta" msgid="8943538189219528423">"Lyslilla"</string>
- <string name="enable_service_title" msgid="7231533866953706788">"Vil du give <xliff:g id="SERVICE">%1$s</xliff:g> fuld kontrol over din enhed?"</string>
<string name="capabilities_list_title" msgid="1225853611983394386">"<xliff:g id="SERVICE">%1$s</xliff:g> har brug for at:"</string>
<string name="touch_filtered_warning" msgid="4225815157460318241">"Indstillinger kan ikke verificere dit svar, fordi en app tilslører tilladelsesanmodningen."</string>
- <string name="accessibility_service_warning" msgid="6779187188736432618">"<xliff:g id="SERVICE">%1$s</xliff:g> anmoder om fuld kontrol over denne enhed. Tjenesten kan læse skærmen og handle på vegne af brugere med særlige behov. Dette kontrolomfang er ikke passende for de fleste apps."</string>
- <string name="accessibility_service_warning_description" msgid="6573203795976134751">"Fuld kontrol er velegnet til apps, der hjælper dig med hjælpefunktioner, men ikke de fleste apps."</string>
- <string name="accessibility_service_screen_control_title" msgid="324795030658109870">"Se og styre skærm"</string>
- <string name="accessibility_service_screen_control_description" msgid="8431940515157990426">"Den kan læse alt indhold på skærmen og vise indhold oven på andre apps."</string>
- <string name="accessibility_service_action_perform_title" msgid="1449360056585337833">"Se og udføre handlinger"</string>
- <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"Den kan spore dine interaktioner med en app eller en hardwaresensor og interagere med apps på dine vegne."</string>
<string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Tillad"</string>
<string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Afvis"</string>
<string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Slå fra"</string>
@@ -3368,10 +3355,8 @@
<string name="zen_mode_automation_settings_title" msgid="3709324184191870926">"Tidsplaner"</string>
<string name="zen_mode_delete_automatic_rules" msgid="5020468289267191765">"Slet tidsplaner"</string>
<string name="zen_mode_schedule_delete" msgid="5383420576833765114">"Slet"</string>
- <!-- no translation found for zen_mode_menu_rename_mode (4681802125016390837) -->
- <skip />
- <!-- no translation found for zen_mode_menu_delete_mode (5380084696402157428) -->
- <skip />
+ <string name="zen_mode_menu_rename_mode" msgid="4681802125016390837">"Omdøb"</string>
+ <string name="zen_mode_menu_delete_mode" msgid="5380084696402157428">"Slet"</string>
<string name="zen_mode_delete_mode_confirmation" msgid="7594340592051947392">"Skal tilstanden \"<xliff:g id="MODE">%1$s</xliff:g>\" slettes?"</string>
<string name="zen_mode_rule_name_edit" msgid="1053237022416700481">"Rediger"</string>
<string name="zen_mode_automation_settings_page_title" msgid="6217433860514433311">"Tidsplaner"</string>
@@ -3395,8 +3380,7 @@
<string name="zen_mode_visual_signals_settings_subtitle" msgid="7433077540895876672">"Tillad visuelle signaler"</string>
<string name="mode_interruption_filter_title" msgid="3343846700214702347">"Hold fokus"</string>
<string name="mode_device_effects_title" msgid="5857008332618433744">"Yderligere handlinger"</string>
- <!-- no translation found for modes_sound_summary_off (6972648204528227879) -->
- <skip />
+ <string name="modes_sound_summary_off" msgid="6972648204528227879">"{count,plural, =0{Deaktiveret}=1{Deaktiveret / 1 tilstand kan aktiveres automatisk}one{Deaktiveret / # tilstand kan aktiveres automatisk}other{Deaktiveret / # tilstande kan aktiveres automatisk}}"</string>
<string name="mode_display_settings_title" msgid="8132825978346535472">"Indstillinger for visning"</string>
<string name="mode_display_options_section" msgid="5151597748243866532">"Visningsmuligheder"</string>
<string name="mode_grayscale_title" msgid="6027553257331235461">"Gråtoner"</string>
@@ -3659,9 +3643,9 @@
<string name="notif_listener_not_migrated" msgid="6265206376374278226">"Denne app understøtter ikke avancerede indstillinger"</string>
<string name="notif_listener_more_settings" msgid="1348409392307208921">"Flere indstillinger"</string>
<string name="notif_listener_more_settings_desc" msgid="7995492074281663658">"Der er flere tilgængelige indstillinger inde i appen"</string>
- <string name="notification_polite_title" msgid="4737150709382859870">"Automatiske notifikationer"</string>
- <string name="notification_polite_main_control_title" msgid="7267191551379543859">"Brug adaptive notifikationer"</string>
- <string name="notification_polite_description" msgid="7749280535620291610">"Hvis du får mange notifikationer inden for kort tid, skruer telefonen ned for lydstyrken og minimerer pop op-vinduer på skærmen i op til to minutter. Ved opkald, alarmer og prioriterede samtaler vil enheden stadig vibrere, afgive en lyd eller vises handlingen på skærmen, og alle notifikationer er lettilgængelige, når du trækker nedad fra toppen af skærmen."</string>
+ <string name="notification_polite_title" msgid="6121016426991791557">"Dæmpning af notifikationer"</string>
+ <string name="notification_polite_main_control_title" msgid="5812529809151927149">"Brug dæmpning af notifikationer"</string>
+ <string name="notification_polite_description" msgid="5497748284893832854">"Hvis du får mange notifikationer inden for kort tid, skruer enheden ned for lydstyrken og minimerer underretninger på skærmen i op til 2 minutter. Opkald, alarmer og prioriterede samtaler påvirkes ikke. \n\nDu kan se de notifikationer, du modtager i denne periode, ved at trække nedad fra toppen af skærmen."</string>
<string name="notification_polite_work" msgid="8823596456640216391">"Anvend på arbejdsprofiler"</string>
<string name="notification_polite_work_summary" msgid="5014189280132951378">"Anvend på apps på arbejdsprofilen"</string>
<string name="vr_listeners_title" msgid="4960357292472540964">"VR-hjælpetjenester"</string>
@@ -3818,7 +3802,9 @@
<string name="zen_mode_apps_priority_apps" msgid="7386196048313716076">"Valgte apps"</string>
<string name="zen_mode_apps_none_apps" msgid="2493642312793604327">"Ingen"</string>
<string name="zen_mode_apps_subtext" msgid="1764211974662012877">"{count,plural,offset:2 =0{Ingen apps må forstyrre}=1{{app_1} må gerne forstyrre}=2{{app_1} og {app_2} må gerne forstyrre}=3{{app_1}, {app_2} og {app_3} må gerne forstyrre}one{{app_1}, {app_2} og # mere må gerne forstyrre}other{{app_1}, {app_2} og # andre må gerne forstyrre}}"</string>
+ <string name="zen_mode_apps_work_app" msgid="8528767938316361588">"<xliff:g id="APP_LABEL">%s</xliff:g> (arbejde)"</string>
<string name="zen_mode_apps_calculating" msgid="5420121396943539286">"Beregner…"</string>
+ <string name="zen_mode_plus_n_items" msgid="6136713354369243421">"+<xliff:g id="NUMBER">%d</xliff:g>"</string>
<string name="zen_mode_bypassing_apps" msgid="625309443389126481">"Tillad, at apps tilsidesætter"</string>
<string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"Apps, der kan afbryde"</string>
<string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"Vælg flere apps"</string>
@@ -3836,6 +3822,7 @@
<string name="zen_mode_sounds_none" msgid="6557474361948269420">"Intet kan afbryde"</string>
<string name="zen_mode_people_none" msgid="4613147461974255046">"Ingen kan afbryde"</string>
<string name="zen_mode_people_some" msgid="9101872681298810281">"Nogle personer kan afbryde"</string>
+ <string name="zen_mode_people_repeat_callers" msgid="4499084111069828761">"Gentagne opkald må gerne forstyrre"</string>
<string name="zen_mode_people_all" msgid="311036110283015205">"Alle personer kan afbryde"</string>
<string name="zen_mode_repeat_callers" msgid="2270356100287792138">"Gentagne opkald"</string>
<string name="zen_mode_repeat_callers_title" msgid="8016699240338264781">"Tillad gentagne opkald"</string>
@@ -3855,13 +3842,37 @@
<string name="zen_mode_summary_alarms_only_by_hour" msgid="7400910210950788163">"{count,plural, =1{Skift til kun alarmer i én time (indtil {time})}one{Skift til kun alarmer i # time (indtil {time})}other{Skift til kun alarmer i # timer (indtil {time})}}"</string>
<string name="zen_mode_summary_alarms_only_by_time" msgid="8140619669703968810">"Skift til Kun alarmer frem til <xliff:g id="FORMATTEDTIME">%1$s</xliff:g>"</string>
<string name="zen_mode_summary_always" msgid="722093064250082317">"Skift til Afbryd altid"</string>
- <!-- no translation found for zen_mode_rename_title (8146882272966214558) -->
+ <string name="zen_mode_rename_title" msgid="8146882272966214558">"Rediger tilstand"</string>
+ <string name="zen_mode_new_custom_title" msgid="321750898430776191">"Tilføj tilstand"</string>
+ <string name="zen_mode_new_custom_default_name" msgid="2778307946775085105">"Tilpasset tilstand"</string>
+ <string name="zen_mode_edit_name_hint" msgid="4584652062167540536">"Navn på tilstand"</string>
+ <string name="zen_mode_trigger_title_schedule_calendar" msgid="9206609438617550331">"Kalenderbegivenheder"</string>
+ <string name="zen_mode_trigger_title_bedtime" msgid="5086070900588489978">"Søvnrutine"</string>
+ <string name="zen_mode_trigger_title_driving" msgid="7890990983453164403">"Under kørsel"</string>
+ <string name="zen_mode_trigger_title_generic" msgid="601273385119550420">"Knyttet til app"</string>
+ <string name="zen_mode_trigger_summary_settings_in_app" msgid="4860667191183702601">"Oplysninger og indstillinger i <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+ <string name="zen_mode_trigger_summary_managed_by_app" msgid="8631011868193102098">"Administreres af <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+ <string name="zen_mode_confirm_disable_title" msgid="1232297660775719796">"Deaktiver tilstand"</string>
+ <string name="zen_mode_confirm_disable_message" msgid="7315541221665718491">"Hvis du deaktiverer denne funktion, fungerer tilstanden ikke længere efter hensigten, og dens indstillinger skjules."</string>
+ <string name="zen_mode_action_disable" msgid="3552921561331044881">"Deaktiver"</string>
+ <string name="zen_mode_confirm_enable_title" msgid="5683371335847448595">"Aktivér tilstand"</string>
+ <string name="zen_mode_confirm_enable_message" msgid="7017879133260011419">"Hvis du aktiverer denne funktion, aktiveres tilstanden automatisk i overensstemmelse med tidsplanen."</string>
+ <string name="zen_mode_action_enable" msgid="1161480633223176531">"Aktivér"</string>
+ <!-- no translation found for zen_mode_blurb_schedule_time (8223898702097484009) -->
<skip />
- <!-- no translation found for zen_mode_new_custom_title (321750898430776191) -->
+ <!-- no translation found for zen_mode_blurb_schedule_calendar (382177907856065945) -->
<skip />
- <!-- no translation found for zen_mode_new_custom_default_name (2778307946775085105) -->
+ <!-- no translation found for zen_mode_blurb_bedtime (6155075956151013457) -->
<skip />
- <!-- no translation found for zen_mode_edit_name_hint (4584652062167540536) -->
+ <!-- no translation found for zen_mode_blurb_driving (1316054379000667305) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_immersive (5884004861848687869) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_theater (2999237960059524225) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_managed (5473921634985032149) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_generic (3041601339807075625) -->
<skip />
<string name="warning_button_text" msgid="1274234338874005639">"Advarsel"</string>
<string name="suggestion_button_close" msgid="6865170855573283759">"Luk"</string>
@@ -4849,9 +4860,8 @@
<string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"Batteri"</string>
<string name="settings_panel_title" msgid="346363079938069215">"Indstillingspanel"</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>
+ <!-- no translation found for enable_desktop_mode_on_secondary_display (2609567824593768780) -->
+ <skip />
<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>
@@ -5026,7 +5036,6 @@
<string name="default_active_sim_mobile_data" msgid="6798083892814045301">"mobildata"</string>
<string name="wifi_scan_notify_message" msgid="1331238142061476869">"For at forbedre brugeroplevelsen på enheden kan apps og tjenester stadig til enhver tid scanne efter Wi‑Fi-netværk, også selvom Wi-Fi er deaktiveret. Dette kan f.eks. bruges til at forbedre lokationsbaserede funktioner og tjenester. Du kan ændre dette i indstillingerne for Wi-Fi-scanning."</string>
<string name="wifi_scan_change" msgid="8438320311511852918">"Skift"</string>
- <string name="preference_summary_default_combination" msgid="4643585915107796253">"<xliff:g id="STATE">%1$s</xliff:g>/<xliff:g id="NETWORKMODE">%2$s</xliff:g>"</string>
<string name="mobile_data_connection_active" msgid="2422223108911581552">"Forbundet"</string>
<string name="mobile_data_temp_connection_active" msgid="3430470299756236413">"Midlertidigt forbundet"</string>
<string name="mobile_data_temp_using" msgid="5211002380149434155">"Anvender <xliff:g id="SUBNAME">%1$s</xliff:g> midlertidigt"</string>
@@ -5172,9 +5181,11 @@
<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="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_enable_freeform_support" msgid="3697462756493543645">"Du skal genstarte for at aktivere understøttelse af vinduer i frit format."</string>
+ <!-- no translation found for reboot_dialog_override_desktop_mode (7480950772574354130) -->
+ <skip />
+ <!-- no translation found for reboot_dialog_enable_desktop_mode_on_secondary_display (1153621881052401924) -->
+ <skip />
<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>
@@ -5292,10 +5303,8 @@
<string name="show_captions_enabled" msgid="7089043007924626">"Til"</string>
<string name="live_caption_disabled" msgid="3562035026547887366">"Fra"</string>
<string name="live_caption_enabled" msgid="5269360946200718949">"Til"</string>
- <!-- no translation found for audio_seek_bar_state_left_first (8814986910920838972) -->
- <skip />
- <!-- no translation found for audio_seek_bar_state_right_first (1999368979633398876) -->
- <skip />
+ <string name="audio_seek_bar_state_left_first" msgid="8814986910920838972">"Lyd %1$d%% venstre, %2$d%% højre"</string>
+ <string name="audio_seek_bar_state_right_first" msgid="1999368979633398876">"Lyd %1$d%% højre, %2$d%% venstre"</string>
<string name="about_phone_device_name_warning" msgid="3243226572404472381">"Din enheds navn er synligt for apps, du har installeret. Det kan muligvis også ses af andre, når du opretter forbindelse til Bluetooth-enheder eller et Wi-Fi-netværk, eller når du konfigurerer et Wi-Fi-hotspot."</string>
<string name="grammatical_gender_title" msgid="8584242850477270828">"Grammatisk køn"</string>
<string name="grammatical_gender_dialog_title" msgid="8754048592099871587">"Vælg grammatisk køn"</string>
@@ -5407,5 +5416,6 @@
<string name="audio_streams_main_page_password_dialog_join_button" msgid="2967747276379153408">"Lyt til stream"</string>
<string name="audio_streams_main_page_qr_code_scanner_summary" msgid="5312980105735143360">"Scan en QR-kode til en lydstream for at lytte via <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
<string name="audio_streams_main_page_password_dialog_cannot_edit" msgid="9020898619297520153">"Adgangskoden kan ikke ændres under deling. Deaktiver lyddeling for at ændre adgangskoden."</string>
+ <string name="audio_streams_qr_code_scanner_label" msgid="8799703301071378034">"QR-kodescanner"</string>
<string name="homepage_search" msgid="6759334912284663559">"Søgeindstillinger"</string>
</resources>
diff --git a/res/values-de/strings.xml b/res/values-de/strings.xml
index ab448c6..9442846 100644
--- a/res/values-de/strings.xml
+++ b/res/values-de/strings.xml
@@ -41,6 +41,8 @@
<string name="radioInfo_data_suspended" msgid="2001254415431299603">"Angehalten"</string>
<string name="radioInfo_unknown" msgid="2892562356748600367">"Unbekannt"</string>
<string name="preview_pager_content_description" msgid="3762247188224576303">"Vorschau"</string>
+ <!-- no translation found for qr_code_content_description (1852208464419291347) -->
+ <skip />
<string name="font_size_make_smaller_desc" msgid="4978038055549590140">"Verkleinern"</string>
<string name="font_size_make_larger_desc" msgid="5583046033381722247">"Vergrößern"</string>
<string name="stay_awake_on_fold_title" msgid="6590454679898134221">"Immer"</string>
@@ -283,7 +285,7 @@
<string name="location_settings_summary_location_off" msgid="4797932754681162262">"Aus"</string>
<string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{Aktiviert (# App hat Zugriff auf den Standort)}other{Aktiviert (# Apps haben Zugriff auf den Standort)}}"</string>
<string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"Wird geladen…"</string>
- <string name="location_settings_footer_general" msgid="1040507068701188821">"Apps mit der Berechtigung zum Zugriff auf Geräte in der Nähe können die relative Position von verbundenen Geräten ermitteln."</string>
+ <string name="location_settings_footer_general" msgid="3447585552176173502">"Apps mit der Berechtigung zum Zugriff auf Geräte in der Nähe können die relative Positionierung von verbundenen Geräten ermitteln."</string>
<string name="location_settings_footer_location_off" msgid="8568995909147566720">"Standortzugriff ist für Apps und Dienste deaktiviert. Wenn du eine Notrufnummer wählst oder eine Nachricht an eine solche Nummer schickst, kann dein Standort dennoch an den Notdienst gesendet werden."</string>
<string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Weitere Informationen zu Standorteinstellungen"</string>
<string name="location_settings_tooltip_text_for_chrome" msgid="5781821709250544575">"Um Änderungen vorzunehmen, gehe zu den ChromeOS-Einstellungen > Datenschutz und Sicherheit > Datenschutzeinstellungen > Standortzugriff"</string>
@@ -850,7 +852,6 @@
<string name="nfc_reboot_dialog_title" msgid="2033983438635768169">"Gerät neu starten?"</string>
<string name="nfc_reboot_dialog_message" msgid="4929353168157966992">"Die detaillierte NFC-Protokollierung wird nur zu Entwicklungszwecken verwendet. Dazu gehören auch zusätzliche NFC-Daten in Fehlerberichten, die private Informationen enthalten können. Starte dein Gerät neu, um diese Einstellung zu ändern."</string>
<string name="nfc_reboot_dialog_confirm" msgid="4769763632008584567">"Neu starten"</string>
- <string name="keywords_external_display" msgid="4181375057920134909">"spiegeln, externes Display, verbundenes Display, USB‑Display, Auflösung, Ausrichtung"</string>
<string name="external_display_on" msgid="2560104443500154333">"An"</string>
<string name="external_display_off" msgid="5634413756025351374">"Aus"</string>
<string name="external_display_settings_title" msgid="6256884595821605779">"Externes Display"</string>
@@ -1918,6 +1919,8 @@
<string name="slow_keys_summary" msgid="1784371292745423292">"Zeit zum Aktivieren eines Tastendrucks wird auf <xliff:g id="SLOW_KEYS_THRESHOLD">%1$d</xliff:g> ms festgelegt"</string>
<string name="sticky_keys" msgid="7317317044898161747">"Einfingerbedienung"</string>
<string name="sticky_keys_summary" msgid="1844953803625480623">"Bei Tastenkombinationen Tasten einzeln drücken, statt sie zusammen gedrückt zu halten"</string>
+ <string name="mouse_keys" msgid="6237254627808525540">"Maustasten"</string>
+ <string name="mouse_keys_summary" msgid="2396247040177734245">"Du kannst die physische Tastatur verwenden, um die Maus zu steuern."</string>
<string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"Tastenkürzel"</string>
<string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"Liste der Tastenkombinationen anzeigen"</string>
<string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"Tastaturen und Tools für das Arbeitsprofil"</string>
@@ -1942,14 +1945,10 @@
<string name="pointer_fill_style_yellow_button" msgid="5025969961559379024">"Zeigerfüllfarbe in Gelb ändern"</string>
<string name="pointer_fill_style_pink_button" msgid="4106218142489635673">"Zeigerfüllfarbe in Rosa ändern"</string>
<string name="pointer_fill_style_blue_button" msgid="5594958078854032785">"Zeigerfüllfarbe in Blau ändern"</string>
- <!-- no translation found for pointer_stroke_style (1886986630216050665) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_white (673686194443825383) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_black (4655806167067437330) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_none (8953927511729800247) -->
- <skip />
+ <string name="pointer_stroke_style" msgid="1886986630216050665">"Stil des Zeigerstrichs"</string>
+ <string name="pointer_stroke_style_name_white" msgid="673686194443825383">"Weiß"</string>
+ <string name="pointer_stroke_style_name_black" msgid="4655806167067437330">"Schwarz"</string>
+ <string name="pointer_stroke_style_name_none" msgid="8953927511729800247">"Keiner"</string>
<string name="trackpad_touch_gesture" msgid="8641725062131922497">"Informationen zu Touchpad-Gesten"</string>
<string name="keywords_touchpad" msgid="8159846254066666032">"Touchpad, Touch-Pad, Maus, Cursor, scrollen, wischen, rechtsklicken, klicken, Zeiger"</string>
<string name="keywords_trackpad_bottom_right_tap" msgid="1285062446073929305">"rechtsklicken, tippen"</string>
@@ -2179,8 +2178,6 @@
<string name="accessibility_shortcut_edit_dialog_summary_floating_button" msgid="6266489864614886247">"Tippe auf die unverankerte Schaltfläche."</string>
<string name="accessibility_shortcut_edit_dialog_title_software_by_gesture" msgid="4775049370625630546">"Touch-Geste für Bedienungshilfen"</string>
<string name="accessibility_shortcut_edit_dialog_summary_software" msgid="8315934725362849788">"Tippe unten auf dem Display auf die Schaltfläche „Bedienungshilfen“ <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g>. Um zwischen den Funktionen umzuschalten, halte diese Schaltfläche gedrückt."</string>
- <string name="accessibility_shortcut_edit_dialog_summary_software_gesture" msgid="8292555254353761635">"Wische vom unteren Bildschirmrand mit zwei Fingern nach oben.\n\nWenn du zwischen den Funktionen wechseln möchtest, wische mit zwei Fingern über das Display nach oben und halte."</string>
- <string name="accessibility_shortcut_edit_dialog_summary_software_gesture_talkback" msgid="84483464524360845">"Wische vom unteren Bildschirmrand mit drei Fingern nach oben.\n\nWenn du zwischen den Funktionen wechseln möchtest, wische mit drei Fingern über das Display nach oben und halte."</string>
<string name="accessibility_shortcut_edit_dialog_summary_gesture" msgid="2081123009255579884">"{count,plural, =1{Wische vom unteren Displayrand nach oben. Wenn du zwischen Funktionen umschalten möchtest, wische nach oben und halte.}other{Wische vom unteren Displayrand mit # Fingern nach oben. Wenn du zwischen Funktionen umschalten möchtest, wische mit # Fingern nach oben und halte.}}"</string>
<string name="accessibility_shortcut_edit_dialog_summary_software_floating" msgid="4459254227203203324"><annotation id="link">"Weitere Optionen"</annotation></string>
<string name="footer_learn_more_content_description" msgid="8843798273152131341">"Weitere Informationen zu <xliff:g id="SERVICE">%1$s</xliff:g>"</string>
@@ -2191,16 +2188,12 @@
<string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="844089763968552142">"Lautstärketasten"</string>
<string name="accessibility_shortcut_hardware_keyword" msgid="2483152542320987022">"Lautstärketasten"</string>
<string name="accessibility_shortcut_edit_dialog_summary_hardware" msgid="2503134386397991634">"Halte beide Lautstärketasten gedrückt."</string>
- <string name="accessibility_shortcut_edit_dialog_title_two_finger_double_tap" msgid="2271778556854020996">"Mit zwei Fingern auf das Display doppeltippen"</string>
<string name="accessibility_shortcut_edit_screen_title_two_finger_double_tap" msgid="8952595692906527694">"2-mal mit %1$d Fingern tippen"</string>
<string name="accessibility_shortcut_edit_screen_summary_two_finger_double_tap" msgid="385404127425496362">"Tippe das Display 2-mal schnell mit %1$d Fingern an."</string>
<string name="accessibility_shortcut_edit_screen_title_triple_tap" msgid="3314488747597058942">"3-mal tippen"</string>
<string name="accessibility_shortcut_edit_screen_summary_triple_tap" msgid="4839204951599629871">"Tippe das Display %1$d-mal schnell an. Dadurch kann dein Gerät langsamer werden."</string>
<string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="6271718715836961167">"2-mal mit %1$d Fingern tippen"</string>
- <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"Tippe {0,number,integer}-mal schnell mit zwei Fingern auf das Display"</string>
- <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"Dreimal auf den Bildschirm tippen"</string>
<string name="accessibility_shortcut_triple_tap_keyword" msgid="5359347130888464334">"3-mal tippen"</string>
- <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"Tippe {0,number,integer}-mal schnell auf das Display. Durch diesen Kurzbefehl kann dein Gerät langsamer werden."</string>
<string name="accessibility_shortcut_edit_dialog_title_advance" msgid="4567868630655591506">"Erweitert"</string>
<string name="accessibility_screen_magnification_navbar_configuration_warning" msgid="266736851606791552">"Die Schaltfläche für die Bedienungshilfen ist auf <xliff:g id="SERVICE">%1$s</xliff:g> gestellt. Um die Vergrößerung nutzen zu können, tippe & halte die Schaltfläche für die Bedienungshilfen gedrückt und wähle anschließend \"Vergrößerung\" aus."</string>
<string name="accessibility_screen_magnification_gesture_navigation_warning" msgid="991017769735632046">"Die Touch-Geste für die Bedienungshilfen ist auf den Dienst \"<xliff:g id="SERVICE">%1$s</xliff:g>\" eingestellt. Wenn du die Vergrößerung verwenden möchtest, wische mit zwei Fingern vom unteren Bildschirmrand nach oben und halte den Bildschirm gedrückt. Wähle dann \"Vergrößerung\" aus."</string>
@@ -2369,6 +2362,7 @@
<string name="daltonizer_mode_tritanomaly_title" msgid="2278786218762602022">"Blau-Gelb-Sehschwäche"</string>
<string name="daltonizer_mode_grayscale_title" msgid="152005391387952588">"Graustufen"</string>
<string name="daltonizer_saturation_title" msgid="2999486412114963068">"Intensität"</string>
+ <string name="daltonizer_saturation_unavailable_summary" msgid="8319753055567798775">"Nicht verfügbar im Modus „Graustufen“ oder wenn die Funktion „Farbkorrektur“ deaktiviert ist"</string>
<string name="daltonizer_mode_deuteranomaly_summary" msgid="2117727423019598455">"Grün-Sehschwäche, Deuteranomalie"</string>
<string name="daltonizer_mode_protanomaly_summary" msgid="4617032854982040748">"Rot-Sehschwäche, Protanomalie"</string>
<string name="daltonizer_mode_tritanomaly_summary" msgid="2428218320118180070">"Tritanomalie"</string>
@@ -2418,15 +2412,8 @@
<string name="color_cyan" msgid="4341758639597035927">"Blaugrün"</string>
<string name="color_yellow" msgid="5957551912912679058">"Gelb"</string>
<string name="color_magenta" msgid="8943538189219528423">"Magenta"</string>
- <string name="enable_service_title" msgid="7231533866953706788">"„<xliff:g id="SERVICE">%1$s</xliff:g>“ die vollständige Kontrolle über dein Gerät geben?"</string>
<string name="capabilities_list_title" msgid="1225853611983394386">"<xliff:g id="SERVICE">%1$s</xliff:g> muss:"</string>
<string name="touch_filtered_warning" msgid="4225815157460318241">"Deine Eingabe wird von \"Einstellungen\" nicht erkannt, weil die Berechtigungsanfrage von einer App verdeckt wird."</string>
- <string name="accessibility_service_warning" msgid="6779187188736432618">"<xliff:g id="SERVICE">%1$s</xliff:g> fordert eine volle Kontrolle für dieses Gerät an. Der Dienst kann den Bildschirm lesen und im Namen von Nutzern mit Bedarf an Bedienungshilfen handeln. Dieses Maß an Kontrolle ist für die meisten Apps ungeeignet."</string>
- <string name="accessibility_service_warning_description" msgid="6573203795976134751">"Die vollständige Kontrolle sollte nur für Apps aktiviert werden, die dir Zugang zu App-Funktionen erleichtern. Das ist in der Regel nur ein kleiner Teil der Apps."</string>
- <string name="accessibility_service_screen_control_title" msgid="324795030658109870">"Bildschirm aufrufen und steuern"</string>
- <string name="accessibility_service_screen_control_description" msgid="8431940515157990426">"Die Funktion kann alle Inhalte auf dem Bildschirm lesen und diese Inhalte über anderen Apps anzeigen."</string>
- <string name="accessibility_service_action_perform_title" msgid="1449360056585337833">"Aktionen aufrufen und durchführen"</string>
- <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"Die Funktion kann deine Interaktionen mit einer App oder einem Hardwaresensor verfolgen und in deinem Namen mit Apps interagieren."</string>
<string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Zulassen"</string>
<string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Ablehnen"</string>
<string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Aus"</string>
@@ -3368,10 +3355,8 @@
<string name="zen_mode_automation_settings_title" msgid="3709324184191870926">"Zeitpläne"</string>
<string name="zen_mode_delete_automatic_rules" msgid="5020468289267191765">"Zeitpläne löschen"</string>
<string name="zen_mode_schedule_delete" msgid="5383420576833765114">"Löschen"</string>
- <!-- no translation found for zen_mode_menu_rename_mode (4681802125016390837) -->
- <skip />
- <!-- no translation found for zen_mode_menu_delete_mode (5380084696402157428) -->
- <skip />
+ <string name="zen_mode_menu_rename_mode" msgid="4681802125016390837">"Umbenennen"</string>
+ <string name="zen_mode_menu_delete_mode" msgid="5380084696402157428">"Löschen"</string>
<string name="zen_mode_delete_mode_confirmation" msgid="7594340592051947392">"Den Modus „<xliff:g id="MODE">%1$s</xliff:g>“ löschen?"</string>
<string name="zen_mode_rule_name_edit" msgid="1053237022416700481">"Bearbeiten"</string>
<string name="zen_mode_automation_settings_page_title" msgid="6217433860514433311">"Zeitpläne"</string>
@@ -3395,8 +3380,7 @@
<string name="zen_mode_visual_signals_settings_subtitle" msgid="7433077540895876672">"Visuelle Signale zulassen"</string>
<string name="mode_interruption_filter_title" msgid="3343846700214702347">"Mehr Konzentration"</string>
<string name="mode_device_effects_title" msgid="5857008332618433744">"Weitere Aktionen"</string>
- <!-- no translation found for modes_sound_summary_off (6972648204528227879) -->
- <skip />
+ <string name="modes_sound_summary_off" msgid="6972648204528227879">"{count,plural, =0{Deaktiviert}=1{Deaktiviert / 1 Modus kann automatisch aktiviert werden}other{Deaktiviert / # Modi können automatisch aktiviert werden}}"</string>
<string name="mode_display_settings_title" msgid="8132825978346535472">"Anzeigeeinstellungen"</string>
<string name="mode_display_options_section" msgid="5151597748243866532">"Optionen anzeigen"</string>
<string name="mode_grayscale_title" msgid="6027553257331235461">"Graustufen"</string>
@@ -3659,9 +3643,9 @@
<string name="notif_listener_not_migrated" msgid="6265206376374278226">"Diese App unterstützt erweiterte Einstellungen nicht"</string>
<string name="notif_listener_more_settings" msgid="1348409392307208921">"Weitere Einstellungen"</string>
<string name="notif_listener_more_settings_desc" msgid="7995492074281663658">"Weitere Einstellungen sind in dieser App verfügbar"</string>
- <string name="notification_polite_title" msgid="4737150709382859870">"Adaptive Benachrichtigungen"</string>
- <string name="notification_polite_main_control_title" msgid="7267191551379543859">"Adaptive Benachrichtigungen verwenden"</string>
- <string name="notification_polite_description" msgid="7749280535620291610">"Wenn du innerhalb eines kurzen Zeitraums viele Nachrichten erhältst, reduziert dein Smartphone für bis zu zwei Minuten die Lautstärke und minimiert Pop‑ups auf dem Display. Anrufe, Wecker und priorisierte Unterhaltungen werden dennoch auf dem Display angezeigt bzw. führen dennoch dazu, dass das Smartphone vibriert oder einen Ton ausgibt. Du findest alle deine Nachrichten, wenn du vom oberen Displayrand nach unten wischst."</string>
+ <string name="notification_polite_title" msgid="6121016426991791557">"Verringern der Benachrichtigungslautstärke"</string>
+ <string name="notification_polite_main_control_title" msgid="5812529809151927149">"Verringern von Lautstärke und Vibration bei Benachrichtigungen aktivieren"</string>
+ <string name="notification_polite_description" msgid="5497748284893832854">"Wenn du viele Benachrichtigungen innerhalb kurzer Zeit erhältst, verringert dein Gerät für bis zu zwei Minuten die Lautstärke und minimiert Benachrichtigungen. Anrufe, Wecker und priorisierte Unterhaltungen sind davon nicht betroffen. \n\nWenn du Benachrichtigungen sehen möchtest, die während des Verringerns der Lautstärke eingegangen sind, wische vom oberen Rand des Displays nach unten."</string>
<string name="notification_polite_work" msgid="8823596456640216391">"Auf Arbeitsprofile anwenden"</string>
<string name="notification_polite_work_summary" msgid="5014189280132951378">"Auf Apps im Arbeitsprofil anwenden"</string>
<string name="vr_listeners_title" msgid="4960357292472540964">"VR-Hilfsdienste"</string>
@@ -3818,7 +3802,9 @@
<string name="zen_mode_apps_priority_apps" msgid="7386196048313716076">"Ausgewählte Apps"</string>
<string name="zen_mode_apps_none_apps" msgid="2493642312793604327">"Keine"</string>
<string name="zen_mode_apps_subtext" msgid="1764211974662012877">"{count,plural,offset:2 =0{Keine App kann ihn unterbrechen}=1{{app_1} kann ihn unterbrechen}=2{{app_1} und {app_2} können ihn unterbrechen}=3{{app_1}, {app_2} und {app_3} können ihn unterbrechen}other{{app_1}, {app_2}, und # weitere können ihn unterbrechen}}"</string>
+ <string name="zen_mode_apps_work_app" msgid="8528767938316361588">"<xliff:g id="APP_LABEL">%s</xliff:g> (geschäftlich)"</string>
<string name="zen_mode_apps_calculating" msgid="5420121396943539286">"Wird berechnet…"</string>
+ <string name="zen_mode_plus_n_items" msgid="6136713354369243421">"+ <xliff:g id="NUMBER">%d</xliff:g>"</string>
<string name="zen_mode_bypassing_apps" msgid="625309443389126481">"Überschreiben durch Apps zulassen"</string>
<string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"Apps, die unterbrechen dürfen"</string>
<string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"Weitere Apps auswählen"</string>
@@ -3836,6 +3822,7 @@
<string name="zen_mode_sounds_none" msgid="6557474361948269420">"Nichts kann ihn unterbrechen"</string>
<string name="zen_mode_people_none" msgid="4613147461974255046">"Niemand kann ihn unterbrechen"</string>
<string name="zen_mode_people_some" msgid="9101872681298810281">"Einige Personen können ihn unterbrechen"</string>
+ <string name="zen_mode_people_repeat_callers" msgid="4499084111069828761">"Bei wiederkehrenden Anrufern unterbrechen"</string>
<string name="zen_mode_people_all" msgid="311036110283015205">"Alle Personen können ihn unterbrechen"</string>
<string name="zen_mode_repeat_callers" msgid="2270356100287792138">"Wiederholte Anrufer"</string>
<string name="zen_mode_repeat_callers_title" msgid="8016699240338264781">"Wiederholte Anrufer zulassen"</string>
@@ -3855,13 +3842,37 @@
<string name="zen_mode_summary_alarms_only_by_hour" msgid="7400910210950788163">"{count,plural, =1{Eine Stunde lang bis {time} zur Option „nur Weckrufe“ wechseln}other{# Stunden lang bis {time} zur Option „nur Weckrufe“ wechseln}}"</string>
<string name="zen_mode_summary_alarms_only_by_time" msgid="8140619669703968810">"Bis <xliff:g id="FORMATTEDTIME">%1$s</xliff:g> zur Option \"Nur Weckrufe\" wechseln"</string>
<string name="zen_mode_summary_always" msgid="722093064250082317">"Zur Option \"Immer unterbrechen\" wechseln"</string>
- <!-- no translation found for zen_mode_rename_title (8146882272966214558) -->
+ <string name="zen_mode_rename_title" msgid="8146882272966214558">"Modus bearbeiten"</string>
+ <string name="zen_mode_new_custom_title" msgid="321750898430776191">"Modus hinzufügen"</string>
+ <string name="zen_mode_new_custom_default_name" msgid="2778307946775085105">"Benutzerdefinierter Modus"</string>
+ <string name="zen_mode_edit_name_hint" msgid="4584652062167540536">"Modusname"</string>
+ <string name="zen_mode_trigger_title_schedule_calendar" msgid="9206609438617550331">"Kalendertermine"</string>
+ <string name="zen_mode_trigger_title_bedtime" msgid="5086070900588489978">"Schlafenszeiten"</string>
+ <string name="zen_mode_trigger_title_driving" msgid="7890990983453164403">"Beim Fahren"</string>
+ <string name="zen_mode_trigger_title_generic" msgid="601273385119550420">"Mit App verknüpft"</string>
+ <string name="zen_mode_trigger_summary_settings_in_app" msgid="4860667191183702601">"Informationen und Einstellungen in <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+ <string name="zen_mode_trigger_summary_managed_by_app" msgid="8631011868193102098">"Verwaltet von <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+ <string name="zen_mode_confirm_disable_title" msgid="1232297660775719796">"Modus deaktivieren"</string>
+ <string name="zen_mode_confirm_disable_message" msgid="7315541221665718491">"Wenn du diese Funktion deaktivierst, funktioniert der Modus nicht mehr wie vorgesehen und die zugehörigen Einstellungen werden ausgeblendet."</string>
+ <string name="zen_mode_action_disable" msgid="3552921561331044881">"Deaktivieren"</string>
+ <string name="zen_mode_confirm_enable_title" msgid="5683371335847448595">"Modus aktivieren"</string>
+ <string name="zen_mode_confirm_enable_message" msgid="7017879133260011419">"Wenn du diese Funktion aktivierst, wird der Modus gemäß seinem Zeitplan automatisch aktiviert."</string>
+ <string name="zen_mode_action_enable" msgid="1161480633223176531">"Aktivieren"</string>
+ <!-- no translation found for zen_mode_blurb_schedule_time (8223898702097484009) -->
<skip />
- <!-- no translation found for zen_mode_new_custom_title (321750898430776191) -->
+ <!-- no translation found for zen_mode_blurb_schedule_calendar (382177907856065945) -->
<skip />
- <!-- no translation found for zen_mode_new_custom_default_name (2778307946775085105) -->
+ <!-- no translation found for zen_mode_blurb_bedtime (6155075956151013457) -->
<skip />
- <!-- no translation found for zen_mode_edit_name_hint (4584652062167540536) -->
+ <!-- no translation found for zen_mode_blurb_driving (1316054379000667305) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_immersive (5884004861848687869) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_theater (2999237960059524225) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_managed (5473921634985032149) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_generic (3041601339807075625) -->
<skip />
<string name="warning_button_text" msgid="1274234338874005639">"Warnung"</string>
<string name="suggestion_button_close" msgid="6865170855573283759">"Schließen"</string>
@@ -4849,9 +4860,8 @@
<string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"Akku"</string>
<string name="settings_panel_title" msgid="346363079938069215">"Einstellungen"</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>
+ <!-- no translation found for enable_desktop_mode_on_secondary_display (2609567824593768780) -->
+ <skip />
<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>
@@ -5026,7 +5036,6 @@
<string name="default_active_sim_mobile_data" msgid="6798083892814045301">"mobile Daten"</string>
<string name="wifi_scan_notify_message" msgid="1331238142061476869">"Apps und Dienste können jederzeit nach WLANs suchen, auch wenn die WLAN-Funktion deaktiviert ist. Dadurch können beispielsweise standortbasierte Funktionen und Dienste verbessert werden. Das Verhalten lässt sich in den Einstellungen für die WLAN-Suche ändern."</string>
<string name="wifi_scan_change" msgid="8438320311511852918">"Ändern"</string>
- <string name="preference_summary_default_combination" msgid="4643585915107796253">"<xliff:g id="STATE">%1$s</xliff:g> / <xliff:g id="NETWORKMODE">%2$s</xliff:g>"</string>
<string name="mobile_data_connection_active" msgid="2422223108911581552">"Verbunden"</string>
<string name="mobile_data_temp_connection_active" msgid="3430470299756236413">"Vorübergehend verbunden"</string>
<string name="mobile_data_temp_using" msgid="5211002380149434155">"Vorübergehend mit <xliff:g id="SUBNAME">%1$s</xliff:g> verbunden"</string>
@@ -5172,9 +5181,11 @@
<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="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_enable_freeform_support" msgid="3697462756493543645">"Damit die Unterstützung von Freiform-Fenstern aktiviert wird, musst du das Gerät neu starten."</string>
+ <!-- no translation found for reboot_dialog_override_desktop_mode (7480950772574354130) -->
+ <skip />
+ <!-- no translation found for reboot_dialog_enable_desktop_mode_on_secondary_display (1153621881052401924) -->
+ <skip />
<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>
@@ -5292,10 +5303,8 @@
<string name="show_captions_enabled" msgid="7089043007924626">"An"</string>
<string name="live_caption_disabled" msgid="3562035026547887366">"Aus"</string>
<string name="live_caption_enabled" msgid="5269360946200718949">"An"</string>
- <!-- no translation found for audio_seek_bar_state_left_first (8814986910920838972) -->
- <skip />
- <!-- no translation found for audio_seek_bar_state_right_first (1999368979633398876) -->
- <skip />
+ <string name="audio_seek_bar_state_left_first" msgid="8814986910920838972">"Audio %1$d%% links, %2$d%% rechts"</string>
+ <string name="audio_seek_bar_state_right_first" msgid="1999368979633398876">"Audio %1$d%% rechts, %2$d%% links"</string>
<string name="about_phone_device_name_warning" msgid="3243226572404472381">"Dein Gerätename ist für Apps, die du installiert hast, sichtbar. Wenn du dein Gerät mit Bluetooth-Geräten oder einem WLAN verbindest oder einen WLAN-Hotspot einrichtest, kann der Name möglicherweise auch von anderen Personen gesehen werden."</string>
<string name="grammatical_gender_title" msgid="8584242850477270828">"Genus"</string>
<string name="grammatical_gender_dialog_title" msgid="8754048592099871587">"Genus auswählen"</string>
@@ -5374,7 +5383,7 @@
<string name="audio_streams_qr_code_is_not_valid_format" msgid="4856288389653121830">"Das Format des QR-Codes ist ungültig"</string>
<string name="audio_streams_qr_code_scanner" msgid="525396804963685478">"Scanne zum Anhören den QR-Code unten"</string>
<string name="audio_streams_add_source_bad_code_state_summary" msgid="6527086906921868757">"Prüfe das Passwort und versuche es noch einmal"</string>
- <string name="audio_streams_add_source_failed_state_summary" msgid="3937546443978562322">"Verbindung nicht möglich. Versuche es noch einmal."</string>
+ <string name="audio_streams_add_source_failed_state_summary" msgid="3937546443978562322">"Verbindung nicht möglich. Bitte versuch es noch einmal."</string>
<string name="audio_streams_connecting_summary" msgid="7237827765572331702">"Wird verbunden…"</string>
<string name="audio_streams_dialog_stream_is_not_available" msgid="4032878851270690546">"Audiostream ist nicht verfügbar"</string>
<string name="audio_streams_is_not_playing" msgid="8480293894696007941">"In diesem Audiostream wird derzeit nichts abgespielt"</string>
@@ -5407,5 +5416,6 @@
<string name="audio_streams_main_page_password_dialog_join_button" msgid="2967747276379153408">"Stream anhören"</string>
<string name="audio_streams_main_page_qr_code_scanner_summary" msgid="5312980105735143360">"Den QR-Code eines Audiostreams scannen, um den Stream auf <xliff:g id="DEVICE_NAME">%1$s</xliff:g> anzuhören"</string>
<string name="audio_streams_main_page_password_dialog_cannot_edit" msgid="9020898619297520153">"Während der Freigabe kann das Passwort nicht geändert werden. Wenn du das Passwort ändern möchtest, deaktiviere zuerst die Audiofreigabe."</string>
+ <string name="audio_streams_qr_code_scanner_label" msgid="8799703301071378034">"QR‑Code-Scanner"</string>
<string name="homepage_search" msgid="6759334912284663559">"In Einstellungen suchen"</string>
</resources>
diff --git a/res/values-el/strings.xml b/res/values-el/strings.xml
index 8f74da3..929c785 100644
--- a/res/values-el/strings.xml
+++ b/res/values-el/strings.xml
@@ -41,6 +41,8 @@
<string name="radioInfo_data_suspended" msgid="2001254415431299603">"Σε αναστολή"</string>
<string name="radioInfo_unknown" msgid="2892562356748600367">"Άγνωστη"</string>
<string name="preview_pager_content_description" msgid="3762247188224576303">"Προεπισκόπηση"</string>
+ <!-- no translation found for qr_code_content_description (1852208464419291347) -->
+ <skip />
<string name="font_size_make_smaller_desc" msgid="4978038055549590140">"Να γίνουν μικρότερα"</string>
<string name="font_size_make_larger_desc" msgid="5583046033381722247">"Να γίνουν μεγαλύτερα"</string>
<string name="stay_awake_on_fold_title" msgid="6590454679898134221">"Πάντα"</string>
@@ -283,7 +285,7 @@
<string name="location_settings_summary_location_off" msgid="4797932754681162262">"Απενεργοποίηση"</string>
<string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{Ενεργή / # εφαρμογή έχει πρόσβαση στην τοποθεσία}other{Ενεργή / # εφαρμογές έχουν πρόσβαση στην τοποθεσία}}"</string>
<string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"Φόρτωση…"</string>
- <string name="location_settings_footer_general" msgid="1040507068701188821">"Οι εφαρμογές με άδεια Συσκευές σε κοντινή απόσταση μπορούν να προσδιορίσουν τη σχετική θέση των συνδεδεμένων συσκευών."</string>
+ <string name="location_settings_footer_general" msgid="3447585552176173502">"Οι εφαρμογές που έχουν την άδεια Συσκευές σε κοντινή απόσταση μπορούν να προσδιορίσουν τη σχετική θέση των συνδεδεμένων συσκευών."</string>
<string name="location_settings_footer_location_off" msgid="8568995909147566720">"Η πρόσβαση στην τοποθεσία είναι απενεργοποιημένη για τις εφαρμογές και τις υπηρεσίες. Η τοποθεσία της συσκευής σας ενδέχεται ωστόσο να αποστέλλεται στους χειριστές των κέντρων εκτάκτων αναγκών, όταν καλείτε ή στέλνετε μήνυμα σε έναν αριθμό έκτακτης ανάγκης."</string>
<string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Μάθετε περισσότερα σχετικά με τις Ρυθμίσεις τοποθεσίας"</string>
<string name="location_settings_tooltip_text_for_chrome" msgid="5781821709250544575">"Για αλλαγή, μεταβείτε στις Ρυθμίσεις του ChromeOS > Απόρρητο και ασφάλεια > Στοιχεία ελέγχου απορρήτου > Πρόσβαση στην τοποθεσία"</string>
@@ -850,7 +852,6 @@
<string name="nfc_reboot_dialog_title" msgid="2033983438635768169">"Επανεκκίνηση συσκευής;"</string>
<string name="nfc_reboot_dialog_message" msgid="4929353168157966992">"Η καταγραφή των λεπτομερειών NFC προορίζεται μόνο για σκοπούς ανάπτυξης. Επιπλέον δεδομένα NFC περιλαμβάνονται στις αναφορές σφαλμάτων, οι οποίες ενδέχεται να περιέχουν ιδιωτικές πληροφορίες. Επανεκκινήστε τη συσκευή σας για να αλλάξετε αυτήν τη ρύθμιση."</string>
<string name="nfc_reboot_dialog_confirm" msgid="4769763632008584567">"Επανεκκίνηση"</string>
- <string name="keywords_external_display" msgid="4181375057920134909">"κατοπτρισμός, εξωτερική οθόνη, συνδεδεμένη οθόνη, οθόνη usb, ανάλυση, περιστροφή"</string>
<string name="external_display_on" msgid="2560104443500154333">"Ενεργή"</string>
<string name="external_display_off" msgid="5634413756025351374">"Ανενεργή"</string>
<string name="external_display_settings_title" msgid="6256884595821605779">"Εξωτερική οθόνη"</string>
@@ -1918,6 +1919,8 @@
<string name="slow_keys_summary" msgid="1784371292745423292">"Προσαρμόζει τον χρόνο που απαιτείται για την ενεργοποίηση ενός πατήματος πλήκτρου στα <xliff:g id="SLOW_KEYS_THRESHOLD">%1$d</xliff:g> ms"</string>
<string name="sticky_keys" msgid="7317317044898161747">"Ασύγχρονα πλήκτρα"</string>
<string name="sticky_keys_summary" msgid="1844953803625480623">"Για τις συντομεύσεις, αντί να πατάτε παρατεταμένα όλα τα κουμπιά μαζί, φροντίστε να πατάτε ένα πλήκτρο κάθε φορά"</string>
+ <string name="mouse_keys" msgid="6237254627808525540">"Πλήκτρα ποντικιού"</string>
+ <string name="mouse_keys_summary" msgid="2396247040177734245">"Χρησιμοποιήστε το πληκτρολόγιο για να χειριστείτε το ποντίκι."</string>
<string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"Συντομεύσεις πληκτρολογίου"</string>
<string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"Εμφάνιση λίστας συντομεύσεων"</string>
<string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"Πληκτρολόγιο και εργαλεία προφίλ εργασίας"</string>
@@ -1942,14 +1945,10 @@
<string name="pointer_fill_style_yellow_button" msgid="5025969961559379024">"Αλλαγή στιλ γεμίσ. δείκ. σε κίτρινο"</string>
<string name="pointer_fill_style_pink_button" msgid="4106218142489635673">"Αλλαγή στιλ γεμίσματ. δείκτη σε ροζ"</string>
<string name="pointer_fill_style_blue_button" msgid="5594958078854032785">"Αλλαγή στιλ γεμίσμ. δείκτη σε μπλε"</string>
- <!-- no translation found for pointer_stroke_style (1886986630216050665) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_white (673686194443825383) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_black (4655806167067437330) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_none (8953927511729800247) -->
- <skip />
+ <string name="pointer_stroke_style" msgid="1886986630216050665">"Στιλ πινελιάς δείκτη"</string>
+ <string name="pointer_stroke_style_name_white" msgid="673686194443825383">"Λευκό"</string>
+ <string name="pointer_stroke_style_name_black" msgid="4655806167067437330">"Μαύρο"</string>
+ <string name="pointer_stroke_style_name_none" msgid="8953927511729800247">"Κανένα"</string>
<string name="trackpad_touch_gesture" msgid="8641725062131922497">"Μάθετε κινήσεις επιφάνειας αφής"</string>
<string name="keywords_touchpad" msgid="8159846254066666032">"επιφάνειας αφής, επιφάνεια, ποντίκι, δείκτης, κύλιση, σάρωση, δεξί κλικ, κλικ, δείκτης"</string>
<string name="keywords_trackpad_bottom_right_tap" msgid="1285062446073929305">"δεξί κλικ, πάτημα"</string>
@@ -2179,8 +2178,6 @@
<string name="accessibility_shortcut_edit_dialog_summary_floating_button" msgid="6266489864614886247">"Πατήστε το κινούμενο κουμπί"</string>
<string name="accessibility_shortcut_edit_dialog_title_software_by_gesture" msgid="4775049370625630546">"Κίνηση προσβασιμότητας"</string>
<string name="accessibility_shortcut_edit_dialog_summary_software" msgid="8315934725362849788">"Πατήστε το κουμπί προσβασιμότητας <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g> στο κάτω μέρος της οθόνης. Για εναλλαγή μεταξύ λειτουργιών, αγγίξτε παρατεταμένα το κουμπί προσβασιμότητας."</string>
- <string name="accessibility_shortcut_edit_dialog_summary_software_gesture" msgid="8292555254353761635">"Σύρετε προς τα επάνω από το κάτω μέρος της οθόνης χρησιμοποιώντας δύο δάχτυλα.\n\nΓια εναλλαγή μεταξύ λειτουργιών, σύρετε προς τα επάνω με δύο δάχτυλα και κρατήστε τα δάχτυλά σας στην οθόνη."</string>
- <string name="accessibility_shortcut_edit_dialog_summary_software_gesture_talkback" msgid="84483464524360845">"Σύρετε προς τα επάνω από το κάτω μέρος της οθόνης χρησιμοποιώντας τρία δάχτυλα.\n\nΓια εναλλαγή μεταξύ λειτουργιών σύρετε προς τα επάνω με τρία δάχτυλα και κρατήστε τα δάχτυλά σας στην οθόνη."</string>
<string name="accessibility_shortcut_edit_dialog_summary_gesture" msgid="2081123009255579884">"{count,plural, =1{Σύρετε προς τα επάνω από το κάτω μέρος της οθόνης. Για εναλλαγή μεταξύ λειτουργιών, σύρετε προς τα επάνω και κρατήστε το δάχτυλό σας στην οθόνη.}other{Σύρετε προς τα επάνω με # δάχτυλα από το κάτω μέρος της οθόνης. Για εναλλαγή μεταξύ λειτουργιών, σύρετε προς τα επάνω με # δάχτυλα και κρατήστε τα δάχτυλά σας στην οθόνη.}}"</string>
<string name="accessibility_shortcut_edit_dialog_summary_software_floating" msgid="4459254227203203324"><annotation id="link">"Περισσότερες επιλογές"</annotation></string>
<string name="footer_learn_more_content_description" msgid="8843798273152131341">"Μάθετε περισσότερα για την υπηρεσία <xliff:g id="SERVICE">%1$s</xliff:g>"</string>
@@ -2191,16 +2188,12 @@
<string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="844089763968552142">"Κουμπιά έντασης ήχου"</string>
<string name="accessibility_shortcut_hardware_keyword" msgid="2483152542320987022">"Κουμπιά έντασης ήχου"</string>
<string name="accessibility_shortcut_edit_dialog_summary_hardware" msgid="2503134386397991634">"Πατήστε παρατεταμένα και τα δύο πλήκτρα έντασης ήχου."</string>
- <string name="accessibility_shortcut_edit_dialog_title_two_finger_double_tap" msgid="2271778556854020996">"Διπλό πάτημα οθόνης με δύο δάχτυλα"</string>
<string name="accessibility_shortcut_edit_screen_title_two_finger_double_tap" msgid="8952595692906527694">"Διπλό πάτημα με %1$d δάχτυλα"</string>
<string name="accessibility_shortcut_edit_screen_summary_two_finger_double_tap" msgid="385404127425496362">"Πατήστε γρήγορα την οθόνη δύο φορές με %1$d δάχτυλα"</string>
<string name="accessibility_shortcut_edit_screen_title_triple_tap" msgid="3314488747597058942">"Τριπλό πάτημα"</string>
<string name="accessibility_shortcut_edit_screen_summary_triple_tap" msgid="4839204951599629871">"Πατήστε γρήγορα την οθόνη %1$d φορές. Αυτό μπορεί να επιβραδύνει τη συσκευή σας."</string>
<string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="6271718715836961167">"Διπλό πάτημα με %1$d δάχτυλα"</string>
- <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"Πατήστε γρήγορα την οθόνη {0,number,integer} φορές με δύο δάχτυλα"</string>
- <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"Τριπλό πάτημα οθόνης"</string>
<string name="accessibility_shortcut_triple_tap_keyword" msgid="5359347130888464334">"τριπλό πάτημα"</string>
- <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"Πατήστε γρήγορα στην οθόνη {0,number,integer} φορές. Αυτή η συντόμευση μπορεί να μειώσει την ταχύτητα της συσκευής σας."</string>
<string name="accessibility_shortcut_edit_dialog_title_advance" msgid="4567868630655591506">"Σύνθετες"</string>
<string name="accessibility_screen_magnification_navbar_configuration_warning" msgid="266736851606791552">"Το κουμπί Προσβασιμότητας έχει οριστεί σε <xliff:g id="SERVICE">%1$s</xliff:g>. Για να χρησιμοποιήσετε τη μεγέθυνση, αγγίξτε παρατεταμένα το κουμπί Προσβασιμότητας και έπειτα επιλέξτε να κάνετε μεγέθυνση."</string>
<string name="accessibility_screen_magnification_gesture_navigation_warning" msgid="991017769735632046">"Η κίνηση προσβασιμότητας ορίστηκε στην υπηρεσία <xliff:g id="SERVICE">%1$s</xliff:g>. Για να χρησιμοποιήσετε τη μεγιστοποίηση, σύρετε παρατεταμένα προς τα επάνω με δύο δάχτυλα από το κάτω μέρος της οθόνης και μην τα απομακρύνετε από την οθόνη. Στη συνέχεια, επιλέξτε μεγιστοποίηση."</string>
@@ -2369,6 +2362,7 @@
<string name="daltonizer_mode_tritanomaly_title" msgid="2278786218762602022">"Μπλε-κίτρινο"</string>
<string name="daltonizer_mode_grayscale_title" msgid="152005391387952588">"Κλίμακα του γκρι"</string>
<string name="daltonizer_saturation_title" msgid="2999486412114963068">"Ένταση"</string>
+ <string name="daltonizer_saturation_unavailable_summary" msgid="8319753055567798775">"Δεν είναι διαθέσιμες για τη λειτουργία σε κλίμακα του γκρι ή όταν η διόρθωση χρωμάτων είναι απενεργοποιημένη"</string>
<string name="daltonizer_mode_deuteranomaly_summary" msgid="2117727423019598455">"Αδυναμία αντίληψης πράσινου, δευτερανωμαλία"</string>
<string name="daltonizer_mode_protanomaly_summary" msgid="4617032854982040748">"Αδυναμία αντίληψης κόκκινου, πρωτανωμαλία"</string>
<string name="daltonizer_mode_tritanomaly_summary" msgid="2428218320118180070">"Τριτανοπία"</string>
@@ -2418,15 +2412,8 @@
<string name="color_cyan" msgid="4341758639597035927">"Κυανό"</string>
<string name="color_yellow" msgid="5957551912912679058">"Κίτρινο"</string>
<string name="color_magenta" msgid="8943538189219528423">"Πορφυρό"</string>
- <string name="enable_service_title" msgid="7231533866953706788">"Να επιτρέπεται στην υπηρεσία <xliff:g id="SERVICE">%1$s</xliff:g> να έχει τον πλήρη έλεγχο της συσκευής σας;"</string>
<string name="capabilities_list_title" msgid="1225853611983394386">"Η υπηρεσία <xliff:g id="SERVICE">%1$s</xliff:g> απαιτεί τα εξής:"</string>
<string name="touch_filtered_warning" msgid="4225815157460318241">"Επειδή μια εφαρμογή αποκρύπτει ένα αίτημα άδειας, δεν είναι δυνατή η επαλήθευση της απάντησής σας από τις Ρυθμίσεις."</string>
- <string name="accessibility_service_warning" msgid="6779187188736432618">"Η υπηρεσία <xliff:g id="SERVICE">%1$s</xliff:g> ζητάει πλήρη έλεγχο αυτής της συσκευής. Η υπηρεσία μπορεί να διαβάσει την οθόνη και να δράσει εκ μέρους των χρηστών με προβλήματα προσβασιμότητας. Αυτό το επίπεδο ελέγχου δεν είναι κατάλληλο για τις περισσότερες εφαρμογές."</string>
- <string name="accessibility_service_warning_description" msgid="6573203795976134751">"Ο πλήρης έλεγχος είναι κατάλληλος για εφαρμογές που εξυπηρετούν τις ανάγκες προσβασιμότητάς σας, αλλά όχι για όλες τις εφαρμογές."</string>
- <string name="accessibility_service_screen_control_title" msgid="324795030658109870">"Προβολή και έλεγχος οθόνης"</string>
- <string name="accessibility_service_screen_control_description" msgid="8431940515157990426">"Μπορεί να διαβάσει όλα τα περιεχόμενα της οθόνης σας και να εμφανίσει περιεχόμενο πάνω από άλλες εφαρμογές."</string>
- <string name="accessibility_service_action_perform_title" msgid="1449360056585337833">"Προβολή και εκτέλεση ενεργειών"</string>
- <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"Μπορεί να παρακολουθήσει τις αλληλεπιδράσεις σας με μια εφαρμογή ή έναν αισθητήρα εξοπλισμού και να αλληλεπιδράσει με εφαρμογές εκ μέρους σας."</string>
<string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Ναι"</string>
<string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Όχι"</string>
<string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Απενεργοπ."</string>
@@ -3368,10 +3355,8 @@
<string name="zen_mode_automation_settings_title" msgid="3709324184191870926">"Προγράμματα"</string>
<string name="zen_mode_delete_automatic_rules" msgid="5020468289267191765">"Διαγραφή προγραμμάτων"</string>
<string name="zen_mode_schedule_delete" msgid="5383420576833765114">"Διαγραφή"</string>
- <!-- no translation found for zen_mode_menu_rename_mode (4681802125016390837) -->
- <skip />
- <!-- no translation found for zen_mode_menu_delete_mode (5380084696402157428) -->
- <skip />
+ <string name="zen_mode_menu_rename_mode" msgid="4681802125016390837">"Μετονομασία"</string>
+ <string name="zen_mode_menu_delete_mode" msgid="5380084696402157428">"Διαγραφή"</string>
<string name="zen_mode_delete_mode_confirmation" msgid="7594340592051947392">"Διαγραφή λειτουργίας <xliff:g id="MODE">%1$s</xliff:g>;"</string>
<string name="zen_mode_rule_name_edit" msgid="1053237022416700481">"Επεξεργασία"</string>
<string name="zen_mode_automation_settings_page_title" msgid="6217433860514433311">"Προγράμματα"</string>
@@ -3395,8 +3380,7 @@
<string name="zen_mode_visual_signals_settings_subtitle" msgid="7433077540895876672">"Να επιτρέπονται οπτικά σήματα"</string>
<string name="mode_interruption_filter_title" msgid="3343846700214702347">"Παραμείνετε συγκεντρωμένοι"</string>
<string name="mode_device_effects_title" msgid="5857008332618433744">"Επιπλέον ενέργειες"</string>
- <!-- no translation found for modes_sound_summary_off (6972648204528227879) -->
- <skip />
+ <string name="modes_sound_summary_off" msgid="6972648204528227879">"{count,plural, =0{Ανενεργή}=1{Ανενεργή / 1 λειτουργία μπορεί να ενεργοποιηθεί αυτόματα}other{Ανενεργή / # λειτουργίες μπορούν να ενεργοποιηθούν αυτόματα}}"</string>
<string name="mode_display_settings_title" msgid="8132825978346535472">"Ρυθμίσεις προβολής"</string>
<string name="mode_display_options_section" msgid="5151597748243866532">"Επιλογές προβολής"</string>
<string name="mode_grayscale_title" msgid="6027553257331235461">"Κλίμακα του γκρι"</string>
@@ -3659,9 +3643,9 @@
<string name="notif_listener_not_migrated" msgid="6265206376374278226">"Αυτή η εφαρμογή δεν υποστηρίζει βελτιωμένες ρυθμίσεις"</string>
<string name="notif_listener_more_settings" msgid="1348409392307208921">"Περισσότερες ρυθμίσεις"</string>
<string name="notif_listener_more_settings_desc" msgid="7995492074281663658">"Περισσότερες ρυθμίσεις είναι διαθέσιμες μέσα σε αυτή την εφαρμογή"</string>
- <string name="notification_polite_title" msgid="4737150709382859870">"Προσαρμοστικές ειδοποιήσεις"</string>
- <string name="notification_polite_main_control_title" msgid="7267191551379543859">"Χρήση προσαρμοστικών ειδοποιήσεων"</string>
- <string name="notification_polite_description" msgid="7749280535620291610">"Όταν λαμβάνετε πολλές ειδοποιήσεις μέσα σε σύντομο χρονικό διάστημα, το τηλέφωνό σας θα μειώσει την ένταση του ήχου και θα ελαχιστοποιήσει τα αναδυόμενα παράθυρα στην οθόνη σας για έως και δύο λεπτά. Οι κλήσεις, τα ξυπνητήρια και οι συζητήσεις προτεραιότητας θα εξακολουθούν να προκαλούν δόνηση, να παράγουν ήχο ή να εμφανίζονται στην οθόνη και θα μπορείτε να βρείτε όλες τις ειδοποιήσεις με ευκολία εάν σύρετε προς τα κάτω από το επάνω μέρος της οθόνης."</string>
+ <string name="notification_polite_title" msgid="6121016426991791557">"Περίοδος cooldown ειδοποιήσεων"</string>
+ <string name="notification_polite_main_control_title" msgid="5812529809151927149">"Χρήση περιόδου cooldown ειδοποιήσεων"</string>
+ <string name="notification_polite_description" msgid="5497748284893832854">"Όταν λαμβάνετε πολλές ειδοποιήσεις μέσα σε σύντομο χρονικό διάστημα, η συσκευή σας μειώνει την ένταση του ήχου και ελαχιστοποιεί τις ειδοποιήσεις για έως και 2 λεπτά. Οι κλήσεις, τα ξυπνητήρια και οι συζητήσεις προτεραιότητας δεν επηρεάζονται. \n\nΓια να βρείτε τις ειδοποιήσεις που λαμβάνετε κατά τη διάρκεια της περιόδου cooldown, σύρετε προς τα κάτω από το πάνω μέρος της οθόνης."</string>
<string name="notification_polite_work" msgid="8823596456640216391">"Εφαρμογή σε προφίλ εργασίας"</string>
<string name="notification_polite_work_summary" msgid="5014189280132951378">"Εφαρμογή σε εφαρμογές με προφίλ εργασίας"</string>
<string name="vr_listeners_title" msgid="4960357292472540964">"Βοηθητικές υπηρεσίες Εικονικής Πραγματικότητας"</string>
@@ -3818,7 +3802,9 @@
<string name="zen_mode_apps_priority_apps" msgid="7386196048313716076">"Επιλεγμένες εφαρμογές"</string>
<string name="zen_mode_apps_none_apps" msgid="2493642312793604327">"Καμία"</string>
<string name="zen_mode_apps_subtext" msgid="1764211974662012877">"{count,plural,offset:2 =0{Καμία εφαρμογή δεν μπορεί να διακόπτει}=1{Η εφαρμογη {app_1} μπορεί να διακόπτει}=2{Οι εφαρμογές {app_1} και {app_2} μπορούν να διακόπτουν}=3{Οι εφαρμογές {app_1}, {app_2} και {app_3} μπορούν να διακόπτουν}other{Οι εφαρμογές {app_1}, {app_2} και # ακόμα εφαρμογή μπορούν να διακόπτουν}}"</string>
+ <string name="zen_mode_apps_work_app" msgid="8528767938316361588">"<xliff:g id="APP_LABEL">%s</xliff:g> (Εργασία)"</string>
<string name="zen_mode_apps_calculating" msgid="5420121396943539286">"Υπολογισμός…"</string>
+ <string name="zen_mode_plus_n_items" msgid="6136713354369243421">"+<xliff:g id="NUMBER">%d</xliff:g>"</string>
<string name="zen_mode_bypassing_apps" msgid="625309443389126481">"Να επιτρέπεται στις εφαρμογές η παράκαμψη"</string>
<string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"Εφαρμογές που μπορούν να διακόπτουν"</string>
<string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"Επιλέξτε περισσότερες εφαρμογές"</string>
@@ -3836,6 +3822,7 @@
<string name="zen_mode_sounds_none" msgid="6557474361948269420">"Τίποτα δεν μπορεί να διακόπτει."</string>
<string name="zen_mode_people_none" msgid="4613147461974255046">"Κανείς δεν μπορεί να διακόπτει."</string>
<string name="zen_mode_people_some" msgid="9101872681298810281">"Ορισμένα άτομα μπορούν να διακόπτουν."</string>
+ <string name="zen_mode_people_repeat_callers" msgid="4499084111069828761">"Οι καλούντες κατ\' επανάληψη μπορούν να διακόψουν"</string>
<string name="zen_mode_people_all" msgid="311036110283015205">"Όλα τα άτομα μπορούν να διακόπτουν."</string>
<string name="zen_mode_repeat_callers" msgid="2270356100287792138">"Καλούντες κατ\' επανάληψη"</string>
<string name="zen_mode_repeat_callers_title" msgid="8016699240338264781">"Να επιτρέπονται οι καλούντες κατ\' επανάληψη"</string>
@@ -3855,13 +3842,37 @@
<string name="zen_mode_summary_alarms_only_by_hour" msgid="7400910210950788163">"{count,plural, =1{Αλλαγή σε λειτουργία Μόνο ξυπνητήρια για μία ώρα, έως {time}}other{Αλλαγή σε λειτουργία Μόνο ξυπνητήρια για # ώρες, έως {time}}}"</string>
<string name="zen_mode_summary_alarms_only_by_time" msgid="8140619669703968810">"Αλλαγή σε ξυπνητήρια μόνο έως τις <xliff:g id="FORMATTEDTIME">%1$s</xliff:g>"</string>
<string name="zen_mode_summary_always" msgid="722093064250082317">"Αλλαγή σε διακοπές πάντα"</string>
- <!-- no translation found for zen_mode_rename_title (8146882272966214558) -->
+ <string name="zen_mode_rename_title" msgid="8146882272966214558">"Λειτουργία επεξεργασίας"</string>
+ <string name="zen_mode_new_custom_title" msgid="321750898430776191">"Λειτουργία προσθήκης"</string>
+ <string name="zen_mode_new_custom_default_name" msgid="2778307946775085105">"Προσαρμοσμένη λειτουργία"</string>
+ <string name="zen_mode_edit_name_hint" msgid="4584652062167540536">"Όνομα λειτουργίας"</string>
+ <string name="zen_mode_trigger_title_schedule_calendar" msgid="9206609438617550331">"Συμβάντα ημερολογίου"</string>
+ <string name="zen_mode_trigger_title_bedtime" msgid="5086070900588489978">"Πρόγραμμα ύπνου"</string>
+ <string name="zen_mode_trigger_title_driving" msgid="7890990983453164403">"Κατά την οδήγηση"</string>
+ <string name="zen_mode_trigger_title_generic" msgid="601273385119550420">"Συνδεδεμένο με την εφαρμογή"</string>
+ <string name="zen_mode_trigger_summary_settings_in_app" msgid="4860667191183702601">"Πληροφορίες και ρυθμίσεις στην εφαρμογή <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+ <string name="zen_mode_trigger_summary_managed_by_app" msgid="8631011868193102098">"Διαχείριση από <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+ <string name="zen_mode_confirm_disable_title" msgid="1232297660775719796">"Απενεργοποίηση λειτουργίας"</string>
+ <string name="zen_mode_confirm_disable_message" msgid="7315541221665718491">"Αν απενεργοποιήσετε αυτή τη δυνατότητα, η λειτουργία δεν θα συμπεριφέρεται με τον αναμενόμενο τρόπο και θα γίνει απόκρυψη των ρυθμίσεών της."</string>
+ <string name="zen_mode_action_disable" msgid="3552921561331044881">"Απενεργοποίηση"</string>
+ <string name="zen_mode_confirm_enable_title" msgid="5683371335847448595">"Ενεργοποίηση λειτουργίας"</string>
+ <string name="zen_mode_confirm_enable_message" msgid="7017879133260011419">"Αν ενεργοποιήσετε αυτή τη δυνατότητα, η λειτουργία θα ενεργοποιείται αυτόματα με βάση το πρόγραμμά της."</string>
+ <string name="zen_mode_action_enable" msgid="1161480633223176531">"Ενεργοποίηση"</string>
+ <!-- no translation found for zen_mode_blurb_schedule_time (8223898702097484009) -->
<skip />
- <!-- no translation found for zen_mode_new_custom_title (321750898430776191) -->
+ <!-- no translation found for zen_mode_blurb_schedule_calendar (382177907856065945) -->
<skip />
- <!-- no translation found for zen_mode_new_custom_default_name (2778307946775085105) -->
+ <!-- no translation found for zen_mode_blurb_bedtime (6155075956151013457) -->
<skip />
- <!-- no translation found for zen_mode_edit_name_hint (4584652062167540536) -->
+ <!-- no translation found for zen_mode_blurb_driving (1316054379000667305) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_immersive (5884004861848687869) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_theater (2999237960059524225) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_managed (5473921634985032149) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_generic (3041601339807075625) -->
<skip />
<string name="warning_button_text" msgid="1274234338874005639">"Ειδοποίηση"</string>
<string name="suggestion_button_close" msgid="6865170855573283759">"Κλείσιμο"</string>
@@ -4849,9 +4860,8 @@
<string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"Μπαταρία"</string>
<string name="settings_panel_title" msgid="346363079938069215">"Πλαίσιο ρυθμίσεων"</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>
+ <!-- no translation found for enable_desktop_mode_on_secondary_display (2609567824593768780) -->
+ <skip />
<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>
@@ -5026,7 +5036,6 @@
<string name="default_active_sim_mobile_data" msgid="6798083892814045301">"δεδομένα κινητής τηλεφωνίας"</string>
<string name="wifi_scan_notify_message" msgid="1331238142061476869">"Για βελτίωση της εμπειρίας στη συσκευή, οι εφαρμογές και οι υπηρεσίες μπορούν ακόμα να εκτελούν σάρωση για δίκτυα Wi‑Fi ανά πάσα στιγμή, ακόμα και όταν το Wi‑Fi είναι απενεργοποιημένο. Η σάρωση μπορεί να χρησιμοποιηθεί, για παράδειγμα, για τη βελτίωση λειτουργιών και υπηρεσιών που εκτελούνται βάσει τοποθεσίας. Μπορείτε να αλλάξετε αυτή τη ρύθμιση στις ρυθμίσεις της Σάρωσης Wi‑Fi."</string>
<string name="wifi_scan_change" msgid="8438320311511852918">"Αλλαγή"</string>
- <string name="preference_summary_default_combination" msgid="4643585915107796253">"<xliff:g id="STATE">%1$s</xliff:g> / <xliff:g id="NETWORKMODE">%2$s</xliff:g>"</string>
<string name="mobile_data_connection_active" msgid="2422223108911581552">"Συνδέθηκε"</string>
<string name="mobile_data_temp_connection_active" msgid="3430470299756236413">"Προσωρινή σύνδεση"</string>
<string name="mobile_data_temp_using" msgid="5211002380149434155">"Προσωρινή χρήση <xliff:g id="SUBNAME">%1$s</xliff:g>"</string>
@@ -5172,9 +5181,11 @@
<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="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_enable_freeform_support" msgid="3697462756493543645">"Απαιτείται επανεκκίνηση για την ενεργοποίηση της υποστήριξης παραθύρων ελεύθερης μορφής."</string>
+ <!-- no translation found for reboot_dialog_override_desktop_mode (7480950772574354130) -->
+ <skip />
+ <!-- no translation found for reboot_dialog_enable_desktop_mode_on_secondary_display (1153621881052401924) -->
+ <skip />
<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>
@@ -5292,10 +5303,8 @@
<string name="show_captions_enabled" msgid="7089043007924626">"Ενεργή"</string>
<string name="live_caption_disabled" msgid="3562035026547887366">"Ανενεργή"</string>
<string name="live_caption_enabled" msgid="5269360946200718949">"Ενεργή"</string>
- <!-- no translation found for audio_seek_bar_state_left_first (8814986910920838972) -->
- <skip />
- <!-- no translation found for audio_seek_bar_state_right_first (1999368979633398876) -->
- <skip />
+ <string name="audio_seek_bar_state_left_first" msgid="8814986910920838972">"Ήχος %1$d%% αριστερά, %2$d%% δεξιά"</string>
+ <string name="audio_seek_bar_state_right_first" msgid="1999368979633398876">"Ήχος %1$d%% δεξιά, %2$d%% αριστερά"</string>
<string name="about_phone_device_name_warning" msgid="3243226572404472381">"Το όνομα της συσκευής σας είναι ορατό στις εφαρμογές που εγκαθιστάτε. Ενδέχεται επίσης να είναι ορατό και σε άλλα άτομα, όταν συνδέεστε σε συσκευές Bluetooth, συνδέεστε σε ένα δίκτυο Wi-Fi ή ρυθμίζετε ένα σημείο πρόσβασης Wi-Fi."</string>
<string name="grammatical_gender_title" msgid="8584242850477270828">"Γραμματικό γένος"</string>
<string name="grammatical_gender_dialog_title" msgid="8754048592099871587">"Επιλογή γραμματικού γένους"</string>
@@ -5407,5 +5416,6 @@
<string name="audio_streams_main_page_password_dialog_join_button" msgid="2967747276379153408">"Ακρόαση ροής"</string>
<string name="audio_streams_main_page_qr_code_scanner_summary" msgid="5312980105735143360">"Σαρώστε τον κωδικό QR μιας ροής ήχου για να ακούσετε με τη συσκευή <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
<string name="audio_streams_main_page_password_dialog_cannot_edit" msgid="9020898619297520153">"Δεν είναι δυνατή η επεξεργασία του κωδικού πρόσβασης κατά την κοινή χρήση. Για να αλλάξετε τον κωδικό πρόσβασης, αρχικά, απενεργοποιήστε την κοινή χρήση ήχου."</string>
+ <string name="audio_streams_qr_code_scanner_label" msgid="8799703301071378034">"Σάρωση κωδικών QR"</string>
<string name="homepage_search" msgid="6759334912284663559">"Ρυθμίσεις αναζήτησης"</string>
</resources>
diff --git a/res/values-en-rAU/strings.xml b/res/values-en-rAU/strings.xml
index 79a1115..60e750c 100644
--- a/res/values-en-rAU/strings.xml
+++ b/res/values-en-rAU/strings.xml
@@ -41,6 +41,8 @@
<string name="radioInfo_data_suspended" msgid="2001254415431299603">"Suspended"</string>
<string name="radioInfo_unknown" msgid="2892562356748600367">"unknown"</string>
<string name="preview_pager_content_description" msgid="3762247188224576303">"Preview"</string>
+ <!-- no translation found for qr_code_content_description (1852208464419291347) -->
+ <skip />
<string name="font_size_make_smaller_desc" msgid="4978038055549590140">"Make smaller"</string>
<string name="font_size_make_larger_desc" msgid="5583046033381722247">"Make larger"</string>
<string name="stay_awake_on_fold_title" msgid="6590454679898134221">"Always"</string>
@@ -283,7 +285,7 @@
<string name="location_settings_summary_location_off" msgid="4797932754681162262">"Off"</string>
<string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{On/# app has access to location}other{On/# apps have access to location}}"</string>
<string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"Loading…"</string>
- <string name="location_settings_footer_general" msgid="1040507068701188821">"Apps with the Nearby devices permission can determine the relative position of connected devices."</string>
+ <string name="location_settings_footer_general" msgid="3447585552176173502">"Apps with the Nearby devices permission can determine the relative position of connected devices."</string>
<string name="location_settings_footer_location_off" msgid="8568995909147566720">"Location access is off for apps and services. Your device location may still be sent to emergency responders when you call or text an emergency number."</string>
<string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Learn more about location settings"</string>
<string name="location_settings_tooltip_text_for_chrome" msgid="5781821709250544575">"To change, go to ChromeOS Settings > Privacy and security > Privacy controls > Location access"</string>
@@ -850,7 +852,6 @@
<string name="nfc_reboot_dialog_title" msgid="2033983438635768169">"Restart device?"</string>
<string name="nfc_reboot_dialog_message" msgid="4929353168157966992">"Detailed NFC logging is intended for development purposes only. Additional NFC data is included in bug reports, which may contain private information. Restart your device to change this setting."</string>
<string name="nfc_reboot_dialog_confirm" msgid="4769763632008584567">"Restart"</string>
- <string name="keywords_external_display" msgid="4181375057920134909">"mirror, external display, connected display, usb display, resolution, rotation"</string>
<string name="external_display_on" msgid="2560104443500154333">"On"</string>
<string name="external_display_off" msgid="5634413756025351374">"Off"</string>
<string name="external_display_settings_title" msgid="6256884595821605779">"External display"</string>
@@ -1918,6 +1919,8 @@
<string name="slow_keys_summary" msgid="1784371292745423292">"Adjusts the time that it takes for a key press to activate to <xliff:g id="SLOW_KEYS_THRESHOLD">%1$d</xliff:g> ms"</string>
<string name="sticky_keys" msgid="7317317044898161747">"Sticky keys"</string>
<string name="sticky_keys_summary" msgid="1844953803625480623">"Press one key at a time for shortcuts instead of holding keys down together"</string>
+ <string name="mouse_keys" msgid="6237254627808525540">"Mouse keys"</string>
+ <string name="mouse_keys_summary" msgid="2396247040177734245">"Use the physical keyboard to control the mouse."</string>
<string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"Keyboard shortcuts"</string>
<string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"Show list of shortcuts"</string>
<string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"Work profile keyboards & tools"</string>
@@ -1942,14 +1945,10 @@
<string name="pointer_fill_style_yellow_button" msgid="5025969961559379024">"Change pointer fill style to yellow"</string>
<string name="pointer_fill_style_pink_button" msgid="4106218142489635673">"Change pointer fill style to pink"</string>
<string name="pointer_fill_style_blue_button" msgid="5594958078854032785">"Change pointer fill style to blue"</string>
- <!-- no translation found for pointer_stroke_style (1886986630216050665) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_white (673686194443825383) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_black (4655806167067437330) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_none (8953927511729800247) -->
- <skip />
+ <string name="pointer_stroke_style" msgid="1886986630216050665">"Pointer stroke style"</string>
+ <string name="pointer_stroke_style_name_white" msgid="673686194443825383">"White"</string>
+ <string name="pointer_stroke_style_name_black" msgid="4655806167067437330">"Black"</string>
+ <string name="pointer_stroke_style_name_none" msgid="8953927511729800247">"None"</string>
<string name="trackpad_touch_gesture" msgid="8641725062131922497">"Learn touchpad gestures"</string>
<string name="keywords_touchpad" msgid="8159846254066666032">"trackpad, track pad, mouse, cursor, scroll, swipe, right-click, click, pointer"</string>
<string name="keywords_trackpad_bottom_right_tap" msgid="1285062446073929305">"right click, tap"</string>
@@ -2179,8 +2178,6 @@
<string name="accessibility_shortcut_edit_dialog_summary_floating_button" msgid="6266489864614886247">"Tap the floating button"</string>
<string name="accessibility_shortcut_edit_dialog_title_software_by_gesture" msgid="4775049370625630546">"Accessibility gesture"</string>
<string name="accessibility_shortcut_edit_dialog_summary_software" msgid="8315934725362849788">"Tap the Accessibility button <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g> at the bottom of your screen. To switch between features, touch and hold the Accessibility button."</string>
- <string name="accessibility_shortcut_edit_dialog_summary_software_gesture" msgid="8292555254353761635">"Swipe up from the bottom of the screen with two fingers.\n\nTo switch between features, swipe up with two fingers and hold."</string>
- <string name="accessibility_shortcut_edit_dialog_summary_software_gesture_talkback" msgid="84483464524360845">"Swipe up from the bottom of the screen with three fingers.\n\nTo switch between features, swipe up with three fingers and hold."</string>
<string name="accessibility_shortcut_edit_dialog_summary_gesture" msgid="2081123009255579884">"{count,plural, =1{Swipe up from the bottom of your screen. To switch between features, swipe up and hold.}other{Swipe up with # fingers from the bottom of your screen. To switch between features, swipe up with # fingers and hold.}}"</string>
<string name="accessibility_shortcut_edit_dialog_summary_software_floating" msgid="4459254227203203324"><annotation id="link">"More options"</annotation></string>
<string name="footer_learn_more_content_description" msgid="8843798273152131341">"Learn more about <xliff:g id="SERVICE">%1$s</xliff:g>"</string>
@@ -2191,16 +2188,12 @@
<string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="844089763968552142">"Volume keys"</string>
<string name="accessibility_shortcut_hardware_keyword" msgid="2483152542320987022">"volume keys"</string>
<string name="accessibility_shortcut_edit_dialog_summary_hardware" msgid="2503134386397991634">"Press and hold both volume keys"</string>
- <string name="accessibility_shortcut_edit_dialog_title_two_finger_double_tap" msgid="2271778556854020996">"Two-finger double-tap screen"</string>
<string name="accessibility_shortcut_edit_screen_title_two_finger_double_tap" msgid="8952595692906527694">"%1$d-finger double-tap"</string>
<string name="accessibility_shortcut_edit_screen_summary_two_finger_double_tap" msgid="385404127425496362">"Quickly tap the screen twice with %1$d fingers"</string>
<string name="accessibility_shortcut_edit_screen_title_triple_tap" msgid="3314488747597058942">"Triple-tap"</string>
<string name="accessibility_shortcut_edit_screen_summary_triple_tap" msgid="4839204951599629871">"Quickly tap the screen %1$d times. This may slow down your device."</string>
<string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="6271718715836961167">"%1$d-finger double-tap"</string>
- <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"Quickly tap screen {0,number,integer} times with two fingers"</string>
- <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"Triple-tap screen"</string>
<string name="accessibility_shortcut_triple_tap_keyword" msgid="5359347130888464334">"triple-tap"</string>
- <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"Quickly tap screen {0,number,integer} times. This shortcut may slow down your device"</string>
<string name="accessibility_shortcut_edit_dialog_title_advance" msgid="4567868630655591506">"Advanced"</string>
<string name="accessibility_screen_magnification_navbar_configuration_warning" msgid="266736851606791552">"The accessibility button is set to <xliff:g id="SERVICE">%1$s</xliff:g>. To use magnification, touch & hold the accessibility button, then select magnification."</string>
<string name="accessibility_screen_magnification_gesture_navigation_warning" msgid="991017769735632046">"The accessibility gesture is set to the <xliff:g id="SERVICE">%1$s</xliff:g>. To use magnification, swipe up with two fingers from the bottom of the screen and hold. Then select magnification."</string>
@@ -2369,6 +2362,7 @@
<string name="daltonizer_mode_tritanomaly_title" msgid="2278786218762602022">"Blue-yellow"</string>
<string name="daltonizer_mode_grayscale_title" msgid="152005391387952588">"Greyscale"</string>
<string name="daltonizer_saturation_title" msgid="2999486412114963068">"Intensity"</string>
+ <string name="daltonizer_saturation_unavailable_summary" msgid="8319753055567798775">"Unavailable for Greyscale mode or when colour correction is disabled"</string>
<string name="daltonizer_mode_deuteranomaly_summary" msgid="2117727423019598455">"Green weak, deuteranomaly"</string>
<string name="daltonizer_mode_protanomaly_summary" msgid="4617032854982040748">"Red weak, protanomaly"</string>
<string name="daltonizer_mode_tritanomaly_summary" msgid="2428218320118180070">"Tritanomaly"</string>
@@ -2418,15 +2412,8 @@
<string name="color_cyan" msgid="4341758639597035927">"Cyan"</string>
<string name="color_yellow" msgid="5957551912912679058">"Yellow"</string>
<string name="color_magenta" msgid="8943538189219528423">"Magenta"</string>
- <string name="enable_service_title" msgid="7231533866953706788">"Allow <xliff:g id="SERVICE">%1$s</xliff:g> to have full control of your device?"</string>
<string name="capabilities_list_title" msgid="1225853611983394386">"<xliff:g id="SERVICE">%1$s</xliff:g> needs to:"</string>
<string name="touch_filtered_warning" msgid="4225815157460318241">"Because an app is obscuring a permission request, Settings can’t verify your response."</string>
- <string name="accessibility_service_warning" msgid="6779187188736432618">"<xliff:g id="SERVICE">%1$s</xliff:g> is requesting full control of this device. The service can read the screen and act on behalf of users with accessibility needs. This level of control is not appropriate for most apps."</string>
- <string name="accessibility_service_warning_description" msgid="6573203795976134751">"Full control is appropriate for apps that help you with accessibility needs, but not for most apps."</string>
- <string name="accessibility_service_screen_control_title" msgid="324795030658109870">"View and control screen"</string>
- <string name="accessibility_service_screen_control_description" msgid="8431940515157990426">"It can read all content on the screen and display content over other apps."</string>
- <string name="accessibility_service_action_perform_title" msgid="1449360056585337833">"View and perform actions"</string>
- <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"It can track your interactions with an app or a hardware sensor, and interact with apps on your behalf."</string>
<string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Allow"</string>
<string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Deny"</string>
<string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Turn off"</string>
@@ -3368,10 +3355,8 @@
<string name="zen_mode_automation_settings_title" msgid="3709324184191870926">"Schedules"</string>
<string name="zen_mode_delete_automatic_rules" msgid="5020468289267191765">"Delete schedules"</string>
<string name="zen_mode_schedule_delete" msgid="5383420576833765114">"Delete"</string>
- <!-- no translation found for zen_mode_menu_rename_mode (4681802125016390837) -->
- <skip />
- <!-- no translation found for zen_mode_menu_delete_mode (5380084696402157428) -->
- <skip />
+ <string name="zen_mode_menu_rename_mode" msgid="4681802125016390837">"Rename"</string>
+ <string name="zen_mode_menu_delete_mode" msgid="5380084696402157428">"Delete"</string>
<string name="zen_mode_delete_mode_confirmation" msgid="7594340592051947392">"Delete \'<xliff:g id="MODE">%1$s</xliff:g>\' mode?"</string>
<string name="zen_mode_rule_name_edit" msgid="1053237022416700481">"Edit"</string>
<string name="zen_mode_automation_settings_page_title" msgid="6217433860514433311">"Schedules"</string>
@@ -3395,8 +3380,7 @@
<string name="zen_mode_visual_signals_settings_subtitle" msgid="7433077540895876672">"Allow visual signals"</string>
<string name="mode_interruption_filter_title" msgid="3343846700214702347">"Stay focused"</string>
<string name="mode_device_effects_title" msgid="5857008332618433744">"Additional actions"</string>
- <!-- no translation found for modes_sound_summary_off (6972648204528227879) -->
- <skip />
+ <string name="modes_sound_summary_off" msgid="6972648204528227879">"{count,plural, =0{Off}=1{Off/1 mode can turn on automatically}other{Off/# modes can turn on automatically}}"</string>
<string name="mode_display_settings_title" msgid="8132825978346535472">"Display settings"</string>
<string name="mode_display_options_section" msgid="5151597748243866532">"Display options"</string>
<string name="mode_grayscale_title" msgid="6027553257331235461">"Greyscale"</string>
@@ -3659,9 +3643,9 @@
<string name="notif_listener_not_migrated" msgid="6265206376374278226">"This app doesn’t support enhanced settings"</string>
<string name="notif_listener_more_settings" msgid="1348409392307208921">"More settings"</string>
<string name="notif_listener_more_settings_desc" msgid="7995492074281663658">"More settings are available inside this app"</string>
- <string name="notification_polite_title" msgid="4737150709382859870">"Adaptive notifications"</string>
- <string name="notification_polite_main_control_title" msgid="7267191551379543859">"Use adaptive notifications"</string>
- <string name="notification_polite_description" msgid="7749280535620291610">"When you get many notifications within a short time, your phone will lower volume and minimise pop-ups on screen for up to two minutes. Calls, alarms and priority conversations still vibrate, make a sound or show up on the screen, and all notifications are easy to find when you pull down from the top of the screen."</string>
+ <string name="notification_polite_title" msgid="6121016426991791557">"Notification cooldown"</string>
+ <string name="notification_polite_main_control_title" msgid="5812529809151927149">"Use notification cooldown"</string>
+ <string name="notification_polite_description" msgid="5497748284893832854">"When you receive many notifications within a short time, your device will lower its volume and minimise alerts for up to 2 minutes. Calls, alarms and priority conversations are not affected. \n\nNotifications received during the cooldown can be found by pulling down from the top of the screen."</string>
<string name="notification_polite_work" msgid="8823596456640216391">"Apply to work profiles"</string>
<string name="notification_polite_work_summary" msgid="5014189280132951378">"Apply to work profile apps"</string>
<string name="vr_listeners_title" msgid="4960357292472540964">"VR helper services"</string>
@@ -3818,7 +3802,9 @@
<string name="zen_mode_apps_priority_apps" msgid="7386196048313716076">"Selected apps"</string>
<string name="zen_mode_apps_none_apps" msgid="2493642312793604327">"None"</string>
<string name="zen_mode_apps_subtext" msgid="1764211974662012877">"{count,plural,offset:2 =0{No apps can interrupt}=1{{app_1} can interrupt}=2{{app_1} and {app_2} can interrupt}=3{{app_1}, {app_2} and {app_3} can interrupt}other{{app_1}, {app_2} and # more can interrupt}}"</string>
+ <string name="zen_mode_apps_work_app" msgid="8528767938316361588">"<xliff:g id="APP_LABEL">%s</xliff:g> (work)"</string>
<string name="zen_mode_apps_calculating" msgid="5420121396943539286">"Calculating…"</string>
+ <string name="zen_mode_plus_n_items" msgid="6136713354369243421">"+<xliff:g id="NUMBER">%d</xliff:g>"</string>
<string name="zen_mode_bypassing_apps" msgid="625309443389126481">"Allow apps to override"</string>
<string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"Apps that can interrupt"</string>
<string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"Select more apps"</string>
@@ -3836,6 +3822,7 @@
<string name="zen_mode_sounds_none" msgid="6557474361948269420">"Nothing can interrupt"</string>
<string name="zen_mode_people_none" msgid="4613147461974255046">"No one can interrupt"</string>
<string name="zen_mode_people_some" msgid="9101872681298810281">"Some people can interrupt"</string>
+ <string name="zen_mode_people_repeat_callers" msgid="4499084111069828761">"Repeat callers can interrupt"</string>
<string name="zen_mode_people_all" msgid="311036110283015205">"All people can interrupt"</string>
<string name="zen_mode_repeat_callers" msgid="2270356100287792138">"Repeat callers"</string>
<string name="zen_mode_repeat_callers_title" msgid="8016699240338264781">"Allow repeat callers"</string>
@@ -3855,13 +3842,37 @@
<string name="zen_mode_summary_alarms_only_by_hour" msgid="7400910210950788163">"{count,plural, =1{Change to alarms only for one hour until {time}}other{Change to alarms only for # hours until {time}}}"</string>
<string name="zen_mode_summary_alarms_only_by_time" msgid="8140619669703968810">"Change to alarms only until <xliff:g id="FORMATTEDTIME">%1$s</xliff:g>"</string>
<string name="zen_mode_summary_always" msgid="722093064250082317">"Change to always interrupt"</string>
- <!-- no translation found for zen_mode_rename_title (8146882272966214558) -->
+ <string name="zen_mode_rename_title" msgid="8146882272966214558">"Edit mode"</string>
+ <string name="zen_mode_new_custom_title" msgid="321750898430776191">"Add mode"</string>
+ <string name="zen_mode_new_custom_default_name" msgid="2778307946775085105">"Custom mode"</string>
+ <string name="zen_mode_edit_name_hint" msgid="4584652062167540536">"Mode name"</string>
+ <string name="zen_mode_trigger_title_schedule_calendar" msgid="9206609438617550331">"Calendar events"</string>
+ <string name="zen_mode_trigger_title_bedtime" msgid="5086070900588489978">"Sleep schedule"</string>
+ <string name="zen_mode_trigger_title_driving" msgid="7890990983453164403">"While driving"</string>
+ <string name="zen_mode_trigger_title_generic" msgid="601273385119550420">"Linked to app"</string>
+ <string name="zen_mode_trigger_summary_settings_in_app" msgid="4860667191183702601">"Info and settings in <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+ <string name="zen_mode_trigger_summary_managed_by_app" msgid="8631011868193102098">"Managed by <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+ <string name="zen_mode_confirm_disable_title" msgid="1232297660775719796">"Disable mode"</string>
+ <string name="zen_mode_confirm_disable_message" msgid="7315541221665718491">"If you disable this feature, the mode will no longer work as intended and its settings will be hidden."</string>
+ <string name="zen_mode_action_disable" msgid="3552921561331044881">"Disable"</string>
+ <string name="zen_mode_confirm_enable_title" msgid="5683371335847448595">"Enable mode"</string>
+ <string name="zen_mode_confirm_enable_message" msgid="7017879133260011419">"If you enable this feature, the mode will activate automatically according to its schedule."</string>
+ <string name="zen_mode_action_enable" msgid="1161480633223176531">"Enable"</string>
+ <!-- no translation found for zen_mode_blurb_schedule_time (8223898702097484009) -->
<skip />
- <!-- no translation found for zen_mode_new_custom_title (321750898430776191) -->
+ <!-- no translation found for zen_mode_blurb_schedule_calendar (382177907856065945) -->
<skip />
- <!-- no translation found for zen_mode_new_custom_default_name (2778307946775085105) -->
+ <!-- no translation found for zen_mode_blurb_bedtime (6155075956151013457) -->
<skip />
- <!-- no translation found for zen_mode_edit_name_hint (4584652062167540536) -->
+ <!-- no translation found for zen_mode_blurb_driving (1316054379000667305) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_immersive (5884004861848687869) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_theater (2999237960059524225) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_managed (5473921634985032149) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_generic (3041601339807075625) -->
<skip />
<string name="warning_button_text" msgid="1274234338874005639">"Warning"</string>
<string name="suggestion_button_close" msgid="6865170855573283759">"Close"</string>
@@ -4849,9 +4860,8 @@
<string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"Battery"</string>
<string name="settings_panel_title" msgid="346363079938069215">"Settings Panel"</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>
+ <!-- no translation found for enable_desktop_mode_on_secondary_display (2609567824593768780) -->
+ <skip />
<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>
@@ -5026,7 +5036,6 @@
<string name="default_active_sim_mobile_data" msgid="6798083892814045301">"mobile data"</string>
<string name="wifi_scan_notify_message" msgid="1331238142061476869">"To improve device experience, apps and services can still scan for Wi‑Fi networks at any time, even when Wi‑Fi is off. This can be used, for example, to improve location-based features and services. You can change this in Wi‑Fi scanning settings."</string>
<string name="wifi_scan_change" msgid="8438320311511852918">"Change"</string>
- <string name="preference_summary_default_combination" msgid="4643585915107796253">"<xliff:g id="STATE">%1$s</xliff:g>/<xliff:g id="NETWORKMODE">%2$s</xliff:g>"</string>
<string name="mobile_data_connection_active" msgid="2422223108911581552">"Connected"</string>
<string name="mobile_data_temp_connection_active" msgid="3430470299756236413">"Temporarily connected"</string>
<string name="mobile_data_temp_using" msgid="5211002380149434155">"Temporarily using <xliff:g id="SUBNAME">%1$s</xliff:g>"</string>
@@ -5172,9 +5181,11 @@
<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="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_enable_freeform_support" msgid="3697462756493543645">"A reboot is required to enable freeform window support."</string>
+ <!-- no translation found for reboot_dialog_override_desktop_mode (7480950772574354130) -->
+ <skip />
+ <!-- no translation found for reboot_dialog_enable_desktop_mode_on_secondary_display (1153621881052401924) -->
+ <skip />
<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>
@@ -5292,10 +5303,8 @@
<string name="show_captions_enabled" msgid="7089043007924626">"On"</string>
<string name="live_caption_disabled" msgid="3562035026547887366">"Off"</string>
<string name="live_caption_enabled" msgid="5269360946200718949">"On"</string>
- <!-- no translation found for audio_seek_bar_state_left_first (8814986910920838972) -->
- <skip />
- <!-- no translation found for audio_seek_bar_state_right_first (1999368979633398876) -->
- <skip />
+ <string name="audio_seek_bar_state_left_first" msgid="8814986910920838972">"Audio %1$d%% left, %2$d%% right"</string>
+ <string name="audio_seek_bar_state_right_first" msgid="1999368979633398876">"Audio %1$d%% right, %2$d%% left"</string>
<string name="about_phone_device_name_warning" msgid="3243226572404472381">"Your device name is visible to apps you installed. It may also be seen by other people when you connect to Bluetooth devices, connect to a Wi-Fi network or set up a Wi-Fi hotspot."</string>
<string name="grammatical_gender_title" msgid="8584242850477270828">"Grammatical gender"</string>
<string name="grammatical_gender_dialog_title" msgid="8754048592099871587">"Select grammatical gender"</string>
@@ -5407,5 +5416,6 @@
<string name="audio_streams_main_page_password_dialog_join_button" msgid="2967747276379153408">"Listen to stream"</string>
<string name="audio_streams_main_page_qr_code_scanner_summary" msgid="5312980105735143360">"Scan an audio stream QR code to listen with <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
<string name="audio_streams_main_page_password_dialog_cannot_edit" msgid="9020898619297520153">"Can\'t edit password while sharing. To change the password, first turn off audio sharing."</string>
+ <string name="audio_streams_qr_code_scanner_label" msgid="8799703301071378034">"QR code scanner"</string>
<string name="homepage_search" msgid="6759334912284663559">"Search settings"</string>
</resources>
diff --git a/res/values-en-rCA/strings.xml b/res/values-en-rCA/strings.xml
index a9016b4..9135a59 100644
--- a/res/values-en-rCA/strings.xml
+++ b/res/values-en-rCA/strings.xml
@@ -41,6 +41,7 @@
<string name="radioInfo_data_suspended" msgid="2001254415431299603">"Suspended"</string>
<string name="radioInfo_unknown" msgid="2892562356748600367">"Unknown"</string>
<string name="preview_pager_content_description" msgid="3762247188224576303">"Preview"</string>
+ <string name="qr_code_content_description" msgid="1852208464419291347">"QR code"</string>
<string name="font_size_make_smaller_desc" msgid="4978038055549590140">"Make smaller"</string>
<string name="font_size_make_larger_desc" msgid="5583046033381722247">"Make larger"</string>
<string name="stay_awake_on_fold_title" msgid="6590454679898134221">"Always"</string>
@@ -283,7 +284,7 @@
<string name="location_settings_summary_location_off" msgid="4797932754681162262">"Off"</string>
<string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{On / # app has access to location}other{On / # apps have access to location}}"</string>
<string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"Loading…"</string>
- <string name="location_settings_footer_general" msgid="1040507068701188821">"Apps with the Nearby devices permission can determine the relative position of connected devices."</string>
+ <string name="location_settings_footer_general" msgid="3447585552176173502">"Apps with the nearby devices permission can determine the relative position of connected devices."</string>
<string name="location_settings_footer_location_off" msgid="8568995909147566720">"Location access is off for apps and services. Your device location may still be sent to emergency responders when you call or text an emergency number."</string>
<string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Learn more about Location settings"</string>
<string name="location_settings_tooltip_text_for_chrome" msgid="5781821709250544575">"To change go to ChromeOS Settings > Privacy and security > Privacy controls > Location access"</string>
@@ -850,7 +851,6 @@
<string name="nfc_reboot_dialog_title" msgid="2033983438635768169">"Restart Device?"</string>
<string name="nfc_reboot_dialog_message" msgid="4929353168157966992">"Detail NFC logging is intended for development purposes only. Additional NFC data is included in bug reports, which may contain private information. Restart your device to change this setting."</string>
<string name="nfc_reboot_dialog_confirm" msgid="4769763632008584567">"Restart"</string>
- <string name="keywords_external_display" msgid="4181375057920134909">"mirror, external display, connected display, usb display, resolution, rotation"</string>
<string name="external_display_on" msgid="2560104443500154333">"On"</string>
<string name="external_display_off" msgid="5634413756025351374">"Off"</string>
<string name="external_display_settings_title" msgid="6256884595821605779">"External Display"</string>
@@ -1918,6 +1918,8 @@
<string name="slow_keys_summary" msgid="1784371292745423292">"Adjusts the time it takes for a key press to activate to <xliff:g id="SLOW_KEYS_THRESHOLD">%1$d</xliff:g> ms"</string>
<string name="sticky_keys" msgid="7317317044898161747">"Sticky keys"</string>
<string name="sticky_keys_summary" msgid="1844953803625480623">"Press one key at a time for shortcuts instead of holding keys down together"</string>
+ <string name="mouse_keys" msgid="6237254627808525540">"Mouse keys"</string>
+ <string name="mouse_keys_summary" msgid="2396247040177734245">"Use the physical keyboard to control the mouse."</string>
<string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"Keyboard shortcuts"</string>
<string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"Show list of shortcuts"</string>
<string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"Work profile keyboards & tools"</string>
@@ -2175,8 +2177,6 @@
<string name="accessibility_shortcut_edit_dialog_summary_floating_button" msgid="6266489864614886247">"Tap the floating button"</string>
<string name="accessibility_shortcut_edit_dialog_title_software_by_gesture" msgid="4775049370625630546">"Accessibility gesture"</string>
<string name="accessibility_shortcut_edit_dialog_summary_software" msgid="8315934725362849788">"Tap the accessibility button <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g> at the bottom of your screen. To switch between features, touch & hold the accessibility button."</string>
- <string name="accessibility_shortcut_edit_dialog_summary_software_gesture" msgid="8292555254353761635">"Swipe up from the bottom of the screen with 2 fingers.\n\nTo switch between features, swipe up with 2 fingers and hold."</string>
- <string name="accessibility_shortcut_edit_dialog_summary_software_gesture_talkback" msgid="84483464524360845">"Swipe up from the bottom of the screen with 3 fingers.\n\nTo switch between features, swipe up with 3 fingers and hold."</string>
<string name="accessibility_shortcut_edit_dialog_summary_gesture" msgid="2081123009255579884">"{count,plural, =1{Swipe up from the bottom of your screen. To switch between features, swipe up and hold.}other{Swipe up with # fingers from the bottom of your screen. To switch between features, swipe up with # fingers and hold.}}"</string>
<string name="accessibility_shortcut_edit_dialog_summary_software_floating" msgid="4459254227203203324"><annotation id="link">"More options"</annotation></string>
<string name="footer_learn_more_content_description" msgid="8843798273152131341">"Learn more about <xliff:g id="SERVICE">%1$s</xliff:g>"</string>
@@ -2187,16 +2187,12 @@
<string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="844089763968552142">"Volume keys"</string>
<string name="accessibility_shortcut_hardware_keyword" msgid="2483152542320987022">"volume keys"</string>
<string name="accessibility_shortcut_edit_dialog_summary_hardware" msgid="2503134386397991634">"Press and hold both volume keys"</string>
- <string name="accessibility_shortcut_edit_dialog_title_two_finger_double_tap" msgid="2271778556854020996">"Two-finger double-tap screen"</string>
<string name="accessibility_shortcut_edit_screen_title_two_finger_double_tap" msgid="8952595692906527694">"%1$d-finger double tap"</string>
<string name="accessibility_shortcut_edit_screen_summary_two_finger_double_tap" msgid="385404127425496362">"Quickly tap the screen twice with %1$d fingers"</string>
<string name="accessibility_shortcut_edit_screen_title_triple_tap" msgid="3314488747597058942">"Triple tap"</string>
<string name="accessibility_shortcut_edit_screen_summary_triple_tap" msgid="4839204951599629871">"Quickly tap the screen %1$d times. This may slow down your device."</string>
<string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="6271718715836961167">"%1$d-finger double tap"</string>
- <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"Quickly tap screen {0,number,integer} times with two fingers"</string>
- <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"Triple-tap screen"</string>
<string name="accessibility_shortcut_triple_tap_keyword" msgid="5359347130888464334">"triple tap"</string>
- <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"Quickly tap screen {0,number,integer} times. This shortcut may slow down your device"</string>
<string name="accessibility_shortcut_edit_dialog_title_advance" msgid="4567868630655591506">"Advanced"</string>
<string name="accessibility_screen_magnification_navbar_configuration_warning" msgid="266736851606791552">"The accessibility button is set to <xliff:g id="SERVICE">%1$s</xliff:g>. To use magnification, touch and hold the accessibility button, then select magnification."</string>
<string name="accessibility_screen_magnification_gesture_navigation_warning" msgid="991017769735632046">"The accessibility gesture is set to the <xliff:g id="SERVICE">%1$s</xliff:g>. To use magnification, swipe up with two fingers from the bottom of the screen and hold. Then select magnification."</string>
@@ -2365,6 +2361,7 @@
<string name="daltonizer_mode_tritanomaly_title" msgid="2278786218762602022">"Blue-yellow"</string>
<string name="daltonizer_mode_grayscale_title" msgid="152005391387952588">"Grayscale"</string>
<string name="daltonizer_saturation_title" msgid="2999486412114963068">"Intensity"</string>
+ <string name="daltonizer_saturation_unavailable_summary" msgid="8319753055567798775">"Unavailable for grayscale mode or when color correction is disabled"</string>
<string name="daltonizer_mode_deuteranomaly_summary" msgid="2117727423019598455">"Green weak, deuteranomaly"</string>
<string name="daltonizer_mode_protanomaly_summary" msgid="4617032854982040748">"Red weak, protanomaly"</string>
<string name="daltonizer_mode_tritanomaly_summary" msgid="2428218320118180070">"Tritanomaly"</string>
@@ -2414,15 +2411,8 @@
<string name="color_cyan" msgid="4341758639597035927">"Cyan"</string>
<string name="color_yellow" msgid="5957551912912679058">"Yellow"</string>
<string name="color_magenta" msgid="8943538189219528423">"Magenta"</string>
- <string name="enable_service_title" msgid="7231533866953706788">"Allow <xliff:g id="SERVICE">%1$s</xliff:g> to have full control of your device?"</string>
<string name="capabilities_list_title" msgid="1225853611983394386">"<xliff:g id="SERVICE">%1$s</xliff:g> needs to:"</string>
<string name="touch_filtered_warning" msgid="4225815157460318241">"Because an app is obscuring a permission request, Settings can’t verify your response."</string>
- <string name="accessibility_service_warning" msgid="6779187188736432618">"<xliff:g id="SERVICE">%1$s</xliff:g> is requesting full control of this device. The service can read the screen and act on behalf of users with accessibility needs. This level of control is not appropriate for most apps."</string>
- <string name="accessibility_service_warning_description" msgid="6573203795976134751">"Full control is appropriate for apps that help you with accessibility needs, but not for most apps."</string>
- <string name="accessibility_service_screen_control_title" msgid="324795030658109870">"View and control screen"</string>
- <string name="accessibility_service_screen_control_description" msgid="8431940515157990426">"It can read all content on the screen and display content over other apps."</string>
- <string name="accessibility_service_action_perform_title" msgid="1449360056585337833">"View and perform actions"</string>
- <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"It can track your interactions with an app or a hardware sensor and interact with apps on your behalf."</string>
<string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Allow"</string>
<string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Deny"</string>
<string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Turn off"</string>
@@ -3652,9 +3642,9 @@
<string name="notif_listener_not_migrated" msgid="6265206376374278226">"This app doesn’t support enhanced settings"</string>
<string name="notif_listener_more_settings" msgid="1348409392307208921">"More settings"</string>
<string name="notif_listener_more_settings_desc" msgid="7995492074281663658">"More settings are available inside this app"</string>
- <string name="notification_polite_title" msgid="4737150709382859870">"Adaptive Notifications"</string>
- <string name="notification_polite_main_control_title" msgid="7267191551379543859">"Use adaptive notifications"</string>
- <string name="notification_polite_description" msgid="7749280535620291610">"When you get many notifications within a short time, your phone will lower volume and minimize pop-ups on screen for up to two minutes. Calls, alarms, and priority conversations still vibrate, make a sound, or show up on the screen, and all notifications are easy to find when you pull down from the top of the screen."</string>
+ <string name="notification_polite_title" msgid="6121016426991791557">"Notification cooldown"</string>
+ <string name="notification_polite_main_control_title" msgid="5812529809151927149">"Use notification cooldown"</string>
+ <string name="notification_polite_description" msgid="5497748284893832854">"When you receive many notifications within a short time, your device will lower its volume and minimize alerts for up to 2 minutes. Calls, alarms, and priority conversations are not affected. \n\nNotifications received during the cooldown can be found by pulling down from the top of the screen."</string>
<string name="notification_polite_work" msgid="8823596456640216391">"Apply to work profiles"</string>
<string name="notification_polite_work_summary" msgid="5014189280132951378">"Apply to work profile apps"</string>
<string name="vr_listeners_title" msgid="4960357292472540964">"VR helper services"</string>
@@ -3811,7 +3801,9 @@
<string name="zen_mode_apps_priority_apps" msgid="7386196048313716076">"Selected apps"</string>
<string name="zen_mode_apps_none_apps" msgid="2493642312793604327">"None"</string>
<string name="zen_mode_apps_subtext" msgid="1764211974662012877">"{count,plural,offset:2 =0{No apps can interrupt}=1{{app_1} can interrupt}=2{{app_1} and {app_2} can interrupt}=3{{app_1}, {app_2}, and {app_3} can interrupt}other{{app_1}, {app_2}, and # more can interrupt}}"</string>
+ <string name="zen_mode_apps_work_app" msgid="8528767938316361588">"<xliff:g id="APP_LABEL">%s</xliff:g> (Work)"</string>
<string name="zen_mode_apps_calculating" msgid="5420121396943539286">"Calculating…"</string>
+ <string name="zen_mode_plus_n_items" msgid="6136713354369243421">"+<xliff:g id="NUMBER">%d</xliff:g>"</string>
<string name="zen_mode_bypassing_apps" msgid="625309443389126481">"Allow apps to override"</string>
<string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"Apps that can interrupt"</string>
<string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"Select more apps"</string>
@@ -3829,6 +3821,7 @@
<string name="zen_mode_sounds_none" msgid="6557474361948269420">"Nothing can interrupt"</string>
<string name="zen_mode_people_none" msgid="4613147461974255046">"No one can interrupt"</string>
<string name="zen_mode_people_some" msgid="9101872681298810281">"Some people can interrupt"</string>
+ <string name="zen_mode_people_repeat_callers" msgid="4499084111069828761">"Repeat callers can interrupt"</string>
<string name="zen_mode_people_all" msgid="311036110283015205">"All people can interrupt"</string>
<string name="zen_mode_repeat_callers" msgid="2270356100287792138">"Repeat callers"</string>
<string name="zen_mode_repeat_callers_title" msgid="8016699240338264781">"Allow repeat callers"</string>
@@ -3852,6 +3845,26 @@
<string name="zen_mode_new_custom_title" msgid="321750898430776191">"Add mode"</string>
<string name="zen_mode_new_custom_default_name" msgid="2778307946775085105">"Custom mode"</string>
<string name="zen_mode_edit_name_hint" msgid="4584652062167540536">"Mode name"</string>
+ <string name="zen_mode_trigger_title_schedule_calendar" msgid="9206609438617550331">"Calendar events"</string>
+ <string name="zen_mode_trigger_title_bedtime" msgid="5086070900588489978">"Sleep schedule"</string>
+ <string name="zen_mode_trigger_title_driving" msgid="7890990983453164403">"While driving"</string>
+ <string name="zen_mode_trigger_title_generic" msgid="601273385119550420">"Linked to app"</string>
+ <string name="zen_mode_trigger_summary_settings_in_app" msgid="4860667191183702601">"Info and settings in <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+ <string name="zen_mode_trigger_summary_managed_by_app" msgid="8631011868193102098">"Managed by <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+ <string name="zen_mode_confirm_disable_title" msgid="1232297660775719796">"Disable Mode"</string>
+ <string name="zen_mode_confirm_disable_message" msgid="7315541221665718491">"If you disable this feature, the mode will no longer work as intended and its settings will be hidden."</string>
+ <string name="zen_mode_action_disable" msgid="3552921561331044881">"Disable"</string>
+ <string name="zen_mode_confirm_enable_title" msgid="5683371335847448595">"Enable Mode"</string>
+ <string name="zen_mode_confirm_enable_message" msgid="7017879133260011419">"If you enable this feature, the mode will activate automatically according to its schedule."</string>
+ <string name="zen_mode_action_enable" msgid="1161480633223176531">"Enable"</string>
+ <string name="zen_mode_blurb_schedule_time" msgid="8223898702097484009">"Set a mode that follows a regular schedule"</string>
+ <string name="zen_mode_blurb_schedule_calendar" msgid="382177907856065945">"Set a mode to sync with calendar events and invite responses"</string>
+ <string name="zen_mode_blurb_bedtime" msgid="6155075956151013457">"Design a calming sleep routine. Set alarms, dim the screen, and block notifications."</string>
+ <string name="zen_mode_blurb_driving" msgid="1316054379000667305">"Prioritize safety on the road for a focused and distraction-free drive"</string>
+ <string name="zen_mode_blurb_immersive" msgid="5884004861848687869">"Block distractions or interruptions from your device to gain focus"</string>
+ <string name="zen_mode_blurb_theater" msgid="2999237960059524225">"Eliminate all distractions for a quiet environment"</string>
+ <string name="zen_mode_blurb_managed" msgid="5473921634985032149">"Personalize device experiences and settings for different users"</string>
+ <string name="zen_mode_blurb_generic" msgid="3041601339807075625">"Minimize interruptions by only allowing important people and apps to reach you"</string>
<string name="warning_button_text" msgid="1274234338874005639">"Warning"</string>
<string name="suggestion_button_close" msgid="6865170855573283759">"Close"</string>
<string name="device_feedback" msgid="5351614458411688608">"Send feedback about this device"</string>
@@ -4838,9 +4851,8 @@
<string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"Battery"</string>
<string name="settings_panel_title" msgid="346363079938069215">"Settings Panel"</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>
+ <!-- no translation found for enable_desktop_mode_on_secondary_display (2609567824593768780) -->
+ <skip />
<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>
@@ -5015,7 +5027,6 @@
<string name="default_active_sim_mobile_data" msgid="6798083892814045301">"mobile data"</string>
<string name="wifi_scan_notify_message" msgid="1331238142061476869">"To improve device experience, apps and services can still scan for Wi‑Fi networks at any time, even when Wi‑Fi is off. This can be used, for example, to improve location-based features and services. You can change this in Wi‑Fi scanning settings."</string>
<string name="wifi_scan_change" msgid="8438320311511852918">"Change"</string>
- <string name="preference_summary_default_combination" msgid="4643585915107796253">"<xliff:g id="STATE">%1$s</xliff:g> / <xliff:g id="NETWORKMODE">%2$s</xliff:g>"</string>
<string name="mobile_data_connection_active" msgid="2422223108911581552">"Connected"</string>
<string name="mobile_data_temp_connection_active" msgid="3430470299756236413">"Temporarily connected"</string>
<string name="mobile_data_temp_using" msgid="5211002380149434155">"Temporarily using <xliff:g id="SUBNAME">%1$s</xliff:g>"</string>
@@ -5161,9 +5172,11 @@
<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="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_enable_freeform_support" msgid="3697462756493543645">"A reboot is required to enable freeform window support."</string>
+ <!-- no translation found for reboot_dialog_override_desktop_mode (7480950772574354130) -->
+ <skip />
+ <!-- no translation found for reboot_dialog_enable_desktop_mode_on_secondary_display (1153621881052401924) -->
+ <skip />
<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>
@@ -5394,5 +5407,6 @@
<string name="audio_streams_main_page_password_dialog_join_button" msgid="2967747276379153408">"Listen to stream"</string>
<string name="audio_streams_main_page_qr_code_scanner_summary" msgid="5312980105735143360">"Scan an audio stream QR code to listen with <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
<string name="audio_streams_main_page_password_dialog_cannot_edit" msgid="9020898619297520153">"Can\'t edit password while sharing. To change the password, first turn off audio sharing."</string>
+ <string name="audio_streams_qr_code_scanner_label" msgid="8799703301071378034">"QR code scanner"</string>
<string name="homepage_search" msgid="6759334912284663559">"Search Settings"</string>
</resources>
diff --git a/res/values-en-rGB/strings.xml b/res/values-en-rGB/strings.xml
index c37eee9..b82cc86 100644
--- a/res/values-en-rGB/strings.xml
+++ b/res/values-en-rGB/strings.xml
@@ -41,6 +41,8 @@
<string name="radioInfo_data_suspended" msgid="2001254415431299603">"Suspended"</string>
<string name="radioInfo_unknown" msgid="2892562356748600367">"unknown"</string>
<string name="preview_pager_content_description" msgid="3762247188224576303">"Preview"</string>
+ <!-- no translation found for qr_code_content_description (1852208464419291347) -->
+ <skip />
<string name="font_size_make_smaller_desc" msgid="4978038055549590140">"Make smaller"</string>
<string name="font_size_make_larger_desc" msgid="5583046033381722247">"Make larger"</string>
<string name="stay_awake_on_fold_title" msgid="6590454679898134221">"Always"</string>
@@ -283,7 +285,7 @@
<string name="location_settings_summary_location_off" msgid="4797932754681162262">"Off"</string>
<string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{On/# app has access to location}other{On/# apps have access to location}}"</string>
<string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"Loading…"</string>
- <string name="location_settings_footer_general" msgid="1040507068701188821">"Apps with the Nearby devices permission can determine the relative position of connected devices."</string>
+ <string name="location_settings_footer_general" msgid="3447585552176173502">"Apps with the Nearby devices permission can determine the relative position of connected devices."</string>
<string name="location_settings_footer_location_off" msgid="8568995909147566720">"Location access is off for apps and services. Your device location may still be sent to emergency responders when you call or text an emergency number."</string>
<string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Learn more about location settings"</string>
<string name="location_settings_tooltip_text_for_chrome" msgid="5781821709250544575">"To change, go to ChromeOS Settings > Privacy and security > Privacy controls > Location access"</string>
@@ -850,7 +852,6 @@
<string name="nfc_reboot_dialog_title" msgid="2033983438635768169">"Restart device?"</string>
<string name="nfc_reboot_dialog_message" msgid="4929353168157966992">"Detailed NFC logging is intended for development purposes only. Additional NFC data is included in bug reports, which may contain private information. Restart your device to change this setting."</string>
<string name="nfc_reboot_dialog_confirm" msgid="4769763632008584567">"Restart"</string>
- <string name="keywords_external_display" msgid="4181375057920134909">"mirror, external display, connected display, usb display, resolution, rotation"</string>
<string name="external_display_on" msgid="2560104443500154333">"On"</string>
<string name="external_display_off" msgid="5634413756025351374">"Off"</string>
<string name="external_display_settings_title" msgid="6256884595821605779">"External display"</string>
@@ -1918,6 +1919,8 @@
<string name="slow_keys_summary" msgid="1784371292745423292">"Adjusts the time that it takes for a key press to activate to <xliff:g id="SLOW_KEYS_THRESHOLD">%1$d</xliff:g> ms"</string>
<string name="sticky_keys" msgid="7317317044898161747">"Sticky keys"</string>
<string name="sticky_keys_summary" msgid="1844953803625480623">"Press one key at a time for shortcuts instead of holding keys down together"</string>
+ <string name="mouse_keys" msgid="6237254627808525540">"Mouse keys"</string>
+ <string name="mouse_keys_summary" msgid="2396247040177734245">"Use the physical keyboard to control the mouse."</string>
<string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"Keyboard shortcuts"</string>
<string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"Show list of shortcuts"</string>
<string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"Work profile keyboards & tools"</string>
@@ -1942,14 +1945,10 @@
<string name="pointer_fill_style_yellow_button" msgid="5025969961559379024">"Change pointer fill style to yellow"</string>
<string name="pointer_fill_style_pink_button" msgid="4106218142489635673">"Change pointer fill style to pink"</string>
<string name="pointer_fill_style_blue_button" msgid="5594958078854032785">"Change pointer fill style to blue"</string>
- <!-- no translation found for pointer_stroke_style (1886986630216050665) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_white (673686194443825383) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_black (4655806167067437330) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_none (8953927511729800247) -->
- <skip />
+ <string name="pointer_stroke_style" msgid="1886986630216050665">"Pointer stroke style"</string>
+ <string name="pointer_stroke_style_name_white" msgid="673686194443825383">"White"</string>
+ <string name="pointer_stroke_style_name_black" msgid="4655806167067437330">"Black"</string>
+ <string name="pointer_stroke_style_name_none" msgid="8953927511729800247">"None"</string>
<string name="trackpad_touch_gesture" msgid="8641725062131922497">"Learn touchpad gestures"</string>
<string name="keywords_touchpad" msgid="8159846254066666032">"trackpad, track pad, mouse, cursor, scroll, swipe, right-click, click, pointer"</string>
<string name="keywords_trackpad_bottom_right_tap" msgid="1285062446073929305">"right click, tap"</string>
@@ -2179,8 +2178,6 @@
<string name="accessibility_shortcut_edit_dialog_summary_floating_button" msgid="6266489864614886247">"Tap the floating button"</string>
<string name="accessibility_shortcut_edit_dialog_title_software_by_gesture" msgid="4775049370625630546">"Accessibility gesture"</string>
<string name="accessibility_shortcut_edit_dialog_summary_software" msgid="8315934725362849788">"Tap the Accessibility button <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g> at the bottom of your screen. To switch between features, touch and hold the Accessibility button."</string>
- <string name="accessibility_shortcut_edit_dialog_summary_software_gesture" msgid="8292555254353761635">"Swipe up from the bottom of the screen with two fingers.\n\nTo switch between features, swipe up with two fingers and hold."</string>
- <string name="accessibility_shortcut_edit_dialog_summary_software_gesture_talkback" msgid="84483464524360845">"Swipe up from the bottom of the screen with three fingers.\n\nTo switch between features, swipe up with three fingers and hold."</string>
<string name="accessibility_shortcut_edit_dialog_summary_gesture" msgid="2081123009255579884">"{count,plural, =1{Swipe up from the bottom of your screen. To switch between features, swipe up and hold.}other{Swipe up with # fingers from the bottom of your screen. To switch between features, swipe up with # fingers and hold.}}"</string>
<string name="accessibility_shortcut_edit_dialog_summary_software_floating" msgid="4459254227203203324"><annotation id="link">"More options"</annotation></string>
<string name="footer_learn_more_content_description" msgid="8843798273152131341">"Learn more about <xliff:g id="SERVICE">%1$s</xliff:g>"</string>
@@ -2191,16 +2188,12 @@
<string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="844089763968552142">"Volume keys"</string>
<string name="accessibility_shortcut_hardware_keyword" msgid="2483152542320987022">"volume keys"</string>
<string name="accessibility_shortcut_edit_dialog_summary_hardware" msgid="2503134386397991634">"Press and hold both volume keys"</string>
- <string name="accessibility_shortcut_edit_dialog_title_two_finger_double_tap" msgid="2271778556854020996">"Two-finger double-tap screen"</string>
<string name="accessibility_shortcut_edit_screen_title_two_finger_double_tap" msgid="8952595692906527694">"%1$d-finger double-tap"</string>
<string name="accessibility_shortcut_edit_screen_summary_two_finger_double_tap" msgid="385404127425496362">"Quickly tap the screen twice with %1$d fingers"</string>
<string name="accessibility_shortcut_edit_screen_title_triple_tap" msgid="3314488747597058942">"Triple-tap"</string>
<string name="accessibility_shortcut_edit_screen_summary_triple_tap" msgid="4839204951599629871">"Quickly tap the screen %1$d times. This may slow down your device."</string>
<string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="6271718715836961167">"%1$d-finger double-tap"</string>
- <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"Quickly tap screen {0,number,integer} times with two fingers"</string>
- <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"Triple-tap screen"</string>
<string name="accessibility_shortcut_triple_tap_keyword" msgid="5359347130888464334">"triple-tap"</string>
- <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"Quickly tap screen {0,number,integer} times. This shortcut may slow down your device"</string>
<string name="accessibility_shortcut_edit_dialog_title_advance" msgid="4567868630655591506">"Advanced"</string>
<string name="accessibility_screen_magnification_navbar_configuration_warning" msgid="266736851606791552">"The accessibility button is set to <xliff:g id="SERVICE">%1$s</xliff:g>. To use magnification, touch & hold the accessibility button, then select magnification."</string>
<string name="accessibility_screen_magnification_gesture_navigation_warning" msgid="991017769735632046">"The accessibility gesture is set to the <xliff:g id="SERVICE">%1$s</xliff:g>. To use magnification, swipe up with two fingers from the bottom of the screen and hold. Then select magnification."</string>
@@ -2369,6 +2362,7 @@
<string name="daltonizer_mode_tritanomaly_title" msgid="2278786218762602022">"Blue-yellow"</string>
<string name="daltonizer_mode_grayscale_title" msgid="152005391387952588">"Greyscale"</string>
<string name="daltonizer_saturation_title" msgid="2999486412114963068">"Intensity"</string>
+ <string name="daltonizer_saturation_unavailable_summary" msgid="8319753055567798775">"Unavailable for Greyscale mode or when colour correction is disabled"</string>
<string name="daltonizer_mode_deuteranomaly_summary" msgid="2117727423019598455">"Green weak, deuteranomaly"</string>
<string name="daltonizer_mode_protanomaly_summary" msgid="4617032854982040748">"Red weak, protanomaly"</string>
<string name="daltonizer_mode_tritanomaly_summary" msgid="2428218320118180070">"Tritanomaly"</string>
@@ -2418,15 +2412,8 @@
<string name="color_cyan" msgid="4341758639597035927">"Cyan"</string>
<string name="color_yellow" msgid="5957551912912679058">"Yellow"</string>
<string name="color_magenta" msgid="8943538189219528423">"Magenta"</string>
- <string name="enable_service_title" msgid="7231533866953706788">"Allow <xliff:g id="SERVICE">%1$s</xliff:g> to have full control of your device?"</string>
<string name="capabilities_list_title" msgid="1225853611983394386">"<xliff:g id="SERVICE">%1$s</xliff:g> needs to:"</string>
<string name="touch_filtered_warning" msgid="4225815157460318241">"Because an app is obscuring a permission request, Settings can’t verify your response."</string>
- <string name="accessibility_service_warning" msgid="6779187188736432618">"<xliff:g id="SERVICE">%1$s</xliff:g> is requesting full control of this device. The service can read the screen and act on behalf of users with accessibility needs. This level of control is not appropriate for most apps."</string>
- <string name="accessibility_service_warning_description" msgid="6573203795976134751">"Full control is appropriate for apps that help you with accessibility needs, but not for most apps."</string>
- <string name="accessibility_service_screen_control_title" msgid="324795030658109870">"View and control screen"</string>
- <string name="accessibility_service_screen_control_description" msgid="8431940515157990426">"It can read all content on the screen and display content over other apps."</string>
- <string name="accessibility_service_action_perform_title" msgid="1449360056585337833">"View and perform actions"</string>
- <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"It can track your interactions with an app or a hardware sensor, and interact with apps on your behalf."</string>
<string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Allow"</string>
<string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Deny"</string>
<string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Turn off"</string>
@@ -3368,10 +3355,8 @@
<string name="zen_mode_automation_settings_title" msgid="3709324184191870926">"Schedules"</string>
<string name="zen_mode_delete_automatic_rules" msgid="5020468289267191765">"Delete schedules"</string>
<string name="zen_mode_schedule_delete" msgid="5383420576833765114">"Delete"</string>
- <!-- no translation found for zen_mode_menu_rename_mode (4681802125016390837) -->
- <skip />
- <!-- no translation found for zen_mode_menu_delete_mode (5380084696402157428) -->
- <skip />
+ <string name="zen_mode_menu_rename_mode" msgid="4681802125016390837">"Rename"</string>
+ <string name="zen_mode_menu_delete_mode" msgid="5380084696402157428">"Delete"</string>
<string name="zen_mode_delete_mode_confirmation" msgid="7594340592051947392">"Delete \'<xliff:g id="MODE">%1$s</xliff:g>\' mode?"</string>
<string name="zen_mode_rule_name_edit" msgid="1053237022416700481">"Edit"</string>
<string name="zen_mode_automation_settings_page_title" msgid="6217433860514433311">"Schedules"</string>
@@ -3395,8 +3380,7 @@
<string name="zen_mode_visual_signals_settings_subtitle" msgid="7433077540895876672">"Allow visual signals"</string>
<string name="mode_interruption_filter_title" msgid="3343846700214702347">"Stay focused"</string>
<string name="mode_device_effects_title" msgid="5857008332618433744">"Additional actions"</string>
- <!-- no translation found for modes_sound_summary_off (6972648204528227879) -->
- <skip />
+ <string name="modes_sound_summary_off" msgid="6972648204528227879">"{count,plural, =0{Off}=1{Off/1 mode can turn on automatically}other{Off/# modes can turn on automatically}}"</string>
<string name="mode_display_settings_title" msgid="8132825978346535472">"Display settings"</string>
<string name="mode_display_options_section" msgid="5151597748243866532">"Display options"</string>
<string name="mode_grayscale_title" msgid="6027553257331235461">"Greyscale"</string>
@@ -3659,9 +3643,9 @@
<string name="notif_listener_not_migrated" msgid="6265206376374278226">"This app doesn’t support enhanced settings"</string>
<string name="notif_listener_more_settings" msgid="1348409392307208921">"More settings"</string>
<string name="notif_listener_more_settings_desc" msgid="7995492074281663658">"More settings are available inside this app"</string>
- <string name="notification_polite_title" msgid="4737150709382859870">"Adaptive notifications"</string>
- <string name="notification_polite_main_control_title" msgid="7267191551379543859">"Use adaptive notifications"</string>
- <string name="notification_polite_description" msgid="7749280535620291610">"When you get many notifications within a short time, your phone will lower volume and minimise pop-ups on screen for up to two minutes. Calls, alarms and priority conversations still vibrate, make a sound or show up on the screen, and all notifications are easy to find when you pull down from the top of the screen."</string>
+ <string name="notification_polite_title" msgid="6121016426991791557">"Notification cooldown"</string>
+ <string name="notification_polite_main_control_title" msgid="5812529809151927149">"Use notification cooldown"</string>
+ <string name="notification_polite_description" msgid="5497748284893832854">"When you receive many notifications within a short time, your device will lower its volume and minimise alerts for up to 2 minutes. Calls, alarms and priority conversations are not affected. \n\nNotifications received during the cooldown can be found by pulling down from the top of the screen."</string>
<string name="notification_polite_work" msgid="8823596456640216391">"Apply to work profiles"</string>
<string name="notification_polite_work_summary" msgid="5014189280132951378">"Apply to work profile apps"</string>
<string name="vr_listeners_title" msgid="4960357292472540964">"VR helper services"</string>
@@ -3818,7 +3802,9 @@
<string name="zen_mode_apps_priority_apps" msgid="7386196048313716076">"Selected apps"</string>
<string name="zen_mode_apps_none_apps" msgid="2493642312793604327">"None"</string>
<string name="zen_mode_apps_subtext" msgid="1764211974662012877">"{count,plural,offset:2 =0{No apps can interrupt}=1{{app_1} can interrupt}=2{{app_1} and {app_2} can interrupt}=3{{app_1}, {app_2} and {app_3} can interrupt}other{{app_1}, {app_2} and # more can interrupt}}"</string>
+ <string name="zen_mode_apps_work_app" msgid="8528767938316361588">"<xliff:g id="APP_LABEL">%s</xliff:g> (work)"</string>
<string name="zen_mode_apps_calculating" msgid="5420121396943539286">"Calculating…"</string>
+ <string name="zen_mode_plus_n_items" msgid="6136713354369243421">"+<xliff:g id="NUMBER">%d</xliff:g>"</string>
<string name="zen_mode_bypassing_apps" msgid="625309443389126481">"Allow apps to override"</string>
<string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"Apps that can interrupt"</string>
<string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"Select more apps"</string>
@@ -3836,6 +3822,7 @@
<string name="zen_mode_sounds_none" msgid="6557474361948269420">"Nothing can interrupt"</string>
<string name="zen_mode_people_none" msgid="4613147461974255046">"No one can interrupt"</string>
<string name="zen_mode_people_some" msgid="9101872681298810281">"Some people can interrupt"</string>
+ <string name="zen_mode_people_repeat_callers" msgid="4499084111069828761">"Repeat callers can interrupt"</string>
<string name="zen_mode_people_all" msgid="311036110283015205">"All people can interrupt"</string>
<string name="zen_mode_repeat_callers" msgid="2270356100287792138">"Repeat callers"</string>
<string name="zen_mode_repeat_callers_title" msgid="8016699240338264781">"Allow repeat callers"</string>
@@ -3855,13 +3842,37 @@
<string name="zen_mode_summary_alarms_only_by_hour" msgid="7400910210950788163">"{count,plural, =1{Change to alarms only for one hour until {time}}other{Change to alarms only for # hours until {time}}}"</string>
<string name="zen_mode_summary_alarms_only_by_time" msgid="8140619669703968810">"Change to alarms only until <xliff:g id="FORMATTEDTIME">%1$s</xliff:g>"</string>
<string name="zen_mode_summary_always" msgid="722093064250082317">"Change to always interrupt"</string>
- <!-- no translation found for zen_mode_rename_title (8146882272966214558) -->
+ <string name="zen_mode_rename_title" msgid="8146882272966214558">"Edit mode"</string>
+ <string name="zen_mode_new_custom_title" msgid="321750898430776191">"Add mode"</string>
+ <string name="zen_mode_new_custom_default_name" msgid="2778307946775085105">"Custom mode"</string>
+ <string name="zen_mode_edit_name_hint" msgid="4584652062167540536">"Mode name"</string>
+ <string name="zen_mode_trigger_title_schedule_calendar" msgid="9206609438617550331">"Calendar events"</string>
+ <string name="zen_mode_trigger_title_bedtime" msgid="5086070900588489978">"Sleep schedule"</string>
+ <string name="zen_mode_trigger_title_driving" msgid="7890990983453164403">"While driving"</string>
+ <string name="zen_mode_trigger_title_generic" msgid="601273385119550420">"Linked to app"</string>
+ <string name="zen_mode_trigger_summary_settings_in_app" msgid="4860667191183702601">"Info and settings in <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+ <string name="zen_mode_trigger_summary_managed_by_app" msgid="8631011868193102098">"Managed by <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+ <string name="zen_mode_confirm_disable_title" msgid="1232297660775719796">"Disable mode"</string>
+ <string name="zen_mode_confirm_disable_message" msgid="7315541221665718491">"If you disable this feature, the mode will no longer work as intended and its settings will be hidden."</string>
+ <string name="zen_mode_action_disable" msgid="3552921561331044881">"Disable"</string>
+ <string name="zen_mode_confirm_enable_title" msgid="5683371335847448595">"Enable mode"</string>
+ <string name="zen_mode_confirm_enable_message" msgid="7017879133260011419">"If you enable this feature, the mode will activate automatically according to its schedule."</string>
+ <string name="zen_mode_action_enable" msgid="1161480633223176531">"Enable"</string>
+ <!-- no translation found for zen_mode_blurb_schedule_time (8223898702097484009) -->
<skip />
- <!-- no translation found for zen_mode_new_custom_title (321750898430776191) -->
+ <!-- no translation found for zen_mode_blurb_schedule_calendar (382177907856065945) -->
<skip />
- <!-- no translation found for zen_mode_new_custom_default_name (2778307946775085105) -->
+ <!-- no translation found for zen_mode_blurb_bedtime (6155075956151013457) -->
<skip />
- <!-- no translation found for zen_mode_edit_name_hint (4584652062167540536) -->
+ <!-- no translation found for zen_mode_blurb_driving (1316054379000667305) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_immersive (5884004861848687869) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_theater (2999237960059524225) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_managed (5473921634985032149) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_generic (3041601339807075625) -->
<skip />
<string name="warning_button_text" msgid="1274234338874005639">"Warning"</string>
<string name="suggestion_button_close" msgid="6865170855573283759">"Close"</string>
@@ -4849,9 +4860,8 @@
<string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"Battery"</string>
<string name="settings_panel_title" msgid="346363079938069215">"Settings Panel"</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>
+ <!-- no translation found for enable_desktop_mode_on_secondary_display (2609567824593768780) -->
+ <skip />
<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>
@@ -5026,7 +5036,6 @@
<string name="default_active_sim_mobile_data" msgid="6798083892814045301">"mobile data"</string>
<string name="wifi_scan_notify_message" msgid="1331238142061476869">"To improve device experience, apps and services can still scan for Wi‑Fi networks at any time, even when Wi‑Fi is off. This can be used, for example, to improve location-based features and services. You can change this in Wi‑Fi scanning settings."</string>
<string name="wifi_scan_change" msgid="8438320311511852918">"Change"</string>
- <string name="preference_summary_default_combination" msgid="4643585915107796253">"<xliff:g id="STATE">%1$s</xliff:g>/<xliff:g id="NETWORKMODE">%2$s</xliff:g>"</string>
<string name="mobile_data_connection_active" msgid="2422223108911581552">"Connected"</string>
<string name="mobile_data_temp_connection_active" msgid="3430470299756236413">"Temporarily connected"</string>
<string name="mobile_data_temp_using" msgid="5211002380149434155">"Temporarily using <xliff:g id="SUBNAME">%1$s</xliff:g>"</string>
@@ -5172,9 +5181,11 @@
<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="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_enable_freeform_support" msgid="3697462756493543645">"A reboot is required to enable freeform window support."</string>
+ <!-- no translation found for reboot_dialog_override_desktop_mode (7480950772574354130) -->
+ <skip />
+ <!-- no translation found for reboot_dialog_enable_desktop_mode_on_secondary_display (1153621881052401924) -->
+ <skip />
<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>
@@ -5292,10 +5303,8 @@
<string name="show_captions_enabled" msgid="7089043007924626">"On"</string>
<string name="live_caption_disabled" msgid="3562035026547887366">"Off"</string>
<string name="live_caption_enabled" msgid="5269360946200718949">"On"</string>
- <!-- no translation found for audio_seek_bar_state_left_first (8814986910920838972) -->
- <skip />
- <!-- no translation found for audio_seek_bar_state_right_first (1999368979633398876) -->
- <skip />
+ <string name="audio_seek_bar_state_left_first" msgid="8814986910920838972">"Audio %1$d%% left, %2$d%% right"</string>
+ <string name="audio_seek_bar_state_right_first" msgid="1999368979633398876">"Audio %1$d%% right, %2$d%% left"</string>
<string name="about_phone_device_name_warning" msgid="3243226572404472381">"Your device name is visible to apps you installed. It may also be seen by other people when you connect to Bluetooth devices, connect to a Wi-Fi network or set up a Wi-Fi hotspot."</string>
<string name="grammatical_gender_title" msgid="8584242850477270828">"Grammatical gender"</string>
<string name="grammatical_gender_dialog_title" msgid="8754048592099871587">"Select grammatical gender"</string>
@@ -5407,5 +5416,6 @@
<string name="audio_streams_main_page_password_dialog_join_button" msgid="2967747276379153408">"Listen to stream"</string>
<string name="audio_streams_main_page_qr_code_scanner_summary" msgid="5312980105735143360">"Scan an audio stream QR code to listen with <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
<string name="audio_streams_main_page_password_dialog_cannot_edit" msgid="9020898619297520153">"Can\'t edit password while sharing. To change the password, first turn off audio sharing."</string>
+ <string name="audio_streams_qr_code_scanner_label" msgid="8799703301071378034">"QR code scanner"</string>
<string name="homepage_search" msgid="6759334912284663559">"Search settings"</string>
</resources>
diff --git a/res/values-en-rIN/strings.xml b/res/values-en-rIN/strings.xml
index c802411..ae0c3ae 100644
--- a/res/values-en-rIN/strings.xml
+++ b/res/values-en-rIN/strings.xml
@@ -41,6 +41,8 @@
<string name="radioInfo_data_suspended" msgid="2001254415431299603">"Suspended"</string>
<string name="radioInfo_unknown" msgid="2892562356748600367">"unknown"</string>
<string name="preview_pager_content_description" msgid="3762247188224576303">"Preview"</string>
+ <!-- no translation found for qr_code_content_description (1852208464419291347) -->
+ <skip />
<string name="font_size_make_smaller_desc" msgid="4978038055549590140">"Make smaller"</string>
<string name="font_size_make_larger_desc" msgid="5583046033381722247">"Make larger"</string>
<string name="stay_awake_on_fold_title" msgid="6590454679898134221">"Always"</string>
@@ -283,7 +285,7 @@
<string name="location_settings_summary_location_off" msgid="4797932754681162262">"Off"</string>
<string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{On/# app has access to location}other{On/# apps have access to location}}"</string>
<string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"Loading…"</string>
- <string name="location_settings_footer_general" msgid="1040507068701188821">"Apps with the Nearby devices permission can determine the relative position of connected devices."</string>
+ <string name="location_settings_footer_general" msgid="3447585552176173502">"Apps with the Nearby devices permission can determine the relative position of connected devices."</string>
<string name="location_settings_footer_location_off" msgid="8568995909147566720">"Location access is off for apps and services. Your device location may still be sent to emergency responders when you call or text an emergency number."</string>
<string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Learn more about location settings"</string>
<string name="location_settings_tooltip_text_for_chrome" msgid="5781821709250544575">"To change, go to ChromeOS Settings > Privacy and security > Privacy controls > Location access"</string>
@@ -850,7 +852,6 @@
<string name="nfc_reboot_dialog_title" msgid="2033983438635768169">"Restart device?"</string>
<string name="nfc_reboot_dialog_message" msgid="4929353168157966992">"Detailed NFC logging is intended for development purposes only. Additional NFC data is included in bug reports, which may contain private information. Restart your device to change this setting."</string>
<string name="nfc_reboot_dialog_confirm" msgid="4769763632008584567">"Restart"</string>
- <string name="keywords_external_display" msgid="4181375057920134909">"mirror, external display, connected display, usb display, resolution, rotation"</string>
<string name="external_display_on" msgid="2560104443500154333">"On"</string>
<string name="external_display_off" msgid="5634413756025351374">"Off"</string>
<string name="external_display_settings_title" msgid="6256884595821605779">"External display"</string>
@@ -1918,6 +1919,8 @@
<string name="slow_keys_summary" msgid="1784371292745423292">"Adjusts the time that it takes for a key press to activate to <xliff:g id="SLOW_KEYS_THRESHOLD">%1$d</xliff:g> ms"</string>
<string name="sticky_keys" msgid="7317317044898161747">"Sticky keys"</string>
<string name="sticky_keys_summary" msgid="1844953803625480623">"Press one key at a time for shortcuts instead of holding keys down together"</string>
+ <string name="mouse_keys" msgid="6237254627808525540">"Mouse keys"</string>
+ <string name="mouse_keys_summary" msgid="2396247040177734245">"Use the physical keyboard to control the mouse."</string>
<string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"Keyboard shortcuts"</string>
<string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"Show list of shortcuts"</string>
<string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"Work profile keyboards & tools"</string>
@@ -1942,14 +1945,10 @@
<string name="pointer_fill_style_yellow_button" msgid="5025969961559379024">"Change pointer fill style to yellow"</string>
<string name="pointer_fill_style_pink_button" msgid="4106218142489635673">"Change pointer fill style to pink"</string>
<string name="pointer_fill_style_blue_button" msgid="5594958078854032785">"Change pointer fill style to blue"</string>
- <!-- no translation found for pointer_stroke_style (1886986630216050665) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_white (673686194443825383) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_black (4655806167067437330) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_none (8953927511729800247) -->
- <skip />
+ <string name="pointer_stroke_style" msgid="1886986630216050665">"Pointer stroke style"</string>
+ <string name="pointer_stroke_style_name_white" msgid="673686194443825383">"White"</string>
+ <string name="pointer_stroke_style_name_black" msgid="4655806167067437330">"Black"</string>
+ <string name="pointer_stroke_style_name_none" msgid="8953927511729800247">"None"</string>
<string name="trackpad_touch_gesture" msgid="8641725062131922497">"Learn touchpad gestures"</string>
<string name="keywords_touchpad" msgid="8159846254066666032">"trackpad, track pad, mouse, cursor, scroll, swipe, right-click, click, pointer"</string>
<string name="keywords_trackpad_bottom_right_tap" msgid="1285062446073929305">"right click, tap"</string>
@@ -2179,8 +2178,6 @@
<string name="accessibility_shortcut_edit_dialog_summary_floating_button" msgid="6266489864614886247">"Tap the floating button"</string>
<string name="accessibility_shortcut_edit_dialog_title_software_by_gesture" msgid="4775049370625630546">"Accessibility gesture"</string>
<string name="accessibility_shortcut_edit_dialog_summary_software" msgid="8315934725362849788">"Tap the Accessibility button <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g> at the bottom of your screen. To switch between features, touch and hold the Accessibility button."</string>
- <string name="accessibility_shortcut_edit_dialog_summary_software_gesture" msgid="8292555254353761635">"Swipe up from the bottom of the screen with two fingers.\n\nTo switch between features, swipe up with two fingers and hold."</string>
- <string name="accessibility_shortcut_edit_dialog_summary_software_gesture_talkback" msgid="84483464524360845">"Swipe up from the bottom of the screen with three fingers.\n\nTo switch between features, swipe up with three fingers and hold."</string>
<string name="accessibility_shortcut_edit_dialog_summary_gesture" msgid="2081123009255579884">"{count,plural, =1{Swipe up from the bottom of your screen. To switch between features, swipe up and hold.}other{Swipe up with # fingers from the bottom of your screen. To switch between features, swipe up with # fingers and hold.}}"</string>
<string name="accessibility_shortcut_edit_dialog_summary_software_floating" msgid="4459254227203203324"><annotation id="link">"More options"</annotation></string>
<string name="footer_learn_more_content_description" msgid="8843798273152131341">"Learn more about <xliff:g id="SERVICE">%1$s</xliff:g>"</string>
@@ -2191,16 +2188,12 @@
<string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="844089763968552142">"Volume keys"</string>
<string name="accessibility_shortcut_hardware_keyword" msgid="2483152542320987022">"volume keys"</string>
<string name="accessibility_shortcut_edit_dialog_summary_hardware" msgid="2503134386397991634">"Press and hold both volume keys"</string>
- <string name="accessibility_shortcut_edit_dialog_title_two_finger_double_tap" msgid="2271778556854020996">"Two-finger double-tap screen"</string>
<string name="accessibility_shortcut_edit_screen_title_two_finger_double_tap" msgid="8952595692906527694">"%1$d-finger double-tap"</string>
<string name="accessibility_shortcut_edit_screen_summary_two_finger_double_tap" msgid="385404127425496362">"Quickly tap the screen twice with %1$d fingers"</string>
<string name="accessibility_shortcut_edit_screen_title_triple_tap" msgid="3314488747597058942">"Triple-tap"</string>
<string name="accessibility_shortcut_edit_screen_summary_triple_tap" msgid="4839204951599629871">"Quickly tap the screen %1$d times. This may slow down your device."</string>
<string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="6271718715836961167">"%1$d-finger double-tap"</string>
- <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"Quickly tap screen {0,number,integer} times with two fingers"</string>
- <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"Triple-tap screen"</string>
<string name="accessibility_shortcut_triple_tap_keyword" msgid="5359347130888464334">"triple-tap"</string>
- <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"Quickly tap screen {0,number,integer} times. This shortcut may slow down your device"</string>
<string name="accessibility_shortcut_edit_dialog_title_advance" msgid="4567868630655591506">"Advanced"</string>
<string name="accessibility_screen_magnification_navbar_configuration_warning" msgid="266736851606791552">"The accessibility button is set to <xliff:g id="SERVICE">%1$s</xliff:g>. To use magnification, touch & hold the accessibility button, then select magnification."</string>
<string name="accessibility_screen_magnification_gesture_navigation_warning" msgid="991017769735632046">"The accessibility gesture is set to the <xliff:g id="SERVICE">%1$s</xliff:g>. To use magnification, swipe up with two fingers from the bottom of the screen and hold. Then select magnification."</string>
@@ -2369,6 +2362,7 @@
<string name="daltonizer_mode_tritanomaly_title" msgid="2278786218762602022">"Blue-yellow"</string>
<string name="daltonizer_mode_grayscale_title" msgid="152005391387952588">"Greyscale"</string>
<string name="daltonizer_saturation_title" msgid="2999486412114963068">"Intensity"</string>
+ <string name="daltonizer_saturation_unavailable_summary" msgid="8319753055567798775">"Unavailable for Greyscale mode or when colour correction is disabled"</string>
<string name="daltonizer_mode_deuteranomaly_summary" msgid="2117727423019598455">"Green weak, deuteranomaly"</string>
<string name="daltonizer_mode_protanomaly_summary" msgid="4617032854982040748">"Red weak, protanomaly"</string>
<string name="daltonizer_mode_tritanomaly_summary" msgid="2428218320118180070">"Tritanomaly"</string>
@@ -2418,15 +2412,8 @@
<string name="color_cyan" msgid="4341758639597035927">"Cyan"</string>
<string name="color_yellow" msgid="5957551912912679058">"Yellow"</string>
<string name="color_magenta" msgid="8943538189219528423">"Magenta"</string>
- <string name="enable_service_title" msgid="7231533866953706788">"Allow <xliff:g id="SERVICE">%1$s</xliff:g> to have full control of your device?"</string>
<string name="capabilities_list_title" msgid="1225853611983394386">"<xliff:g id="SERVICE">%1$s</xliff:g> needs to:"</string>
<string name="touch_filtered_warning" msgid="4225815157460318241">"Because an app is obscuring a permission request, Settings can’t verify your response."</string>
- <string name="accessibility_service_warning" msgid="6779187188736432618">"<xliff:g id="SERVICE">%1$s</xliff:g> is requesting full control of this device. The service can read the screen and act on behalf of users with accessibility needs. This level of control is not appropriate for most apps."</string>
- <string name="accessibility_service_warning_description" msgid="6573203795976134751">"Full control is appropriate for apps that help you with accessibility needs, but not for most apps."</string>
- <string name="accessibility_service_screen_control_title" msgid="324795030658109870">"View and control screen"</string>
- <string name="accessibility_service_screen_control_description" msgid="8431940515157990426">"It can read all content on the screen and display content over other apps."</string>
- <string name="accessibility_service_action_perform_title" msgid="1449360056585337833">"View and perform actions"</string>
- <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"It can track your interactions with an app or a hardware sensor, and interact with apps on your behalf."</string>
<string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Allow"</string>
<string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Deny"</string>
<string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Turn off"</string>
@@ -3368,10 +3355,8 @@
<string name="zen_mode_automation_settings_title" msgid="3709324184191870926">"Schedules"</string>
<string name="zen_mode_delete_automatic_rules" msgid="5020468289267191765">"Delete schedules"</string>
<string name="zen_mode_schedule_delete" msgid="5383420576833765114">"Delete"</string>
- <!-- no translation found for zen_mode_menu_rename_mode (4681802125016390837) -->
- <skip />
- <!-- no translation found for zen_mode_menu_delete_mode (5380084696402157428) -->
- <skip />
+ <string name="zen_mode_menu_rename_mode" msgid="4681802125016390837">"Rename"</string>
+ <string name="zen_mode_menu_delete_mode" msgid="5380084696402157428">"Delete"</string>
<string name="zen_mode_delete_mode_confirmation" msgid="7594340592051947392">"Delete \'<xliff:g id="MODE">%1$s</xliff:g>\' mode?"</string>
<string name="zen_mode_rule_name_edit" msgid="1053237022416700481">"Edit"</string>
<string name="zen_mode_automation_settings_page_title" msgid="6217433860514433311">"Schedules"</string>
@@ -3395,8 +3380,7 @@
<string name="zen_mode_visual_signals_settings_subtitle" msgid="7433077540895876672">"Allow visual signals"</string>
<string name="mode_interruption_filter_title" msgid="3343846700214702347">"Stay focused"</string>
<string name="mode_device_effects_title" msgid="5857008332618433744">"Additional actions"</string>
- <!-- no translation found for modes_sound_summary_off (6972648204528227879) -->
- <skip />
+ <string name="modes_sound_summary_off" msgid="6972648204528227879">"{count,plural, =0{Off}=1{Off/1 mode can turn on automatically}other{Off/# modes can turn on automatically}}"</string>
<string name="mode_display_settings_title" msgid="8132825978346535472">"Display settings"</string>
<string name="mode_display_options_section" msgid="5151597748243866532">"Display options"</string>
<string name="mode_grayscale_title" msgid="6027553257331235461">"Greyscale"</string>
@@ -3659,9 +3643,9 @@
<string name="notif_listener_not_migrated" msgid="6265206376374278226">"This app doesn’t support enhanced settings"</string>
<string name="notif_listener_more_settings" msgid="1348409392307208921">"More settings"</string>
<string name="notif_listener_more_settings_desc" msgid="7995492074281663658">"More settings are available inside this app"</string>
- <string name="notification_polite_title" msgid="4737150709382859870">"Adaptive notifications"</string>
- <string name="notification_polite_main_control_title" msgid="7267191551379543859">"Use adaptive notifications"</string>
- <string name="notification_polite_description" msgid="7749280535620291610">"When you get many notifications within a short time, your phone will lower volume and minimise pop-ups on screen for up to two minutes. Calls, alarms and priority conversations still vibrate, make a sound or show up on the screen, and all notifications are easy to find when you pull down from the top of the screen."</string>
+ <string name="notification_polite_title" msgid="6121016426991791557">"Notification cooldown"</string>
+ <string name="notification_polite_main_control_title" msgid="5812529809151927149">"Use notification cooldown"</string>
+ <string name="notification_polite_description" msgid="5497748284893832854">"When you receive many notifications within a short time, your device will lower its volume and minimise alerts for up to 2 minutes. Calls, alarms and priority conversations are not affected. \n\nNotifications received during the cooldown can be found by pulling down from the top of the screen."</string>
<string name="notification_polite_work" msgid="8823596456640216391">"Apply to work profiles"</string>
<string name="notification_polite_work_summary" msgid="5014189280132951378">"Apply to work profile apps"</string>
<string name="vr_listeners_title" msgid="4960357292472540964">"VR helper services"</string>
@@ -3818,7 +3802,9 @@
<string name="zen_mode_apps_priority_apps" msgid="7386196048313716076">"Selected apps"</string>
<string name="zen_mode_apps_none_apps" msgid="2493642312793604327">"None"</string>
<string name="zen_mode_apps_subtext" msgid="1764211974662012877">"{count,plural,offset:2 =0{No apps can interrupt}=1{{app_1} can interrupt}=2{{app_1} and {app_2} can interrupt}=3{{app_1}, {app_2} and {app_3} can interrupt}other{{app_1}, {app_2} and # more can interrupt}}"</string>
+ <string name="zen_mode_apps_work_app" msgid="8528767938316361588">"<xliff:g id="APP_LABEL">%s</xliff:g> (work)"</string>
<string name="zen_mode_apps_calculating" msgid="5420121396943539286">"Calculating…"</string>
+ <string name="zen_mode_plus_n_items" msgid="6136713354369243421">"+<xliff:g id="NUMBER">%d</xliff:g>"</string>
<string name="zen_mode_bypassing_apps" msgid="625309443389126481">"Allow apps to override"</string>
<string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"Apps that can interrupt"</string>
<string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"Select more apps"</string>
@@ -3836,6 +3822,7 @@
<string name="zen_mode_sounds_none" msgid="6557474361948269420">"Nothing can interrupt"</string>
<string name="zen_mode_people_none" msgid="4613147461974255046">"No one can interrupt"</string>
<string name="zen_mode_people_some" msgid="9101872681298810281">"Some people can interrupt"</string>
+ <string name="zen_mode_people_repeat_callers" msgid="4499084111069828761">"Repeat callers can interrupt"</string>
<string name="zen_mode_people_all" msgid="311036110283015205">"All people can interrupt"</string>
<string name="zen_mode_repeat_callers" msgid="2270356100287792138">"Repeat callers"</string>
<string name="zen_mode_repeat_callers_title" msgid="8016699240338264781">"Allow repeat callers"</string>
@@ -3855,13 +3842,37 @@
<string name="zen_mode_summary_alarms_only_by_hour" msgid="7400910210950788163">"{count,plural, =1{Change to alarms only for one hour until {time}}other{Change to alarms only for # hours until {time}}}"</string>
<string name="zen_mode_summary_alarms_only_by_time" msgid="8140619669703968810">"Change to alarms only until <xliff:g id="FORMATTEDTIME">%1$s</xliff:g>"</string>
<string name="zen_mode_summary_always" msgid="722093064250082317">"Change to always interrupt"</string>
- <!-- no translation found for zen_mode_rename_title (8146882272966214558) -->
+ <string name="zen_mode_rename_title" msgid="8146882272966214558">"Edit mode"</string>
+ <string name="zen_mode_new_custom_title" msgid="321750898430776191">"Add mode"</string>
+ <string name="zen_mode_new_custom_default_name" msgid="2778307946775085105">"Custom mode"</string>
+ <string name="zen_mode_edit_name_hint" msgid="4584652062167540536">"Mode name"</string>
+ <string name="zen_mode_trigger_title_schedule_calendar" msgid="9206609438617550331">"Calendar events"</string>
+ <string name="zen_mode_trigger_title_bedtime" msgid="5086070900588489978">"Sleep schedule"</string>
+ <string name="zen_mode_trigger_title_driving" msgid="7890990983453164403">"While driving"</string>
+ <string name="zen_mode_trigger_title_generic" msgid="601273385119550420">"Linked to app"</string>
+ <string name="zen_mode_trigger_summary_settings_in_app" msgid="4860667191183702601">"Info and settings in <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+ <string name="zen_mode_trigger_summary_managed_by_app" msgid="8631011868193102098">"Managed by <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+ <string name="zen_mode_confirm_disable_title" msgid="1232297660775719796">"Disable mode"</string>
+ <string name="zen_mode_confirm_disable_message" msgid="7315541221665718491">"If you disable this feature, the mode will no longer work as intended and its settings will be hidden."</string>
+ <string name="zen_mode_action_disable" msgid="3552921561331044881">"Disable"</string>
+ <string name="zen_mode_confirm_enable_title" msgid="5683371335847448595">"Enable mode"</string>
+ <string name="zen_mode_confirm_enable_message" msgid="7017879133260011419">"If you enable this feature, the mode will activate automatically according to its schedule."</string>
+ <string name="zen_mode_action_enable" msgid="1161480633223176531">"Enable"</string>
+ <!-- no translation found for zen_mode_blurb_schedule_time (8223898702097484009) -->
<skip />
- <!-- no translation found for zen_mode_new_custom_title (321750898430776191) -->
+ <!-- no translation found for zen_mode_blurb_schedule_calendar (382177907856065945) -->
<skip />
- <!-- no translation found for zen_mode_new_custom_default_name (2778307946775085105) -->
+ <!-- no translation found for zen_mode_blurb_bedtime (6155075956151013457) -->
<skip />
- <!-- no translation found for zen_mode_edit_name_hint (4584652062167540536) -->
+ <!-- no translation found for zen_mode_blurb_driving (1316054379000667305) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_immersive (5884004861848687869) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_theater (2999237960059524225) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_managed (5473921634985032149) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_generic (3041601339807075625) -->
<skip />
<string name="warning_button_text" msgid="1274234338874005639">"Warning"</string>
<string name="suggestion_button_close" msgid="6865170855573283759">"Close"</string>
@@ -4849,9 +4860,8 @@
<string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"Battery"</string>
<string name="settings_panel_title" msgid="346363079938069215">"Settings Panel"</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>
+ <!-- no translation found for enable_desktop_mode_on_secondary_display (2609567824593768780) -->
+ <skip />
<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>
@@ -5026,7 +5036,6 @@
<string name="default_active_sim_mobile_data" msgid="6798083892814045301">"mobile data"</string>
<string name="wifi_scan_notify_message" msgid="1331238142061476869">"To improve device experience, apps and services can still scan for Wi‑Fi networks at any time, even when Wi‑Fi is off. This can be used, for example, to improve location-based features and services. You can change this in Wi‑Fi scanning settings."</string>
<string name="wifi_scan_change" msgid="8438320311511852918">"Change"</string>
- <string name="preference_summary_default_combination" msgid="4643585915107796253">"<xliff:g id="STATE">%1$s</xliff:g>/<xliff:g id="NETWORKMODE">%2$s</xliff:g>"</string>
<string name="mobile_data_connection_active" msgid="2422223108911581552">"Connected"</string>
<string name="mobile_data_temp_connection_active" msgid="3430470299756236413">"Temporarily connected"</string>
<string name="mobile_data_temp_using" msgid="5211002380149434155">"Temporarily using <xliff:g id="SUBNAME">%1$s</xliff:g>"</string>
@@ -5172,9 +5181,11 @@
<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="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_enable_freeform_support" msgid="3697462756493543645">"A reboot is required to enable freeform window support."</string>
+ <!-- no translation found for reboot_dialog_override_desktop_mode (7480950772574354130) -->
+ <skip />
+ <!-- no translation found for reboot_dialog_enable_desktop_mode_on_secondary_display (1153621881052401924) -->
+ <skip />
<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>
@@ -5292,10 +5303,8 @@
<string name="show_captions_enabled" msgid="7089043007924626">"On"</string>
<string name="live_caption_disabled" msgid="3562035026547887366">"Off"</string>
<string name="live_caption_enabled" msgid="5269360946200718949">"On"</string>
- <!-- no translation found for audio_seek_bar_state_left_first (8814986910920838972) -->
- <skip />
- <!-- no translation found for audio_seek_bar_state_right_first (1999368979633398876) -->
- <skip />
+ <string name="audio_seek_bar_state_left_first" msgid="8814986910920838972">"Audio %1$d%% left, %2$d%% right"</string>
+ <string name="audio_seek_bar_state_right_first" msgid="1999368979633398876">"Audio %1$d%% right, %2$d%% left"</string>
<string name="about_phone_device_name_warning" msgid="3243226572404472381">"Your device name is visible to apps you installed. It may also be seen by other people when you connect to Bluetooth devices, connect to a Wi-Fi network or set up a Wi-Fi hotspot."</string>
<string name="grammatical_gender_title" msgid="8584242850477270828">"Grammatical gender"</string>
<string name="grammatical_gender_dialog_title" msgid="8754048592099871587">"Select grammatical gender"</string>
@@ -5407,5 +5416,6 @@
<string name="audio_streams_main_page_password_dialog_join_button" msgid="2967747276379153408">"Listen to stream"</string>
<string name="audio_streams_main_page_qr_code_scanner_summary" msgid="5312980105735143360">"Scan an audio stream QR code to listen with <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
<string name="audio_streams_main_page_password_dialog_cannot_edit" msgid="9020898619297520153">"Can\'t edit password while sharing. To change the password, first turn off audio sharing."</string>
+ <string name="audio_streams_qr_code_scanner_label" msgid="8799703301071378034">"QR code scanner"</string>
<string name="homepage_search" msgid="6759334912284663559">"Search settings"</string>
</resources>
diff --git a/res/values-en-rXC/strings.xml b/res/values-en-rXC/strings.xml
index db12c9d..33bc5da 100644
--- a/res/values-en-rXC/strings.xml
+++ b/res/values-en-rXC/strings.xml
@@ -41,6 +41,7 @@
<string name="radioInfo_data_suspended" msgid="2001254415431299603">"Suspended"</string>
<string name="radioInfo_unknown" msgid="2892562356748600367">"Unknown"</string>
<string name="preview_pager_content_description" msgid="3762247188224576303">"Preview"</string>
+ <string name="qr_code_content_description" msgid="1852208464419291347">"QR code"</string>
<string name="font_size_make_smaller_desc" msgid="4978038055549590140">"Make smaller"</string>
<string name="font_size_make_larger_desc" msgid="5583046033381722247">"Make larger"</string>
<string name="stay_awake_on_fold_title" msgid="6590454679898134221">"Always"</string>
@@ -283,7 +284,7 @@
<string name="location_settings_summary_location_off" msgid="4797932754681162262">"Off"</string>
<string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{On / # app has access to location}other{On / # apps have access to location}}"</string>
<string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"Loading…"</string>
- <string name="location_settings_footer_general" msgid="1040507068701188821">"Apps with the Nearby devices permission can determine the relative position of connected devices."</string>
+ <string name="location_settings_footer_general" msgid="3447585552176173502">"Apps with the nearby devices permission can determine the relative position of connected devices."</string>
<string name="location_settings_footer_location_off" msgid="8568995909147566720">"Location access is off for apps and services. Your device location may still be sent to emergency responders when you call or text an emergency number."</string>
<string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Learn more about Location settings"</string>
<string name="location_settings_tooltip_text_for_chrome" msgid="5781821709250544575">"To change go to ChromeOS Settings > Privacy and security > Privacy controls > Location access"</string>
@@ -850,7 +851,6 @@
<string name="nfc_reboot_dialog_title" msgid="2033983438635768169">"Restart Device?"</string>
<string name="nfc_reboot_dialog_message" msgid="4929353168157966992">"Detail NFC logging is intended for development purposes only. Additional NFC data is included in bug reports, which may contain private information. Restart your device to change this setting."</string>
<string name="nfc_reboot_dialog_confirm" msgid="4769763632008584567">"Restart"</string>
- <string name="keywords_external_display" msgid="4181375057920134909">"mirror, external display, connected display, usb display, resolution, rotation"</string>
<string name="external_display_on" msgid="2560104443500154333">"On"</string>
<string name="external_display_off" msgid="5634413756025351374">"Off"</string>
<string name="external_display_settings_title" msgid="6256884595821605779">"External Display"</string>
@@ -1918,6 +1918,8 @@
<string name="slow_keys_summary" msgid="1784371292745423292">"Adjusts the time it takes for a key press to activate to <xliff:g id="SLOW_KEYS_THRESHOLD">%1$d</xliff:g> ms"</string>
<string name="sticky_keys" msgid="7317317044898161747">"Sticky keys"</string>
<string name="sticky_keys_summary" msgid="1844953803625480623">"Press one key at a time for shortcuts instead of holding keys down together"</string>
+ <string name="mouse_keys" msgid="6237254627808525540">"Mouse keys"</string>
+ <string name="mouse_keys_summary" msgid="2396247040177734245">"Use the physical keyboard to control the mouse."</string>
<string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"Keyboard shortcuts"</string>
<string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"Show list of shortcuts"</string>
<string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"Work profile keyboards & tools"</string>
@@ -2175,8 +2177,6 @@
<string name="accessibility_shortcut_edit_dialog_summary_floating_button" msgid="6266489864614886247">"Tap the floating button"</string>
<string name="accessibility_shortcut_edit_dialog_title_software_by_gesture" msgid="4775049370625630546">"Accessibility gesture"</string>
<string name="accessibility_shortcut_edit_dialog_summary_software" msgid="8315934725362849788">"Tap the accessibility button <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g> at the bottom of your screen. To switch between features, touch & hold the accessibility button."</string>
- <string name="accessibility_shortcut_edit_dialog_summary_software_gesture" msgid="8292555254353761635">"Swipe up from the bottom of the screen with 2 fingers.\n\nTo switch between features, swipe up with 2 fingers and hold."</string>
- <string name="accessibility_shortcut_edit_dialog_summary_software_gesture_talkback" msgid="84483464524360845">"Swipe up from the bottom of the screen with 3 fingers.\n\nTo switch between features, swipe up with 3 fingers and hold."</string>
<string name="accessibility_shortcut_edit_dialog_summary_gesture" msgid="2081123009255579884">"{count,plural, =1{Swipe up from the bottom of your screen. To switch between features, swipe up and hold.}other{Swipe up with # fingers from the bottom of your screen. To switch between features, swipe up with # fingers and hold.}}"</string>
<string name="accessibility_shortcut_edit_dialog_summary_software_floating" msgid="4459254227203203324">""<annotation id="link">"More options"</annotation>""</string>
<string name="footer_learn_more_content_description" msgid="8843798273152131341">"Learn more about <xliff:g id="SERVICE">%1$s</xliff:g>"</string>
@@ -2187,16 +2187,12 @@
<string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="844089763968552142">"Volume keys"</string>
<string name="accessibility_shortcut_hardware_keyword" msgid="2483152542320987022">"volume keys"</string>
<string name="accessibility_shortcut_edit_dialog_summary_hardware" msgid="2503134386397991634">"Press & hold both volume keys"</string>
- <string name="accessibility_shortcut_edit_dialog_title_two_finger_double_tap" msgid="2271778556854020996">"Two-finger double-tap screen"</string>
<string name="accessibility_shortcut_edit_screen_title_two_finger_double_tap" msgid="8952595692906527694">"%1$d-finger double tap"</string>
<string name="accessibility_shortcut_edit_screen_summary_two_finger_double_tap" msgid="385404127425496362">"Quickly tap the screen twice with %1$d fingers"</string>
<string name="accessibility_shortcut_edit_screen_title_triple_tap" msgid="3314488747597058942">"Triple tap"</string>
<string name="accessibility_shortcut_edit_screen_summary_triple_tap" msgid="4839204951599629871">"Quickly tap the screen %1$d times. This may slow down your device."</string>
<string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="6271718715836961167">"%1$d-finger double tap"</string>
- <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"Quickly tap screen {0,number,integer} times with two fingers"</string>
- <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"Triple-tap screen"</string>
<string name="accessibility_shortcut_triple_tap_keyword" msgid="5359347130888464334">"triple tap"</string>
- <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"Quickly tap screen {0,number,integer} times. This shortcut may slow down your device"</string>
<string name="accessibility_shortcut_edit_dialog_title_advance" msgid="4567868630655591506">"Advanced"</string>
<string name="accessibility_screen_magnification_navbar_configuration_warning" msgid="266736851606791552">"The Accessibility button is set to <xliff:g id="SERVICE">%1$s</xliff:g>. To use magnification, touch & hold the Accessibility button, then select magnification."</string>
<string name="accessibility_screen_magnification_gesture_navigation_warning" msgid="991017769735632046">"The accessibility gesture is set to the <xliff:g id="SERVICE">%1$s</xliff:g>. To use magnification, swipe up with two fingers from the bottom of the screen and hold. Then select magnification."</string>
@@ -2365,6 +2361,7 @@
<string name="daltonizer_mode_tritanomaly_title" msgid="2278786218762602022">"Blue-yellow"</string>
<string name="daltonizer_mode_grayscale_title" msgid="152005391387952588">"Grayscale"</string>
<string name="daltonizer_saturation_title" msgid="2999486412114963068">"Intensity"</string>
+ <string name="daltonizer_saturation_unavailable_summary" msgid="8319753055567798775">"Unavailable for grayscale mode or when color correction is disabled"</string>
<string name="daltonizer_mode_deuteranomaly_summary" msgid="2117727423019598455">"Green weak, deuteranomaly"</string>
<string name="daltonizer_mode_protanomaly_summary" msgid="4617032854982040748">"Red weak, protanomaly"</string>
<string name="daltonizer_mode_tritanomaly_summary" msgid="2428218320118180070">"Tritanomaly"</string>
@@ -2414,15 +2411,8 @@
<string name="color_cyan" msgid="4341758639597035927">"Cyan"</string>
<string name="color_yellow" msgid="5957551912912679058">"Yellow"</string>
<string name="color_magenta" msgid="8943538189219528423">"Magenta"</string>
- <string name="enable_service_title" msgid="7231533866953706788">"Allow <xliff:g id="SERVICE">%1$s</xliff:g> to have full control of your device?"</string>
<string name="capabilities_list_title" msgid="1225853611983394386">"<xliff:g id="SERVICE">%1$s</xliff:g> needs to:"</string>
<string name="touch_filtered_warning" msgid="4225815157460318241">"Because an app is obscuring a permission request, Settings can’t verify your response."</string>
- <string name="accessibility_service_warning" msgid="6779187188736432618">"<xliff:g id="SERVICE">%1$s</xliff:g> is requesting full control of this device. The service can read the screen and act on behalf of users with accessibility needs. This level of control is not appropriate for most apps."</string>
- <string name="accessibility_service_warning_description" msgid="6573203795976134751">"Full control is appropriate for apps that help you with accessibility needs, but not for most apps."</string>
- <string name="accessibility_service_screen_control_title" msgid="324795030658109870">"View and control screen"</string>
- <string name="accessibility_service_screen_control_description" msgid="8431940515157990426">"It can read all content on the screen and display content over other apps."</string>
- <string name="accessibility_service_action_perform_title" msgid="1449360056585337833">"View and perform actions"</string>
- <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"It can track your interactions with an app or a hardware sensor, and interact with apps on your behalf."</string>
<string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Allow"</string>
<string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Deny"</string>
<string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Turn off"</string>
@@ -3652,9 +3642,9 @@
<string name="notif_listener_not_migrated" msgid="6265206376374278226">"This app doesn’t support enhanced settings"</string>
<string name="notif_listener_more_settings" msgid="1348409392307208921">"More settings"</string>
<string name="notif_listener_more_settings_desc" msgid="7995492074281663658">"More settings are available inside this app"</string>
- <string name="notification_polite_title" msgid="4737150709382859870">"Adaptive Notifications"</string>
- <string name="notification_polite_main_control_title" msgid="7267191551379543859">"Use adaptive notifications"</string>
- <string name="notification_polite_description" msgid="7749280535620291610">"When you get many notifications within a short time, your phone will lower volume and minimize pop-ups on screen for up to two minutes. Calls, alarms, and priority conversations still vibrate, make a sound, or show up on the screen, and all notifications are easy to find when you pull down from the top of the screen."</string>
+ <string name="notification_polite_title" msgid="6121016426991791557">"Notification cooldown"</string>
+ <string name="notification_polite_main_control_title" msgid="5812529809151927149">"Use notification cooldown"</string>
+ <string name="notification_polite_description" msgid="5497748284893832854">"When you receive many notifications within a short time, your device will lower its volume and minimize alerts for up to 2 minutes. Calls, alarms, and priority conversations are not affected. \n\nNotifications received during the cooldown can be found by pulling down from the top of the screen."</string>
<string name="notification_polite_work" msgid="8823596456640216391">"Apply to work profiles"</string>
<string name="notification_polite_work_summary" msgid="5014189280132951378">"Apply to work profile apps"</string>
<string name="vr_listeners_title" msgid="4960357292472540964">"VR helper services"</string>
@@ -3811,7 +3801,9 @@
<string name="zen_mode_apps_priority_apps" msgid="7386196048313716076">"Selected apps"</string>
<string name="zen_mode_apps_none_apps" msgid="2493642312793604327">"None"</string>
<string name="zen_mode_apps_subtext" msgid="1764211974662012877">"{count,plural,offset:2 =0{No apps can interrupt}=1{{app_1} can interrupt}=2{{app_1} and {app_2} can interrupt}=3{{app_1}, {app_2}, and {app_3} can interrupt}other{{app_1}, {app_2}, and # more can interrupt}}"</string>
+ <string name="zen_mode_apps_work_app" msgid="8528767938316361588">"<xliff:g id="APP_LABEL">%s</xliff:g> (Work)"</string>
<string name="zen_mode_apps_calculating" msgid="5420121396943539286">"Calculating…"</string>
+ <string name="zen_mode_plus_n_items" msgid="6136713354369243421">"+<xliff:g id="NUMBER">%d</xliff:g>"</string>
<string name="zen_mode_bypassing_apps" msgid="625309443389126481">"Allow apps to override"</string>
<string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"Apps that can interrupt"</string>
<string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"Select more apps"</string>
@@ -3829,6 +3821,7 @@
<string name="zen_mode_sounds_none" msgid="6557474361948269420">"Nothing can interrupt"</string>
<string name="zen_mode_people_none" msgid="4613147461974255046">"No one can interrupt"</string>
<string name="zen_mode_people_some" msgid="9101872681298810281">"Some people can interrupt"</string>
+ <string name="zen_mode_people_repeat_callers" msgid="4499084111069828761">"Repeat callers can interrupt"</string>
<string name="zen_mode_people_all" msgid="311036110283015205">"All people can interrupt"</string>
<string name="zen_mode_repeat_callers" msgid="2270356100287792138">"Repeat callers"</string>
<string name="zen_mode_repeat_callers_title" msgid="8016699240338264781">"Allow repeat callers"</string>
@@ -3852,6 +3845,26 @@
<string name="zen_mode_new_custom_title" msgid="321750898430776191">"Add mode"</string>
<string name="zen_mode_new_custom_default_name" msgid="2778307946775085105">"Custom mode"</string>
<string name="zen_mode_edit_name_hint" msgid="4584652062167540536">"Mode name"</string>
+ <string name="zen_mode_trigger_title_schedule_calendar" msgid="9206609438617550331">"Calendar events"</string>
+ <string name="zen_mode_trigger_title_bedtime" msgid="5086070900588489978">"Sleep schedule"</string>
+ <string name="zen_mode_trigger_title_driving" msgid="7890990983453164403">"While driving"</string>
+ <string name="zen_mode_trigger_title_generic" msgid="601273385119550420">"Linked to app"</string>
+ <string name="zen_mode_trigger_summary_settings_in_app" msgid="4860667191183702601">"Info and settings in <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+ <string name="zen_mode_trigger_summary_managed_by_app" msgid="8631011868193102098">"Managed by <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+ <string name="zen_mode_confirm_disable_title" msgid="1232297660775719796">"Disable Mode"</string>
+ <string name="zen_mode_confirm_disable_message" msgid="7315541221665718491">"If you disable this feature, the mode will no longer work as intended and its settings will be hidden."</string>
+ <string name="zen_mode_action_disable" msgid="3552921561331044881">"Disable"</string>
+ <string name="zen_mode_confirm_enable_title" msgid="5683371335847448595">"Enable Mode"</string>
+ <string name="zen_mode_confirm_enable_message" msgid="7017879133260011419">"If you enable this feature, the mode will activate automatically according to its schedule."</string>
+ <string name="zen_mode_action_enable" msgid="1161480633223176531">"Enable"</string>
+ <string name="zen_mode_blurb_schedule_time" msgid="8223898702097484009">"Set a mode that follows a regular schedule"</string>
+ <string name="zen_mode_blurb_schedule_calendar" msgid="382177907856065945">"Set a mode to sync with calendar events and invite responses"</string>
+ <string name="zen_mode_blurb_bedtime" msgid="6155075956151013457">"Design a calming sleep routine. Set alarms, dim the screen, and block notifications."</string>
+ <string name="zen_mode_blurb_driving" msgid="1316054379000667305">"Prioritize safety on the road for a focused and distraction-free drive"</string>
+ <string name="zen_mode_blurb_immersive" msgid="5884004861848687869">"Block distractions or interruptions from your device to gain focus"</string>
+ <string name="zen_mode_blurb_theater" msgid="2999237960059524225">"Eliminate all distractions for a quiet environment"</string>
+ <string name="zen_mode_blurb_managed" msgid="5473921634985032149">"Personalize device experiences and settings for different users"</string>
+ <string name="zen_mode_blurb_generic" msgid="3041601339807075625">"Minimize interruptions by only allowing important people and apps to reach you"</string>
<string name="warning_button_text" msgid="1274234338874005639">"Warning"</string>
<string name="suggestion_button_close" msgid="6865170855573283759">"Close"</string>
<string name="device_feedback" msgid="5351614458411688608">"Send feedback about this device"</string>
@@ -4838,9 +4851,8 @@
<string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"Battery"</string>
<string name="settings_panel_title" msgid="346363079938069215">"Settings Panel"</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>
+ <!-- no translation found for enable_desktop_mode_on_secondary_display (2609567824593768780) -->
+ <skip />
<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>
@@ -5015,7 +5027,6 @@
<string name="default_active_sim_mobile_data" msgid="6798083892814045301">"mobile data"</string>
<string name="wifi_scan_notify_message" msgid="1331238142061476869">"To improve device experience, apps and services can still scan for Wi‑Fi networks at any time, even when Wi‑Fi is off. This can be used, for example, to improve location-based features and services. You can change this in Wi‑Fi scanning settings."</string>
<string name="wifi_scan_change" msgid="8438320311511852918">"Change"</string>
- <string name="preference_summary_default_combination" msgid="4643585915107796253">"<xliff:g id="STATE">%1$s</xliff:g> / <xliff:g id="NETWORKMODE">%2$s</xliff:g>"</string>
<string name="mobile_data_connection_active" msgid="2422223108911581552">"Connected"</string>
<string name="mobile_data_temp_connection_active" msgid="3430470299756236413">"Temporarily connected"</string>
<string name="mobile_data_temp_using" msgid="5211002380149434155">"Temporarily using <xliff:g id="SUBNAME">%1$s</xliff:g>"</string>
@@ -5161,9 +5172,11 @@
<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="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_enable_freeform_support" msgid="3697462756493543645">"A reboot is required to enable freeform window support."</string>
+ <!-- no translation found for reboot_dialog_override_desktop_mode (7480950772574354130) -->
+ <skip />
+ <!-- no translation found for reboot_dialog_enable_desktop_mode_on_secondary_display (1153621881052401924) -->
+ <skip />
<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>
@@ -5394,5 +5407,6 @@
<string name="audio_streams_main_page_password_dialog_join_button" msgid="2967747276379153408">"Listen to stream"</string>
<string name="audio_streams_main_page_qr_code_scanner_summary" msgid="5312980105735143360">"Scan an audio stream QR code to listen with <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
<string name="audio_streams_main_page_password_dialog_cannot_edit" msgid="9020898619297520153">"Can\'t edit password while sharing. To change the password, first turn off audio sharing."</string>
+ <string name="audio_streams_qr_code_scanner_label" msgid="8799703301071378034">"QR code scanner"</string>
<string name="homepage_search" msgid="6759334912284663559">"Search Settings"</string>
</resources>
diff --git a/res/values-es-feminine/strings.xml b/res/values-es-feminine/strings.xml
new file mode 100644
index 0000000..74422ea
--- /dev/null
+++ b/res/values-es-feminine/strings.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2007 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="vpn_replace_vpn_message" msgid="1094297700371463386">"Ya estás conectada a una red VPN. Si te conectas a otra, esta sustituirá a la VPN actual."</string>
+ <string name="vpn_lockdown_summary" msgid="4700625960550559029">"Selecciona un perfil de VPN para permanecer conectada de forma continua. Solo se permitirá el tráfico de red cuando estés conectada a esta red VPN."</string>
+ <string name="vpn_disconnected" msgid="7694522069957717501">"Desconectada de la VPN"</string>
+</resources>
diff --git a/res/values-es-masculine/strings.xml b/res/values-es-masculine/strings.xml
new file mode 100644
index 0000000..c51039a
--- /dev/null
+++ b/res/values-es-masculine/strings.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2007 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="vpn_replace_vpn_message" msgid="1094297700371463386">"Ya estás conectado a una red VPN. Si te conectas a otra, esta sustituirá a la VPN actual."</string>
+ <string name="vpn_lockdown_summary" msgid="4700625960550559029">"Selecciona un perfil de VPN para permanecer conectado de forma continua. Solo se permitirá el tráfico de red cuando estés conectado a esta red VPN."</string>
+ <string name="vpn_disconnected" msgid="7694522069957717501">"Desconectado de la VPN"</string>
+</resources>
diff --git a/res/values-es-neuter/strings.xml b/res/values-es-neuter/strings.xml
new file mode 100644
index 0000000..7d39b24
--- /dev/null
+++ b/res/values-es-neuter/strings.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2007 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="vpn_replace_vpn_message" msgid="1094297700371463386">"Ya te has conectado a una red VPN. Si te conectas a otra, esta sustituirá a la VPN actual."</string>
+ <string name="vpn_lockdown_summary" msgid="4700625960550559029">"Selecciona un perfil de VPN para mantener la conexión de forma continua. Solo se permitirá el tráfico de red cuando tengas conexión a esta red VPN."</string>
+ <string name="vpn_disconnected" msgid="7694522069957717501">"Te has desconectado de la VPN"</string>
+</resources>
diff --git a/res/values-es-rUS-feminine/strings.xml b/res/values-es-rUS-feminine/strings.xml
new file mode 100644
index 0000000..220e78c
--- /dev/null
+++ b/res/values-es-rUS-feminine/strings.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2007 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="show_dev_countdown" msgid="2936506773086395069">"{count,plural, =1{Ahora estás a # paso de convertirte en desarrolladora.}other{Ahora estás a # pasos de convertirte en desarrolladora.}}"</string>
+ <string name="show_dev_on" msgid="2840850085134853754">"¡Ya eres desarrolladora!"</string>
+ <string name="show_dev_already" msgid="7041756429707644630">"No es necesario. Ya eres desarrolladora."</string>
+ <string name="vpn_replace_vpn_message" msgid="1094297700371463386">"Ya estás conectada a una VPN. Si te conectas a otra, se reemplazará la VPN actual."</string>
+ <string name="vpn_always_on_summary" msgid="2171252372476858166">"Mantente siempre conectada a la VPN"</string>
+ <string name="vpn_lockdown_summary" msgid="4700625960550559029">"Selecciona el perfil de la VPN con la que deseas establecer una conexión ininterrumpida. El tráfico de red solo se permitirá cuando estés conectada a esta VPN."</string>
+ <string name="guest_category_title" msgid="5562663588315329152">"Invitada (tú)"</string>
+</resources>
diff --git a/res/values-es-rUS-masculine/strings.xml b/res/values-es-rUS-masculine/strings.xml
new file mode 100644
index 0000000..dc69848
--- /dev/null
+++ b/res/values-es-rUS-masculine/strings.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2007 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="show_dev_countdown" msgid="2936506773086395069">"{count,plural, =1{Ahora estás a # paso de convertirte en desarrollador.}other{Ahora estás a # pasos de convertirte en desarrollador.}}"</string>
+ <string name="show_dev_on" msgid="2840850085134853754">"¡Ya eres desarrollador!"</string>
+ <string name="show_dev_already" msgid="7041756429707644630">"No es necesario. Ya eres desarrollador."</string>
+ <string name="vpn_replace_vpn_message" msgid="1094297700371463386">"Ya estás conectado a una VPN. Si te conectas a otra, se reemplazará la VPN actual."</string>
+ <string name="vpn_always_on_summary" msgid="2171252372476858166">"Mantente siempre conectado a la VPN"</string>
+ <string name="vpn_lockdown_summary" msgid="4700625960550559029">"Selecciona el perfil de la VPN con la que deseas establecer una conexión ininterrumpida. El tráfico de red solo se permitirá cuando estés conectado a esta VPN."</string>
+ <string name="guest_category_title" msgid="5562663588315329152">"Invitado (tú)"</string>
+</resources>
diff --git a/res/values-es-rUS-neuter/strings.xml b/res/values-es-rUS-neuter/strings.xml
new file mode 100644
index 0000000..12d564c
--- /dev/null
+++ b/res/values-es-rUS-neuter/strings.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2007 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="show_dev_countdown" msgid="2936506773086395069">"{count,plural, =1{Ahora estás a # paso de activar las opciones para desarrolladores.}other{Ahora estás a # pasos de activar las opciones para desarrolladores.}}"</string>
+ <string name="show_dev_on" msgid="2840850085134853754">"¡Ya eres desarrollador!"</string>
+ <string name="show_dev_already" msgid="7041756429707644630">"No es necesario. Ya eres desarrollador."</string>
+ <string name="vpn_replace_vpn_message" msgid="1094297700371463386">"Ya te conectaste a una VPN. Si te conectas a otra, se reemplazará la VPN actual."</string>
+ <string name="vpn_always_on_summary" msgid="2171252372476858166">"Mantén siempre conexión a la VPN"</string>
+ <string name="vpn_lockdown_summary" msgid="4700625960550559029">"Selecciona el perfil de la VPN con la que deseas establecer una conexión ininterrumpida. El tráfico de red solo se permitirá cuando tengas conexión a esta VPN."</string>
+ <string name="guest_category_title" msgid="5562663588315329152">"Invitado (tú)"</string>
+</resources>
diff --git a/res/values-es-rUS/arrays.xml b/res/values-es-rUS/arrays.xml
index c6e9f86..baae36a 100644
--- a/res/values-es-rUS/arrays.xml
+++ b/res/values-es-rUS/arrays.xml
@@ -372,10 +372,10 @@
<item msgid="2397017538263427575">"Manual"</item>
</string-array>
<string-array name="vpn_states">
- <item msgid="2262719249581510939">"Desconectado"</item>
+ <item msgid="2262719249581510939">"Desconectada"</item>
<item msgid="9141074028293812365">"Iniciando..."</item>
<item msgid="2234425878608626285">"Conectando..."</item>
- <item msgid="27547778933579155">"Conectado"</item>
+ <item msgid="27547778933579155">"Conectada"</item>
<item msgid="893506841727300393">"Tiempo de espera agotado"</item>
<item msgid="2974952010554140659">"Incorrecta"</item>
</string-array>
@@ -429,7 +429,7 @@
</string-array>
<string-array name="autofill_logging_level_entries">
<item msgid="2263571982739726576">"Desactivado"</item>
- <item msgid="4295717421282345505">"Depurado"</item>
+ <item msgid="4295717421282345505">"Depuración"</item>
<item msgid="8657797891533816070">"Detallado"</item>
</string-array>
<string-array name="cdma_system_select_choices">
diff --git a/res/values-es-rUS/strings.xml b/res/values-es-rUS/strings.xml
index bd39166..c345e25 100644
--- a/res/values-es-rUS/strings.xml
+++ b/res/values-es-rUS/strings.xml
@@ -24,9 +24,9 @@
<string name="confirmation_turn_on" msgid="2979094011928347665">"Activar"</string>
<string name="device_info_default" msgid="1406619232867343310">"Desconocido"</string>
<string name="device_info_protected_single_press" msgid="3810785480060743677">"Presiona para obtener más información"</string>
- <string name="show_dev_countdown" msgid="2936506773086395069">"{count,plural, =1{Ahora estás a # paso de activar las opciones para desarrolladores}other{Ahora estás a # pasos de activar las opciones para desarrolladores}}"</string>
+ <string name="show_dev_countdown" msgid="2936506773086395069">"{count,plural, =1{Ahora estás a # paso de activar las opciones para desarrolladores.}other{Ahora estás a # pasos de activar las opciones para desarrolladores.}}"</string>
<string name="show_dev_on" msgid="2840850085134853754">"¡Ya eres desarrollador!"</string>
- <string name="show_dev_already" msgid="7041756429707644630">"No es necesario, ya eres desarrollador."</string>
+ <string name="show_dev_already" msgid="7041756429707644630">"No es necesario. Ya eres desarrollador."</string>
<string name="dev_settings_disabled_warning" msgid="6971867026249671244">"Primero habilita las opciones para programador."</string>
<string name="dev_settings_available_to_admin_only_warning" msgid="3408243404879083111">"Solo los usuarios administradores pueden acceder a la configuración para desarrolladores."</string>
<string name="header_category_system" msgid="1665516346845259058">"Sistema"</string>
@@ -41,6 +41,8 @@
<string name="radioInfo_data_suspended" msgid="2001254415431299603">"Suspendido"</string>
<string name="radioInfo_unknown" msgid="2892562356748600367">"Desconocida"</string>
<string name="preview_pager_content_description" msgid="3762247188224576303">"Vista previa"</string>
+ <!-- no translation found for qr_code_content_description (1852208464419291347) -->
+ <skip />
<string name="font_size_make_smaller_desc" msgid="4978038055549590140">"Reducir el tamaño"</string>
<string name="font_size_make_larger_desc" msgid="5583046033381722247">"Aumentar el tamaño"</string>
<string name="stay_awake_on_fold_title" msgid="6590454679898134221">"Siempre"</string>
@@ -283,7 +285,7 @@
<string name="location_settings_summary_location_off" msgid="4797932754681162262">"Desactivada"</string>
<string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{Activada: # app tiene acceso a la ubicación}other{Activada: # apps tienen acceso a la ubicación}}"</string>
<string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"Cargando…"</string>
- <string name="location_settings_footer_general" msgid="1040507068701188821">"Las apps que tienen el permiso de dispositivos cercanos pueden determinar la posición relativa de los dispositivos conectados."</string>
+ <string name="location_settings_footer_general" msgid="3447585552176173502">"Las apps que tienen el permiso de dispositivos cercanos pueden determinar la posición relativa de los dispositivos conectados."</string>
<string name="location_settings_footer_location_off" msgid="8568995909147566720">"El acceso a la ubicación está desactivado para las apps y los servicios. Todavía se puede enviar la ubicación del dispositivo a los servicios de emergencia cuando llamas o mandas un mensaje a un número de emergencia."</string>
<string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Más información sobre la configuración de la ubicación"</string>
<string name="location_settings_tooltip_text_for_chrome" msgid="5781821709250544575">"Para cambiar, ve a la configuración de ChromeOS > Privacidad y seguridad > Controles de privacidad > Acceso a la ubicación"</string>
@@ -370,7 +372,7 @@
<string name="security_settings_fingerprint_enroll_introduction_title_unlock_disabled" msgid="1911710308293783998">"Usa tus huellas dactilares"</string>
<string name="security_settings_fingerprint_settings_footer_learn_more" msgid="2508322993726483601">"Más información sobre Desbloqueo con huellas dactilares"</string>
<string name="security_settings_fingerprint_enroll_introduction_footer_title_1" msgid="6808124116419325722">"Tú tienes el control"</string>
- <string name="security_settings_fingerprint_enroll_introduction_footer_title_consent_1" msgid="1122676690472680734">"Tanto tú como tu hijo tienen el control"</string>
+ <string name="security_settings_fingerprint_enroll_introduction_footer_title_consent_1" msgid="1122676690472680734">"Tanto tú como tu hijo o hija tienen el control"</string>
<string name="security_settings_fingerprint_enroll_introduction_footer_title_2" msgid="5663733424583416266">"Para tener en cuenta"</string>
<string name="security_settings_fingerprint_enroll_introduction_message_unlock_disabled" msgid="8957789840251747092">"Usa tu huella dactilar para desbloquear el teléfono o aprobar compras.\n\nNota: No puedes usar tu huella dactilar para desbloquear este dispositivo. Para obtener más información, comunícate con el administrador de la organización."</string>
<string name="security_settings_fingerprint_enroll_introduction_cancel" msgid="6086532316718920562">"Cancelar"</string>
@@ -399,7 +401,7 @@
<string name="biometric_settings_use_face_fingerprint_or_watch_preference_summary" msgid="188805113048792007">"Con rostro, huella dactilar o reloj"</string>
<string name="biometric_settings_use_watch_preference_summary" msgid="2311453276747908475">"Con reloj"</string>
<string name="security_settings_activeunlock_require_face_fingerprint_setup_title" msgid="8776904312629209685">"Primero configura Desbloqueo facial o con huellas dactilares"</string>
- <string name="security_settings_activeunlock_require_face_fingerprint_setup_message" msgid="1669326067732567911">"Puedes usar el reloj para desbloquear el dispositivo cuando no se reconozcan tu rostro ni tu huella dactilar."</string>
+ <string name="security_settings_activeunlock_require_face_fingerprint_setup_message" msgid="1669326067732567911">"Puedes desbloquear con el reloj cuando no se reconozcan tu rostro ni tu huella dactilar"</string>
<string name="security_settings_activeunlock_require_fingerprint_setup_title" msgid="6703703635881050623">"Primero configura Desbloqueo con huellas dactilares"</string>
<string name="security_settings_activeunlock_require_fingerprint_setup_message" msgid="4966813766409918392">"Puedes desbloquear con el reloj cuando no se reconozca tu huella dactilar"</string>
<string name="security_settings_activeunlock_require_face_setup_title" msgid="1428795376597739880">"Primero configura Desbloqueo facial"</string>
@@ -476,7 +478,7 @@
<string name="security_settings_fingerprint_enroll_dialog_delete" msgid="6027141901007342389">"Borrar"</string>
<string name="security_settings_fingerprint_enroll_start_title" msgid="7391368057800077604">"Toca el sensor"</string>
<string name="security_settings_fingerprint_enroll_start_message" msgid="5010227772754175346">"Coloca el dedo en el sensor y levántalo cuando sientas una vibración."</string>
- <string name="security_settings_udfps_enroll_start_message" msgid="5032954588171487566">"Mantén toda la huella dactilar en el sensor hasta que notes una vibración"</string>
+ <string name="security_settings_udfps_enroll_start_message" msgid="5032954588171487566">"Mantén toda la huella dactilar en el sensor hasta que notes una vibración."</string>
<string name="security_settings_sfps_enroll_start_message" msgid="9054672627477685212">"Sin presionar el botón, mantén la huella dactilar en el sensor hasta que sientas una vibración.\n\nMueve un poco el dedo cada vez. Esto permite capturar más superficie de tu huella dactilar."</string>
<string name="security_settings_fingerprint_enroll_udfps_title" msgid="6665610134560896895">"Mantén presionado el sensor de huellas dactilares"</string>
<string name="security_settings_fingerprint_enroll_repeat_title" msgid="9172202128243545021">"Levanta el dedo y vuelve a tocar"</string>
@@ -776,7 +778,7 @@
<string name="lock_last_pin_attempt_before_wipe_profile" msgid="7086428013814722436">"Si ingresas un PIN incorrecto en el próximo intento, se borrarán tu perfil de trabajo y sus datos"</string>
<string name="lock_last_password_attempt_before_wipe_profile" msgid="253673907244112643">"Si ingresas una contraseña incorrecta en el próximo intento, se borrarán tu perfil de trabajo y sus datos"</string>
<string name="lockpassword_password_too_short" msgid="1938086368137797700">"{count,plural, =1{Debe tener al menos # carácter}other{Debe tener al menos # caracteres}}"</string>
- <string name="lockpassword_password_too_short_all_numeric" msgid="4301294924022401502">"{count,plural, =1{Si solo se usan números, debe ser de al menos 1 dígito}other{Si solo se usan números, deben ser de al menos # dígitos}}"</string>
+ <string name="lockpassword_password_too_short_all_numeric" msgid="4301294924022401502">"{count,plural, =1{Si solo se usan números, debe ser de al menos 1 dígito}other{Si solo se usan números, debe ser de al menos # dígitos}}"</string>
<string name="lockpassword_pin_too_short" msgid="8910105226463085689">"{count,plural, =1{El PIN debe tener al menos # dígito}other{El PIN debe tener al menos # dígitos}}"</string>
<string name="lockpassword_pin_too_short_autoConfirm_extra_message" msgid="3271351502900762571">"{count,plural, =1{El PIN debe tener al menos # dígito, pero se recomienda un PIN de {minAutoConfirmLen} dígitos para mayor seguridad}other{El PIN debe tener al menos # dígitos, pero se recomienda un PIN de {minAutoConfirmLen} dígitos para mayor seguridad}}"</string>
<string name="lockpassword_password_too_long" msgid="1940345313260498308">"{count,plural, =1{Debe tener menos de # carácter}other{Debe tener menos de # caracteres}}"</string>
@@ -789,7 +791,7 @@
<string name="lockpassword_password_requires_numeric" msgid="3886918493600507548">"{count,plural, =1{Debe tener al menos 1 dígito numérico}other{Debe tener al menos # dígitos numéricos}}"</string>
<string name="lockpassword_password_requires_symbols" msgid="2904870551002210131">"{count,plural, =1{Debe tener al menos 1 símbolo especial}other{Debe tener al menos # símbolos especiales}}"</string>
<string name="lockpassword_password_requires_nonletter" msgid="1185342065898300006">"{count,plural, =1{Debe tener al menos 1 carácter que no sea una letra}other{Debe tener al menos # caracteres que no sean letras}}"</string>
- <string name="lockpassword_password_requires_nonnumerical" msgid="389687423482993365">"{count,plural, =1{Debe tener al menos 1 carácter no numérico}other{Debe tener al menos # caracteres no numéricos}}"</string>
+ <string name="lockpassword_password_requires_nonnumerical" msgid="389687423482993365">"{count,plural, =1{Debe tener al menos 1 carácter no numérico}other{Debe tener al menos # de caracteres no numéricos}}"</string>
<string name="lockpassword_password_recently_used" msgid="5341218079730167191">"El administrador del dispositivo no permite el uso de contraseñas recientes"</string>
<string name="lockpassword_pin_no_sequential_digits" msgid="5843639256988031272">"No se permiten secuencias de dígitos ascendentes, descendentes ni repetidas"</string>
<string name="lockpassword_confirm_label" msgid="560897521093566777">"Confirmar"</string>
@@ -850,7 +852,6 @@
<string name="nfc_reboot_dialog_title" msgid="2033983438635768169">"¿Quieres reiniciar el dispositivo?"</string>
<string name="nfc_reboot_dialog_message" msgid="4929353168157966992">"El registro detallado de NFC está destinado únicamente a fines de desarrollo. Se incluyen datos de NFC adicionales en los informes de errores, que podrían contener información privada. Reinicia el dispositivo para cambiar la configuración."</string>
<string name="nfc_reboot_dialog_confirm" msgid="4769763632008584567">"Reiniciar"</string>
- <string name="keywords_external_display" msgid="4181375057920134909">"duplicar, pantalla externa, pantalla conectada, pantalla USB, resolución, rotación"</string>
<string name="external_display_on" msgid="2560104443500154333">"Activado"</string>
<string name="external_display_off" msgid="5634413756025351374">"Desactivado"</string>
<string name="external_display_settings_title" msgid="6256884595821605779">"Pantalla externa"</string>
@@ -1201,7 +1202,7 @@
<string name="screen_resolution_selected_a11y" msgid="6158451180032224977">"Seleccionada"</string>
<string name="color_mode_title" msgid="8666690832113906028">"Colores"</string>
<string name="color_mode_option_natural" msgid="6192875655101283303">"Naturales"</string>
- <string name="color_mode_option_boosted" msgid="4698797857766774289">"Mejorados"</string>
+ <string name="color_mode_option_boosted" msgid="4698797857766774289">"Potenciado"</string>
<string name="color_mode_option_saturated" msgid="3413853820158447300">"Saturados"</string>
<string name="color_mode_option_automatic" msgid="2281217686509980870">"Automáticos"</string>
<string name="brightness" msgid="6216871641021779698">"Nivel de brillo"</string>
@@ -1425,10 +1426,10 @@
<string name="storage_wizard_format_progress_title" msgid="9170393018855949774">"Formateando dispositivo (<xliff:g id="NAME">^1</xliff:g>)…"</string>
<string name="storage_wizard_format_progress_body" msgid="1044024044955390417">"No extraigas <xliff:g id="NAME">^1</xliff:g> durante el proceso de formateo."</string>
<string name="storage_wizard_ready_title" msgid="3631022511474086605">"Formateo de <xliff:g id="NAME">^1</xliff:g>"</string>
- <string name="storage_wizard_move_confirm_title" msgid="6812469630804101590">"Transferir la aplicación <xliff:g id="APP">^1</xliff:g>"</string>
+ <string name="storage_wizard_move_confirm_title" msgid="6812469630804101590">"Mover <xliff:g id="APP">^1</xliff:g>"</string>
<string name="storage_wizard_move_confirm_body" msgid="1713022828842263574">"Transferir la aplicación <xliff:g id="APP">^1</xliff:g> y los datos relacionados al dispositivo <xliff:g id="NAME_0">^2</xliff:g> solo demorará un momento. Hasta que no se complete la transferencia, no podrás usar la aplicación. \n\nNo extraigas el dispositivo <xliff:g id="NAME_1">^2</xliff:g> durante el proceso."</string>
<string name="storage_wizard_move_unlock" msgid="14651384927767749">"Para transferir datos, debes desbloquear al usuario <xliff:g id="APP">^1</xliff:g>."</string>
- <string name="storage_wizard_move_progress_title" msgid="3912406225614672391">"Transfiriendo la aplicación <xliff:g id="APP">^1</xliff:g>…"</string>
+ <string name="storage_wizard_move_progress_title" msgid="3912406225614672391">"Transfiriendo <xliff:g id="APP">^1</xliff:g>…"</string>
<string name="storage_wizard_move_progress_body" msgid="2396714553394935094">"Durante el proceso, no extraigas el dispositivo <xliff:g id="NAME">^1</xliff:g>. \n\nLa aplicación <xliff:g id="APP">^2</xliff:g> estará disponible en este dispositivo cuando se complete el proceso."</string>
<string name="storage_wizard_init_v2_title" msgid="2538630338392381113">"¿Cómo usarás <xliff:g id="NAME">^1</xliff:g>?"</string>
<string name="storage_wizard_init_v2_or" msgid="5558706089661158026">"O bien"</string>
@@ -1438,7 +1439,7 @@
<string name="storage_wizard_init_v2_later" msgid="5366815913892609285">"Configurar más tarde"</string>
<string name="storage_wizard_format_confirm_v2_title" msgid="6294104100437326067">"¿Quieres formatear <xliff:g id="NAME">^1</xliff:g>?"</string>
<string name="storage_wizard_format_confirm_v2_body" msgid="635958708974709506">"Debes formatear <xliff:g id="NAME_0">^1</xliff:g> para poder almacenar apps, archivos y contenido multimedia. \n\nEl formateo borrará todo el contenido existente en <xliff:g id="NAME_1">^2</xliff:g>. Para no perderlo, crea una copia de seguridad en otro dispositivo (como <xliff:g id="NAME_2">^3</xliff:g>)."</string>
- <string name="storage_wizard_format_confirm_v2_body_external" msgid="5810296966099830035">"Debe formatearse ste dispositivo (<xliff:g id="NAME_0">^1</xliff:g>) para almacenar fotos, videos, música y mucho más. \n\nCuando lo formatees, se borrará todo el contenido existente en <xliff:g id="NAME_1">^2</xliff:g>. Para no perder el contenido, crea una copia de seguridad en otro dispositivo (<xliff:g id="NAME_2">^3</xliff:g> u otros)."</string>
+ <string name="storage_wizard_format_confirm_v2_body_external" msgid="5810296966099830035">"Este dispositivo (<xliff:g id="NAME_0">^1</xliff:g>) debe formatearse para que pueda almacenar fotos, videos, música y mucho más. \n\nAl formatear, se borrará todo el contenido existente en la <xliff:g id="NAME_1">^2</xliff:g>. Para no perder el contenido, crea una copia de seguridad en una <xliff:g id="NAME_2">^3</xliff:g> distinta o en otro dispositivo."</string>
<string name="storage_wizard_format_confirm_v2_action" msgid="5718254101386377126">"Formatear <xliff:g id="NAME">^1</xliff:g>"</string>
<string name="storage_wizard_migrate_v2_title" msgid="3471564531564756698">"¿Transferir el contenido a <xliff:g id="NAME">^1</xliff:g>?"</string>
<string name="storage_wizard_migrate_v2_checklist" msgid="2618258869444553060">"Durante la transferencia:"</string>
@@ -1706,7 +1707,7 @@
<string name="lockpattern_recording_inprogress" msgid="7268008332694009191">"Levanta el dedo cuando termines."</string>
<string name="lockpattern_recording_incorrect_too_short" msgid="3351522018450593723">"Une al menos <xliff:g id="NUMBER">%d</xliff:g> puntos. Vuelve a intentarlo."</string>
<string name="lockpattern_pattern_entered_header" msgid="7709618312713127249">"Patrón registrado"</string>
- <string name="lockpattern_need_to_confirm" msgid="6489499109451714360">"Vuelve a trazar el patrón para confirmarlo"</string>
+ <string name="lockpattern_need_to_confirm" msgid="6489499109451714360">"Vuelve a trazar el patrón para confirmarlo."</string>
<string name="lockpattern_pattern_confirmed_header" msgid="2969990617475456153">"Patrón de desbloqueo nuevo"</string>
<string name="lockpattern_confirm_button_text" msgid="6122815520373044089">"Confirmar"</string>
<string name="lockpattern_restart_button_text" msgid="255339375151895998">"Revisar"</string>
@@ -1918,6 +1919,8 @@
<string name="slow_keys_summary" msgid="1784371292745423292">"Ajusta el tiempo que lleva activar la presión de una tecla a <xliff:g id="SLOW_KEYS_THRESHOLD">%1$d</xliff:g> ms"</string>
<string name="sticky_keys" msgid="7317317044898161747">"Teclas especiales"</string>
<string name="sticky_keys_summary" msgid="1844953803625480623">"Presiona una tecla a la vez para hacer la combinación de teclas en lugar de presionarlas juntas"</string>
+ <string name="mouse_keys" msgid="6237254627808525540">"Teclas del mouse"</string>
+ <string name="mouse_keys_summary" msgid="2396247040177734245">"Usa el teclado físico para controlar el mouse."</string>
<string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"Combinaciones de teclas"</string>
<string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"Mostrar lista de combinaciones de teclas"</string>
<string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"Teclados y herramientas del perfil de trabajo"</string>
@@ -1933,7 +1936,7 @@
<string name="trackpad_touchpad_gesture_summary" msgid="6256074591395359124">"Personaliza los gestos de navegación del panel táctil"</string>
<string name="trackpad_reverse_scrolling_title" msgid="422877284529360866">"Invertir desplazamiento"</string>
<string name="trackpad_reverse_scrolling_summary" msgid="6048648562887499036">"El contenido sube cuando te desplazas hacia abajo"</string>
- <string name="trackpad_bottom_right_tap_title" msgid="6275428879042702880">"Toque en la parte inferior derecha"</string>
+ <string name="trackpad_bottom_right_tap_title" msgid="6275428879042702880">"Toque de la parte inferior derecha"</string>
<string name="trackpad_bottom_right_tap_summary" msgid="8734094086900680674">"Más opciones en la esquina inferior derecha del panel táctil"</string>
<string name="trackpad_pointer_speed" msgid="7786579408631352625">"Velocidad del puntero"</string>
<string name="pointer_fill_style" msgid="8413840032931637595">"Estilo de relleno del puntero"</string>
@@ -1942,14 +1945,10 @@
<string name="pointer_fill_style_yellow_button" msgid="5025969961559379024">"Cambia estilo de relleno a amarillo"</string>
<string name="pointer_fill_style_pink_button" msgid="4106218142489635673">"Cambia el estilo de relleno a rosa"</string>
<string name="pointer_fill_style_blue_button" msgid="5594958078854032785">"Cambia el estilo de relleno a azul"</string>
- <!-- no translation found for pointer_stroke_style (1886986630216050665) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_white (673686194443825383) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_black (4655806167067437330) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_none (8953927511729800247) -->
- <skip />
+ <string name="pointer_stroke_style" msgid="1886986630216050665">"Estilo de trazo del puntero"</string>
+ <string name="pointer_stroke_style_name_white" msgid="673686194443825383">"Blanco"</string>
+ <string name="pointer_stroke_style_name_black" msgid="4655806167067437330">"Negro"</string>
+ <string name="pointer_stroke_style_name_none" msgid="8953927511729800247">"Ninguno"</string>
<string name="trackpad_touch_gesture" msgid="8641725062131922497">"Aprende los gestos del panel táctil"</string>
<string name="keywords_touchpad" msgid="8159846254066666032">"panel táctil, panel, táctil,mouse, cursor, desplazar, deslizar, hacer clic con el botón derecho, clic, puntero"</string>
<string name="keywords_trackpad_bottom_right_tap" msgid="1285062446073929305">"hacer clic con el botón derecho, presionar"</string>
@@ -2179,8 +2178,6 @@
<string name="accessibility_shortcut_edit_dialog_summary_floating_button" msgid="6266489864614886247">"Presiona el botón flotante"</string>
<string name="accessibility_shortcut_edit_dialog_title_software_by_gesture" msgid="4775049370625630546">"Gesto de accesibilidad"</string>
<string name="accessibility_shortcut_edit_dialog_summary_software" msgid="8315934725362849788">"Presiona el botón de accesibilidad <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g> ubicado en la parte inferior de la pantalla. Para cambiar entre funciones, mantén presionado el botón de accesibilidad."</string>
- <string name="accessibility_shortcut_edit_dialog_summary_software_gesture" msgid="8292555254353761635">"Desliza dos dedos hacia arriba desde la parte inferior de la pantalla.\n\nPara cambiar de función, desliza dos dedos hacia arriba y mantén presionada la pantalla."</string>
- <string name="accessibility_shortcut_edit_dialog_summary_software_gesture_talkback" msgid="84483464524360845">"Desliza tres dedos hacia arriba desde la parte inferior de la pantalla.\n\nPara cambiar de función, desliza tres dedos hacia arriba y mantén presionada la pantalla."</string>
<string name="accessibility_shortcut_edit_dialog_summary_gesture" msgid="2081123009255579884">"{count,plural, =1{Desliza hacia arriba desde la parte inferior de la pantalla. Para cambiar entre funciones, desliza hacia arriba y mantén presionado.}other{Desliza hacia arriba con # dedos desde la parte inferior de la pantalla. Para cambiar entre funciones, desliza hacia arriba con # dedos y mantén presionado.}}"</string>
<string name="accessibility_shortcut_edit_dialog_summary_software_floating" msgid="4459254227203203324"><annotation id="link">"Más opciones"</annotation></string>
<string name="footer_learn_more_content_description" msgid="8843798273152131341">"Más información sobre <xliff:g id="SERVICE">%1$s</xliff:g>"</string>
@@ -2191,16 +2188,12 @@
<string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="844089763968552142">"Teclas de volumen"</string>
<string name="accessibility_shortcut_hardware_keyword" msgid="2483152542320987022">"teclas de volumen"</string>
<string name="accessibility_shortcut_edit_dialog_summary_hardware" msgid="2503134386397991634">"Mantén presionadas ambas teclas de volumen"</string>
- <string name="accessibility_shortcut_edit_dialog_title_two_finger_double_tap" msgid="2271778556854020996">"Presiona dos veces la pantalla con dos dedos"</string>
<string name="accessibility_shortcut_edit_screen_title_two_finger_double_tap" msgid="8952595692906527694">"Presiona dos veces con %1$d dedos"</string>
<string name="accessibility_shortcut_edit_screen_summary_two_finger_double_tap" msgid="385404127425496362">"Presiona rápidamente la pantalla dos veces con %1$d dedos."</string>
<string name="accessibility_shortcut_edit_screen_title_triple_tap" msgid="3314488747597058942">"Presiona tres veces"</string>
<string name="accessibility_shortcut_edit_screen_summary_triple_tap" msgid="4839204951599629871">"Presiona rápidamente la pantalla %1$d veces. Es posible que se ralentice el dispositivo."</string>
<string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="6271718715836961167">"presionar dos veces con %1$d dedos"</string>
- <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"Presiona la pantalla rápidamente {0,number,integer} veces con dos dedos"</string>
- <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"Presionar tres veces la pantalla"</string>
<string name="accessibility_shortcut_triple_tap_keyword" msgid="5359347130888464334">"presionar tres veces"</string>
- <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"Presiona rápidamente la pantalla {0,number,integer} veces. Esta combinación de teclas podría hacer que tu dispositivo funcione más lento."</string>
<string name="accessibility_shortcut_edit_dialog_title_advance" msgid="4567868630655591506">"Avanzada"</string>
<string name="accessibility_screen_magnification_navbar_configuration_warning" msgid="266736851606791552">"El botón de Accesibilidad está configurado para <xliff:g id="SERVICE">%1$s</xliff:g>. Para ampliar, mantén presionado el botón y, luego, selecciona ampliación."</string>
<string name="accessibility_screen_magnification_gesture_navigation_warning" msgid="991017769735632046">"El gesto de accesibilidad se configuró en <xliff:g id="SERVICE">%1$s</xliff:g>. Para usar la ampliación, desliza dos dedos hacia arriba desde la parte inferior de la pantalla y mantén presionado. Luego, selecciona la ampliación."</string>
@@ -2334,7 +2327,7 @@
<string name="accessibility_hearingaid_pair_instructions_title" msgid="2357706801112207624">"Vincula los audífonos"</string>
<string name="accessibility_hearingaid_pair_instructions_message" msgid="581652489109350119">"En la siguiente pantalla, presiona tus audífonos. Es posible que debas vincular el audífono izquierdo y el derecho por separado.\n\nAsegúrate de que los audífonos estén encendidos y listos para la vinculación."</string>
<string name="accessibility_hearingaid_active_device_summary" msgid="509703438222873967">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> activo"</string>
- <string name="accessibility_hearingaid_left_side_device_summary" msgid="12349058624943107">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>, solo izquierdo"</string>
+ <string name="accessibility_hearingaid_left_side_device_summary" msgid="12349058624943107">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>, solo el izquierdo"</string>
<string name="accessibility_hearingaid_right_side_device_summary" msgid="8645789702686724188">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>, solo derecho"</string>
<string name="accessibility_hearingaid_left_and_right_side_device_summary" msgid="3314103411842694197">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>, izquierdo y derecho"</string>
<string name="accessibility_hearingaid_more_device_summary" msgid="8092641784056942546">"Más de 1 <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
@@ -2369,6 +2362,7 @@
<string name="daltonizer_mode_tritanomaly_title" msgid="2278786218762602022">"Azul-amarillo"</string>
<string name="daltonizer_mode_grayscale_title" msgid="152005391387952588">"Escala de grises"</string>
<string name="daltonizer_saturation_title" msgid="2999486412114963068">"Intensidad"</string>
+ <string name="daltonizer_saturation_unavailable_summary" msgid="8319753055567798775">"No disponible para el modo de escala de grises o cuando se inhabilitó la corrección de colores"</string>
<string name="daltonizer_mode_deuteranomaly_summary" msgid="2117727423019598455">"Verde claro, deuteranomalía"</string>
<string name="daltonizer_mode_protanomaly_summary" msgid="4617032854982040748">"Rojo claro, protanomalía"</string>
<string name="daltonizer_mode_tritanomaly_summary" msgid="2428218320118180070">"Tritanomalía"</string>
@@ -2418,15 +2412,8 @@
<string name="color_cyan" msgid="4341758639597035927">"Cian"</string>
<string name="color_yellow" msgid="5957551912912679058">"Amarillo"</string>
<string name="color_magenta" msgid="8943538189219528423">"Magenta"</string>
- <string name="enable_service_title" msgid="7231533866953706788">"¿Deseas permitir que la app <xliff:g id="SERVICE">%1$s</xliff:g> tenga el control total de tu dispositivo?"</string>
<string name="capabilities_list_title" msgid="1225853611983394386">"<xliff:g id="SERVICE">%1$s</xliff:g> necesita:"</string>
<string name="touch_filtered_warning" msgid="4225815157460318241">"Debido a que una aplicación está bloqueando una solicitud de permiso, la Configuración no puede verificar tu respuesta."</string>
- <string name="accessibility_service_warning" msgid="6779187188736432618">"<xliff:g id="SERVICE">%1$s</xliff:g> está solicitando el control total de este dispositivo. El servicio puede leer la pantalla y realizar acciones para los usuarios que necesitan accesibilidad. Este nivel de control no es apropiado para la mayoría de las apps."</string>
- <string name="accessibility_service_warning_description" msgid="6573203795976134751">"El control total es apropiado para las apps que te ayudan con las necesidades de accesibilidad, pero no para la mayoría de las apps."</string>
- <string name="accessibility_service_screen_control_title" msgid="324795030658109870">"Ver y controlar la pantalla"</string>
- <string name="accessibility_service_screen_control_description" msgid="8431940515157990426">"Puede leer todo el contenido en la pantalla y mostrar contenido sobre otras apps."</string>
- <string name="accessibility_service_action_perform_title" msgid="1449360056585337833">"Ver y realizar acciones"</string>
- <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"Puede seguir tus interacciones con una app o un sensor de hardware, así como interactuar con las apps por ti."</string>
<string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Permitir"</string>
<string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Rechazar"</string>
<string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Desactivar"</string>
@@ -2594,7 +2581,7 @@
<string name="battery_usage_without_time" msgid="1346894834339420538"></string>
<string name="battery_usage_since_last_full_charge" msgid="3488425008925924769">"desde la última carga completa"</string>
<string name="battery_usage_system_apps" msgid="8659537819731575299">"Apps del sistema"</string>
- <string name="battery_usage_uninstalled_apps" msgid="8170405012552803662">"Apps desinstalada"</string>
+ <string name="battery_usage_uninstalled_apps" msgid="8170405012552803662">"Apps desinstaladas"</string>
<string name="battery_usage_others" msgid="311793281613609986">"Otros"</string>
<string name="estimated_time_left" msgid="948717045180211777">"Tiempo restante estimado"</string>
<string name="estimated_charging_time_left" msgid="2287135413363961246">"Para completar la carga"</string>
@@ -2947,8 +2934,8 @@
<string name="vpn_set_vpn_title" msgid="1667539483005810682">"¿Configurar la VPN siempre activa?"</string>
<string name="vpn_first_always_on_vpn_message" msgid="2769478310633047870">"Si activas esta opción de configuración, no tendrás conexión a Internet hasta que se conecte la VPN"</string>
<string name="vpn_replace_always_on_vpn_enable_message" msgid="9154843462740876652">"Se reemplazará la VPN actual y no tendrás conexión a Internet hasta que se conecte la nueva VPN"</string>
- <string name="vpn_replace_always_on_vpn_disable_message" msgid="4299175336198481106">"Ya estás conectado a una VPN siempre activa. Si te conectas a otra, se reemplazará la VPN actual y se desactivará el modo siempre activo."</string>
- <string name="vpn_replace_vpn_message" msgid="1094297700371463386">"Ya estás conectado a una VPN. Si te conectas a otra, se reemplazará la VPN actual."</string>
+ <string name="vpn_replace_always_on_vpn_disable_message" msgid="4299175336198481106">"Ya estableciste conexión con una VPN siempre activa. Si te conectas a otra, se reemplazará la VPN actual y se desactivará el modo siempre activo."</string>
+ <string name="vpn_replace_vpn_message" msgid="1094297700371463386">"Ya te conectaste a una VPN. Si te conectas a otra, se reemplazará la VPN actual."</string>
<string name="vpn_turn_on" msgid="3568307071295211187">"Activar"</string>
<string name="vpn_cant_connect_title" msgid="5670787575925519386">"No se puede establecer conexión con <xliff:g id="VPN_NAME">%1$s</xliff:g>"</string>
<string name="vpn_cant_connect_message" msgid="2139148820719163694">"Esta app no es compatible con VPN siempre activada"</string>
@@ -2958,7 +2945,7 @@
<string name="vpn_menu_delete" msgid="4455966182219039928">"Borrar perfil"</string>
<string name="vpn_menu_lockdown" msgid="5284041663859541007">"VPN siempre activada"</string>
<string name="vpn_no_vpns_added" msgid="7387080769821533728">"No se agregó ninguna VPN"</string>
- <string name="vpn_always_on_summary" msgid="2171252372476858166">"Mantente siempre conectado a una VPN"</string>
+ <string name="vpn_always_on_summary" msgid="2171252372476858166">"Mantén siempre conexión a la VPN"</string>
<string name="vpn_always_on_summary_not_supported" msgid="9084872130449368437">"La opción no es compatible con esta app"</string>
<string name="vpn_always_on_summary_active" msgid="175877594406330387">"Siempre activada"</string>
<string name="vpn_insecure_summary" msgid="4450920215186742859">"No es segura"</string>
@@ -2966,7 +2953,7 @@
<string name="vpn_require_connection_title" msgid="4186758487822779039">"¿Requerir una conexión VPN?"</string>
<string name="vpn_insecure_dialog_subtitle" msgid="1857621742868835300">"La VPN no es segura. Actualiza a una VPN IKEv2."</string>
<string name="vpn_start_unsupported" msgid="7139925503292269904">"No se pudo iniciar la VPN no compatible."</string>
- <string name="vpn_lockdown_summary" msgid="4700625960550559029">"Selecciona el perfil de la VPN con la que deseas establecer una conexión ininterrumpida. El tráfico de red solo se permitirá cuando estés conectado a esta VPN."</string>
+ <string name="vpn_lockdown_summary" msgid="4700625960550559029">"Selecciona el perfil de la VPN con la que deseas establecer una conexión ininterrumpida. El tráfico de red solo se permitirá cuando tengas conexión a esta VPN."</string>
<string name="vpn_lockdown_none" msgid="455915403560910517">"Ninguna"</string>
<string name="vpn_lockdown_config_error" msgid="1992071316416371316">"La VPN siempre activada requiere una dirección IP tanto para el servidor como para el DNS."</string>
<string name="vpn_no_network" msgid="7187593680049843763">"No hay conexión de red. Inténtalo de nuevo más tarde."</string>
@@ -3002,8 +2989,8 @@
<string name="ssl_ca_cert_warning" msgid="3898387588657346106">"Es posible que la red esté supervisada"</string>
<string name="done_button" msgid="6269449526248267">"Listo"</string>
<string name="ssl_ca_cert_dialog_title" msgid="1032088078702042090">"{count,plural, =1{Confiar en el certificado o quitarlo}other{Confiar en los certificados o quitarlos}}"</string>
- <string name="ssl_ca_cert_info_message_device_owner" msgid="7528581447864707873">"{numberOfCertificates,plural, =1{{orgName} instaló una autoridad certificadora en tu dispositivo, lo que le permitirá supervisar la actividad de la red del dispositivo, incluidos los correos electrónicos, las apps y los sitios web seguros.\n\nPara obtener más información sobre este certificado, comunícate con tu administrador.}other{{orgName} instaló autoridades certificadoras en tu dispositivo, lo que le permitirá supervisar la actividad de la red del dispositivo, incluidos los correos electrónicos, las apps y los sitios web seguros.\n\nPara obtener más información sobre estos certificados, comunícate con tu administrador.}}"</string>
- <string name="ssl_ca_cert_info_message" msgid="3111724430981667845">"{numberOfCertificates,plural, =1{{orgName} instaló una autoridad certificadora para tu perfil de trabajo, lo que le permitirá supervisar la actividad de la red laboral, incluidos los correos electrónicos, las apps y los sitios web seguros.\n\nPara obtener más información sobre este certificado, comunícate con tu administrador.}other{{orgName} instaló autoridades certificadoras para tu perfil de trabajo, lo que les permitirá supervisar la actividad de la red laboral, como los correos electrónicos, las apps y los sitios web seguros.\n\nPara obtener más información sobre estos certificados, comunícate con tu administrador.}}"</string>
+ <string name="ssl_ca_cert_info_message_device_owner" msgid="7528581447864707873">"{numberOfCertificates,plural, =1{{orgName} instaló una autoridad certificadora en tu dispositivo, lo que le permitirá supervisar la actividad de red del dispositivo, incluidos los correos electrónicos, las apps y los sitios web seguros.\n\nPara obtener más información sobre este certificado, comunícate con tu administrador.}other{{orgName} instaló autoridades certificadoras en tu dispositivo, lo que le permitirá supervisar la actividad de red del dispositivo, incluidos los correos electrónicos, las apps y los sitios web seguros.\n\nPara obtener más información sobre estos certificados, comunícate con tu administrador.}}"</string>
+ <string name="ssl_ca_cert_info_message" msgid="3111724430981667845">"{numberOfCertificates,plural, =1{{orgName} instaló una autoridad certificadora para tu perfil de trabajo, lo que le permitirá supervisar la actividad de red laboral, incluidos los correos electrónicos, las apps y los sitios web seguros.\n\nPara obtener más información sobre este certificado, comunícate con tu administrador.}other{{orgName} instaló autoridades certificadoras para tu perfil de trabajo, lo que les permitirá supervisar la actividad de red laboral, como los correos electrónicos, las apps y los sitios web seguros.\n\nPara obtener más información sobre estos certificados, comunícate con tu administrador.}}"</string>
<string name="ssl_ca_cert_warning_message" msgid="4374052724815563051">"Un tercero puede supervisar tu actividad en la red, incluido el correo electrónico, las aplicaciones y los sitios web seguros.\n\nEsto ocurre porque hay una credencial de confianza instalada en el dispositivo."</string>
<string name="ssl_ca_cert_settings_button" msgid="2044927302268394991">"{count,plural, =1{Revisar certificado}other{Revisar certificados}}"</string>
<string name="user_settings_title" msgid="9208831545558787202">"Usuarios"</string>
@@ -3018,11 +3005,11 @@
<string name="user_you" msgid="3070562015202859996">"Tú (<xliff:g id="NAME">%s</xliff:g>)"</string>
<string name="user_add_max_count" msgid="3328539978480663740">"No puedes agregar más usuarios. Quita alguno para agregar nuevos."</string>
<string name="user_cannot_add_accounts_message" msgid="2351326078338805337">"Los perfiles restringidos no pueden agregar cuentas."</string>
- <string name="user_remove_user_menu" msgid="2183714948094429367">"Borrar a <xliff:g id="USER_NAME">%1$s</xliff:g> del disp."</string>
+ <string name="user_remove_user_menu" msgid="2183714948094429367">"Borrar a <xliff:g id="USER_NAME">%1$s</xliff:g>"</string>
<string name="user_lockscreen_settings" msgid="4596612658981942092">"Configuración de la pantalla de bloqueo"</string>
<string name="user_add_on_lockscreen_menu" msgid="2539059062034644966">"Agregar usuarios desde la pantalla de bloqueo"</string>
<string name="switch_to_dock_user_when_docked" msgid="2324395443311905635">"Cambiar a usuario administrador cuando se conecte"</string>
- <string name="user_confirm_remove_self_title" msgid="926265330805361832">"¿Deseas borrarte a ti mismo?"</string>
+ <string name="user_confirm_remove_self_title" msgid="926265330805361832">"¿Quieres borrar tu perfil?"</string>
<string name="user_confirm_remove_title" msgid="3626559103278006002">"¿Borrar este usuario?"</string>
<string name="user_profile_confirm_remove_title" msgid="3131574314149375354">"¿Eliminar este perfil?"</string>
<string name="work_profile_confirm_remove_title" msgid="6229618888167176036">"¿Eliminar perfil de trabajo?"</string>
@@ -3347,7 +3334,7 @@
<string name="spatial_summary_on_two" msgid="4526919818832483883">"Sí (<xliff:g id="OUTPUT_DEVICE_0">%1$s</xliff:g> y <xliff:g id="OUTPUT_DEVICE_1">%2$s</xliff:g>)"</string>
<string name="spatial_audio_footer_title" msgid="8775010547623606088">"También puedes activar el audio espacial para dispositivos Bluetooth."</string>
<string name="spatial_audio_footer_learn_more_text" msgid="3826811708094366301">"Parámetros de configuración de dispositivos conectados"</string>
- <string name="zen_mode_settings_schedules_summary" msgid="2047688589286811617">"{count,plural, =0{Ninguno}=1{Se estableció 1 programa}other{Se establecieron # programas}}"</string>
+ <string name="zen_mode_settings_schedules_summary" msgid="2047688589286811617">"{count,plural, =0{Ninguno}=1{1 programa establecido}other{# programas establecidos}}"</string>
<string name="zen_mode_settings_title" msgid="682676757791334259">"No interrumpir"</string>
<string name="zen_modes_list_title" msgid="5138745349253275428">"Modos de prioridad"</string>
<string name="zen_modes_add_mode" msgid="4806287336036228772">"Agregar un modo"</string>
@@ -3368,10 +3355,8 @@
<string name="zen_mode_automation_settings_title" msgid="3709324184191870926">"Programaciones"</string>
<string name="zen_mode_delete_automatic_rules" msgid="5020468289267191765">"Borrar programas"</string>
<string name="zen_mode_schedule_delete" msgid="5383420576833765114">"Borrar"</string>
- <!-- no translation found for zen_mode_menu_rename_mode (4681802125016390837) -->
- <skip />
- <!-- no translation found for zen_mode_menu_delete_mode (5380084696402157428) -->
- <skip />
+ <string name="zen_mode_menu_rename_mode" msgid="4681802125016390837">"Cambiar nombre"</string>
+ <string name="zen_mode_menu_delete_mode" msgid="5380084696402157428">"Borrar"</string>
<string name="zen_mode_delete_mode_confirmation" msgid="7594340592051947392">"¿Quieres borrar el modo \"<xliff:g id="MODE">%1$s</xliff:g>\"?"</string>
<string name="zen_mode_rule_name_edit" msgid="1053237022416700481">"Editar"</string>
<string name="zen_mode_automation_settings_page_title" msgid="6217433860514433311">"Programas"</string>
@@ -3395,8 +3380,7 @@
<string name="zen_mode_visual_signals_settings_subtitle" msgid="7433077540895876672">"Permitir señales visuales"</string>
<string name="mode_interruption_filter_title" msgid="3343846700214702347">"Concéntrate"</string>
<string name="mode_device_effects_title" msgid="5857008332618433744">"Acciones adicionales"</string>
- <!-- no translation found for modes_sound_summary_off (6972648204528227879) -->
- <skip />
+ <string name="modes_sound_summary_off" msgid="6972648204528227879">"{count,plural, =0{Desactivado}=1{Desactivado/se puede activar automáticamente 1 modo}other{Desactivado/se pueden activar automáticamente # modos}}"</string>
<string name="mode_display_settings_title" msgid="8132825978346535472">"Configuración de visualización"</string>
<string name="mode_display_options_section" msgid="5151597748243866532">"Opciones de visualización"</string>
<string name="mode_grayscale_title" msgid="6027553257331235461">"Escala de grises"</string>
@@ -3466,7 +3450,7 @@
<string name="zen_mode_duration_summary_forever" msgid="5551992961329998606">"Hasta que lo desactives"</string>
<string name="zen_mode_duration_summary_time_hours" msgid="2602655749780428308">"{count,plural, =1{1 hora}other{# horas}}"</string>
<string name="zen_mode_duration_summary_time_minutes" msgid="5755536844016835693">"{count,plural, =1{1 minuto}other{# minutos}}"</string>
- <string name="zen_mode_sound_summary_off" msgid="7350437977839985836">"{count,plural, =0{Desactivado}=1{Desactivado/1 programa se puede activar automáticamente}other{Desactivado/# programas se pueden activar automáticamente}}"</string>
+ <string name="zen_mode_sound_summary_off" msgid="7350437977839985836">"{count,plural, =0{Desactivada}=1{Desactivada/1 programa se puede activar automáticamente}other{Desactivada/# programas se pueden activar automáticamente}}"</string>
<string name="zen_category_behavior" msgid="3214056473947178507">"Pueden suspender el modo No interrumpir:"</string>
<string name="zen_category_people" msgid="8252926021894933047">"Personas"</string>
<string name="zen_category_apps" msgid="1167374545618451925">"Apps"</string>
@@ -3659,9 +3643,9 @@
<string name="notif_listener_not_migrated" msgid="6265206376374278226">"Esta app no admite opciones de configuración mejoradas"</string>
<string name="notif_listener_more_settings" msgid="1348409392307208921">"Más parámetros de configuración"</string>
<string name="notif_listener_more_settings_desc" msgid="7995492074281663658">"Puedes encontrar más parámetros de configuración disponibles dentro de esta app"</string>
- <string name="notification_polite_title" msgid="4737150709382859870">"Notificaciones adaptables"</string>
- <string name="notification_polite_main_control_title" msgid="7267191551379543859">"Usar notificaciones adaptables"</string>
- <string name="notification_polite_description" msgid="7749280535620291610">"Cuando recibas muchas notificaciones en un intervalo de tiempo corto, el teléfono bajará el volumen y minimizará las ventanas emergentes en la pantalla por un máximo de dos minutos. Las llamadas, las alarmas y las conversaciones prioritarias seguirán sonando, haciendo vibrar el dispositivo o mostrándose en la pantalla. Podrás encontrar todas las notificaciones deslizando hacia abajo desde la parte superior de la pantalla."</string>
+ <string name="notification_polite_title" msgid="6121016426991791557">"Inactividad de notificaciones"</string>
+ <string name="notification_polite_main_control_title" msgid="5812529809151927149">"Usar reducción de sonido de notificaciones"</string>
+ <string name="notification_polite_description" msgid="5497748284893832854">"Cuando recibas muchas notificaciones en un intervalo de tiempo corto, el dispositivo bajará el volumen y minimizará las alertas por un máximo de 2 minutos. Las llamadas, alarmas y conversaciones prioritarias no se verán afectadas. \n\nPuedes ver las notificaciones que recibas durante la reducción de sonido deslizando hacia abajo desde la parte superior de la pantalla."</string>
<string name="notification_polite_work" msgid="8823596456640216391">"Aplicar a perfiles de trabajo"</string>
<string name="notification_polite_work_summary" msgid="5014189280132951378">"Aplicar a apps del perfil de trabajo"</string>
<string name="vr_listeners_title" msgid="4960357292472540964">"Servicio de ayuda de RV"</string>
@@ -3818,7 +3802,9 @@
<string name="zen_mode_apps_priority_apps" msgid="7386196048313716076">"Apps seleccionadas"</string>
<string name="zen_mode_apps_none_apps" msgid="2493642312793604327">"Ninguna"</string>
<string name="zen_mode_apps_subtext" msgid="1764211974662012877">"{count,plural,offset:2 =0{Ninguna app puede interrumpir}=1{{app_1} puede interrumpir}=2{{app_1} y {app_2} pueden interrumpir}=3{{app_1}, {app_2} y {app_3} pueden interrumpir}other{{app_1}, {app_2} y otras # apps pueden interrumpir}}"</string>
+ <string name="zen_mode_apps_work_app" msgid="8528767938316361588">"<xliff:g id="APP_LABEL">%s</xliff:g> (trabajo)"</string>
<string name="zen_mode_apps_calculating" msgid="5420121396943539286">"Calculando…"</string>
+ <string name="zen_mode_plus_n_items" msgid="6136713354369243421">"+<xliff:g id="NUMBER">%d</xliff:g>"</string>
<string name="zen_mode_bypassing_apps" msgid="625309443389126481">"Permitir que las apps anulen No interrumpir"</string>
<string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"Apps que pueden interrumpir"</string>
<string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"Seleccionar más apps"</string>
@@ -3836,6 +3822,7 @@
<string name="zen_mode_sounds_none" msgid="6557474361948269420">"Nada puede interrumpir"</string>
<string name="zen_mode_people_none" msgid="4613147461974255046">"Ninguna persona puede interrumpir"</string>
<string name="zen_mode_people_some" msgid="9101872681298810281">"Algunas personas pueden interrumpir"</string>
+ <string name="zen_mode_people_repeat_callers" msgid="4499084111069828761">"Las llamadas reiteradas pueden interrumpir"</string>
<string name="zen_mode_people_all" msgid="311036110283015205">"Cualquier persona puede interrumpir"</string>
<string name="zen_mode_repeat_callers" msgid="2270356100287792138">"Llamadas repetidas"</string>
<string name="zen_mode_repeat_callers_title" msgid="8016699240338264781">"Permitir llamadas repetidas de un mismo emisor"</string>
@@ -3855,13 +3842,37 @@
<string name="zen_mode_summary_alarms_only_by_hour" msgid="7400910210950788163">"{count,plural, =1{Cambiar a solo alarmas durante una hora hasta la hora {time}}other{Cambiar a solo alarmas durante # horas hasta la hora {time}}}"</string>
<string name="zen_mode_summary_alarms_only_by_time" msgid="8140619669703968810">"Cambiar a solo alarmas hasta la(s) <xliff:g id="FORMATTEDTIME">%1$s</xliff:g>"</string>
<string name="zen_mode_summary_always" msgid="722093064250082317">"Cambiar a interrumpir siempre"</string>
- <!-- no translation found for zen_mode_rename_title (8146882272966214558) -->
+ <string name="zen_mode_rename_title" msgid="8146882272966214558">"Editar modo"</string>
+ <string name="zen_mode_new_custom_title" msgid="321750898430776191">"Agregar modo"</string>
+ <string name="zen_mode_new_custom_default_name" msgid="2778307946775085105">"Modo personalizado"</string>
+ <string name="zen_mode_edit_name_hint" msgid="4584652062167540536">"Nombre del modo"</string>
+ <string name="zen_mode_trigger_title_schedule_calendar" msgid="9206609438617550331">"Eventos de calendario"</string>
+ <string name="zen_mode_trigger_title_bedtime" msgid="5086070900588489978">"Horas de sueño"</string>
+ <string name="zen_mode_trigger_title_driving" msgid="7890990983453164403">"Mientras conduces"</string>
+ <string name="zen_mode_trigger_title_generic" msgid="601273385119550420">"Vinculado a la app"</string>
+ <string name="zen_mode_trigger_summary_settings_in_app" msgid="4860667191183702601">"Información y configuración en <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+ <string name="zen_mode_trigger_summary_managed_by_app" msgid="8631011868193102098">"Administrador: <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+ <string name="zen_mode_confirm_disable_title" msgid="1232297660775719796">"Inhabilitar modo"</string>
+ <string name="zen_mode_confirm_disable_message" msgid="7315541221665718491">"Si inhabilitas esta función, el modo dejará de funcionar como estaba previsto y sus parámetros de configuración se ocultarán."</string>
+ <string name="zen_mode_action_disable" msgid="3552921561331044881">"Inhabilitar"</string>
+ <string name="zen_mode_confirm_enable_title" msgid="5683371335847448595">"Habilitar modo"</string>
+ <string name="zen_mode_confirm_enable_message" msgid="7017879133260011419">"Si habilitas esta función, el modo se activará automáticamente según su programación."</string>
+ <string name="zen_mode_action_enable" msgid="1161480633223176531">"Habilitar"</string>
+ <!-- no translation found for zen_mode_blurb_schedule_time (8223898702097484009) -->
<skip />
- <!-- no translation found for zen_mode_new_custom_title (321750898430776191) -->
+ <!-- no translation found for zen_mode_blurb_schedule_calendar (382177907856065945) -->
<skip />
- <!-- no translation found for zen_mode_new_custom_default_name (2778307946775085105) -->
+ <!-- no translation found for zen_mode_blurb_bedtime (6155075956151013457) -->
<skip />
- <!-- no translation found for zen_mode_edit_name_hint (4584652062167540536) -->
+ <!-- no translation found for zen_mode_blurb_driving (1316054379000667305) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_immersive (5884004861848687869) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_theater (2999237960059524225) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_managed (5473921634985032149) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_generic (3041601339807075625) -->
<skip />
<string name="warning_button_text" msgid="1274234338874005639">"Advertencia"</string>
<string name="suggestion_button_close" msgid="6865170855573283759">"Cerrar"</string>
@@ -3877,7 +3888,7 @@
<string name="app_pinning_intro" msgid="6409063008733004245">"Al fijar una app, esta se mantiene visible hasta que dejas de fijarla. Esta función se puede utilizar, por ejemplo, para dejar que alguien de confianza juegue un juego específico."</string>
<string name="screen_pinning_description" msgid="5822120806426139396">"Si fijas una app, esta podrá abrir otras apps y acceder a tus datos personales. \n\nPara usar la fijación de apps, haz lo siguiente: \n{0,number,integer}. Activa la fijación de apps. \n{1,number,integer}. Abre Recientes. \n{2,number,integer}. Presiona el ícono de la app que se encuentra en la parte superior de la pantalla y, luego, Fijar."</string>
<string name="screen_pinning_guest_user_description" msgid="2307270321127139579">"Si fijas una app, esta podrá abrir otras apps y acceder a tus datos personales. \n\nSi quieres compartir tu dispositivo con alguien de forma segura, usa un perfil de invitado. \n\nPara usar la fijación de apps, haz lo siguiente: \n{0,number,integer}. Activa la fijación de apps. \n{1,number,integer}. Abre Recientes. \n{2,number,integer}. Presiona el ícono de la app que se encuentra en la parte superior de la pantalla y, luego, Fijar."</string>
- <string name="screen_pinning_dialog_message" msgid="8144925258679476654">"Cuando fijas una app, puede ocurrir lo siguiente: \n\n• Esta podrá acceder a datos personales (como contactos y contenido de los correos electrónicos). \n• Es posible que las apps fijadas abran otras apps. \n\nUsa la función para fijar apps solo con personas de confianza.\n"</string>
+ <string name="screen_pinning_dialog_message" msgid="8144925258679476654">"Cuando fijas una app, puede ocurrir lo siguiente: \n\n• Esta podrá acceder a datos personales \n (como contactos y contenido de los correos electrónicos) \n• Es posible que la app fijada abra otras apps \n\nUsa la fijación de apps solo con personas de confianza."</string>
<string name="screen_pinning_unlock_pattern" msgid="1345877794180829153">"Solicitar desbloqueo para quitar fijación"</string>
<string name="screen_pinning_unlock_pin" msgid="8716638956097417023">"Solicitar PIN para quitar fijación"</string>
<string name="screen_pinning_unlock_password" msgid="4957969621904790573">"Solicitar contraseña para quitar fijación"</string>
@@ -4052,7 +4063,7 @@
<string name="free_memory" msgid="439783742246854785">"Libre(s)"</string>
<string name="memory_usage_apps" msgid="5776108502569850579">"Memoria que utilizan las aplicaciones"</string>
<string name="memory_usage_apps_summary" msgid="7168292864155527974">"{count,plural, =1{1 app usó la memoria en las últimas {time}}other{# apps usaron la memoria en las últimas {time}}}"</string>
- <string name="force_enable_pss_profiling_title" msgid="2253816522775341523">"Habilitar la gen. de per. de uso de mem."</string>
+ <string name="force_enable_pss_profiling_title" msgid="2253816522775341523">"Habilitar la generación de perfiles de uso de memoria"</string>
<string name="force_enable_pss_profiling_summary" msgid="7714294324548399136">"La generación de perfiles del uso de memoria requiere recursos de sistema adicionales."</string>
<string name="pss_profiling_disabled" msgid="1967278421143514850">"Se inhabilitó la generación de perfiles de memoria"</string>
<string name="running_frequency" msgid="7260225121706316639">"Frecuencia"</string>
@@ -4417,7 +4428,7 @@
<string name="enterprise_privacy_network_logs" msgid="3081744541193695887">"Registro de tráfico de red más reciente"</string>
<string name="enterprise_privacy_bug_reports" msgid="2635897583413134123">"Informe de errores más reciente"</string>
<string name="enterprise_privacy_security_logs" msgid="8494681624247959075">"Registro de seguridad más reciente"</string>
- <string name="enterprise_privacy_none" msgid="6026527690979756431">"Ninguno"</string>
+ <string name="enterprise_privacy_none" msgid="6026527690979756431">"Ninguna"</string>
<string name="enterprise_privacy_enterprise_installed_packages" msgid="9114143640515900082">"Apps instaladas"</string>
<string name="enterprise_privacy_apps_count_estimation_info" msgid="7959907857710107792">"La cantidad de apps es aproximada. Es posible que no se cuenten las apps que no hayas instalado desde Play Store."</string>
<string name="enterprise_privacy_number_packages_lower_bound" msgid="5317634640873658149">"{count,plural, =1{Al menos # app}other{Al menos # apps}}"</string>
@@ -4743,7 +4754,7 @@
<string name="satellite_warning_dialog_content" msgid="936419945275934955">"Para activar <xliff:g id="FUNCTION">%1$s</xliff:g>, primero termina la conexión satelital"</string>
<string name="mobile_network_apn_title" msgid="5582995550142073054">"Nombres de puntos de acceso"</string>
<string name="keywords_access_point_names" msgid="8174967126858505945">"apn"</string>
- <string name="manual_mode_disallowed_summary" msgid="4243142645520152175">"No está disponible cuando estás conectado a <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
+ <string name="manual_mode_disallowed_summary" msgid="4243142645520152175">"No está disponible cuando el dispositivo está conectado a <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
<string name="see_more" msgid="7499355691042812723">"Ver más"</string>
<string name="sim_action_enable_sub_dialog_title" msgid="4003377033815971802">"¿Quieres activar <xliff:g id="CARRIER_NAME">%1$s</xliff:g>?"</string>
<string name="sim_action_enable_sub_dialog_title_without_carrier_name" msgid="4842051610633654278">"¿Quieres activar la SIM?"</string>
@@ -4849,9 +4860,8 @@
<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="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>
+ <!-- no translation found for enable_desktop_mode_on_secondary_display (2609567824593768780) -->
+ <skip />
<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>
@@ -5026,7 +5036,6 @@
<string name="default_active_sim_mobile_data" msgid="6798083892814045301">"datos móviles"</string>
<string name="wifi_scan_notify_message" msgid="1331238142061476869">"Para mejorar la experiencia con el dispositivo, las apps y los servicios pueden seguir buscando redes Wi-Fi en cualquier momento, incluso cuando la conexión Wi-Fi esté desactivada. Esta función puede usarse, por ejemplo, para mejorar las funciones y los servicios basados en la ubicación. Puedes cambiar este parámetro en la configuración de búsqueda de Wi-Fi."</string>
<string name="wifi_scan_change" msgid="8438320311511852918">"Cambiar"</string>
- <string name="preference_summary_default_combination" msgid="4643585915107796253">"<xliff:g id="STATE">%1$s</xliff:g>/<xliff:g id="NETWORKMODE">%2$s</xliff:g>"</string>
<string name="mobile_data_connection_active" msgid="2422223108911581552">"Conexión establecida"</string>
<string name="mobile_data_temp_connection_active" msgid="3430470299756236413">"Conectado temporalmente"</string>
<string name="mobile_data_temp_using" msgid="5211002380149434155">"<xliff:g id="SUBNAME">%1$s</xliff:g> en uso temporalmente"</string>
@@ -5058,7 +5067,7 @@
<string name="app_pinning_main_switch_title" msgid="5465506660064032876">"Usar fijación de apps"</string>
<string name="developer_options_main_switch_title" msgid="1720074589554152501">"Usar opciones para desarrolladores"</string>
<string name="default_print_service_main_switch_title" msgid="4697133737128324036">"Usar servicio de impresión"</string>
- <string name="multiple_users_main_switch_title" msgid="9158796544835843201">"Permite el cambio de usuario"</string>
+ <string name="multiple_users_main_switch_title" msgid="9158796544835843201">"Permitir cambiar de usuario"</string>
<string name="multiple_users_main_switch_keywords" msgid="4845954458094134356">"permitir, varios, usuarios, habilitar, muchos"</string>
<string name="multiple_users_title_keywords" msgid="2395593167746225172">"múltiples, usuarios, perfiles, personas, cuentas, cambiar, muchos"</string>
<string name="wireless_debugging_main_switch_title" msgid="8463499572781441719">"Usar depuración inalámbrica"</string>
@@ -5172,9 +5181,11 @@
<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="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_enable_freeform_support" msgid="3697462756493543645">"Se debe reiniciar para habilitar la compatibilidad con las ventanas de formato libre."</string>
+ <!-- no translation found for reboot_dialog_override_desktop_mode (7480950772574354130) -->
+ <skip />
+ <!-- no translation found for reboot_dialog_enable_desktop_mode_on_secondary_display (1153621881052401924) -->
+ <skip />
<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>
@@ -5247,7 +5258,7 @@
<string name="accessibility_fingerprint_label" msgid="5017431423168191733">"Sensor de huellas dactilares"</string>
<string name="flash_notifications_title" msgid="4490438861180492311">"Notificaciones con flash"</string>
<string name="flash_notifications_about_title" msgid="9004351252928121214">"Info. sobre notificaciones con flash"</string>
- <string name="flash_notifications_summary_off" msgid="6056282996770691461">"Desactivadas"</string>
+ <string name="flash_notifications_summary_off" msgid="6056282996770691461">"No"</string>
<string name="flash_notifications_summary_on_camera" msgid="3286405833586333730">"Activado / Flash de la cámara"</string>
<string name="flash_notifications_summary_on_screen" msgid="9040640799633336219">"Activadas: Flash de la pantalla"</string>
<string name="flash_notifications_summary_on_camera_and_screen" msgid="2326268141063768701">"Activadas: Flash de la cámara y pantalla"</string>
@@ -5292,10 +5303,8 @@
<string name="show_captions_enabled" msgid="7089043007924626">"Activadas"</string>
<string name="live_caption_disabled" msgid="3562035026547887366">"Desactivado"</string>
<string name="live_caption_enabled" msgid="5269360946200718949">"Activado"</string>
- <!-- no translation found for audio_seek_bar_state_left_first (8814986910920838972) -->
- <skip />
- <!-- no translation found for audio_seek_bar_state_right_first (1999368979633398876) -->
- <skip />
+ <string name="audio_seek_bar_state_left_first" msgid="8814986910920838972">"Audio: %1$d%% izquierda, %2$d%% derecha"</string>
+ <string name="audio_seek_bar_state_right_first" msgid="1999368979633398876">"Audio: %1$d%% derecha, %2$d%% izquierda"</string>
<string name="about_phone_device_name_warning" msgid="3243226572404472381">"El nombre de tu dispositivo es visible para las apps instaladas. Es posible que también lo vean otras personas cuando te conectes a dispositivos Bluetooth o a una red Wi-Fi, o cuando configures un hotspot de Wi-Fi."</string>
<string name="grammatical_gender_title" msgid="8584242850477270828">"Género gramatical"</string>
<string name="grammatical_gender_dialog_title" msgid="8754048592099871587">"Selecciona un género gramatical"</string>
@@ -5407,5 +5416,6 @@
<string name="audio_streams_main_page_password_dialog_join_button" msgid="2967747276379153408">"Escuchar reproducción"</string>
<string name="audio_streams_main_page_qr_code_scanner_summary" msgid="5312980105735143360">"Escanea el código QR de una reproducción de audio para escuchar con <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
<string name="audio_streams_main_page_password_dialog_cannot_edit" msgid="9020898619297520153">"No se puede editar la contraseña mientras se está compartiendo. Para cambiar la contraseña, primero desactiva el uso compartido de audio."</string>
+ <string name="audio_streams_qr_code_scanner_label" msgid="8799703301071378034">"Escáner de código QR"</string>
<string name="homepage_search" msgid="6759334912284663559">"Buscar en Configuración"</string>
</resources>
diff --git a/res/values-es/strings.xml b/res/values-es/strings.xml
index 8f1a168..dc91d37 100644
--- a/res/values-es/strings.xml
+++ b/res/values-es/strings.xml
@@ -25,7 +25,7 @@
<string name="device_info_default" msgid="1406619232867343310">"Desconocido"</string>
<string name="device_info_protected_single_press" msgid="3810785480060743677">"Toca para que se muestre la información"</string>
<string name="show_dev_countdown" msgid="2936506773086395069">"{count,plural, =1{Te queda # paso para habilitar las opciones para desarrolladores.}other{Te quedan # pasos para habilitar las opciones para desarrolladores.}}"</string>
- <string name="show_dev_on" msgid="2840850085134853754">"¡Ahora están activadas las opciones para desarrolladores!"</string>
+ <string name="show_dev_on" msgid="2840850085134853754">"¡Ya eres desarrollador!"</string>
<string name="show_dev_already" msgid="7041756429707644630">"Las opciones para desarrolladores ya están activadas."</string>
<string name="dev_settings_disabled_warning" msgid="6971867026249671244">"Habilita primero las opciones para desarrolladores."</string>
<string name="dev_settings_available_to_admin_only_warning" msgid="3408243404879083111">"Solo los usuarios administradores pueden acceder a los ajustes para desarrolladores."</string>
@@ -41,6 +41,8 @@
<string name="radioInfo_data_suspended" msgid="2001254415431299603">"Suspendido"</string>
<string name="radioInfo_unknown" msgid="2892562356748600367">"Desconocido"</string>
<string name="preview_pager_content_description" msgid="3762247188224576303">"Vista previa"</string>
+ <!-- no translation found for qr_code_content_description (1852208464419291347) -->
+ <skip />
<string name="font_size_make_smaller_desc" msgid="4978038055549590140">"Reducir el tamaño"</string>
<string name="font_size_make_larger_desc" msgid="5583046033381722247">"Aumentar el tamaño"</string>
<string name="stay_awake_on_fold_title" msgid="6590454679898134221">"Siempre"</string>
@@ -277,13 +279,13 @@
<string name="lock_after_timeout_summary_with_exception" msgid="3441806647509073124">"<xliff:g id="TIMEOUT_STRING">%1$s</xliff:g> después de agotarse el tiempo de espera de la pantalla, salvo si <xliff:g id="TRUST_AGENT_NAME">%2$s</xliff:g> mantiene el dispositivo desbloqueado"</string>
<string name="owner_info_settings_title" msgid="3555626140700093017">"Añadir texto a pantalla de bloqueo"</string>
<string name="owner_info_settings_summary" msgid="347238313388083297">"Ninguno"</string>
- <string name="owner_info_settings_edit_text_hint" msgid="841926875876050274">"p. ej., Android de Juan"</string>
+ <string name="owner_info_settings_edit_text_hint" msgid="841926875876050274">"P. ej., Android de Juan."</string>
<string name="location_settings_title" msgid="8375074508036087178">"Ubicación"</string>
<string name="location_settings_primary_switch_title" msgid="8849081766644685127">"Usar ubicación"</string>
<string name="location_settings_summary_location_off" msgid="4797932754681162262">"Desactivado"</string>
<string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{Activada: # aplicación tiene acceso a la ubicación}other{Activada: # aplicaciones tienen acceso a la ubicación}}"</string>
<string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"Cargando…"</string>
- <string name="location_settings_footer_general" msgid="1040507068701188821">"Las aplicaciones que tengan permiso para detectar dispositivos cercanos pueden determinar la posición relativa de los dispositivos conectados."</string>
+ <string name="location_settings_footer_general" msgid="3447585552176173502">"Las aplicaciones que tengan permiso para detectar dispositivos cercanos podrán determinar la posición relativa de los dispositivos conectados."</string>
<string name="location_settings_footer_location_off" msgid="8568995909147566720">"Las aplicaciones y los servicios no pueden acceder a la ubicación. Aun así, quizá se envíe la ubicación del dispositivo a los servicios de emergencia cuando llames o envíes mensajes a números de emergencia."</string>
<string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Más información sobre los ajustes de ubicación"</string>
<string name="location_settings_tooltip_text_for_chrome" msgid="5781821709250544575">"Para cambiarlo, ve a Ajustes de ChromeOS > Privacidad y seguridad > Controles de privacidad > Acceso a la ubicación"</string>
@@ -382,7 +384,7 @@
<string name="security_settings_fingerprint_v2_enroll_introduction_footer_title_1" msgid="4360262371633254407">"Importante"</string>
<string name="security_settings_fingerprint_v2_enroll_introduction_footer_title_2" msgid="2580899232734177771">"Cómo funciona"</string>
<string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_2" msgid="5909924864816776516">"Desbloqueo con huella digital crea un modelo único de tu huella digital para verificar que eres tú. Para crear este modelo durante la configuración, se toman imágenes de tu huella en diferentes posiciones."</string>
- <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_consent_2" msgid="3493356605815124807">"Desbloqueo con huella digital crea un modelo único de la huella digital de tu hijo/a para verificar que es él/ella. Para crear este modelo de huella digital durante la configuración, se toman imágenes de su huella desde diferentes posiciones."</string>
+ <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_consent_2" msgid="3493356605815124807">"Desbloqueo con Huella Digital crea un modelo único de la huella digital de tu hijo/a para verificar su identidad. Para crear este modelo de huella digital durante la configuración, se toman imágenes de su huella desde diferentes posiciones."</string>
<string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_6" msgid="5314031490467481499">"Para obtener mejores resultados, usa un protector de pantalla con certificado Made for Google. Con otros protectores de pantalla, puede que tu huella digital no funcione."</string>
<string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_consent_6" msgid="3563942520716110478">"Para obtener mejores resultados, usa un protector de pantalla con certificado Made for Google. Con otros protectores de pantalla, puede que la huella digital de tu hijo/a no funcione."</string>
<string name="security_settings_fingerprint_v2_enroll_introduction_message_learn_more" msgid="5856010507790137793"></string>
@@ -850,7 +852,6 @@
<string name="nfc_reboot_dialog_title" msgid="2033983438635768169">"¿Reiniciar dispositivo?"</string>
<string name="nfc_reboot_dialog_message" msgid="4929353168157966992">"El registro detallado de NFC solo se usa para fines de desarrollo. Además, se incluyen datos adicionales de NFC en los informes de errores, que pueden contener información privada. Reinicia tu dispositivo para cambiar este ajuste."</string>
<string name="nfc_reboot_dialog_confirm" msgid="4769763632008584567">"Reiniciar"</string>
- <string name="keywords_external_display" msgid="4181375057920134909">"proyectar, pantalla externa, pantallas conectadas, pantalla usb, resolución, rotación"</string>
<string name="external_display_on" msgid="2560104443500154333">"Activada"</string>
<string name="external_display_off" msgid="5634413756025351374">"Desactivada"</string>
<string name="external_display_settings_title" msgid="6256884595821605779">"Pantalla externa"</string>
@@ -989,7 +990,7 @@
<string name="wifi_dpp_scan_qr_code" msgid="3543923817779444434">"Escanea el código QR"</string>
<string name="wifi_dpp_scan_qr_code_join_network" msgid="969985020363459133">"Centra el código QR de abajo para conectarte a \"<xliff:g id="SSID">%1$s</xliff:g>\""</string>
<string name="wifi_dpp_scan_qr_code_join_unknown_network" msgid="3180020429793614145">"Escanea el código QR para conectarte a la red Wi‑Fi"</string>
- <string name="wifi_dpp_share_wifi" msgid="2431744447544057866">"Compartir Wi‑Fi"</string>
+ <string name="wifi_dpp_share_wifi" msgid="2431744447544057866">"Compartir Wi-Fi"</string>
<string name="wifi_dpp_scan_qr_code_with_another_device" msgid="6967364080214325016">"Escanea este código QR con otro dispositivo para conectarlo a \"<xliff:g id="SSID">%1$s</xliff:g>\""</string>
<string name="wifi_dpp_scan_open_network_qr_code_with_another_device" msgid="5398619697898444311">"Escanea este código QR con otro dispositivo para conectarte a \"<xliff:g id="SSID">%1$s</xliff:g>\""</string>
<string name="wifi_dpp_failure_authentication_or_configuration" msgid="847551626830740204">"Vuelve a intentarlo. Si el problema persiste, ponte en contacto con el fabricante del dispositivo"</string>
@@ -1201,9 +1202,9 @@
<string name="screen_resolution_selected_a11y" msgid="6158451180032224977">"Seleccionado"</string>
<string name="color_mode_title" msgid="8666690832113906028">"Colores"</string>
<string name="color_mode_option_natural" msgid="6192875655101283303">"Naturales"</string>
- <string name="color_mode_option_boosted" msgid="4698797857766774289">"Mejorados"</string>
+ <string name="color_mode_option_boosted" msgid="4698797857766774289">"Mejorado"</string>
<string name="color_mode_option_saturated" msgid="3413853820158447300">"Saturados"</string>
- <string name="color_mode_option_automatic" msgid="2281217686509980870">"Adaptativos"</string>
+ <string name="color_mode_option_automatic" msgid="2281217686509980870">"Adaptativo"</string>
<string name="brightness" msgid="6216871641021779698">"Nivel de brillo"</string>
<string name="auto_brightness_title" msgid="4239324728760986697">"Brillo adaptativo"</string>
<string name="auto_brightness_content_description_title" msgid="237734599617077375">"Acerca del brillo adaptativo"</string>
@@ -1868,7 +1869,7 @@
<string name="running_processes_header_cached_prefix" msgid="839132595831993521">"En caché"</string>
<string name="running_processes_header_ram" msgid="3014991380467004685">"<xliff:g id="RAM_0">%1$s</xliff:g> de RAM"</string>
<string name="runningservicedetails_settings_title" msgid="1057845389092757121">"Aplicación en ejecución"</string>
- <string name="no_services" msgid="3898812785511572899">"Inactivos"</string>
+ <string name="no_services" msgid="3898812785511572899">"Inactivo"</string>
<string name="runningservicedetails_services_title" msgid="11853795112787355">"Servicios"</string>
<string name="runningservicedetails_processes_title" msgid="5292271587797234038">"Procesos"</string>
<string name="service_stop" msgid="5712522600201308795">"Detener"</string>
@@ -1882,13 +1883,13 @@
<string name="process_provider_in_use_description" msgid="6730020083976048028">"Proveedor <xliff:g id="COMP_NAME">%1$s</xliff:g> en uso"</string>
<string name="runningservicedetails_stop_dlg_title" msgid="6201041461740445113">"¿Quieres detener el servicio del sistema?"</string>
<string name="language_input_gesture_title" msgid="3292455685728572960">"Idiomas, entrada de texto y gestos"</string>
- <string name="language_settings" msgid="8700174277543875046">"Idiomas e introducción de texto"</string>
+ <string name="language_settings" msgid="8700174277543875046">"Idiomas e introducción de texto"</string>
<string name="languages_settings" msgid="5784775502251770671">"Idiomas"</string>
<string name="keyboard_settings" msgid="184185708597386454">"Teclado"</string>
<string name="language_empty_list_user_restricted" msgid="8050367405839231863">"No tienes permiso para cambiar el idioma del dispositivo."</string>
<string name="language_keyboard_settings_title" msgid="7934844313233544557">"Idiomas e introd. de texto"</string>
<string name="input_assistance" msgid="3437568284144952104">"Herramientas"</string>
- <string name="keyboard_settings_category" msgid="5392847229300117064">"Teclado e introducción de texto"</string>
+ <string name="keyboard_settings_category" msgid="5392847229300117064">"Teclado y métodos de entrada"</string>
<string name="system_language" msgid="1146762166579643257">"Idiomas del sistema"</string>
<string name="phone_language" msgid="5986939176239963826">"Idiomas"</string>
<string name="phone_language_summary" msgid="863041222809685325"></string>
@@ -1918,6 +1919,8 @@
<string name="slow_keys_summary" msgid="1784371292745423292">"Ajusta el tiempo que se tarda en activar una pulsación de tecla a <xliff:g id="SLOW_KEYS_THRESHOLD">%1$d</xliff:g> ms"</string>
<string name="sticky_keys" msgid="7317317044898161747">"Teclas persistentes"</string>
<string name="sticky_keys_summary" msgid="1844953803625480623">"Pulsa una tecla para cada acceso directo en lugar de mantener pulsadas todas las teclas a la vez"</string>
+ <string name="mouse_keys" msgid="6237254627808525540">"Teclas para el ratón"</string>
+ <string name="mouse_keys_summary" msgid="2396247040177734245">"Usa el teclado físico para controlar el ratón."</string>
<string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"Combinaciones de teclas"</string>
<string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"Muestra la lista de combinaciones de teclas"</string>
<string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"Perfiles de trabajo y herramientas"</string>
@@ -1942,14 +1945,10 @@
<string name="pointer_fill_style_yellow_button" msgid="5025969961559379024">"Cambiar relleno a amarillo"</string>
<string name="pointer_fill_style_pink_button" msgid="4106218142489635673">"Cambiar relleno del puntero a rosa"</string>
<string name="pointer_fill_style_blue_button" msgid="5594958078854032785">"Cambiar relleno del puntero a azul"</string>
- <!-- no translation found for pointer_stroke_style (1886986630216050665) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_white (673686194443825383) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_black (4655806167067437330) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_none (8953927511729800247) -->
- <skip />
+ <string name="pointer_stroke_style" msgid="1886986630216050665">"Estilo del trazo del puntero"</string>
+ <string name="pointer_stroke_style_name_white" msgid="673686194443825383">"Blanco"</string>
+ <string name="pointer_stroke_style_name_black" msgid="4655806167067437330">"Negro"</string>
+ <string name="pointer_stroke_style_name_none" msgid="8953927511729800247">"Ninguno"</string>
<string name="trackpad_touch_gesture" msgid="8641725062131922497">"Consultar gestos del panel táctil"</string>
<string name="keywords_touchpad" msgid="8159846254066666032">"panel táctil, ratón, cursor, desplazar, deslizar, hacer clic con el botón derecho, clic, puntero"</string>
<string name="keywords_trackpad_bottom_right_tap" msgid="1285062446073929305">"hacer clic con el botón derecho, tocar"</string>
@@ -2179,28 +2178,22 @@
<string name="accessibility_shortcut_edit_dialog_summary_floating_button" msgid="6266489864614886247">"Toca el botón flotante."</string>
<string name="accessibility_shortcut_edit_dialog_title_software_by_gesture" msgid="4775049370625630546">"Gesto de accesibilidad"</string>
<string name="accessibility_shortcut_edit_dialog_summary_software" msgid="8315934725362849788">"En la parte inferior de la pantalla, toca el botón de accesibilidad <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g>. Para cambiar de una función a otra, mantén pulsado el botón de accesibilidad."</string>
- <string name="accessibility_shortcut_edit_dialog_summary_software_gesture" msgid="8292555254353761635">"Desde la parte inferior de la pantalla, desliza hacia arriba con dos dedos.\n\nPara cambiar de una función a otra, desliza hacia arriba con dos dedos y mantén pulsada la pantalla."</string>
- <string name="accessibility_shortcut_edit_dialog_summary_software_gesture_talkback" msgid="84483464524360845">"Desde la parte inferior de la pantalla, desliza tres dedos hacia arriba.\n\nPara cambiar de una función a otra, desliza tres dedos hacia arriba y mantén pulsada la pantalla."</string>
- <string name="accessibility_shortcut_edit_dialog_summary_gesture" msgid="2081123009255579884">"{count,plural, =1{Desliza hacia arriba desde la parte inferior de la pantalla. Para cambiar de una función a otra, desliza hacia arriba y mantén pulsada la pantalla.}other{Desliza hacia arriba con # dedos desde la parte inferior de la pantalla. Para cambiar de una función a otra, desliza hacia arriba con # dedos y mantén pulsada la pantalla.}}"</string>
+ <string name="accessibility_shortcut_edit_dialog_summary_gesture" msgid="2081123009255579884">"{count,plural, =1{Desliza hacia arriba desde la parte inferior de la pantalla. Para cambiar de una función a otra, desliza hacia arriba y mantén pulsado.}other{Desliza hacia arriba con # dedos desde la parte inferior de la pantalla. Para cambiar de una función a otra, desliza hacia arriba con # dedos y mantén pulsado.}}"</string>
<string name="accessibility_shortcut_edit_dialog_summary_software_floating" msgid="4459254227203203324"><annotation id="link">"Más opciones"</annotation></string>
<string name="footer_learn_more_content_description" msgid="8843798273152131341">"Más información sobre <xliff:g id="SERVICE">%1$s</xliff:g>"</string>
<string name="accessibility_shortcut_edit_dialog_title_quick_settings" msgid="140959604014177304">"Ajustes rápidos"</string>
- <string name="accessibility_shortcut_edit_dialog_summary_quick_settings" msgid="739883998754165940">"{count,plural, =1{Desliza hacia abajo desde la parte superior de la pantalla.}other{Desliza hacia abajo con # dedos desde la parte superior de la pantalla.}}"</string>
+ <string name="accessibility_shortcut_edit_dialog_summary_quick_settings" msgid="739883998754165940">"{count,plural, =1{Desliza hacia abajo desde la parte superior de la pantalla}other{Desliza hacia abajo con # dedos desde la parte superior de la pantalla}}"</string>
<string name="accessibility_shortcut_edit_dialog_summary_quick_settings_suw" msgid="4216628328191609785">"{count,plural, =1{Desliza hacia abajo desde la parte superior de la pantalla. Este acceso directo estará disponible cuando termines de configurar el dispositivo.}other{Desliza hacia abajo con # dedos desde la parte superior de la pantalla. Este acceso directo estará disponible cuando termines de configurar el dispositivo.}}"</string>
<string name="accessibility_feature_shortcut_setting_summary_quick_settings" msgid="7006526933552889373">"Ajustes rápidos"</string>
<string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="844089763968552142">"Teclas de volumen"</string>
<string name="accessibility_shortcut_hardware_keyword" msgid="2483152542320987022">"teclas de volumen"</string>
<string name="accessibility_shortcut_edit_dialog_summary_hardware" msgid="2503134386397991634">"Mantén pulsadas las dos teclas de volumen."</string>
- <string name="accessibility_shortcut_edit_dialog_title_two_finger_double_tap" msgid="2271778556854020996">"Toca dos veces la pantalla con dos dedos"</string>
<string name="accessibility_shortcut_edit_screen_title_two_finger_double_tap" msgid="8952595692906527694">"Tocar dos veces con %1$d dedos"</string>
<string name="accessibility_shortcut_edit_screen_summary_two_finger_double_tap" msgid="385404127425496362">"Toca rápidamente la pantalla dos veces con %1$d dedos."</string>
<string name="accessibility_shortcut_edit_screen_title_triple_tap" msgid="3314488747597058942">"Tocar tres veces"</string>
<string name="accessibility_shortcut_edit_screen_summary_triple_tap" msgid="4839204951599629871">"Toca rápidamente la pantalla %1$d veces. Esta acción puede ralentizar tu dispositivo."</string>
<string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="6271718715836961167">"tocar dos veces con %1$d dedos"</string>
- <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"Toca la pantalla {0,number,integer} veces rápidamente con dos dedos"</string>
- <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"Triple toque en la pantalla"</string>
<string name="accessibility_shortcut_triple_tap_keyword" msgid="5359347130888464334">"tocar tres veces"</string>
- <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"Toca la pantalla {0,number,integer} veces rápidamente. Esta acción puede hacer que tu dispositivo funcione más lento."</string>
<string name="accessibility_shortcut_edit_dialog_title_advance" msgid="4567868630655591506">"Ajustes avanzados"</string>
<string name="accessibility_screen_magnification_navbar_configuration_warning" msgid="266736851606791552">"Se ha definido <xliff:g id="SERVICE">%1$s</xliff:g> como preferencia de Accesibilidad. Para utilizar la ampliación, mantén pulsado el botón de accesibilidad y selecciona esa opción."</string>
<string name="accessibility_screen_magnification_gesture_navigation_warning" msgid="991017769735632046">"Se ha definido el gesto de accesibilidad para <xliff:g id="SERVICE">%1$s</xliff:g>. Para usar la función de ampliación, desliza hacia arriba con dos dedos desde la parte inferior de la pantalla y mantenla pulsada. A continuación, selecciona la ampliación."</string>
@@ -2369,6 +2362,7 @@
<string name="daltonizer_mode_tritanomaly_title" msgid="2278786218762602022">"Azul-amarillo"</string>
<string name="daltonizer_mode_grayscale_title" msgid="152005391387952588">"Escala de grises"</string>
<string name="daltonizer_saturation_title" msgid="2999486412114963068">"Intensidad"</string>
+ <string name="daltonizer_saturation_unavailable_summary" msgid="8319753055567798775">"No disponible en el modo Escala de grises ni cuando la corrección de color está inhabilitada"</string>
<string name="daltonizer_mode_deuteranomaly_summary" msgid="2117727423019598455">"Percepción débil del verde, deuteranomalía"</string>
<string name="daltonizer_mode_protanomaly_summary" msgid="4617032854982040748">"Percepción débil del rojo, protanomalía"</string>
<string name="daltonizer_mode_tritanomaly_summary" msgid="2428218320118180070">"Tritanomalía"</string>
@@ -2418,15 +2412,8 @@
<string name="color_cyan" msgid="4341758639597035927">"Cian"</string>
<string name="color_yellow" msgid="5957551912912679058">"Amarillo"</string>
<string name="color_magenta" msgid="8943538189219528423">"Magenta"</string>
- <string name="enable_service_title" msgid="7231533866953706788">"¿Permitir que <xliff:g id="SERVICE">%1$s</xliff:g> pueda controlar totalmente tu dispositivo?"</string>
<string name="capabilities_list_title" msgid="1225853611983394386">"<xliff:g id="SERVICE">%1$s</xliff:g> necesita:"</string>
<string name="touch_filtered_warning" msgid="4225815157460318241">"Una aplicación está bloqueando una solicitud de permiso, por lo que Ajustes no puede verificar tu respuesta."</string>
- <string name="accessibility_service_warning" msgid="6779187188736432618">"<xliff:g id="SERVICE">%1$s</xliff:g> está solicitando el control completo del dispositivo. El servicio puede leer la pantalla y actuar en nombre de los usuarios que necesitan funciones de accesibilidad. El nivel de control no es adecuado para la mayoría de las aplicaciones."</string>
- <string name="accessibility_service_warning_description" msgid="6573203795976134751">"El control total es adecuado para las aplicaciones de accesibilidad, pero no para la mayoría de las aplicaciones."</string>
- <string name="accessibility_service_screen_control_title" msgid="324795030658109870">"Ver y controlar la pantalla"</string>
- <string name="accessibility_service_screen_control_description" msgid="8431940515157990426">"Puede leer todo el contenido de la pantalla y mostrar contenido encima de otras aplicaciones."</string>
- <string name="accessibility_service_action_perform_title" msgid="1449360056585337833">"Ver y realizar acciones"</string>
- <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"Puede registrar tus interacciones con una aplicación o un sensor de hardware, así como interactuar con las aplicaciones en tu nombre."</string>
<string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Permitir"</string>
<string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Denegar"</string>
<string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Desactivar"</string>
@@ -2557,7 +2544,7 @@
<string name="battery_tip_charge_to_full_button" msgid="9172893341338732733">"Invalidar"</string>
<string name="battery_tip_incompatible_charging_title" msgid="1567827436103364999">"Comprueba el accesorio de carga"</string>
<string name="battery_tip_incompatible_charging_content_description" msgid="355668467640367701">"Más información sobre la carga con adaptadores incompatibles"</string>
- <string name="smart_battery_manager_title" msgid="3677620516657920364">"Gestor de batería"</string>
+ <string name="smart_battery_manager_title" msgid="3677620516657920364">"Administrador de batería"</string>
<string name="smart_battery_title" msgid="9095903608520254254">"Gestionar aplicaciones automáticamente"</string>
<string name="smart_battery_footer" msgid="8407121907452993645">"Cuando el gestor de batería detecte que las aplicaciones consumen batería, podrás restringirlas, aunque es posible que no funcionen correctamente y las notificaciones se retrasen."</string>
<string name="restricted_app_title" msgid="6585080822121007436">"Aplicaciones restringidas"</string>
@@ -2757,10 +2744,10 @@
<string name="credentials_not_erased" msgid="3611058412683184031">"No se ha podido borrar el almacenamiento de credenciales."</string>
<string name="usage_access_title" msgid="1580006124578134850">"Apps con acceso de uso"</string>
<string name="ca_certificate" msgid="3076484307693855611">"Certificado AC"</string>
- <string name="user_certificate" msgid="6897024598058566466">"Certificado de usuario"</string>
+ <string name="user_certificate" msgid="6897024598058566466">"Certificado de usuario de VPN y aplicaciones"</string>
<string name="wifi_certificate" msgid="8461905432409380387">"Certificado de Wi‑Fi"</string>
<string name="ca_certificate_warning_title" msgid="7951148441028692619">"Tus datos no serán privados"</string>
- <string name="ca_certificate_warning_description" msgid="8409850109551028774">"Con los certificados AC, los sitios web, las aplicaciones y las VPNs pueden cifrar datos. Instala solo certificados AC de organizaciones en las que confíes. \n\nSi instalas un certificado AC, su propietario podría acceder a tus datos, como contraseñas o información de tarjetas de crédito, de sitios web que visites o aplicaciones que uses, incluso si tus datos están cifrados."</string>
+ <string name="ca_certificate_warning_description" msgid="8409850109551028774">"Con los certificados AC, los sitios web, las aplicaciones y las VPNs pueden cifrar datos. Instala solo certificados AC de organizaciones en las que confíes. \n\nSi instalas un certificado AC, su propietario podría acceder a datos que hayas introducido en los sitios web que visitas o las aplicaciones que usas, aunque estén cifrados. Por ejemplo, podría tener acceso a contraseñas o a la información de tarjetas de crédito."</string>
<string name="certificate_warning_dont_install" msgid="3794366420884560605">"No instalar"</string>
<string name="certificate_warning_install_anyway" msgid="4633118283407228740">"Instalar de todas formas"</string>
<string name="cert_not_installed" msgid="6725137773549974522">"No se ha instalado el certificado"</string>
@@ -2947,8 +2934,8 @@
<string name="vpn_set_vpn_title" msgid="1667539483005810682">"¿Configurar el modo de VPN siempre activada?"</string>
<string name="vpn_first_always_on_vpn_message" msgid="2769478310633047870">"Si esta opción está activada, no tendrás acceso a Internet hasta que se conecte la red VPN"</string>
<string name="vpn_replace_always_on_vpn_enable_message" msgid="9154843462740876652">"La nueva red VPN sustituirá a la actual y no tendrás acceso a Internet hasta que dicha VPN se conecte"</string>
- <string name="vpn_replace_always_on_vpn_disable_message" msgid="4299175336198481106">"Ya estás conectado a una red VPN siempre activada. Si te conectas a otra, esta sustituirá a la VPN actual y se desactivará el modo de VPN siempre activada."</string>
- <string name="vpn_replace_vpn_message" msgid="1094297700371463386">"Ya estás conectado a una red VPN. Si te conectas a otra, esta sustituirá a la VPN actual."</string>
+ <string name="vpn_replace_always_on_vpn_disable_message" msgid="4299175336198481106">"Ya te has conectado a una red VPN siempre activada. Si te conectas a otra, esta sustituirá a la VPN actual y se desactivará el modo de VPN siempre activada."</string>
+ <string name="vpn_replace_vpn_message" msgid="1094297700371463386">"Ya te has conectado a una red VPN. Si te conectas a otra, esta sustituirá a la VPN actual."</string>
<string name="vpn_turn_on" msgid="3568307071295211187">"Activar"</string>
<string name="vpn_cant_connect_title" msgid="5670787575925519386">"No se puede conectar a <xliff:g id="VPN_NAME">%1$s</xliff:g>"</string>
<string name="vpn_cant_connect_message" msgid="2139148820719163694">"Esta aplicación no es compatible con el modo de VPN siempre activada"</string>
@@ -2966,11 +2953,11 @@
<string name="vpn_require_connection_title" msgid="4186758487822779039">"¿Requerir una conexión VPN?"</string>
<string name="vpn_insecure_dialog_subtitle" msgid="1857621742868835300">"No es segura. Cambia a una VPN IKEv2."</string>
<string name="vpn_start_unsupported" msgid="7139925503292269904">"No se ha podido iniciar la VPN no compatible."</string>
- <string name="vpn_lockdown_summary" msgid="4700625960550559029">"Selecciona un perfil de VPN para permanecer conectado de forma continua. Solo se permitirá el tráfico de red cuando estés conectado a esta red VPN."</string>
+ <string name="vpn_lockdown_summary" msgid="4700625960550559029">"Selecciona un perfil de VPN para mantener la conexión de forma continua. Solo se permitirá el tráfico de red cuando tengas conexión a esta red VPN."</string>
<string name="vpn_lockdown_none" msgid="455915403560910517">"Ninguno"</string>
<string name="vpn_lockdown_config_error" msgid="1992071316416371316">"Las redes VPN activadas continuamente requieren una dirección IP para el servidor y el DNS."</string>
<string name="vpn_no_network" msgid="7187593680049843763">"No hay conexión de red. Inténtalo de nuevo más tarde."</string>
- <string name="vpn_disconnected" msgid="7694522069957717501">"Desconectado de la red VPN"</string>
+ <string name="vpn_disconnected" msgid="7694522069957717501">"Te has desconectado de la VPN"</string>
<string name="vpn_disconnected_summary" msgid="721699709491697712">"Ninguna"</string>
<string name="vpn_missing_cert" msgid="5397309964971068272">"Falta un certificado. Prueba a editar el perfil."</string>
<string name="trusted_credentials_system_tab" msgid="675362923690364722">"Sistema"</string>
@@ -3021,7 +3008,7 @@
<string name="user_remove_user_menu" msgid="2183714948094429367">"Eliminar a <xliff:g id="USER_NAME">%1$s</xliff:g> de este dispositivo"</string>
<string name="user_lockscreen_settings" msgid="4596612658981942092">"Ajustes de pantalla de bloqueo"</string>
<string name="user_add_on_lockscreen_menu" msgid="2539059062034644966">"Añadir usuarios desde la pantalla de bloqueo"</string>
- <string name="switch_to_dock_user_when_docked" msgid="2324395443311905635">"Cambiar a administrador al ponerse en la base"</string>
+ <string name="switch_to_dock_user_when_docked" msgid="2324395443311905635">"Cambiar al usuario administrador al conectarse"</string>
<string name="user_confirm_remove_self_title" msgid="926265330805361832">"¿Eliminarte a ti mismo?"</string>
<string name="user_confirm_remove_title" msgid="3626559103278006002">"¿Eliminar este usuario?"</string>
<string name="user_profile_confirm_remove_title" msgid="3131574314149375354">"¿Quitar este perfil?"</string>
@@ -3038,7 +3025,7 @@
<string name="user_category_title" msgid="4368580529662699083">"Usuarios"</string>
<string name="other_user_category_title" msgid="7089976887307643217">"Otros usuarios"</string>
<string name="remove_guest_on_exit" msgid="8202972371459611066">"Eliminar actividad de invitado"</string>
- <string name="remove_guest_on_exit_summary" msgid="3969962695703280353">"Elimina todas las aplicaciones y datos de la sesión de invitado al salir del modo Invitado"</string>
+ <string name="remove_guest_on_exit_summary" msgid="3969962695703280353">"Elimina todos los datos y aplicaciones de la sesión de invitado al salir del modo Invitado"</string>
<string name="remove_guest_on_exit_dialog_title" msgid="2310442892536079416">"¿Eliminar actividad de invitado?"</string>
<string name="remove_guest_on_exit_dialog_message" msgid="8112409834021851883">"Se eliminarán las aplicaciones y datos de esta sesión de invitado ahora, y toda la actividad futura correspondiente se borrará cada vez que salgas del modo Invitado"</string>
<string name="remove_guest_on_exit_keywords" msgid="4961310523576166193">"eliminar, invitado, actividad, retirar, datos, visitante, borrar"</string>
@@ -3048,9 +3035,9 @@
<string name="user_grant_admin" msgid="5942118263054572074">"Convertir a este usuario en administrador"</string>
<string name="user_remove_user" msgid="8468203789739693845">"Eliminar usuario"</string>
<string name="user_enable_calling_and_sms_confirm_title" msgid="4041510268838725520">"¿Activar llamadas y SMS?"</string>
- <string name="user_enable_calling_and_sms_confirm_message" msgid="367792286597449922">"El historial de SMS y de llamadas se compartirá con este usuario."</string>
+ <string name="user_enable_calling_and_sms_confirm_message" msgid="367792286597449922">"El historial de SMS y de llamadas se compartirán con este usuario."</string>
<string name="user_revoke_admin_confirm_title" msgid="3057842401861731863">"¿Quitar privilegios de administrador?"</string>
- <string name="user_revoke_admin_confirm_message" msgid="9207187319308572958">"Si le quitas los privilegios de administrador a este usuario, tanto tú como otro administrador podéis devolvérselos más tarde."</string>
+ <string name="user_revoke_admin_confirm_message" msgid="9207187319308572958">"Si le quitas los privilegios de administrador a este usuario, tanto tú como otro administrador puede devolvérselos más tarde."</string>
<string name="emergency_info_title" msgid="8233682750953695582">"Información de emergencia"</string>
<string name="emergency_info_summary" msgid="8463622253016757697">"Información y contactos de <xliff:g id="USER_NAME">%1$s</xliff:g>"</string>
<string name="open_app_button" msgid="5025229765547191710">"Abrir <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
@@ -3225,7 +3212,7 @@
<string name="keywords_battery_adaptive_preferences" msgid="1774870663426502938">"preferencias de funciones inteligentes, batería inteligente"</string>
<string name="keywords_spell_checker" msgid="5148906820603481657">"ortografía, diccionarios, corrector ortográfico, autocorrección"</string>
<string name="keywords_voice_input" msgid="7534900094659358971">"herramienta de reconocimiento, entrada, conversión de texto a voz, hablar, idioma, manos libres, reconocimiento, ofensiva, palabra, audio, historial, auriculares bluetooth"</string>
- <string name="keywords_text_to_speech_output" msgid="6728080502619011668">"valorar, idioma, predeterminado, hablar, conversión de texto a voz, accesibilidad, lector de pantalla, ciego"</string>
+ <string name="keywords_text_to_speech_output" msgid="6728080502619011668">"valorar, idioma, predeterminado, hablar, tts, accesibilidad, lector de pantalla, invidente"</string>
<string name="keywords_date_and_time" msgid="4402136313104901312">"reloj, militar"</string>
<string name="keywords_network_reset" msgid="4075670452112218042">"restablecer, restaurar, fábrica"</string>
<string name="keywords_factory_data_reset" msgid="4979623326958976773">"borrar, eliminar, restaurar, resetear, recuperar, restablecer estado de fábrica"</string>
@@ -3368,10 +3355,8 @@
<string name="zen_mode_automation_settings_title" msgid="3709324184191870926">"Programaciones"</string>
<string name="zen_mode_delete_automatic_rules" msgid="5020468289267191765">"Eliminar programaciones"</string>
<string name="zen_mode_schedule_delete" msgid="5383420576833765114">"Eliminar"</string>
- <!-- no translation found for zen_mode_menu_rename_mode (4681802125016390837) -->
- <skip />
- <!-- no translation found for zen_mode_menu_delete_mode (5380084696402157428) -->
- <skip />
+ <string name="zen_mode_menu_rename_mode" msgid="4681802125016390837">"Cambiar nombre"</string>
+ <string name="zen_mode_menu_delete_mode" msgid="5380084696402157428">"Eliminar"</string>
<string name="zen_mode_delete_mode_confirmation" msgid="7594340592051947392">"¿Eliminar modo <xliff:g id="MODE">%1$s</xliff:g>?"</string>
<string name="zen_mode_rule_name_edit" msgid="1053237022416700481">"Editar"</string>
<string name="zen_mode_automation_settings_page_title" msgid="6217433860514433311">"Programaciones"</string>
@@ -3395,8 +3380,7 @@
<string name="zen_mode_visual_signals_settings_subtitle" msgid="7433077540895876672">"Permitir señales visuales"</string>
<string name="mode_interruption_filter_title" msgid="3343846700214702347">"Concentración"</string>
<string name="mode_device_effects_title" msgid="5857008332618433744">"Acciones adicionales"</string>
- <!-- no translation found for modes_sound_summary_off (6972648204528227879) -->
- <skip />
+ <string name="modes_sound_summary_off" msgid="6972648204528227879">"{count,plural, =0{Desactivado}=1{Desactivado / 1 modo puede activarlo automáticamente}other{Desactivado / # modos pueden activarlo automáticamente}}"</string>
<string name="mode_display_settings_title" msgid="8132825978346535472">"Ajustes de la pantalla"</string>
<string name="mode_display_options_section" msgid="5151597748243866532">"Opciones de visualización"</string>
<string name="mode_grayscale_title" msgid="6027553257331235461">"Escala de grises"</string>
@@ -3464,7 +3448,7 @@
<string name="zen_mode_sound_summary_on" msgid="9077659040104989899">"Activado"</string>
<string name="zen_mode_duration_summary_always_prompt" msgid="7658172853423383037">"Preguntar siempre"</string>
<string name="zen_mode_duration_summary_forever" msgid="5551992961329998606">"Hasta que lo desactives"</string>
- <string name="zen_mode_duration_summary_time_hours" msgid="2602655749780428308">"{count,plural, =1{1 hora}other{# horas}}"</string>
+ <string name="zen_mode_duration_summary_time_hours" msgid="2602655749780428308">"{count,plural, =1{1 hora}other{# horas}}"</string>
<string name="zen_mode_duration_summary_time_minutes" msgid="5755536844016835693">"{count,plural, =1{1 minuto}other{# minutos}}"</string>
<string name="zen_mode_sound_summary_off" msgid="7350437977839985836">"{count,plural, =0{Desactivado}=1{Desactivado / 1 programación puede activarlo automáticamente}other{Desactivado / # programaciones pueden activarlo automáticamente}}"</string>
<string name="zen_category_behavior" msgid="3214056473947178507">"Qué puede interrumpirte durante el modo No molestar"</string>
@@ -3659,9 +3643,9 @@
<string name="notif_listener_not_migrated" msgid="6265206376374278226">"Esta aplicación no admite la configuración avanzada"</string>
<string name="notif_listener_more_settings" msgid="1348409392307208921">"Más ajustes"</string>
<string name="notif_listener_more_settings_desc" msgid="7995492074281663658">"Hay más ajustes disponibles en la aplicación"</string>
- <string name="notification_polite_title" msgid="4737150709382859870">"Notificaciones adaptativas"</string>
- <string name="notification_polite_main_control_title" msgid="7267191551379543859">"Usar notificaciones adaptativas"</string>
- <string name="notification_polite_description" msgid="7749280535620291610">"Cuando recibas muchas notificaciones en poco tiempo, tu teléfono bajará el volumen del audio y minimizará las ventanas emergentes de la pantalla durante dos minutos. Las alertas de llamadas, alarmas y conversaciones prioritarias seguirán vibrando, emitiendo un sonido o apareciendo en pantalla, y todas las notificaciones se encontrarán fácilmente al deslizar hacia abajo la parte superior de la pantalla."</string>
+ <string name="notification_polite_title" msgid="6121016426991791557">"Bajar volumen de notificaciones"</string>
+ <string name="notification_polite_main_control_title" msgid="5812529809151927149">"Bajar el volumen de notificaciones"</string>
+ <string name="notification_polite_description" msgid="5497748284893832854">"Cuando recibas muchas notificaciones en poco tiempo, tu dispositivo bajará el volumen y minimizará las alertas durante un máximo de 2 minutos. Las llamadas, alarmas y conversaciones prioritarias no se verán afectadas. \n\nLas notificaciones recibidas durante ese periodo se pueden encontrar arrastrando hacia abajo la parte superior de la pantalla."</string>
<string name="notification_polite_work" msgid="8823596456640216391">"Aplicar a perfiles de trabajo"</string>
<string name="notification_polite_work_summary" msgid="5014189280132951378">"Aplicar a las aplicaciones del perfil de trabajo"</string>
<string name="vr_listeners_title" msgid="4960357292472540964">"Servicios de ayuda de RV"</string>
@@ -3775,7 +3759,7 @@
<string name="zen_mode_calls_list" msgid="5044730950895749093">"llamadas"</string>
<string name="zen_mode_calls_header" msgid="8379225445095856726">"Llamadas que pueden interrumpirte"</string>
<string name="zen_mode_calls_footer" msgid="2008079711083701243">"Para asegurarte de que las llamadas permitidas suenan, comprueba que el dispositivo esté configurado para sonar"</string>
- <string name="zen_mode_custom_calls_footer" msgid="6521283204577441053">"Las llamadas entrantes se bloquean en la programación \"<xliff:g id="SCHEDULE_NAME">%1$s</xliff:g>\". Cambia los ajustes para que tus amigos, familiares u otras personas puedan contactar contigo."</string>
+ <string name="zen_mode_custom_calls_footer" msgid="6521283204577441053">"Las llamadas entrantes se bloquean en la programación <xliff:g id="SCHEDULE_NAME">%1$s</xliff:g>. Cambia los ajustes para que tus amigos, familiares u otros puedan contactar contigo."</string>
<string name="zen_mode_starred_contacts_title" msgid="630299631659575589">"Contactos destacados"</string>
<string name="zen_mode_starred_contacts_summary_contacts" msgid="1629467178444895094">"{count,plural,offset:2 =0{Nadie}=1{{contact_1}}=2{{contact_1} y {contact_2}}=3{{contact_1}, {contact_2} y {contact_3}}other{{contact_1}, {contact_2} y # más}}"</string>
<string name="zen_mode_starred_contacts_empty_name" msgid="2906404745550293688">"(Sin nombre)"</string>
@@ -3784,7 +3768,7 @@
<string name="zen_mode_messages_title" msgid="1777598523485334405">"Mensajes"</string>
<string name="zen_mode_messages_header" msgid="253721635061451577">"Mensajes que pueden interrumpirte"</string>
<string name="zen_mode_messages_footer" msgid="6002468050854126331">"Para asegurarte de que los mensajes permitidos suenan, comprueba que el dispositivo esté configurado para sonar"</string>
- <string name="zen_mode_custom_messages_footer" msgid="7545180036949550830">"Los mensajes entrantes se bloquean en la programación \"<xliff:g id="SCHEDULE_NAME">%1$s</xliff:g>\". Cambia los ajustes para que tus amigos, familiares u otras personas puedan contactar contigo."</string>
+ <string name="zen_mode_custom_messages_footer" msgid="7545180036949550830">"Los mensajes entrantes se bloquean en la programación <xliff:g id="SCHEDULE_NAME">%1$s</xliff:g>. Cambia los ajustes para que tus amigos, familiares u otras personas puedan contactar contigo."</string>
<string name="zen_mode_all_messages_summary" msgid="3756267858343104554">"Todos los mensajes pueden interrumpirte"</string>
<string name="zen_mode_all_calls_summary" msgid="7337907849083824698">"Todas las llamadas pueden interrumpirte"</string>
<string name="zen_mode_contacts_count" msgid="6568631261119795799">"{count,plural, =0{Nadie}=1{1 contacto}other{# contactos}}"</string>
@@ -3818,7 +3802,9 @@
<string name="zen_mode_apps_priority_apps" msgid="7386196048313716076">"Aplicaciones seleccionadas"</string>
<string name="zen_mode_apps_none_apps" msgid="2493642312793604327">"Ninguna"</string>
<string name="zen_mode_apps_subtext" msgid="1764211974662012877">"{count,plural,offset:2 =0{Ninguna aplicación puede interrumpirte}=1{{app_1} puede interrumpirte}=2{{app_1} y {app_2} pueden interrumpirte}=3{{app_1}, {app_2} y {app_3} pueden interrumpirte}other{{app_1}, {app_2} y # más pueden interrumpirte}}"</string>
+ <string name="zen_mode_apps_work_app" msgid="8528767938316361588">"<xliff:g id="APP_LABEL">%s</xliff:g> (trabajo)"</string>
<string name="zen_mode_apps_calculating" msgid="5420121396943539286">"Calculando…"</string>
+ <string name="zen_mode_plus_n_items" msgid="6136713354369243421">"+<xliff:g id="NUMBER">%d</xliff:g>"</string>
<string name="zen_mode_bypassing_apps" msgid="625309443389126481">"Permitir que las aplicaciones anulen el modo No molestar"</string>
<string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"Aplicaciones que pueden interrumpirte"</string>
<string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"Seleccionar más aplicaciones"</string>
@@ -3836,6 +3822,7 @@
<string name="zen_mode_sounds_none" msgid="6557474361948269420">"Nada puede interrumpirme"</string>
<string name="zen_mode_people_none" msgid="4613147461974255046">"Nadie puede interrumpirte"</string>
<string name="zen_mode_people_some" msgid="9101872681298810281">"Algunas personas pueden interrumpirte"</string>
+ <string name="zen_mode_people_repeat_callers" msgid="4499084111069828761">"Las llamadas repetidas pueden interrumpirte"</string>
<string name="zen_mode_people_all" msgid="311036110283015205">"Todo el mundo puede interrumpirte"</string>
<string name="zen_mode_repeat_callers" msgid="2270356100287792138">"Llamadas repetidas"</string>
<string name="zen_mode_repeat_callers_title" msgid="8016699240338264781">"Permitir llamadas repetidas"</string>
@@ -3855,13 +3842,37 @@
<string name="zen_mode_summary_alarms_only_by_hour" msgid="7400910210950788163">"{count,plural, =1{Cambiar a Solo alarmas durante una hora hasta las {time}}other{Cambiar a Solo alarmas durante # horas hasta las {time}}}"</string>
<string name="zen_mode_summary_alarms_only_by_time" msgid="8140619669703968810">"Cambiar a Solo alarmas hasta las <xliff:g id="FORMATTEDTIME">%1$s</xliff:g>"</string>
<string name="zen_mode_summary_always" msgid="722093064250082317">"Cambiar a interrumpir siempre"</string>
- <!-- no translation found for zen_mode_rename_title (8146882272966214558) -->
+ <string name="zen_mode_rename_title" msgid="8146882272966214558">"Modo de edición"</string>
+ <string name="zen_mode_new_custom_title" msgid="321750898430776191">"Añadir modo"</string>
+ <string name="zen_mode_new_custom_default_name" msgid="2778307946775085105">"Modo personalizado"</string>
+ <string name="zen_mode_edit_name_hint" msgid="4584652062167540536">"Nombre del modo"</string>
+ <string name="zen_mode_trigger_title_schedule_calendar" msgid="9206609438617550331">"Eventos del calendario"</string>
+ <string name="zen_mode_trigger_title_bedtime" msgid="5086070900588489978">"Horario de sueño"</string>
+ <string name="zen_mode_trigger_title_driving" msgid="7890990983453164403">"Durante la conducción"</string>
+ <string name="zen_mode_trigger_title_generic" msgid="601273385119550420">"Vinculado a la aplicación"</string>
+ <string name="zen_mode_trigger_summary_settings_in_app" msgid="4860667191183702601">"Información y ajustes en <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+ <string name="zen_mode_trigger_summary_managed_by_app" msgid="8631011868193102098">"Gestionado por <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+ <string name="zen_mode_confirm_disable_title" msgid="1232297660775719796">"Inhablitar modo"</string>
+ <string name="zen_mode_confirm_disable_message" msgid="7315541221665718491">"Si inhabilitas esta función, el modo dejará de funcionar como estaba previsto y sus ajustes se ocultarán."</string>
+ <string name="zen_mode_action_disable" msgid="3552921561331044881">"Inhabilitar"</string>
+ <string name="zen_mode_confirm_enable_title" msgid="5683371335847448595">"Habilitar modo"</string>
+ <string name="zen_mode_confirm_enable_message" msgid="7017879133260011419">"Si habilitas esta función, el modo se activará automáticamente según su programación."</string>
+ <string name="zen_mode_action_enable" msgid="1161480633223176531">"Habilitar"</string>
+ <!-- no translation found for zen_mode_blurb_schedule_time (8223898702097484009) -->
<skip />
- <!-- no translation found for zen_mode_new_custom_title (321750898430776191) -->
+ <!-- no translation found for zen_mode_blurb_schedule_calendar (382177907856065945) -->
<skip />
- <!-- no translation found for zen_mode_new_custom_default_name (2778307946775085105) -->
+ <!-- no translation found for zen_mode_blurb_bedtime (6155075956151013457) -->
<skip />
- <!-- no translation found for zen_mode_edit_name_hint (4584652062167540536) -->
+ <!-- no translation found for zen_mode_blurb_driving (1316054379000667305) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_immersive (5884004861848687869) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_theater (2999237960059524225) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_managed (5473921634985032149) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_generic (3041601339807075625) -->
<skip />
<string name="warning_button_text" msgid="1274234338874005639">"Advertencia"</string>
<string name="suggestion_button_close" msgid="6865170855573283759">"Cerrar"</string>
@@ -3887,7 +3898,7 @@
<string name="memtag_title" msgid="5096176296797727201">"Protección memoria avanzada beta"</string>
<string name="memtag_toggle" msgid="8695028758462939212">"Protección de memoria avanzada"</string>
<string name="memtag_intro" msgid="579408691329568953">"Esta función beta te ayuda a proteger tu dispositivo de errores que pueden poner en riesgo tu seguridad."</string>
- <string name="memtag_on" msgid="824938319141503923">"Activado"</string>
+ <string name="memtag_on" msgid="824938319141503923">"Activada"</string>
<string name="memtag_off" msgid="4835589640091709019">"Desactivado"</string>
<string name="memtag_on_pending" msgid="1592053425431532361">"Se activará tras reiniciar"</string>
<string name="memtag_off_pending" msgid="1543177181383593726">"Se desactivará tras reiniciar"</string>
@@ -3928,7 +3939,7 @@
<string name="change_storage" msgid="8773820275624113401">"Cambiar almacenamiento"</string>
<string name="notifications_label" msgid="8471624476040164538">"Notificaciones"</string>
<string name="notifications_enabled" msgid="7743168481579361019">"Activadas"</string>
- <string name="notifications_enabled_with_info" msgid="1808946629277684308">"<xliff:g id="NOTIFICATIONS_SENT">%1$s</xliff:g>/<xliff:g id="NOTIFICATIONS_CATEGORIES_OFF">%2$s</xliff:g>"</string>
+ <string name="notifications_enabled_with_info" msgid="1808946629277684308">"<xliff:g id="NOTIFICATIONS_SENT">%1$s</xliff:g> / <xliff:g id="NOTIFICATIONS_CATEGORIES_OFF">%2$s</xliff:g>"</string>
<string name="notifications_disabled" msgid="5603160425378437143">"Desactivadas"</string>
<string name="notifications_categories_off" msgid="7712037485557237328">"{count,plural, =1{# categoría desactivada}other{# categorías desactivadas}}"</string>
<string name="runtime_permissions_additional_count" msgid="6071909675951786523">"{count,plural, =1{# permiso adicional}other{# permisos adicionales}}"</string>
@@ -4849,9 +4860,8 @@
<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="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>
+ <!-- no translation found for enable_desktop_mode_on_secondary_display (2609567824593768780) -->
+ <skip />
<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>
@@ -5026,9 +5036,8 @@
<string name="default_active_sim_mobile_data" msgid="6798083892814045301">"datos móviles"</string>
<string name="wifi_scan_notify_message" msgid="1331238142061476869">"Para mejorar la experiencia con el dispositivo, las aplicaciones y los servicios podrán buscar redes Wi‑Fi en cualquier momento aunque la conexión Wi-Fi esté desactivada. Esto sirve para, por ejemplo, mejorar los servicios y las funciones que se basan en la ubicación. Puedes cambiar esta opción en los ajustes de búsqueda de redes Wi-Fi."</string>
<string name="wifi_scan_change" msgid="8438320311511852918">"Cambiar"</string>
- <string name="preference_summary_default_combination" msgid="4643585915107796253">"<xliff:g id="STATE">%1$s</xliff:g> / <xliff:g id="NETWORKMODE">%2$s</xliff:g>"</string>
<string name="mobile_data_connection_active" msgid="2422223108911581552">"Conectado"</string>
- <string name="mobile_data_temp_connection_active" msgid="3430470299756236413">"Conectado temporalmente"</string>
+ <string name="mobile_data_temp_connection_active" msgid="3430470299756236413">"Conectada temporalmente"</string>
<string name="mobile_data_temp_using" msgid="5211002380149434155">"Usando <xliff:g id="SUBNAME">%1$s</xliff:g> temporalmente"</string>
<string name="mobile_data_no_connection" msgid="905897142426974030">"Sin conexión"</string>
<string name="mobile_data_off_summary" msgid="1884248776904165539">"Los datos móviles no se conectarán automáticamente"</string>
@@ -5172,9 +5181,11 @@
<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="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_enable_freeform_support" msgid="3697462756493543645">"Debes reiniciar para habilitar la compatibilidad con ventanas de forma libre."</string>
+ <!-- no translation found for reboot_dialog_override_desktop_mode (7480950772574354130) -->
+ <skip />
+ <!-- no translation found for reboot_dialog_enable_desktop_mode_on_secondary_display (1153621881052401924) -->
+ <skip />
<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>
@@ -5292,10 +5303,8 @@
<string name="show_captions_enabled" msgid="7089043007924626">"Activado"</string>
<string name="live_caption_disabled" msgid="3562035026547887366">"Desactivado"</string>
<string name="live_caption_enabled" msgid="5269360946200718949">"Activado"</string>
- <!-- no translation found for audio_seek_bar_state_left_first (8814986910920838972) -->
- <skip />
- <!-- no translation found for audio_seek_bar_state_right_first (1999368979633398876) -->
- <skip />
+ <string name="audio_seek_bar_state_left_first" msgid="8814986910920838972">"Audio: %1$d%% izquierdo, %2$d%% derecho"</string>
+ <string name="audio_seek_bar_state_right_first" msgid="1999368979633398876">"Audio: %1$d%% derecho, %2$d%% izquierdo"</string>
<string name="about_phone_device_name_warning" msgid="3243226572404472381">"Las aplicaciones que hayas instalado pueden ver el nombre de tu dispositivo. También es posible que lo vean otros usuarios si lo conectas con dispositivos Bluetooth, si te conectas a una red Wi-Fi o si configuras un punto de acceso Wi-Fi."</string>
<string name="grammatical_gender_title" msgid="8584242850477270828">"Género gramatical"</string>
<string name="grammatical_gender_dialog_title" msgid="8754048592099871587">"Selecciona el género gramatical"</string>
@@ -5407,5 +5416,6 @@
<string name="audio_streams_main_page_password_dialog_join_button" msgid="2967747276379153408">"Escuchar emisión"</string>
<string name="audio_streams_main_page_qr_code_scanner_summary" msgid="5312980105735143360">"Escanea el código QR de una emisión de audio para escucharlo con <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
<string name="audio_streams_main_page_password_dialog_cannot_edit" msgid="9020898619297520153">"No se puede modificar la contraseña durante el uso compartido. Para cambiarla, primero desactiva la función compartir audio."</string>
+ <string name="audio_streams_qr_code_scanner_label" msgid="8799703301071378034">"Escáner de códigos QR"</string>
<string name="homepage_search" msgid="6759334912284663559">"Configuración de búsqueda"</string>
</resources>
diff --git a/res/values-et/strings.xml b/res/values-et/strings.xml
index c568315..20747aa 100644
--- a/res/values-et/strings.xml
+++ b/res/values-et/strings.xml
@@ -41,6 +41,8 @@
<string name="radioInfo_data_suspended" msgid="2001254415431299603">"Peatatud"</string>
<string name="radioInfo_unknown" msgid="2892562356748600367">"Teadmata"</string>
<string name="preview_pager_content_description" msgid="3762247188224576303">"Eelvaade"</string>
+ <!-- no translation found for qr_code_content_description (1852208464419291347) -->
+ <skip />
<string name="font_size_make_smaller_desc" msgid="4978038055549590140">"Vähendamine"</string>
<string name="font_size_make_larger_desc" msgid="5583046033381722247">"Suurendamine"</string>
<string name="stay_awake_on_fold_title" msgid="6590454679898134221">"Alati"</string>
@@ -283,7 +285,7 @@
<string name="location_settings_summary_location_off" msgid="4797932754681162262">"Väljas"</string>
<string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{Sees / # rakendusel on asukohale juurdepääs}other{Sees / # rakendusel on asukohale juurdepääs}}"</string>
<string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"Laadimine …"</string>
- <string name="location_settings_footer_general" msgid="1040507068701188821">"Rakendused, millel on luba läheduses olevatele seadmetele juurde pääseda, saavad määrata ühendatud seadmete suhtelise asukoha."</string>
+ <string name="location_settings_footer_general" msgid="3447585552176173502">"Rakendused, millel on luba läheduses olevatele seadmetele juurde pääseda, saavad määrata ühendatud seadmete suhtelise asukoha."</string>
<string name="location_settings_footer_location_off" msgid="8568995909147566720">"Juurdepääs asukohale on rakenduste ja teenuste jaoks välja lülitatud. Teie seadme asukoht võidakse siiski päästeteenistusele saata, kui helistate või saadate sõnumi hädaabinumbrile."</string>
<string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Lisateave asukohaseadete kohta"</string>
<string name="location_settings_tooltip_text_for_chrome" msgid="5781821709250544575">"Muutmiseks avage ChromeOS-i seaded > Privaatsus ja turvalisus > Privaatsuse seaded > Juurdepääs asukohale"</string>
@@ -850,7 +852,6 @@
<string name="nfc_reboot_dialog_title" msgid="2033983438635768169">"Kas taaskäivitada seade?"</string>
<string name="nfc_reboot_dialog_message" msgid="4929353168157966992">"Üksikasjalik NFC logimine on mõeldud ainult arenduseks. Veaaruannetesse kaasatakse täiendavad NFC andmed, mis võivad sisaldada privaatset teavet. Selle seade muutmiseks taaskäivitage oma seade."</string>
<string name="nfc_reboot_dialog_confirm" msgid="4769763632008584567">"Taaskäivita"</string>
- <string name="keywords_external_display" msgid="4181375057920134909">"peegeldamine, väline ekraan, ühendatud ekraan, USB-ekraan, eraldusvõime, pööramine"</string>
<string name="external_display_on" msgid="2560104443500154333">"Sees"</string>
<string name="external_display_off" msgid="5634413756025351374">"Väljas"</string>
<string name="external_display_settings_title" msgid="6256884595821605779">"Väline ekraan"</string>
@@ -1918,6 +1919,8 @@
<string name="slow_keys_summary" msgid="1784371292745423292">"Määrab klahvivajutuse aktiveerumiseks kuluva aja väärtusele <xliff:g id="SLOW_KEYS_THRESHOLD">%1$d</xliff:g> ms"</string>
<string name="sticky_keys" msgid="7317317044898161747">"Nakkeklahvid"</string>
<string name="sticky_keys_summary" msgid="1844953803625480623">"Otseteede puhul klahvide korraga allhoidmise asemel vajutage klahve ükshaaval"</string>
+ <string name="mouse_keys" msgid="6237254627808525540">"Hiireklahvid"</string>
+ <string name="mouse_keys_summary" msgid="2396247040177734245">"Kasutage hiire juhtimiseks füüsilist klaviatuuri."</string>
<string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"Klaviatuuri otseteed"</string>
<string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"Kuva otseteede loend"</string>
<string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"Tööprofiili klaviatuurid ja tööriistad"</string>
@@ -1942,14 +1945,10 @@
<string name="pointer_fill_style_yellow_button" msgid="5025969961559379024">"Kursori sisu muutmine kollaseks"</string>
<string name="pointer_fill_style_pink_button" msgid="4106218142489635673">"Kursori sisu muutmine roosaks"</string>
<string name="pointer_fill_style_blue_button" msgid="5594958078854032785">"Kursori sisu muutmine siniseks"</string>
- <!-- no translation found for pointer_stroke_style (1886986630216050665) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_white (673686194443825383) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_black (4655806167067437330) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_none (8953927511729800247) -->
- <skip />
+ <string name="pointer_stroke_style" msgid="1886986630216050665">"Hiirekursori kriipsu stiil"</string>
+ <string name="pointer_stroke_style_name_white" msgid="673686194443825383">"Valge"</string>
+ <string name="pointer_stroke_style_name_black" msgid="4655806167067437330">"Must"</string>
+ <string name="pointer_stroke_style_name_none" msgid="8953927511729800247">"Puudub"</string>
<string name="trackpad_touch_gesture" msgid="8641725062131922497">"Õppige puuteplaadi liigutusi"</string>
<string name="keywords_touchpad" msgid="8159846254066666032">"puuteplaat, hiir, kursor, kerimine, pühkimine, sõrmega tõmbamine, paremklõps, klõpsamine"</string>
<string name="keywords_trackpad_bottom_right_tap" msgid="1285062446073929305">"paremklõps, puudutamine"</string>
@@ -2179,8 +2178,6 @@
<string name="accessibility_shortcut_edit_dialog_summary_floating_button" msgid="6266489864614886247">"Puudutage hõljuvat nuppu"</string>
<string name="accessibility_shortcut_edit_dialog_title_software_by_gesture" msgid="4775049370625630546">"Juurdepääsetavuse liigutus"</string>
<string name="accessibility_shortcut_edit_dialog_summary_software" msgid="8315934725362849788">"Puudutage ekraani allservas juurdepääsetavuse nuppu <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g>. Funktsioonide vahetamiseks puudutage ja hoidke juurdepääsetavuse nuppu."</string>
- <string name="accessibility_shortcut_edit_dialog_summary_software_gesture" msgid="8292555254353761635">"Pühkige kahe sõrmega ekraanikuva allosast üles.\n\nFunktsioonide vahel vahetamiseks pühkige kahe sõrmega üles ja hoidke."</string>
- <string name="accessibility_shortcut_edit_dialog_summary_software_gesture_talkback" msgid="84483464524360845">"Pühkige kolme sõrmega ekraanikuva allosast üles.\n\nFunktsioonide vahel vahetamiseks pühkige kolme sõrmega üles ja hoidke."</string>
<string name="accessibility_shortcut_edit_dialog_summary_gesture" msgid="2081123009255579884">"{count,plural, =1{Tõmmake sõrmega ekraani allservast üles. Funktsioonide vahetamiseks tõmmake sõrmega üles ja hoidke sõrme ekraanil.}other{Tõmmake # sõrmega ekraani allservast üles. Funktsioonide vahetamiseks tõmmake # sõrmega üles ja hoidke sõrmi ekraanil.}}"</string>
<string name="accessibility_shortcut_edit_dialog_summary_software_floating" msgid="4459254227203203324"><annotation id="link">"Rohkem valikuid"</annotation></string>
<string name="footer_learn_more_content_description" msgid="8843798273152131341">"Lisateave: <xliff:g id="SERVICE">%1$s</xliff:g>"</string>
@@ -2191,16 +2188,12 @@
<string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="844089763968552142">"Helitugevuse klahvid"</string>
<string name="accessibility_shortcut_hardware_keyword" msgid="2483152542320987022">"helitugevuse klahvid"</string>
<string name="accessibility_shortcut_edit_dialog_summary_hardware" msgid="2503134386397991634">"Hoidke all mõlemat helitugevuse klahvi"</string>
- <string name="accessibility_shortcut_edit_dialog_title_two_finger_double_tap" msgid="2271778556854020996">"Ekraani kahe sõrmega topeltpuudutamine"</string>
<string name="accessibility_shortcut_edit_screen_title_two_finger_double_tap" msgid="8952595692906527694">"%1$d sõrmega topeltpuudutus"</string>
<string name="accessibility_shortcut_edit_screen_summary_two_finger_double_tap" msgid="385404127425496362">"Puudutage ekraani %1$d sõrmega kiiresti kaks korda"</string>
<string name="accessibility_shortcut_edit_screen_title_triple_tap" msgid="3314488747597058942">"Kolmikpuudutus"</string>
<string name="accessibility_shortcut_edit_screen_summary_triple_tap" msgid="4839204951599629871">"Puudutage ekraani kiiresti %1$d korda. See võib teie seadme tööd aeglustada."</string>
<string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="6271718715836961167">"%1$d sõrmega topeltpuudutus"</string>
- <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"Puudutage kahe sõrmega kiiresti {0,number,integer} korda ekraani"</string>
- <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"Ekraani kolmikpuudutamine"</string>
<string name="accessibility_shortcut_triple_tap_keyword" msgid="5359347130888464334">"kolmikpuudutus"</string>
- <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"Puudutage ekraani kiiresti {0,number,integer} korda. See otsetee võib teie seadme tööd aeglustada."</string>
<string name="accessibility_shortcut_edit_dialog_title_advance" msgid="4567868630655591506">"Täpsemad"</string>
<string name="accessibility_screen_magnification_navbar_configuration_warning" msgid="266736851606791552">"Juurdepääsetavuse nupu jaoks on valitud seade <xliff:g id="SERVICE">%1$s</xliff:g>. Suurenduse kasutamiseks puudutage ja hoidke juurdepääsetavuse nuppu ning seejärel valige suurendus."</string>
<string name="accessibility_screen_magnification_gesture_navigation_warning" msgid="991017769735632046">"See juurdepääsetavuse liigutus on määratud teenusele <xliff:g id="SERVICE">%1$s</xliff:g>. Suurenduse kasutamiseks pühkige kahe sõrmega ekraanikuva allosast üles ja hoidke sõrmi ekraanil. Seejärel tehke valik Suurendus."</string>
@@ -2369,6 +2362,7 @@
<string name="daltonizer_mode_tritanomaly_title" msgid="2278786218762602022">"Sinine-kollane"</string>
<string name="daltonizer_mode_grayscale_title" msgid="152005391387952588">"Halltoonid"</string>
<string name="daltonizer_saturation_title" msgid="2999486412114963068">"Intensiivsus"</string>
+ <string name="daltonizer_saturation_unavailable_summary" msgid="8319753055567798775">"Pole saadaval halltoonide reziimis ega siis, kui värvide korrigeerimine on keelatud"</string>
<string name="daltonizer_mode_deuteranomaly_summary" msgid="2117727423019598455">"Rohelise vähenenud tajumine, deuteranomaalia"</string>
<string name="daltonizer_mode_protanomaly_summary" msgid="4617032854982040748">"Punase vähenenud tajumine, protanomaalia"</string>
<string name="daltonizer_mode_tritanomaly_summary" msgid="2428218320118180070">"Tritanomaalia"</string>
@@ -2418,15 +2412,8 @@
<string name="color_cyan" msgid="4341758639597035927">"Tsüaan"</string>
<string name="color_yellow" msgid="5957551912912679058">"Kollane"</string>
<string name="color_magenta" msgid="8943538189219528423">"Fuksia"</string>
- <string name="enable_service_title" msgid="7231533866953706788">"Kas anda teenusele <xliff:g id="SERVICE">%1$s</xliff:g> teie seadme üle täielik kontroll?"</string>
<string name="capabilities_list_title" msgid="1225853611983394386">"<xliff:g id="SERVICE">%1$s</xliff:g> teeb järgmist:"</string>
<string name="touch_filtered_warning" msgid="4225815157460318241">"Seaded ei saa teie vastust kinnitada, sest rakendus varjab loataotlust."</string>
- <string name="accessibility_service_warning" msgid="6779187188736432618">"<xliff:g id="SERVICE">%1$s</xliff:g> taotleb seadme täielikku haldusõigust. Teenus saab juurdepääsufunktsioone vajavate kasutajate nimel ekraani lugeda ja tegutseda. See haldusõiguse tase ei ole enamiku rakenduste puhul sobilik."</string>
- <string name="accessibility_service_warning_description" msgid="6573203795976134751">"Täielik kontroll sobib rakendustele, mis pakuvad juurdepääsufunktsioone. Enamiku rakenduste puhul seda ei soovitata."</string>
- <string name="accessibility_service_screen_control_title" msgid="324795030658109870">"Ekraanikuva vaatamine ja haldamine"</string>
- <string name="accessibility_service_screen_control_description" msgid="8431940515157990426">"See saab lugeda kogu ekraanil kuvatud sisu ja kuvada sisu rakenduste peal."</string>
- <string name="accessibility_service_action_perform_title" msgid="1449360056585337833">"Toimingute vaatamine ja tegemine"</string>
- <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"See saab jälgida teie suhtlust rakenduse või riistvaraanduriga ja teie eest rakendustega suhelda."</string>
<string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Luba"</string>
<string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Keela"</string>
<string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Lülita välja"</string>
@@ -3368,10 +3355,8 @@
<string name="zen_mode_automation_settings_title" msgid="3709324184191870926">"Ajakavad"</string>
<string name="zen_mode_delete_automatic_rules" msgid="5020468289267191765">"Ajakavade kustutamine"</string>
<string name="zen_mode_schedule_delete" msgid="5383420576833765114">"Kustuta"</string>
- <!-- no translation found for zen_mode_menu_rename_mode (4681802125016390837) -->
- <skip />
- <!-- no translation found for zen_mode_menu_delete_mode (5380084696402157428) -->
- <skip />
+ <string name="zen_mode_menu_rename_mode" msgid="4681802125016390837">"Nimeta ümber"</string>
+ <string name="zen_mode_menu_delete_mode" msgid="5380084696402157428">"Kustuta"</string>
<string name="zen_mode_delete_mode_confirmation" msgid="7594340592051947392">"Kas kustutada režiim „<xliff:g id="MODE">%1$s</xliff:g>“?"</string>
<string name="zen_mode_rule_name_edit" msgid="1053237022416700481">"Muuda"</string>
<string name="zen_mode_automation_settings_page_title" msgid="6217433860514433311">"Ajakavad"</string>
@@ -3395,8 +3380,7 @@
<string name="zen_mode_visual_signals_settings_subtitle" msgid="7433077540895876672">"Luba visuaalsed signaalid"</string>
<string name="mode_interruption_filter_title" msgid="3343846700214702347">"Olge ümbritsevast teadlik"</string>
<string name="mode_device_effects_title" msgid="5857008332618433744">"Lisatoimingud"</string>
- <!-- no translation found for modes_sound_summary_off (6972648204528227879) -->
- <skip />
+ <string name="modes_sound_summary_off" msgid="6972648204528227879">"{count,plural, =0{Väljas}=1{Väljas / 1 režiimi saab automaatselt sisse lülitada}other{Väljas / # režiimi saab automaatselt sisse lülitada}}"</string>
<string name="mode_display_settings_title" msgid="8132825978346535472">"Kuvaseaded"</string>
<string name="mode_display_options_section" msgid="5151597748243866532">"Kuvavalikud"</string>
<string name="mode_grayscale_title" msgid="6027553257331235461">"Halltoonid"</string>
@@ -3659,9 +3643,9 @@
<string name="notif_listener_not_migrated" msgid="6265206376374278226">"See rakendus ei toeta täiustatud seadeid"</string>
<string name="notif_listener_more_settings" msgid="1348409392307208921">"Rohkem seadeid"</string>
<string name="notif_listener_more_settings_desc" msgid="7995492074281663658">"Selle rakenduse sees on saadaval rohkem seadeid"</string>
- <string name="notification_polite_title" msgid="4737150709382859870">"Kohanduvad märguanded"</string>
- <string name="notification_polite_main_control_title" msgid="7267191551379543859">"Kohanduvate märguannete kasutamine"</string>
- <string name="notification_polite_description" msgid="7749280535620291610">"Kui saate lühikese aja jooksul palju märguandeid, vähendab teie telefon helitugevust ja minimeerib ekraanil kuvatavad hüpikaknad kuni kaheks minutiks. Kõnede, alarmide ja prioriteetsete vestluste korral seade endiselt vibreerib, esitab heli või kuvab ekraanil märguande ja kõik märguanded on hõlpsasti leitavad, kui tõmbate ekraani ülaosast alla."</string>
+ <string name="notification_polite_title" msgid="6121016426991791557">"Märguannete summutamine"</string>
+ <string name="notification_polite_main_control_title" msgid="5812529809151927149">"Märguannete summutamise kasutamine"</string>
+ <string name="notification_polite_description" msgid="5497748284893832854">"Kui saate lühikese aja jooksul palju märguandeid, vähendab teie seade helitugevust ja minimeerib hoiatused kuni kaheks minutiks. See ei mõjuta kõnesid, alarme ega prioriteetseid vestlusi. \n\nSummutamise ajal saadud märguanded leiate, kui ekraani ülaosast alla tõmbate."</string>
<string name="notification_polite_work" msgid="8823596456640216391">"Tööprofiilidele rakendamine"</string>
<string name="notification_polite_work_summary" msgid="5014189280132951378">"Rakendage tööprofiili rakendustele"</string>
<string name="vr_listeners_title" msgid="4960357292472540964">"VR-abilise teenused"</string>
@@ -3818,7 +3802,9 @@
<string name="zen_mode_apps_priority_apps" msgid="7386196048313716076">"Valitud rakendused"</string>
<string name="zen_mode_apps_none_apps" msgid="2493642312793604327">"Puudub"</string>
<string name="zen_mode_apps_subtext" msgid="1764211974662012877">"{count,plural,offset:2 =0{Mitte ükski rakendus ei saa katkestada}=1{{app_1} saab katkestada}=2{{app_1} ja {app_2} saavad katkestada}=3{{app_1}, {app_2} ja {app_3} saavad katkestada}other{{app_1}, {app_2} ja veel # saavad katkestada}}"</string>
+ <string name="zen_mode_apps_work_app" msgid="8528767938316361588">"<xliff:g id="APP_LABEL">%s</xliff:g> (töö)"</string>
<string name="zen_mode_apps_calculating" msgid="5420121396943539286">"Arvutamine …"</string>
+ <string name="zen_mode_plus_n_items" msgid="6136713354369243421">"+<xliff:g id="NUMBER">%d</xliff:g>"</string>
<string name="zen_mode_bypassing_apps" msgid="625309443389126481">"Luba rakendustel alistada"</string>
<string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"Rakendused, mis saavad katkestada"</string>
<string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"Valige rohkem rakendusi"</string>
@@ -3836,6 +3822,7 @@
<string name="zen_mode_sounds_none" msgid="6557474361948269420">"Mitte miski ei saa katkestada"</string>
<string name="zen_mode_people_none" msgid="4613147461974255046">"Mitte keegi ei saa katkestada"</string>
<string name="zen_mode_people_some" msgid="9101872681298810281">"Mõned inimesed saavad katkestada"</string>
+ <string name="zen_mode_people_repeat_callers" msgid="4499084111069828761">"Korduvad helistajad saavad katkestada"</string>
<string name="zen_mode_people_all" msgid="311036110283015205">"Kõik inimesed saavad katkestada"</string>
<string name="zen_mode_repeat_callers" msgid="2270356100287792138">"Korduvad helistajad"</string>
<string name="zen_mode_repeat_callers_title" msgid="8016699240338264781">"Luba korduvad helistajad"</string>
@@ -3855,13 +3842,37 @@
<string name="zen_mode_summary_alarms_only_by_hour" msgid="7400910210950788163">"{count,plural, =1{Muudetakse valikule Ainult äratused 1 tunniks kuni {time}}other{Muudetakse valikule Ainult äratused # tunniks kuni {time}}}"</string>
<string name="zen_mode_summary_alarms_only_by_time" msgid="8140619669703968810">"Muudetakse valikule Ainult alarmid kuni kella <xliff:g id="FORMATTEDTIME">%1$s</xliff:g>"</string>
<string name="zen_mode_summary_always" msgid="722093064250082317">"Muudetakse valikule Katkesta alati"</string>
- <!-- no translation found for zen_mode_rename_title (8146882272966214558) -->
+ <string name="zen_mode_rename_title" msgid="8146882272966214558">"Muutmisrežiim"</string>
+ <string name="zen_mode_new_custom_title" msgid="321750898430776191">"Režiimi lisamine"</string>
+ <string name="zen_mode_new_custom_default_name" msgid="2778307946775085105">"Kohandatud režiim"</string>
+ <string name="zen_mode_edit_name_hint" msgid="4584652062167540536">"Režiimi nimi"</string>
+ <string name="zen_mode_trigger_title_schedule_calendar" msgid="9206609438617550331">"Kalendrisündmused"</string>
+ <string name="zen_mode_trigger_title_bedtime" msgid="5086070900588489978">"Une ajakava"</string>
+ <string name="zen_mode_trigger_title_driving" msgid="7890990983453164403">"Sõitmise ajal"</string>
+ <string name="zen_mode_trigger_title_generic" msgid="601273385119550420">"Rakendusega lingitud"</string>
+ <string name="zen_mode_trigger_summary_settings_in_app" msgid="4860667191183702601">"Teave ja seaded rakenduses <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+ <string name="zen_mode_trigger_summary_managed_by_app" msgid="8631011868193102098">"Haldab <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+ <string name="zen_mode_confirm_disable_title" msgid="1232297660775719796">"Keela režiim"</string>
+ <string name="zen_mode_confirm_disable_message" msgid="7315541221665718491">"Kui keelate selle funktsiooni, ei tööta režiim enam ettenähtud viisil ja selle seaded peidetakse."</string>
+ <string name="zen_mode_action_disable" msgid="3552921561331044881">"Keela"</string>
+ <string name="zen_mode_confirm_enable_title" msgid="5683371335847448595">"Luba režiim"</string>
+ <string name="zen_mode_confirm_enable_message" msgid="7017879133260011419">"Kui lubate selle funktsiooni, aktiveerub režiim automaatselt ajakava kohaselt."</string>
+ <string name="zen_mode_action_enable" msgid="1161480633223176531">"Luba"</string>
+ <!-- no translation found for zen_mode_blurb_schedule_time (8223898702097484009) -->
<skip />
- <!-- no translation found for zen_mode_new_custom_title (321750898430776191) -->
+ <!-- no translation found for zen_mode_blurb_schedule_calendar (382177907856065945) -->
<skip />
- <!-- no translation found for zen_mode_new_custom_default_name (2778307946775085105) -->
+ <!-- no translation found for zen_mode_blurb_bedtime (6155075956151013457) -->
<skip />
- <!-- no translation found for zen_mode_edit_name_hint (4584652062167540536) -->
+ <!-- no translation found for zen_mode_blurb_driving (1316054379000667305) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_immersive (5884004861848687869) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_theater (2999237960059524225) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_managed (5473921634985032149) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_generic (3041601339807075625) -->
<skip />
<string name="warning_button_text" msgid="1274234338874005639">"Hoiatus"</string>
<string name="suggestion_button_close" msgid="6865170855573283759">"Sule"</string>
@@ -4849,9 +4860,8 @@
<string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"Aku"</string>
<string name="settings_panel_title" msgid="346363079938069215">"Seadete paneel"</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>
+ <!-- no translation found for enable_desktop_mode_on_secondary_display (2609567824593768780) -->
+ <skip />
<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>
@@ -5026,7 +5036,6 @@
<string name="default_active_sim_mobile_data" msgid="6798083892814045301">"mobiilne andmeside"</string>
<string name="wifi_scan_notify_message" msgid="1331238142061476869">"Seadme kasutuskogemuse parandamiseks võivad rakendused ja teenused siiski alati otsida WiFi-võrke isegi siis, kui WiFi on väljas. Seda saab kasutada näiteks asukohapõhiste funktsioonide ja teenuste täiustamiseks. Seda saab muuta WiFi-skannimise seadetes."</string>
<string name="wifi_scan_change" msgid="8438320311511852918">"Muutmine"</string>
- <string name="preference_summary_default_combination" msgid="4643585915107796253">"<xliff:g id="STATE">%1$s</xliff:g> / <xliff:g id="NETWORKMODE">%2$s</xliff:g>"</string>
<string name="mobile_data_connection_active" msgid="2422223108911581552">"Ühendatud"</string>
<string name="mobile_data_temp_connection_active" msgid="3430470299756236413">"Ajutiselt ühendatud"</string>
<string name="mobile_data_temp_using" msgid="5211002380149434155">"Ajutiselt kasutatakse operaatorit <xliff:g id="SUBNAME">%1$s</xliff:g>"</string>
@@ -5172,9 +5181,11 @@
<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="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_enable_freeform_support" msgid="3697462756493543645">"Vabas vormis akende toe jaoks on vaja taaskäivitada."</string>
+ <!-- no translation found for reboot_dialog_override_desktop_mode (7480950772574354130) -->
+ <skip />
+ <!-- no translation found for reboot_dialog_enable_desktop_mode_on_secondary_display (1153621881052401924) -->
+ <skip />
<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>
@@ -5292,10 +5303,8 @@
<string name="show_captions_enabled" msgid="7089043007924626">"Sees"</string>
<string name="live_caption_disabled" msgid="3562035026547887366">"Väljas"</string>
<string name="live_caption_enabled" msgid="5269360946200718949">"Sees"</string>
- <!-- no translation found for audio_seek_bar_state_left_first (8814986910920838972) -->
- <skip />
- <!-- no translation found for audio_seek_bar_state_right_first (1999368979633398876) -->
- <skip />
+ <string name="audio_seek_bar_state_left_first" msgid="8814986910920838972">"Heli: %1$d%% vasak, %2$d%% parem"</string>
+ <string name="audio_seek_bar_state_right_first" msgid="1999368979633398876">"Heli: %1$d%% parem, %2$d%% vasak"</string>
<string name="about_phone_device_name_warning" msgid="3243226572404472381">"Teie seadme nimi on teie installitud rakendustele nähtav. Bluetooth-seadmetega või WiFi-võrguga ühenduse loomisel või WiFi-kuumkoha seadistamisel võivad seda näha ka teised inimesed."</string>
<string name="grammatical_gender_title" msgid="8584242850477270828">"Grammatiline sugu"</string>
<string name="grammatical_gender_dialog_title" msgid="8754048592099871587">"Grammatilise soo valimine"</string>
@@ -5407,5 +5416,6 @@
<string name="audio_streams_main_page_password_dialog_join_button" msgid="2967747276379153408">"Kuula voogu"</string>
<string name="audio_streams_main_page_qr_code_scanner_summary" msgid="5312980105735143360">"Seadmega <xliff:g id="DEVICE_NAME">%1$s</xliff:g> kuulamiseks skannige helivoo QR-kood"</string>
<string name="audio_streams_main_page_password_dialog_cannot_edit" msgid="9020898619297520153">"Parooli ei saa jagamise ajal muuta. Parooli muutmiseks lülitage esmalt heli jagamine välja."</string>
+ <string name="audio_streams_qr_code_scanner_label" msgid="8799703301071378034">"QR-koodi skanner"</string>
<string name="homepage_search" msgid="6759334912284663559">"Otsinguseaded"</string>
</resources>
diff --git a/res/values-eu/strings.xml b/res/values-eu/strings.xml
index 70029a2..9658485 100644
--- a/res/values-eu/strings.xml
+++ b/res/values-eu/strings.xml
@@ -41,6 +41,8 @@
<string name="radioInfo_data_suspended" msgid="2001254415431299603">"Etenda"</string>
<string name="radioInfo_unknown" msgid="2892562356748600367">"Ezezaguna"</string>
<string name="preview_pager_content_description" msgid="3762247188224576303">"Aurrebista"</string>
+ <!-- no translation found for qr_code_content_description (1852208464419291347) -->
+ <skip />
<string name="font_size_make_smaller_desc" msgid="4978038055549590140">"Txikitu"</string>
<string name="font_size_make_larger_desc" msgid="5583046033381722247">"Handitu"</string>
<string name="stay_awake_on_fold_title" msgid="6590454679898134221">"Beti"</string>
@@ -281,9 +283,9 @@
<string name="location_settings_title" msgid="8375074508036087178">"Kokapena"</string>
<string name="location_settings_primary_switch_title" msgid="8849081766644685127">"Erabili kokapena"</string>
<string name="location_settings_summary_location_off" msgid="4797932754681162262">"Desaktibatuta"</string>
- <string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{Aktibatuta / # aplikaziok kokapena atzi dezake}other{Aktibatuta / # aplikaziok kokapena atzi dezakete}}"</string>
+ <string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{Aktibatuta / # aplikaziok kokapena erabiltzeko baimena du}other{Aktibatuta / # aplikaziok kokapena erabiltzeko baimena dute}}"</string>
<string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"Kargatzen…"</string>
- <string name="location_settings_footer_general" msgid="1040507068701188821">"Aplikazioek inguruko gailuak erabiltzeko baimena badute, konektatutako gailuen posizio erlatiboa zehatz dezakete."</string>
+ <string name="location_settings_footer_general" msgid="3447585552176173502">"Aplikazioek inguruko gailuak erabiltzeko baimena badute, konektatutako gailuen posizio erlatiboa zehatz dezakete."</string>
<string name="location_settings_footer_location_off" msgid="8568995909147566720">"Aplikazioek eta zerbitzuek ez dute kokapena atzitzeko baimenik. Hala ere, larrialdietarako zenbaki batera deitzen edo mezu bat bidaltzen baduzu, baliteke larrialdi-zerbitzuei gailuaren kokapena bidaltzea."</string>
<string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Lortu kokapen-ezarpenei buruzko informazio gehiago"</string>
<string name="location_settings_tooltip_text_for_chrome" msgid="5781821709250544575">"Aldatzeko, joan ChromeOS-en ezarpenak > Pribatutasuna eta segurtasuna > Pribatutasun-ezarpenak > Kokapena erabiltzeko baimena atalera"</string>
@@ -850,7 +852,6 @@
<string name="nfc_reboot_dialog_title" msgid="2033983438635768169">"Gailua berrabiarazi nahi duzu?"</string>
<string name="nfc_reboot_dialog_message" msgid="4929353168157966992">"NFCaren erregistro xehatuak garapen-helburuetarako soilik dira. NFCari buruzko datu gehigarriak daude akatsen txostenetan, eta baliteke haiek informazio pribatua izatea. Ezarpen hori aldatzeko, berrabiarazi gailua."</string>
<string name="nfc_reboot_dialog_confirm" msgid="4769763632008584567">"Berrabiarazi"</string>
- <string name="keywords_external_display" msgid="4181375057920134909">"islatu, kanpoko pantaila, konektatutako pantaila, usb bidezko pantaila, bereizmena, biratzea"</string>
<string name="external_display_on" msgid="2560104443500154333">"Aktibatuta"</string>
<string name="external_display_off" msgid="5634413756025351374">"Desaktibatuta"</string>
<string name="external_display_settings_title" msgid="6256884595821605779">"Kanpoko pantaila"</string>
@@ -1583,7 +1584,7 @@
<string name="private_profile_location_switch_title" msgid="4127119143109855789">"Eremu pribatuaren kokapena"</string>
<string name="location_app_level_permissions" msgid="907206607664629759">"Aplikazioen kokapen-baimenak"</string>
<string name="location_app_permission_summary_location_off" msgid="2711822936853500335">"Kokapena desaktibatuta dago"</string>
- <string name="location_app_permission_summary_location_on" msgid="7552095451731948984">"{count,plural, =1{#/{total} aplikaziok kokapena atzi dezake}other{#/{total} aplikaziok kokapena atzi dezakete}}"</string>
+ <string name="location_app_permission_summary_location_on" msgid="7552095451731948984">"{count,plural, =1{#/{total} aplikaziok kokapena erabiltzeko baimena du}other{#/{total} aplikaziok kokapena erabiltzeko baimena dute}}"</string>
<string name="location_category_recent_location_access" msgid="2558063524482178146">"Atzitu duten azkenak"</string>
<string name="location_recent_location_access_see_all" msgid="4203102419355323325">"Ikusi guztiak"</string>
<string name="location_recent_location_access_view_details" msgid="5803264082558504544">"Ikusi xehetasunak"</string>
@@ -1674,7 +1675,7 @@
<string name="lockpassword_confirm_your_password_generic_profile" msgid="5918738487760814147">"Aurrera egiteko, idatzi laneko pasahitza"</string>
<string name="lockpassword_strong_auth_required_device_pattern" msgid="113817518413715557">"Segurtasuna bermatzeko, marraztu gailuaren eredua"</string>
<string name="lockpassword_strong_auth_required_device_pin" msgid="9163822166411129815">"Segurtasuna bermatzeko, idatzi gailuaren PINa"</string>
- <string name="lockpassword_strong_auth_required_device_password" msgid="8310047427464299337">"Segurtasuna bermatzeko, idatzi gailuaren pasahitza"</string>
+ <string name="lockpassword_strong_auth_required_device_password" msgid="8310047427464299337">"Segurtasuna bermatzeko, idatzi gailuko pasahitza"</string>
<string name="lockpassword_strong_auth_required_work_pattern" msgid="6803652050512161140">"Segurtasuna bermatzeko, marraztu laneko eredua"</string>
<string name="lockpassword_strong_auth_required_work_pin" msgid="4208510396448713500">"Segurtasuna bermatzeko, idatzi laneko PINa"</string>
<string name="lockpassword_strong_auth_required_work_password" msgid="6119482061429323090">"Segurtasuna bermatzeko, idatzi laneko pasahitza"</string>
@@ -1693,7 +1694,7 @@
<string name="lockpassword_confirm_repair_mode_password_header" msgid="3064676176428495228">"Egiaztatu pasahitza"</string>
<string name="lockpassword_confirm_repair_mode_pattern_details" msgid="6187536224419477465">"Aurrera egiteko, marraztu gailuaren eredua"</string>
<string name="lockpassword_confirm_repair_mode_pin_details" msgid="203022189107305807">"Aurrera egiteko, idatzi gailuaren PINa"</string>
- <string name="lockpassword_confirm_repair_mode_password_details" msgid="4860219600771003873">"Aurrera egiteko, idatzi gailuaren pasahitza"</string>
+ <string name="lockpassword_confirm_repair_mode_password_details" msgid="4860219600771003873">"Aurrera egiteko, idatzi gailuko pasahitza"</string>
<string name="lockpassword_invalid_pin" msgid="7530854476819820600">"PINa ez da zuzena"</string>
<string name="lockpassword_invalid_password" msgid="1588184930542221687">"Pasahitza ez da zuzena"</string>
<string name="lockpattern_need_to_unlock_wrong" msgid="8109305107409924083">"Eredua ez da zuzena"</string>
@@ -1918,6 +1919,8 @@
<string name="slow_keys_summary" msgid="1784371292745423292">"Tekla-sakatze bat aktibatzeko denbora doitzen du, <xliff:g id="SLOW_KEYS_THRESHOLD">%1$d</xliff:g> ms-tara"</string>
<string name="sticky_keys" msgid="7317317044898161747">"Tekla itsaskorrak"</string>
<string name="sticky_keys_summary" msgid="1844953803625480623">"Lasterbideetan, sakatu teklak banan-banan, guztiak aldi berean sakatu ordez"</string>
+ <string name="mouse_keys" msgid="6237254627808525540">"Saguaren teklak"</string>
+ <string name="mouse_keys_summary" msgid="2396247040177734245">"Erabili teklatu fisikoa sagua kontrolatzeko."</string>
<string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"Lasterbideak"</string>
<string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"Erakutsi lasterbideen zerrenda"</string>
<string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"Laneko profilaren teklatuak eta tresnak"</string>
@@ -1942,14 +1945,10 @@
<string name="pointer_fill_style_yellow_button" msgid="5025969961559379024">"Aldatu erakusle-betetzearen estiloa horira"</string>
<string name="pointer_fill_style_pink_button" msgid="4106218142489635673">"Aldatu erakusle-betetzearen estiloa arrosara"</string>
<string name="pointer_fill_style_blue_button" msgid="5594958078854032785">"Aldatu erakusle-betetzearen estiloa urdinera"</string>
- <!-- no translation found for pointer_stroke_style (1886986630216050665) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_white (673686194443825383) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_black (4655806167067437330) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_none (8953927511729800247) -->
- <skip />
+ <string name="pointer_stroke_style" msgid="1886986630216050665">"Erakuslearen trazuaren estiloa"</string>
+ <string name="pointer_stroke_style_name_white" msgid="673686194443825383">"Zuria"</string>
+ <string name="pointer_stroke_style_name_black" msgid="4655806167067437330">"Beltza"</string>
+ <string name="pointer_stroke_style_name_none" msgid="8953927511729800247">"Bat ere ez"</string>
<string name="trackpad_touch_gesture" msgid="8641725062131922497">"Lortu ukipen-panelean erabiltzeko keinuei buruzko informazioa"</string>
<string name="keywords_touchpad" msgid="8159846254066666032">"ukipen-panela, ukipena, panela, sagua, kurtsorea, gora egin, behera egin, hatza pasatu, eskuineko botoiarekin klik egin, klik, klikatu, erakuslea"</string>
<string name="keywords_trackpad_bottom_right_tap" msgid="1285062446073929305">"eskuineko botoiarekin klik egin, sakatu"</string>
@@ -2179,8 +2178,6 @@
<string name="accessibility_shortcut_edit_dialog_summary_floating_button" msgid="6266489864614886247">"Sakatu botoi gainerakorra"</string>
<string name="accessibility_shortcut_edit_dialog_title_software_by_gesture" msgid="4775049370625630546">"Erabilerraztasun-keinua"</string>
<string name="accessibility_shortcut_edit_dialog_summary_software" msgid="8315934725362849788">"Sakatu pantailaren behealdeko <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g> Erabilerraztasuna botoia. Eginbide batetik bestera aldatzeko, eduki sakatuta Erabilerraztasuna botoia."</string>
- <string name="accessibility_shortcut_edit_dialog_summary_software_gesture" msgid="8292555254353761635">"Pasatu bi hatz pantailaren behealdetik gora.\n\nEginbide batetik bestera aldatzeko, pasatu bi hatz gorantz eta eduki pantaila sakatuta."</string>
- <string name="accessibility_shortcut_edit_dialog_summary_software_gesture_talkback" msgid="84483464524360845">"Pasatu hiru hatz pantailaren behealdetik gora.\n\nEginbide batetik bestera aldatzeko, pasatu hiru hatz gorantz eta eduki pantaila sakatuta."</string>
<string name="accessibility_shortcut_edit_dialog_summary_gesture" msgid="2081123009255579884">"{count,plural, =1{Pasatu hatza pantailaren behealdetik gora. Eginbide batetik bestera aldatzeko, pasatu hatza gorantz eta eduki pantaila sakatuta.}other{Pasatu # hatz pantailaren behealdetik gora. Eginbide batetik bestera aldatzeko, pasatu # hatz gorantz eta eduki pantaila sakatuta.}}"</string>
<string name="accessibility_shortcut_edit_dialog_summary_software_floating" msgid="4459254227203203324"><annotation id="link">"Aukera gehiago"</annotation></string>
<string name="footer_learn_more_content_description" msgid="8843798273152131341">"Lortu informazio gehiago <xliff:g id="SERVICE">%1$s</xliff:g> funtzioari buruz"</string>
@@ -2191,16 +2188,12 @@
<string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="844089763968552142">"Bolumen-botoiak"</string>
<string name="accessibility_shortcut_hardware_keyword" msgid="2483152542320987022">"bolumen-botoiak"</string>
<string name="accessibility_shortcut_edit_dialog_summary_hardware" msgid="2503134386397991634">"Eduki sakatuta bolumen-botoiak"</string>
- <string name="accessibility_shortcut_edit_dialog_title_two_finger_double_tap" msgid="2271778556854020996">"Sakatu pantaila birritan 2 hatzekin"</string>
<string name="accessibility_shortcut_edit_screen_title_two_finger_double_tap" msgid="8952595692906527694">"%1$d hatzekin birritan sakatzea"</string>
<string name="accessibility_shortcut_edit_screen_summary_two_finger_double_tap" msgid="385404127425496362">"Sakatu pantaila bizkor 2 aldiz %1$d hatzekin"</string>
<string name="accessibility_shortcut_edit_screen_title_triple_tap" msgid="3314488747597058942">"3 aldiz sakatzea"</string>
<string name="accessibility_shortcut_edit_screen_summary_triple_tap" msgid="4839204951599629871">"Sakatu pantaila bizkor %1$d aldiz. Baliteke gailua moteltzea."</string>
<string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="6271718715836961167">"%1$d hatzekin birritan sakatzea"</string>
- <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"Sakatu bizkor pantaila {0,number,integer} aldiz 2 hatzekin"</string>
- <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"Sakatu pantaila hiru aldiz"</string>
<string name="accessibility_shortcut_triple_tap_keyword" msgid="5359347130888464334">"3 aldiz sakatzea"</string>
- <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"Sakatu pantaila bizkor {0,number,integer} aldiz. Baliteke lasterbide honek gailua moteltzea."</string>
<string name="accessibility_shortcut_edit_dialog_title_advance" msgid="4567868630655591506">"Aurreratuak"</string>
<string name="accessibility_screen_magnification_navbar_configuration_warning" msgid="266736851606791552">"Erabilerraztasuna botoia labur sakatuta \"<xliff:g id="SERVICE">%1$s</xliff:g>\" aukera aktibatzen da. Lupa aplikatzeko, eduki sakatuta Erabilerraztasuna botoia eta, ondoren, hautatu lupa."</string>
<string name="accessibility_screen_magnification_gesture_navigation_warning" msgid="991017769735632046">"<xliff:g id="SERVICE">%1$s</xliff:g> erabiltzeko konfiguratu da erabilerraztasun-keinua. Lupa erabili nahi baduzu, pasatu bi hatz pantailaren behealdetik gora eta eduki sakatuta une batez. Ondoren, hautatu lupa."</string>
@@ -2369,6 +2362,7 @@
<string name="daltonizer_mode_tritanomaly_title" msgid="2278786218762602022">"Urdin-horia"</string>
<string name="daltonizer_mode_grayscale_title" msgid="152005391387952588">"Grisen eskala"</string>
<string name="daltonizer_saturation_title" msgid="2999486412114963068">"Intentsitatea"</string>
+ <string name="daltonizer_saturation_unavailable_summary" msgid="8319753055567798775">"Ez dago erabilgarri grisen eskalaren moduan edo koloreen zuzenketa desgaituta dagoenean"</string>
<string name="daltonizer_mode_deuteranomaly_summary" msgid="2117727423019598455">"Berdea gaizki ikusten da (deuteranomalia)"</string>
<string name="daltonizer_mode_protanomaly_summary" msgid="4617032854982040748">"Gorria gaizki ikusten da (protanomalia)"</string>
<string name="daltonizer_mode_tritanomaly_summary" msgid="2428218320118180070">"Tritanomalia"</string>
@@ -2418,15 +2412,8 @@
<string name="color_cyan" msgid="4341758639597035927">"Ziana"</string>
<string name="color_yellow" msgid="5957551912912679058">"Horia"</string>
<string name="color_magenta" msgid="8943538189219528423">"Magenta"</string>
- <string name="enable_service_title" msgid="7231533866953706788">"Gailua guztiz kontrolatzeko baimena eman nahi diozu <xliff:g id="SERVICE">%1$s</xliff:g> zerbitzuari?"</string>
<string name="capabilities_list_title" msgid="1225853611983394386">"<xliff:g id="SERVICE">%1$s</xliff:g> zerbitzuak hauek egin behar ditu:"</string>
<string name="touch_filtered_warning" msgid="4225815157460318241">"Aplikazio bat baimen-eskaera oztopatzen ari denez, ezarpenek ezin dute egiaztatu erantzuna."</string>
- <string name="accessibility_service_warning" msgid="6779187188736432618">"<xliff:g id="SERVICE">%1$s</xliff:g> zerbitzuak gailu honen kontrol osoa izan nahi du. Zerbitzuak pantaila irakur dezake, eta erabilerraztasun-beharrak dituzten erabiltzaileen ordez jardun. Kontrol-maila hau ez da egokia aplikazio gehienetarako."</string>
- <string name="accessibility_service_warning_description" msgid="6573203795976134751">"Erabilerraztasun-beharrak asetzen dituzten aplikazioetan da egokia kontrol osoa, baina ez aplikazio gehienetan."</string>
- <string name="accessibility_service_screen_control_title" msgid="324795030658109870">"Ikusi eta kontrolatu pantaila"</string>
- <string name="accessibility_service_screen_control_description" msgid="8431940515157990426">"Pantailako eduki guztia irakur dezake, eta beste aplikazioen gainean edukia bistaratu."</string>
- <string name="accessibility_service_action_perform_title" msgid="1449360056585337833">"Ikusi eta gauzatu ekintzak"</string>
- <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"Aplikazioekin edo hardware-sentsoreekin dituzun interakzioen jarraipena egin dezake, eta zure izenean beste aplikazio batzuekin interakzioan jardun."</string>
<string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Baimendu"</string>
<string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Ukatu"</string>
<string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Desaktibatu"</string>
@@ -3368,10 +3355,8 @@
<string name="zen_mode_automation_settings_title" msgid="3709324184191870926">"Programazioak"</string>
<string name="zen_mode_delete_automatic_rules" msgid="5020468289267191765">"Ezabatu programazioak"</string>
<string name="zen_mode_schedule_delete" msgid="5383420576833765114">"Ezabatu"</string>
- <!-- no translation found for zen_mode_menu_rename_mode (4681802125016390837) -->
- <skip />
- <!-- no translation found for zen_mode_menu_delete_mode (5380084696402157428) -->
- <skip />
+ <string name="zen_mode_menu_rename_mode" msgid="4681802125016390837">"Aldatu izena"</string>
+ <string name="zen_mode_menu_delete_mode" msgid="5380084696402157428">"Ezabatu"</string>
<string name="zen_mode_delete_mode_confirmation" msgid="7594340592051947392">"\"<xliff:g id="MODE">%1$s</xliff:g>\" modua ezabatu nahi duzu?"</string>
<string name="zen_mode_rule_name_edit" msgid="1053237022416700481">"Editatu"</string>
<string name="zen_mode_automation_settings_page_title" msgid="6217433860514433311">"Programazioak"</string>
@@ -3395,8 +3380,7 @@
<string name="zen_mode_visual_signals_settings_subtitle" msgid="7433077540895876672">"Baimendu seinale bisualak"</string>
<string name="mode_interruption_filter_title" msgid="3343846700214702347">"Egon kontzentratuta"</string>
<string name="mode_device_effects_title" msgid="5857008332618433744">"Ekintza gehiago"</string>
- <!-- no translation found for modes_sound_summary_off (6972648204528227879) -->
- <skip />
+ <string name="modes_sound_summary_off" msgid="6972648204528227879">"{count,plural, =0{Desaktibatuta}=1{Desaktibatuta / 1 modu aktiba daiteke automatikoki}other{Desaktibatuta / # modu aktiba daitezke automatikoki}}"</string>
<string name="mode_display_settings_title" msgid="8132825978346535472">"Bistaratze-ezarpenak"</string>
<string name="mode_display_options_section" msgid="5151597748243866532">"Bistaratze-aukerak"</string>
<string name="mode_grayscale_title" msgid="6027553257331235461">"Grisen eskala"</string>
@@ -3659,9 +3643,9 @@
<string name="notif_listener_not_migrated" msgid="6265206376374278226">"Aplikazio honek ez ditu onartzen ezarpen hobetuak"</string>
<string name="notif_listener_more_settings" msgid="1348409392307208921">"Ezarpen gehiago"</string>
<string name="notif_listener_more_settings_desc" msgid="7995492074281663658">"Aplikazioaren barruan dituzu ezarpen gehiago"</string>
- <string name="notification_polite_title" msgid="4737150709382859870">"Jakinarazpen egokituak"</string>
- <string name="notification_polite_main_control_title" msgid="7267191551379543859">"Erabili jakinarazpen egokituak"</string>
- <string name="notification_polite_description" msgid="7749280535620291610">"Epe labur batean jakinarazpen ugari jasotzen badituzu, telefonoak bolumena jaitsiko du eta pantailako leiho gainerakorrak murriztuko ditu 2 minutuz (gehienez). Deiak, alarmak eta lehentasunezko elkarrizketak beti bezala jakinaraziko zaizkizu (hau da, dagokien dardara edo soinua eginda, edo pantailan agertuta) eta jakinarazpen guztiak erraz aurkituko dituzu hatza pantailaren goialdetik behera pasatuta."</string>
+ <string name="notification_polite_title" msgid="6121016426991791557">"Jakinarazpenen bolumena jaisteko aldia"</string>
+ <string name="notification_polite_main_control_title" msgid="5812529809151927149">"Erabili jakinarazpenak arintzeko ezarpena"</string>
+ <string name="notification_polite_description" msgid="5497748284893832854">"Epe labur batean jakinarazpen ugari jasotzen badituzu, gailuak bolumena jaitsiko du eta alertak murriztuko ditu 2 minutuz (gehienez). Ezarpen horrek ez die eragiten deiei, alarmei eta lehentasunezko elkarrizketei. \n\nArintze-aldi horretan jasotako jakinarazpenak ikusteko, pasatu hatza pantailaren goialdetik behera."</string>
<string name="notification_polite_work" msgid="8823596456640216391">"Aplikatu laneko profiletan"</string>
<string name="notification_polite_work_summary" msgid="5014189280132951378">"Aplikatu laneko profileko aplikazioetan"</string>
<string name="vr_listeners_title" msgid="4960357292472540964">"Errealitate birtualeko laguntza-zerbitzuak"</string>
@@ -3818,7 +3802,9 @@
<string name="zen_mode_apps_priority_apps" msgid="7386196048313716076">"Hautatutako aplikazioak"</string>
<string name="zen_mode_apps_none_apps" msgid="2493642312793604327">"Bat ere ez"</string>
<string name="zen_mode_apps_subtext" msgid="1764211974662012877">"{count,plural,offset:2 =0{Ez dago eten dezakeen aplikaziorik}=1{{app_1} aplikazioak eten dezake}=2{{app_1} eta {app_2} aplikazioek eten dezakete}=3{{app_1}, {app_2} eta {app_3} aplikazioek eten dezakete}other{{app_1}, {app_2} eta beste # aplikaziok eten dezakete}}"</string>
+ <string name="zen_mode_apps_work_app" msgid="8528767938316361588">"<xliff:g id="APP_LABEL">%s</xliff:g> (lana)"</string>
<string name="zen_mode_apps_calculating" msgid="5420121396943539286">"Kalkulatzen…"</string>
+ <string name="zen_mode_plus_n_items" msgid="6136713354369243421">"+<xliff:g id="NUMBER">%d</xliff:g>"</string>
<string name="zen_mode_bypassing_apps" msgid="625309443389126481">"Eman \"Ez molestatu\" ez aplikatzeko baimena aplikazioei"</string>
<string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"Eten zaitzaketen aplikazioak"</string>
<string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"Hautatu aplikazio gehiago"</string>
@@ -3836,6 +3822,7 @@
<string name="zen_mode_sounds_none" msgid="6557474361948269420">"Ez dago eten dezakeen ezer"</string>
<string name="zen_mode_people_none" msgid="4613147461974255046">"Ez dago eten dezakeen pertsonarik"</string>
<string name="zen_mode_people_some" msgid="9101872681298810281">"Pertsona batzuek eten dezakete"</string>
+ <string name="zen_mode_people_repeat_callers" msgid="4499084111069828761">"Deitzaile errepikariek eten dezakete"</string>
<string name="zen_mode_people_all" msgid="311036110283015205">"Edonork eten dezake"</string>
<string name="zen_mode_repeat_callers" msgid="2270356100287792138">"Berriro deitzen dutenak"</string>
<string name="zen_mode_repeat_callers_title" msgid="8016699240338264781">"Baimendu berriro deitzen dutenen deiak"</string>
@@ -3855,13 +3842,37 @@
<string name="zen_mode_summary_alarms_only_by_hour" msgid="7400910210950788163">"{count,plural, =1{Aldatu alarmak soilik modura ordubetez {time} arte}other{Aldatu alarmak soilik modura # orduz {time} arte}}"</string>
<string name="zen_mode_summary_alarms_only_by_time" msgid="8140619669703968810">"Aldatu \"Alarmak soilik\" modura <xliff:g id="FORMATTEDTIME">%1$s</xliff:g> arte"</string>
<string name="zen_mode_summary_always" msgid="722093064250082317">"Aldatu \"Eten beti\" modura"</string>
- <!-- no translation found for zen_mode_rename_title (8146882272966214558) -->
+ <string name="zen_mode_rename_title" msgid="8146882272966214558">"Editatu modua"</string>
+ <string name="zen_mode_new_custom_title" msgid="321750898430776191">"Gehitu modu bat"</string>
+ <string name="zen_mode_new_custom_default_name" msgid="2778307946775085105">"Modu pertsonalizatua"</string>
+ <string name="zen_mode_edit_name_hint" msgid="4584652062167540536">"Moduaren izena"</string>
+ <string name="zen_mode_trigger_title_schedule_calendar" msgid="9206609438617550331">"Egutegiko gertaerak"</string>
+ <string name="zen_mode_trigger_title_bedtime" msgid="5086070900588489978">"Lotarako programazioa"</string>
+ <string name="zen_mode_trigger_title_driving" msgid="7890990983453164403">"Gidatu bitartean"</string>
+ <string name="zen_mode_trigger_title_generic" msgid="601273385119550420">"Aplikazioarekin lotuta"</string>
+ <string name="zen_mode_trigger_summary_settings_in_app" msgid="4860667191183702601">"<xliff:g id="APP_NAME">%1$s</xliff:g> aplikazioan dituzu informazioa eta ezarpenak"</string>
+ <string name="zen_mode_trigger_summary_managed_by_app" msgid="8631011868193102098">"Kudeatzailea: <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+ <string name="zen_mode_confirm_disable_title" msgid="1232297660775719796">"Desgaitu modua"</string>
+ <string name="zen_mode_confirm_disable_message" msgid="7315541221665718491">"Eginbidea desgaitzen baduzu, modu horrek ez du behar bezala funtzionatuko, eta haren ezarpenak ezkutatu egingo dira."</string>
+ <string name="zen_mode_action_disable" msgid="3552921561331044881">"Desgaitu"</string>
+ <string name="zen_mode_confirm_enable_title" msgid="5683371335847448595">"Gaitu modua"</string>
+ <string name="zen_mode_confirm_enable_message" msgid="7017879133260011419">"Eginbidea gaitzen baduzu, modua automatikoki aktibatuko da dagokion ordutegiaren arabera."</string>
+ <string name="zen_mode_action_enable" msgid="1161480633223176531">"Gaitu"</string>
+ <!-- no translation found for zen_mode_blurb_schedule_time (8223898702097484009) -->
<skip />
- <!-- no translation found for zen_mode_new_custom_title (321750898430776191) -->
+ <!-- no translation found for zen_mode_blurb_schedule_calendar (382177907856065945) -->
<skip />
- <!-- no translation found for zen_mode_new_custom_default_name (2778307946775085105) -->
+ <!-- no translation found for zen_mode_blurb_bedtime (6155075956151013457) -->
<skip />
- <!-- no translation found for zen_mode_edit_name_hint (4584652062167540536) -->
+ <!-- no translation found for zen_mode_blurb_driving (1316054379000667305) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_immersive (5884004861848687869) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_theater (2999237960059524225) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_managed (5473921634985032149) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_generic (3041601339807075625) -->
<skip />
<string name="warning_button_text" msgid="1274234338874005639">"Abisua"</string>
<string name="suggestion_button_close" msgid="6865170855573283759">"Itxi"</string>
@@ -4849,9 +4860,8 @@
<string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"Bateria"</string>
<string name="settings_panel_title" msgid="346363079938069215">"Ezarpenen panela"</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>
+ <!-- no translation found for enable_desktop_mode_on_secondary_display (2609567824593768780) -->
+ <skip />
<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>
@@ -5026,7 +5036,6 @@
<string name="default_active_sim_mobile_data" msgid="6798083892814045301">"Datu-konexiorako"</string>
<string name="wifi_scan_notify_message" msgid="1331238142061476869">"Gailuaren funtzionamendua hobetzeko, aplikazioek eta zerbitzuek wifi-sareak bilatzen jarraituko dute, baita wifi-konexioa desaktibatuta dagoenean ere. Besteak beste, kokapenean oinarritutako eginbideak eta zerbitzuak hobetzeko balio du horrek. Aukera hori aldatzeko, joan wifi-sareak bilatzeko eginbidearen ezarpenetara."</string>
<string name="wifi_scan_change" msgid="8438320311511852918">"Aldatu"</string>
- <string name="preference_summary_default_combination" msgid="4643585915107796253">"<xliff:g id="STATE">%1$s</xliff:g> / <xliff:g id="NETWORKMODE">%2$s</xliff:g>"</string>
<string name="mobile_data_connection_active" msgid="2422223108911581552">"Konektatuta"</string>
<string name="mobile_data_temp_connection_active" msgid="3430470299756236413">"Aldi baterako konektatuta"</string>
<string name="mobile_data_temp_using" msgid="5211002380149434155">"Aldi baterako <xliff:g id="SUBNAME">%1$s</xliff:g> erabiltzen"</string>
@@ -5172,9 +5181,11 @@
<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="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_enable_freeform_support" msgid="3697462756493543645">"Estilo libreko leihoak onartzeko aukera gaitzeko, gailua berrabiarazi egin behar da."</string>
+ <!-- no translation found for reboot_dialog_override_desktop_mode (7480950772574354130) -->
+ <skip />
+ <!-- no translation found for reboot_dialog_enable_desktop_mode_on_secondary_display (1153621881052401924) -->
+ <skip />
<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>
@@ -5292,10 +5303,8 @@
<string name="show_captions_enabled" msgid="7089043007924626">"Aktibatuta"</string>
<string name="live_caption_disabled" msgid="3562035026547887366">"Desaktibatuta"</string>
<string name="live_caption_enabled" msgid="5269360946200718949">"Aktibatuta"</string>
- <!-- no translation found for audio_seek_bar_state_left_first (8814986910920838972) -->
- <skip />
- <!-- no translation found for audio_seek_bar_state_right_first (1999368979633398876) -->
- <skip />
+ <string name="audio_seek_bar_state_left_first" msgid="8814986910920838972">"Audioa: ehuneko %1$d ezkerrean; ehuneko %2$d eskuinean"</string>
+ <string name="audio_seek_bar_state_right_first" msgid="1999368979633398876">"Audioa: ehuneko %1$d eskuinean; ehuneko %2$d ezkerrean"</string>
<string name="about_phone_device_name_warning" msgid="3243226572404472381">"Instalatu dituzun aplikazioek gailuaren izena ikus dezakete. Baliteke jendeak ere ikustea Bluetooth bidezko gailuetara edo wifi-sare batera konektatzean, edo wifi-gune bat konfiguratzean."</string>
<string name="grammatical_gender_title" msgid="8584242850477270828">"Genero gramatikala"</string>
<string name="grammatical_gender_dialog_title" msgid="8754048592099871587">"Hautatu genero gramatikala"</string>
@@ -5407,5 +5416,6 @@
<string name="audio_streams_main_page_password_dialog_join_button" msgid="2967747276379153408">"Entzun zuzeneko igorpena"</string>
<string name="audio_streams_main_page_qr_code_scanner_summary" msgid="5312980105735143360">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> gailuarekin entzuteko, eskaneatu zuzeneko audio-igorpen baten QR kodea"</string>
<string name="audio_streams_main_page_password_dialog_cannot_edit" msgid="9020898619297520153">"Ezin da editatu pasahitza audioa partekatu bitartean. Pasahitza aldatzeko, desaktibatu audioa partekatzeko eginbidea."</string>
+ <string name="audio_streams_qr_code_scanner_label" msgid="8799703301071378034">"QR kodeen eskanerra"</string>
<string name="homepage_search" msgid="6759334912284663559">"Bilatu ezarpenetan"</string>
</resources>
diff --git a/res/values-fa/strings.xml b/res/values-fa/strings.xml
index 71749b8..1e1082f 100644
--- a/res/values-fa/strings.xml
+++ b/res/values-fa/strings.xml
@@ -41,6 +41,8 @@
<string name="radioInfo_data_suspended" msgid="2001254415431299603">"معلق"</string>
<string name="radioInfo_unknown" msgid="2892562356748600367">"نامشخص"</string>
<string name="preview_pager_content_description" msgid="3762247188224576303">"پیشنمایش"</string>
+ <!-- no translation found for qr_code_content_description (1852208464419291347) -->
+ <skip />
<string name="font_size_make_smaller_desc" msgid="4978038055549590140">"کوچکتر کردن"</string>
<string name="font_size_make_larger_desc" msgid="5583046033381722247">"بزرگتر کردن"</string>
<string name="stay_awake_on_fold_title" msgid="6590454679898134221">"همیشه"</string>
@@ -283,7 +285,7 @@
<string name="location_settings_summary_location_off" msgid="4797932754681162262">"خاموش"</string>
<string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{روشن / # برنامه به مکان دسترسی دارد}one{روشن / # برنامه به مکان دسترسی دارد}other{روشن / # برنامه به مکان دسترسی دارند}}"</string>
<string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"درحال بارگیری…"</string>
- <string name="location_settings_footer_general" msgid="1040507068701188821">"برنامههایی که اجازه «دستگاههای اطراف» را دارند میتوانند موقعیت نسبی دستگاههای متصل را مشخص کنند."</string>
+ <string name="location_settings_footer_general" msgid="3447585552176173502">"برنامههایی که اجازه دستگاههای اطراف را دارند میتوانند موقعیت نسبی دستگاههای متصل را تشخیص دهند."</string>
<string name="location_settings_footer_location_off" msgid="8568995909147566720">"دسترسی به مکان برای برنامهها و سرویسها خاموش است. وقتی با شماره تلفن اضطراری تماس میگیرید یا به آن پیامک ارسال میکنید، ممکن است مکان دستگاهتان همچنان برای مسئولان خدمات اضطراری ارسال شود."</string>
<string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"درباره «تنظیمات مکان» بیشتر بدانید"</string>
<string name="location_settings_tooltip_text_for_chrome" msgid="5781821709250544575">"برای تغییر، به «تنظیمات ChromeOS < حریم خصوصی و امنیت < تنظیمات حریم خصوصی < دسترسی مکان» بروید"</string>
@@ -850,7 +852,6 @@
<string name="nfc_reboot_dialog_title" msgid="2033983438635768169">"دستگاه بازراهاندازی شود؟"</string>
<string name="nfc_reboot_dialog_message" msgid="4929353168157966992">"گزارشگیری NFC دقیق فقط برای اهداف توسعه درنظر گرفته شده است. دادههای NFC تکمیلی در گزارشهای اشکال لحاظ میشود که ممکن است حاوی اطلاعات خصوصی باشد. برای تغییر این تنظیم، دستگاهتان را بازراهاندازی کنید."</string>
<string name="nfc_reboot_dialog_confirm" msgid="4769763632008584567">"بازراهاندازی"</string>
- <string name="keywords_external_display" msgid="4181375057920134909">"قرینهسازی, نمایشگر خارجی, نمایشگر متصل, نمایشگر usb, وضوح, چرخش"</string>
<string name="external_display_on" msgid="2560104443500154333">"روشن"</string>
<string name="external_display_off" msgid="5634413756025351374">"خاموش"</string>
<string name="external_display_settings_title" msgid="6256884595821605779">"نمایشگر خارجی"</string>
@@ -1918,6 +1919,8 @@
<string name="slow_keys_summary" msgid="1784371292745423292">"فاصله زمانی بین فشردن کلید و فعالسازی آن را روی <xliff:g id="SLOW_KEYS_THRESHOLD">%1$d</xliff:g> میلیثانیه تنظیم میکند"</string>
<string name="sticky_keys" msgid="7317317044898161747">"کلیدهای چسبان"</string>
<string name="sticky_keys_summary" msgid="1844953803625480623">"بهجای اینکه چند کلید را بهطور همزمان پایین نگه دارید، هربار یک کلید را برای میانبرها فشار دهید"</string>
+ <string name="mouse_keys" msgid="6237254627808525540">"کلیدهای موشواره"</string>
+ <string name="mouse_keys_summary" msgid="2396247040177734245">"برای کنترل موشواره، از صفحهکلید فیزیکی استفاده کنید."</string>
<string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"میانبرهای صفحهکلید"</string>
<string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"نمایش فهرست میانبرها"</string>
<string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"نمایه کاری صفحهکلیدها و ابزارها"</string>
@@ -1942,14 +1945,10 @@
<string name="pointer_fill_style_yellow_button" msgid="5025969961559379024">"تغییر سبک رنگ نشانگر به زرد"</string>
<string name="pointer_fill_style_pink_button" msgid="4106218142489635673">"تغییر سبک رنگ نشانگر به صورتی"</string>
<string name="pointer_fill_style_blue_button" msgid="5594958078854032785">"تغییر سبک رنگ نشانگر به آبی"</string>
- <!-- no translation found for pointer_stroke_style (1886986630216050665) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_white (673686194443825383) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_black (4655806167067437330) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_none (8953927511729800247) -->
- <skip />
+ <string name="pointer_stroke_style" msgid="1886986630216050665">"سبک ضربه اشارهگر"</string>
+ <string name="pointer_stroke_style_name_white" msgid="673686194443825383">"سفید"</string>
+ <string name="pointer_stroke_style_name_black" msgid="4655806167067437330">"سیاه"</string>
+ <string name="pointer_stroke_style_name_none" msgid="8953927511729800247">"هیچکدام"</string>
<string name="trackpad_touch_gesture" msgid="8641725062131922497">"آشنایی با اشارههای صفحه لمسی"</string>
<string name="keywords_touchpad" msgid="8159846254066666032">"پد لمسی، پدلمسی، موشواره، مکاننما، پیمایش، تند کشیدن، کلیک راست، کلیک، اشارهگر"</string>
<string name="keywords_trackpad_bottom_right_tap" msgid="1285062446073929305">"کلیک راست، ضربه زدن"</string>
@@ -2179,8 +2178,6 @@
<string name="accessibility_shortcut_edit_dialog_summary_floating_button" msgid="6266489864614886247">"روی دکمه شناور تکضرب بزنید"</string>
<string name="accessibility_shortcut_edit_dialog_title_software_by_gesture" msgid="4775049370625630546">"اشاره دسترسپذیری"</string>
<string name="accessibility_shortcut_edit_dialog_summary_software" msgid="8315934725362849788">"روی دکمه دسترسپذیری <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g> در پایین صفحهنمایش تکضرب بزنید. برای جابهجایی بین ویژگیها، دکمه دسترسپذیری را لمس کنید و نگه دارید."</string>
- <string name="accessibility_shortcut_edit_dialog_summary_software_gesture" msgid="8292555254353761635">"با ۲ انگشت، از پایین صفحه تند بهبالا بکشید.\n\nبرای جابهجایی بین ویژگیها، با ۲ انگشت تند بهبالا بکشید و نگه دارید."</string>
- <string name="accessibility_shortcut_edit_dialog_summary_software_gesture_talkback" msgid="84483464524360845">"با ۳ انگشت، از پایین صفحه تند بهبالا بکشید.\n\nبرای جابهجایی بین ویژگیها، با ۳ انگشت تند بهبالا بکشید و نگه دارید."</string>
<string name="accessibility_shortcut_edit_dialog_summary_gesture" msgid="2081123009255579884">"{count,plural, =1{از پایین صفحهنمایش تند بهبالا بکشید. برای جابهجایی بین ویژگیها، تند بهبالا بکشید و نگه دارید.}one{از پایین صفحهنمایش با # انگشت تند بهبالا بکشید. برای جابهجایی بین ویژگیها، با # انگشت تند بهبالا بکشید و نگه دارید.}other{از پایین صفحهنمایش با # انگشت تند بهبالا بکشید. برای جابهجایی بین ویژگیها، با # انگشت تند بهبالا بکشید و نگه دارید.}}"</string>
<string name="accessibility_shortcut_edit_dialog_summary_software_floating" msgid="4459254227203203324"><annotation id="link">"گزینههای بیشتر"</annotation></string>
<string name="footer_learn_more_content_description" msgid="8843798273152131341">"درباره <xliff:g id="SERVICE">%1$s</xliff:g> بیشتر بدانید"</string>
@@ -2191,16 +2188,12 @@
<string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="844089763968552142">"کلیدهای میزان صدا"</string>
<string name="accessibility_shortcut_hardware_keyword" msgid="2483152542320987022">"کلیدهای میزان صدا"</string>
<string name="accessibility_shortcut_edit_dialog_summary_hardware" msgid="2503134386397991634">"هردو کلید میزان صدا را فشار دهید و نگه دارید"</string>
- <string name="accessibility_shortcut_edit_dialog_title_two_finger_double_tap" msgid="2271778556854020996">"با دو انگشت دوضربه روی صفحهنمایش بزنید"</string>
<string name="accessibility_shortcut_edit_screen_title_two_finger_double_tap" msgid="8952595692906527694">"دوضربه %1$d انگشتی"</string>
<string name="accessibility_shortcut_edit_screen_summary_two_finger_double_tap" msgid="385404127425496362">"سریع با %1$d انگشت دوبار روی صفحهنمایش تکضرب بزنید"</string>
<string name="accessibility_shortcut_edit_screen_title_triple_tap" msgid="3314488747597058942">"سهضربه"</string>
<string name="accessibility_shortcut_edit_screen_summary_triple_tap" msgid="4839204951599629871">"سریع %1$d بار روی صفحهنمایش تکضرب بزنید. این کار ممکن است سرعت دستگاه را کاهش دهد."</string>
<string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="6271718715836961167">"دوضربه %1$d انگشتی"</string>
- <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"با دو انگشت {0,number,integer} بار بهسرعت روی صفحه تکضرب بزنید"</string>
- <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"روی صفحهنمایش سه ضربه سریع بزنید"</string>
<string name="accessibility_shortcut_triple_tap_keyword" msgid="5359347130888464334">"سهضربه"</string>
- <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"سریع روی صفحهنمایش {0,number,integer} بار تکضرب بزنید. ممکن است این میانبر سرعت دستگاه را کاهش دهد"</string>
<string name="accessibility_shortcut_edit_dialog_title_advance" msgid="4567868630655591506">"پیشرفته"</string>
<string name="accessibility_screen_magnification_navbar_configuration_warning" msgid="266736851606791552">"دکمه دسترسپذیری روی <xliff:g id="SERVICE">%1$s</xliff:g> تنظیم شده است. برای استفاده از درشتنمایی، دکمه دسترسپذیری را لمس کنید و نگهدارید، سپس درشتنمایی را انتخاب کنید."</string>
<string name="accessibility_screen_magnification_gesture_navigation_warning" msgid="991017769735632046">"اشاره دسترسپذیری روی <xliff:g id="SERVICE">%1$s</xliff:g> تنظیم شده است. برای استفاده از درشتنمایی، با دو انگشت از پایین صفحه بهبالا بکشید و نگه ارید. سپس درشتنمایی را انتخاب کنید."</string>
@@ -2369,6 +2362,7 @@
<string name="daltonizer_mode_tritanomaly_title" msgid="2278786218762602022">"آبی-زرد"</string>
<string name="daltonizer_mode_grayscale_title" msgid="152005391387952588">"سیاهوسفید"</string>
<string name="daltonizer_saturation_title" msgid="2999486412114963068">"شدت"</string>
+ <string name="daltonizer_saturation_unavailable_summary" msgid="8319753055567798775">"برای حالت سیاهوسفید یا زمانی که تصحیح رنگ غیرفعال است دردسترس نیست"</string>
<string name="daltonizer_mode_deuteranomaly_summary" msgid="2117727423019598455">"ضعف در دیدن رنگ سبز، سبزدشواربینی"</string>
<string name="daltonizer_mode_protanomaly_summary" msgid="4617032854982040748">"ضعف در دیدن رنگ سرخ، سرخدشواربینی"</string>
<string name="daltonizer_mode_tritanomaly_summary" msgid="2428218320118180070">"آبیدشواربینی"</string>
@@ -2418,15 +2412,8 @@
<string name="color_cyan" msgid="4341758639597035927">"سبز آبی"</string>
<string name="color_yellow" msgid="5957551912912679058">"زرد"</string>
<string name="color_magenta" msgid="8943538189219528423">"سرخابی"</string>
- <string name="enable_service_title" msgid="7231533866953706788">"به <xliff:g id="SERVICE">%1$s</xliff:g> اجازه میدهید بر دستگاهتان کنترل کامل داشته باشد؟"</string>
<string name="capabilities_list_title" msgid="1225853611983394386">"<xliff:g id="SERVICE">%1$s</xliff:g> باید:"</string>
<string name="touch_filtered_warning" msgid="4225815157460318241">"چون برنامهای در حال ایجاد تداخل در درخواست اجازه است، «تنظیمات» نمیتواند پاسخ شما را تأیید کند."</string>
- <string name="accessibility_service_warning" msgid="6779187188736432618">"<xliff:g id="SERVICE">%1$s</xliff:g> کنترل کامل بر این دستگاه را درخواست میکند. این سرویس میتواند صفحه را بخواند و ازطرف افرادی که مشکل دسترسی دارند، عمل کند. این سطح کنترل برای اکثر برنامهها مناسب نیست."</string>
- <string name="accessibility_service_warning_description" msgid="6573203795976134751">"کنترل کامل برای برنامههایی که به شما در زمینه نیازهای دسترسپذیری کمک میکند مناسب است، نه برای همه برنامهها."</string>
- <string name="accessibility_service_screen_control_title" msgid="324795030658109870">"مشاهده و کنترل صفحه"</string>
- <string name="accessibility_service_screen_control_description" msgid="8431940515157990426">"میتواند همه محتوای صفحه را بخواند و آن را روی بقیه برنامهها نمایش دهد."</string>
- <string name="accessibility_service_action_perform_title" msgid="1449360056585337833">"مشاهده و انجام کنشها"</string>
- <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"این عملکرد میتواند با برنامه یا حسگری سختافزاری تعاملاتتان را ردیابی کند و ازطرف شما با برنامهها تعامل داشته باشد."</string>
<string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"اجازه دادن"</string>
<string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"مجاز نبودن"</string>
<string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"خاموش شود"</string>
@@ -3368,10 +3355,8 @@
<string name="zen_mode_automation_settings_title" msgid="3709324184191870926">"زمانبندیها"</string>
<string name="zen_mode_delete_automatic_rules" msgid="5020468289267191765">"حذف زمانبندیها"</string>
<string name="zen_mode_schedule_delete" msgid="5383420576833765114">"حذف"</string>
- <!-- no translation found for zen_mode_menu_rename_mode (4681802125016390837) -->
- <skip />
- <!-- no translation found for zen_mode_menu_delete_mode (5380084696402157428) -->
- <skip />
+ <string name="zen_mode_menu_rename_mode" msgid="4681802125016390837">"تغییر نام"</string>
+ <string name="zen_mode_menu_delete_mode" msgid="5380084696402157428">"حذف"</string>
<string name="zen_mode_delete_mode_confirmation" msgid="7594340592051947392">"حالت «<xliff:g id="MODE">%1$s</xliff:g>» حذف شود؟"</string>
<string name="zen_mode_rule_name_edit" msgid="1053237022416700481">"ویرایش"</string>
<string name="zen_mode_automation_settings_page_title" msgid="6217433860514433311">"زمانبندیها"</string>
@@ -3395,8 +3380,7 @@
<string name="zen_mode_visual_signals_settings_subtitle" msgid="7433077540895876672">"مجاز کردن همه سیگنالهای تصویری"</string>
<string name="mode_interruption_filter_title" msgid="3343846700214702347">"حفظ تمرکز"</string>
<string name="mode_device_effects_title" msgid="5857008332618433744">"کنشهای بیشتر"</string>
- <!-- no translation found for modes_sound_summary_off (6972648204528227879) -->
- <skip />
+ <string name="modes_sound_summary_off" msgid="6972648204528227879">"{count,plural, =0{خاموش}=1{خاموش / ۱ حالت میتواند بهطور خودکار روشن شود}one{خاموش / # حالت میتواند بهطور خودکار روشن شود}other{خاموش / # حالت میتواند بهطور خودکار روشن شود}}"</string>
<string name="mode_display_settings_title" msgid="8132825978346535472">"تنظیمات نمایشگر"</string>
<string name="mode_display_options_section" msgid="5151597748243866532">"گزینههای نمایشگر"</string>
<string name="mode_grayscale_title" msgid="6027553257331235461">"سیاهوسفید"</string>
@@ -3659,9 +3643,9 @@
<string name="notif_listener_not_migrated" msgid="6265206376374278226">"این برنامه از تنظیمات پیشرفته پشتیبانی نمیکند"</string>
<string name="notif_listener_more_settings" msgid="1348409392307208921">"تنظیمات بیشتر"</string>
<string name="notif_listener_more_settings_desc" msgid="7995492074281663658">"تنظیمات بیشتر داخل این برنامه دردسترس است"</string>
- <string name="notification_polite_title" msgid="4737150709382859870">"اعلانهای تطبیقی"</string>
- <string name="notification_polite_main_control_title" msgid="7267191551379543859">"استفاده از اعلانهای تطبیقی"</string>
- <string name="notification_polite_description" msgid="7749280535620291610">"وقتی در مدت کوتاهی اعلانهای زیادی دریافت کنید، تلفنتان میزان صدا را کاهش میدهد و بالاپرهای روی صفحهنمایش را تا دو دقیقه بهحداقل میرساند. تماسها، زنگهای هشدار، و مکالمههای اولویتدار همچنان لرزش، صدا، یا نمایش روی صفحه خواهند داشت ، و دسترسی به تمامی اعلانها با کشیدن انگشت از بالای صفحه به پایین امکانپذیر است."</string>
+ <string name="notification_polite_title" msgid="6121016426991791557">"استراحت اعلانها"</string>
+ <string name="notification_polite_main_control_title" msgid="5812529809151927149">"استفاده از استراحت اعلانها"</string>
+ <string name="notification_polite_description" msgid="5497748284893832854">"وقتی در مدت کوتاهی اعلانهای زیادی دریافت کنید، دستگاهتان تا ۲ دقیقه میزان صدایش را کاهش میدهد و هشدارها را بهحداقل میرساند. تماسها، زنگهای ساعت، و مکالمههای اولویتدار تحتتأثیر قرار نمیگیرند. \n\nاعلانهای دریافتشده در زمان استراحت را میتوان با پایین کشیدن انگشت از بالای صفحهنمایش پیدا کرد."</string>
<string name="notification_polite_work" msgid="8823596456640216391">"اعمال کردن بر نمایههای کاری"</string>
<string name="notification_polite_work_summary" msgid="5014189280132951378">"برای برنامههای نمایه کاری اعمال میشود"</string>
<string name="vr_listeners_title" msgid="4960357292472540964">"خدمات یاور VR"</string>
@@ -3818,7 +3802,9 @@
<string name="zen_mode_apps_priority_apps" msgid="7386196048313716076">"برنامههای انتخابشده"</string>
<string name="zen_mode_apps_none_apps" msgid="2493642312793604327">"هیچکدام"</string>
<string name="zen_mode_apps_subtext" msgid="1764211974662012877">"{count,plural,offset:2 =0{هیچ برنامهای نمیتواند وقفه ایجاد کند}=1{{app_1} میتواند وقفه ایجاد کند}=2{{app_1} و {app_2} میتوانند وقفه ایجاد کنند}=3{{app_1}، {app_2}، و {app_3} میتوانند وقفه ایجاد کنند}one{{app_1}، {app_2}، و # برنامه دیگر میتوانند وقفه ایجاد کنند}other{{app_1}، {app_2}، و # برنامه دیگر میتوانند وقفه ایجاد کنند}}"</string>
+ <string name="zen_mode_apps_work_app" msgid="8528767938316361588">"<xliff:g id="APP_LABEL">%s</xliff:g> (کاری)"</string>
<string name="zen_mode_apps_calculating" msgid="5420121396943539286">"درحال محاسبه…"</string>
+ <string name="zen_mode_plus_n_items" msgid="6136713354369243421">"+<xliff:g id="NUMBER">%d</xliff:g>"</string>
<string name="zen_mode_bypassing_apps" msgid="625309443389126481">"مجاز کردن برنامهها برای لغو"</string>
<string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"برنامههایی که میتوانند وقفه ایجاد کنند"</string>
<string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"انتخاب برنامههای بیشتر"</string>
@@ -3836,6 +3822,7 @@
<string name="zen_mode_sounds_none" msgid="6557474361948269420">"هیچ موردی نمیتواند وقفه ایجاد کند"</string>
<string name="zen_mode_people_none" msgid="4613147461974255046">"هیچ فردی نمیتواند وقفه ایجاد کند"</string>
<string name="zen_mode_people_some" msgid="9101872681298810281">"بعضی از افراد میتوانند وقفه ایجاد کنند"</string>
+ <string name="zen_mode_people_repeat_callers" msgid="4499084111069828761">"تماسگیرندههای تکراری میتوانند وقفه ایجاد کنند"</string>
<string name="zen_mode_people_all" msgid="311036110283015205">"همه افراد میتوانند وقفه ایجاد کنند"</string>
<string name="zen_mode_repeat_callers" msgid="2270356100287792138">"تماسگیرندههای تکراری"</string>
<string name="zen_mode_repeat_callers_title" msgid="8016699240338264781">"اجازه دادن به تماسگیرندگان تکراری"</string>
@@ -3855,13 +3842,37 @@
<string name="zen_mode_summary_alarms_only_by_hour" msgid="7400910210950788163">"{count,plural, =1{تغییر به «فقط زنگ هشدار» بهمدت یک ساعت تا {time}}one{تغییر به «فقط زنگ هشدار» بهمدت # ساعت تا {time}}other{تغییر به «فقط زنگ هشدار» بهمدت # ساعت تا {time}}}"</string>
<string name="zen_mode_summary_alarms_only_by_time" msgid="8140619669703968810">"تغییر به «فقط هشدارها» تا <xliff:g id="FORMATTEDTIME">%1$s</xliff:g>"</string>
<string name="zen_mode_summary_always" msgid="722093064250082317">"تغییر در «همیشه وقفه»"</string>
- <!-- no translation found for zen_mode_rename_title (8146882272966214558) -->
+ <string name="zen_mode_rename_title" msgid="8146882272966214558">"ویرایش حالت"</string>
+ <string name="zen_mode_new_custom_title" msgid="321750898430776191">"افزودن حالت"</string>
+ <string name="zen_mode_new_custom_default_name" msgid="2778307946775085105">"حالت سفارشی"</string>
+ <string name="zen_mode_edit_name_hint" msgid="4584652062167540536">"نام حالت"</string>
+ <string name="zen_mode_trigger_title_schedule_calendar" msgid="9206609438617550331">"رویدادهای تقویم"</string>
+ <string name="zen_mode_trigger_title_bedtime" msgid="5086070900588489978">"برنامه خواب"</string>
+ <string name="zen_mode_trigger_title_driving" msgid="7890990983453164403">"هنگام رانندگی"</string>
+ <string name="zen_mode_trigger_title_generic" msgid="601273385119550420">"پیوندشده به برنامه"</string>
+ <string name="zen_mode_trigger_summary_settings_in_app" msgid="4860667191183702601">"اطلاعات و تنظیمات <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+ <string name="zen_mode_trigger_summary_managed_by_app" msgid="8631011868193102098">"تحتمدیریت <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+ <string name="zen_mode_confirm_disable_title" msgid="1232297660775719796">"غیرفعال کردن حالت"</string>
+ <string name="zen_mode_confirm_disable_message" msgid="7315541221665718491">"اگر این ویژگی را غیرفعال کنید، این حالت دیگر طبق انتظار کار نخواهد کرد و تنظیمات آن پنهان خواهد شد."</string>
+ <string name="zen_mode_action_disable" msgid="3552921561331044881">"غیرفعال کردن"</string>
+ <string name="zen_mode_confirm_enable_title" msgid="5683371335847448595">"فعال کردن حالت"</string>
+ <string name="zen_mode_confirm_enable_message" msgid="7017879133260011419">"اگر این ویژگی را فعال کنید، این حالت بهطور خودکار مطابق با زمانبندیاش فعال خواهد شد."</string>
+ <string name="zen_mode_action_enable" msgid="1161480633223176531">"فعال کردن"</string>
+ <!-- no translation found for zen_mode_blurb_schedule_time (8223898702097484009) -->
<skip />
- <!-- no translation found for zen_mode_new_custom_title (321750898430776191) -->
+ <!-- no translation found for zen_mode_blurb_schedule_calendar (382177907856065945) -->
<skip />
- <!-- no translation found for zen_mode_new_custom_default_name (2778307946775085105) -->
+ <!-- no translation found for zen_mode_blurb_bedtime (6155075956151013457) -->
<skip />
- <!-- no translation found for zen_mode_edit_name_hint (4584652062167540536) -->
+ <!-- no translation found for zen_mode_blurb_driving (1316054379000667305) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_immersive (5884004861848687869) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_theater (2999237960059524225) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_managed (5473921634985032149) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_generic (3041601339807075625) -->
<skip />
<string name="warning_button_text" msgid="1274234338874005639">"هشدار"</string>
<string name="suggestion_button_close" msgid="6865170855573283759">"بستن"</string>
@@ -4849,9 +4860,8 @@
<string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"باتری"</string>
<string name="settings_panel_title" msgid="346363079938069215">"پانل تنظیمات"</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>
+ <!-- no translation found for enable_desktop_mode_on_secondary_display (2609567824593768780) -->
+ <skip />
<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>
@@ -5026,7 +5036,6 @@
<string name="default_active_sim_mobile_data" msgid="6798083892814045301">"داده تلفن همراه"</string>
<string name="wifi_scan_notify_message" msgid="1331238142061476869">"برای بهبود تجربه استفاده از دستگاه، برنامهها و سرویسها همچنان میتوانند در هرزمانی شبکههای Wi-Fi را اسکن کنند، حتی وقتی Wi-Fi خاموش باشد. از این تنظیم میتوان بهعنوان مثال برای بهبود ویژگیها و سرویسهای مبتنی بر مکان استفاده کرد. میتوانید این مورد را در تنظیمات اسکن کردن Wi‑Fi تغییر دهید."</string>
<string name="wifi_scan_change" msgid="8438320311511852918">"تغییر"</string>
- <string name="preference_summary_default_combination" msgid="4643585915107796253">"<xliff:g id="STATE">%1$s</xliff:g> / <xliff:g id="NETWORKMODE">%2$s</xliff:g>"</string>
<string name="mobile_data_connection_active" msgid="2422223108911581552">"متصل است"</string>
<string name="mobile_data_temp_connection_active" msgid="3430470299756236413">"موقتاً متصل است"</string>
<string name="mobile_data_temp_using" msgid="5211002380149434155">"موقتاً از «<xliff:g id="SUBNAME">%1$s</xliff:g>» استفاده میکنید"</string>
@@ -5172,9 +5181,11 @@
<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="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_enable_freeform_support" msgid="3697462756493543645">"برای فعال کردن پشتیبانی پنجره قالب آزاد، بازراهاندازی الزامی است."</string>
+ <!-- no translation found for reboot_dialog_override_desktop_mode (7480950772574354130) -->
+ <skip />
+ <!-- no translation found for reboot_dialog_enable_desktop_mode_on_secondary_display (1153621881052401924) -->
+ <skip />
<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>
@@ -5405,5 +5416,6 @@
<string name="audio_streams_main_page_password_dialog_join_button" msgid="2967747276379153408">"گوش دادن به جاریسازی"</string>
<string name="audio_streams_main_page_qr_code_scanner_summary" msgid="5312980105735143360">"برای گوش دادن با <xliff:g id="DEVICE_NAME">%1$s</xliff:g>، رمزینه پاسخسریع جاریسازی صوتی را اسکن کنید"</string>
<string name="audio_streams_main_page_password_dialog_cannot_edit" msgid="9020898619297520153">"نمیتوان گذرواژه را درحین همرسانی ویرایش کرد. برای تغییر دادن گذرواژه، ابتدا «اشتراک صدا» را خاموش کنید."</string>
+ <string name="audio_streams_qr_code_scanner_label" msgid="8799703301071378034">"کدخوان پاسخسریع"</string>
<string name="homepage_search" msgid="6759334912284663559">"جستجو در «تنظیمات»"</string>
</resources>
diff --git a/res/values-fi/strings.xml b/res/values-fi/strings.xml
index 5488b2a..9f811a4 100644
--- a/res/values-fi/strings.xml
+++ b/res/values-fi/strings.xml
@@ -41,6 +41,8 @@
<string name="radioInfo_data_suspended" msgid="2001254415431299603">"Pidätetty"</string>
<string name="radioInfo_unknown" msgid="2892562356748600367">"Ei tiedossa"</string>
<string name="preview_pager_content_description" msgid="3762247188224576303">"Esikatselu"</string>
+ <!-- no translation found for qr_code_content_description (1852208464419291347) -->
+ <skip />
<string name="font_size_make_smaller_desc" msgid="4978038055549590140">"Pienennä"</string>
<string name="font_size_make_larger_desc" msgid="5583046033381722247">"Suurenna"</string>
<string name="stay_awake_on_fold_title" msgid="6590454679898134221">"Aina"</string>
@@ -283,7 +285,7 @@
<string name="location_settings_summary_location_off" msgid="4797932754681162262">"Pois päältä"</string>
<string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{Päällä / # sovelluksella on pääsyoikeus sijaintiin}other{Päällä / # sovelluksella on pääsyoikeus sijaintiin}}"</string>
<string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"Ladataan…"</string>
- <string name="location_settings_footer_general" msgid="1040507068701188821">"Sovellukset, joilla on lähellä olevien laitteiden lupa, voivat määrittää yhdistettyjen laitteiden suhteellisen sijainnin."</string>
+ <string name="location_settings_footer_general" msgid="3447585552176173502">"Sovellukset, joilla on lähellä olevien laitteiden lupa, voivat määrittää yhdistettyjen laitteiden suhteellisen sijainnin."</string>
<string name="location_settings_footer_location_off" msgid="8568995909147566720">"Sovelluksilla ja palveluilla ei ole sijaintilupaa. Tiedot laitteesi sijainnista voidaan silti lähettää pelastustyöntekijöille, kun soitat tai lähetät tekstiviestin hätänumeroon."</string>
<string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Lue lisää sijaintiasetuksista"</string>
<string name="location_settings_tooltip_text_for_chrome" msgid="5781821709250544575">"Voit vaihtaa valintaa avaamalla ChromeOS:n asetukset > Yksityisyys ja turvallisuus > Yksityisyysasetukset > Pääsy sijaintiin"</string>
@@ -850,7 +852,6 @@
<string name="nfc_reboot_dialog_title" msgid="2033983438635768169">"Käynnistetäänkö laite uudelleen?"</string>
<string name="nfc_reboot_dialog_message" msgid="4929353168157966992">"NFC-tietojen kirjaaminen on tarkoitettu vain kehittäjäkäyttöön. Virheraportit sisältävät muuta NFC-dataa, joka voi sisältää yksityisiä tietoja. Muuta asetusta käynnistämällä laite uudelleen."</string>
<string name="nfc_reboot_dialog_confirm" msgid="4769763632008584567">"Käynnistä uudelleen"</string>
- <string name="keywords_external_display" msgid="4181375057920134909">"peilaus, ulkoinen näyttö, resoluutio"</string>
<string name="external_display_on" msgid="2560104443500154333">"Päällä"</string>
<string name="external_display_off" msgid="5634413756025351374">"Pois päältä"</string>
<string name="external_display_settings_title" msgid="6256884595821605779">"Ulkoinen näyttö"</string>
@@ -1918,6 +1919,8 @@
<string name="slow_keys_summary" msgid="1784371292745423292">"Muuta ajaksi, jona näppäin aktivoituu painalluksesta <xliff:g id="SLOW_KEYS_THRESHOLD">%1$d</xliff:g> millisekuntia"</string>
<string name="sticky_keys" msgid="7317317044898161747">"Päälle jäävät näppäimet"</string>
<string name="sticky_keys_summary" msgid="1844953803625480623">"Käytä pikanäppäimiä painamalla yhtä näppäintä kerralla monen näppäimen sijaan"</string>
+ <string name="mouse_keys" msgid="6237254627808525540">"Hiiren painikkeet"</string>
+ <string name="mouse_keys_summary" msgid="2396247040177734245">"Ohjaa hiirtä fyysisellä näppäimistöllä."</string>
<string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"Pikanäppäimet"</string>
<string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"Näytä pikanäppäimet"</string>
<string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"Työprofiilin näppäimistöt ja työkalut"</string>
@@ -1942,14 +1945,10 @@
<string name="pointer_fill_style_yellow_button" msgid="5025969961559379024">"Keltainen osoittimen täytön tyyli"</string>
<string name="pointer_fill_style_pink_button" msgid="4106218142489635673">"Pinkki osoittimen täytön tyyli"</string>
<string name="pointer_fill_style_blue_button" msgid="5594958078854032785">"Sininen osoittimen täytön tyyli"</string>
- <!-- no translation found for pointer_stroke_style (1886986630216050665) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_white (673686194443825383) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_black (4655806167067437330) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_none (8953927511729800247) -->
- <skip />
+ <string name="pointer_stroke_style" msgid="1886986630216050665">"Osoittimen viivauksen tyyli"</string>
+ <string name="pointer_stroke_style_name_white" msgid="673686194443825383">"Valkoinen"</string>
+ <string name="pointer_stroke_style_name_black" msgid="4655806167067437330">"Musta"</string>
+ <string name="pointer_stroke_style_name_none" msgid="8953927511729800247">"Ei mitään"</string>
<string name="trackpad_touch_gesture" msgid="8641725062131922497">"Opettele kosketuslevyn eleitä"</string>
<string name="keywords_touchpad" msgid="8159846254066666032">"ohjauslevy, ohjaus levy, hiiri, kohdistin, vieritä, pyyhkäise, klikkaa kakkospainikkeella, klikkaa, osoitin"</string>
<string name="keywords_trackpad_bottom_right_tap" msgid="1285062446073929305">"klikkaa kakkospainikkeella, napauta"</string>
@@ -2179,8 +2178,6 @@
<string name="accessibility_shortcut_edit_dialog_summary_floating_button" msgid="6266489864614886247">"Napauta kelluvaa painiketta"</string>
<string name="accessibility_shortcut_edit_dialog_title_software_by_gesture" msgid="4775049370625630546">"Saavutettavuusele"</string>
<string name="accessibility_shortcut_edit_dialog_summary_software" msgid="8315934725362849788">"Napauta näytön alareunassa olevaa saavutettavuuspainiketta <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g>. Jos haluat vaihtaa ominaisuudesta toiseen, paina saavutettavuuspainiketta pitkään."</string>
- <string name="accessibility_shortcut_edit_dialog_summary_software_gesture" msgid="8292555254353761635">"Pyyhkäise näytön alalaidasta ylös kahdella sormella.\n\nVaihda ominaisuudesta toiseen pyyhkäisemällä ylös kahdella sormella ja koskettamalla pitkään."</string>
- <string name="accessibility_shortcut_edit_dialog_summary_software_gesture_talkback" msgid="84483464524360845">"Pyyhkäise näytön alalaidasta ylös kolmella sormella.\n\nVaihda ominaisuudesta toiseen pyyhkäisemällä ylös kolmella sormella ja koskettamalla pitkään."</string>
<string name="accessibility_shortcut_edit_dialog_summary_gesture" msgid="2081123009255579884">"{count,plural, =1{Pyyhkäise ylös näytön alareunasta. Jos haluat vaihtaa ominaisuudesta toiseen, pyyhkäise ylös ja pidä näyttöä painettuna.}other{Pyyhkäise # sormella ylös näytön alareunasta. Jos haluat vaihtaa ominaisuudesta toiseen, pyyhkäise ylös # sormella ja pidä näyttöä painettuna.}}"</string>
<string name="accessibility_shortcut_edit_dialog_summary_software_floating" msgid="4459254227203203324"><annotation id="link">"Lisäasetukset"</annotation></string>
<string name="footer_learn_more_content_description" msgid="8843798273152131341">"Lue lisää: <xliff:g id="SERVICE">%1$s</xliff:g>"</string>
@@ -2191,16 +2188,12 @@
<string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="844089763968552142">"Äänenvoimakkuuspainikkeet"</string>
<string name="accessibility_shortcut_hardware_keyword" msgid="2483152542320987022">"äänenvoimakkuuspainikkeet"</string>
<string name="accessibility_shortcut_edit_dialog_summary_hardware" msgid="2503134386397991634">"Paina molempia äänenvoimakkuuspainikkeita pitkään"</string>
- <string name="accessibility_shortcut_edit_dialog_title_two_finger_double_tap" msgid="2271778556854020996">"Kaksoisnapauta näyttöä kahdella sormella"</string>
<string name="accessibility_shortcut_edit_screen_title_two_finger_double_tap" msgid="8952595692906527694">"Kaksoisnapautus %1$d sormella"</string>
<string name="accessibility_shortcut_edit_screen_summary_two_finger_double_tap" msgid="385404127425496362">"Napauta näyttöä nopeasti kaksi kertaa %1$d sormella"</string>
<string name="accessibility_shortcut_edit_screen_title_triple_tap" msgid="3314488747597058942">"Kolmoisnapautus"</string>
<string name="accessibility_shortcut_edit_screen_summary_triple_tap" msgid="4839204951599629871">"Napauta näyttöä nopeasti %1$d kertaa. Tämä voi hidastaa laitetta."</string>
<string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="6271718715836961167">"Kaksoisnapautus %1$d sormella"</string>
- <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"Napauta näyttöä {0,number,integer} kertaa nopeasti kahdella sormella"</string>
- <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"Kolmoisnapauta näyttöä"</string>
<string name="accessibility_shortcut_triple_tap_keyword" msgid="5359347130888464334">"kolmoisnapautus"</string>
- <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"Napauta näyttöä nopeasti {0,number,integer} kertaa. Tämän pikanäppäimen käyttö voi hidastaa laitettasi."</string>
<string name="accessibility_shortcut_edit_dialog_title_advance" msgid="4567868630655591506">"Lisäasetukset"</string>
<string name="accessibility_screen_magnification_navbar_configuration_warning" msgid="266736851606791552">"Esteettömyys-painikkeen toiminnoksi on valittu <xliff:g id="SERVICE">%1$s</xliff:g>. Jos haluat käyttää suurennusta, kosketa Esteettömyys-painiketta pitkään ja valitse suurennus."</string>
<string name="accessibility_screen_magnification_gesture_navigation_warning" msgid="991017769735632046">"Esteettömyyseleen asetus on <xliff:g id="SERVICE">%1$s</xliff:g>. Jos haluat käyttää suurennusta, pyyhkäise kahdella sormella ylös näytön alalaidasta ja paina pitkään. Valitse sitten suurennus."</string>
@@ -2369,6 +2362,7 @@
<string name="daltonizer_mode_tritanomaly_title" msgid="2278786218762602022">"Sini-keltasokeus"</string>
<string name="daltonizer_mode_grayscale_title" msgid="152005391387952588">"Harmaasävy"</string>
<string name="daltonizer_saturation_title" msgid="2999486412114963068">"Voimakkuus"</string>
+ <string name="daltonizer_saturation_unavailable_summary" msgid="8319753055567798775">"Ei saatavilla harmaasävytilassa tai värinkorjauksen ollessa poissa käytöstä"</string>
<string name="daltonizer_mode_deuteranomaly_summary" msgid="2117727423019598455">"Vihreän värin heikkous, deuteranomalia"</string>
<string name="daltonizer_mode_protanomaly_summary" msgid="4617032854982040748">"Punaisen värin heikkous, protanomalia"</string>
<string name="daltonizer_mode_tritanomaly_summary" msgid="2428218320118180070">"Tritanomalia"</string>
@@ -2418,15 +2412,8 @@
<string name="color_cyan" msgid="4341758639597035927">"Turkoosi"</string>
<string name="color_yellow" msgid="5957551912912679058">"Keltainen"</string>
<string name="color_magenta" msgid="8943538189219528423">"Magenta"</string>
- <string name="enable_service_title" msgid="7231533866953706788">"Saako <xliff:g id="SERVICE">%1$s</xliff:g> laitteesi täyden käyttöoikeuden?"</string>
<string name="capabilities_list_title" msgid="1225853611983394386">"<xliff:g id="SERVICE">%1$s</xliff:g> saa luvan:"</string>
<string name="touch_filtered_warning" msgid="4225815157460318241">"Sovellus peittää lupapyynnön, joten Asetukset ei voi vahvistaa valintaasi."</string>
- <string name="accessibility_service_warning" msgid="6779187188736432618">"<xliff:g id="SERVICE">%1$s</xliff:g> pyytää laitteen täyttä hallintaoikeutta. Palvelu voi lukea näytön sisällön ja toimia esteettömyyspalvelujen käyttäjien puolesta. Hallintaoikeudet ovat useimmille sovelluksille liian laajat."</string>
- <string name="accessibility_service_warning_description" msgid="6573203795976134751">"Täysi käyttöoikeus sopii saavutettavuussovelluksille, mutta ei useimmille sovelluksille."</string>
- <string name="accessibility_service_screen_control_title" msgid="324795030658109870">"Näytön katselu ja ohjaus"</string>
- <string name="accessibility_service_screen_control_description" msgid="8431940515157990426">"Se voi lukea kaiken näytön sisällön ja näyttää sisältöä kaikista sovelluksista."</string>
- <string name="accessibility_service_action_perform_title" msgid="1449360056585337833">"Toimintojen näkeminen ja suorittaminen"</string>
- <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"Se voi seurata toimintaasi sovelluksella tai laitteistoanturilla ja käyttää sovelluksia puolestasi."</string>
<string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Salli"</string>
<string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Estä"</string>
<string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Pois"</string>
@@ -3368,10 +3355,8 @@
<string name="zen_mode_automation_settings_title" msgid="3709324184191870926">"Aikataulut"</string>
<string name="zen_mode_delete_automatic_rules" msgid="5020468289267191765">"Poista aikataulut"</string>
<string name="zen_mode_schedule_delete" msgid="5383420576833765114">"Poista"</string>
- <!-- no translation found for zen_mode_menu_rename_mode (4681802125016390837) -->
- <skip />
- <!-- no translation found for zen_mode_menu_delete_mode (5380084696402157428) -->
- <skip />
+ <string name="zen_mode_menu_rename_mode" msgid="4681802125016390837">"Nimeä uudelleen"</string>
+ <string name="zen_mode_menu_delete_mode" msgid="5380084696402157428">"Poista"</string>
<string name="zen_mode_delete_mode_confirmation" msgid="7594340592051947392">"Poistetaanko tila (<xliff:g id="MODE">%1$s</xliff:g>)?"</string>
<string name="zen_mode_rule_name_edit" msgid="1053237022416700481">"Muokkaa"</string>
<string name="zen_mode_automation_settings_page_title" msgid="6217433860514433311">"Aikataulut"</string>
@@ -3395,8 +3380,7 @@
<string name="zen_mode_visual_signals_settings_subtitle" msgid="7433077540895876672">"Salli visuaaliset signaalit"</string>
<string name="mode_interruption_filter_title" msgid="3343846700214702347">"Keskity"</string>
<string name="mode_device_effects_title" msgid="5857008332618433744">"Lisätoiminnot"</string>
- <!-- no translation found for modes_sound_summary_off (6972648204528227879) -->
- <skip />
+ <string name="modes_sound_summary_off" msgid="6972648204528227879">"{count,plural, =0{Pois päältä}=1{Pois päältä / 1 tila voi mennä päälle automaattisesti}other{Pois päältä / # tilaa voi mennä päälle automaattisesti}}"</string>
<string name="mode_display_settings_title" msgid="8132825978346535472">"Näyttöasetukset"</string>
<string name="mode_display_options_section" msgid="5151597748243866532">"Näyttöasetukset"</string>
<string name="mode_grayscale_title" msgid="6027553257331235461">"Harmaasävy"</string>
@@ -3659,9 +3643,9 @@
<string name="notif_listener_not_migrated" msgid="6265206376374278226">"Tämä sovellus ei tue tehostettuja asetuksia"</string>
<string name="notif_listener_more_settings" msgid="1348409392307208921">"Lisää asetuksia"</string>
<string name="notif_listener_more_settings_desc" msgid="7995492074281663658">"Lisää asetuksia on saatavilla sovelluksen sisällä"</string>
- <string name="notification_polite_title" msgid="4737150709382859870">"Mukautuvat ilmoitukset"</string>
- <string name="notification_polite_main_control_title" msgid="7267191551379543859">"Käytä mukautuvia ilmoituksia"</string>
- <string name="notification_polite_description" msgid="7749280535620291610">"Kun saat monia ilmoituksia lyhyen ajan sisällä, puhelin vähentää äänenvoimakkuutta ja minimoi näytöllä näkyvät ponnahdusikkunat enintään kahdeksi minuutiksi. Ilmoitukset puheluista, hälytyksistä ja tärkeistä keskusteluista värisevät, kuulet niistä äänimerkin tai ne näkyvät näytöllä. Kaikki ilmoitukset löytyvät helposti, kun vedät yläreunasta alaspäin."</string>
+ <string name="notification_polite_title" msgid="6121016426991791557">"Ilmoitusten hiljentäminen"</string>
+ <string name="notification_polite_main_control_title" msgid="5812529809151927149">"Käytä ilmoitusten vaimennusta"</string>
+ <string name="notification_polite_description" msgid="5497748284893832854">"Kun saat monia ilmoituksia lyhyen ajan sisällä, laite vähentää äänenvoimakkuutta ja minimoi ilmoitukset enintään kahdeksi minuutiksi. Tämä ei koske soittoja, hälytyksiä ja tärkeitä keskusteluja. \n\nVaimennuksen aikana saadut ilmoitukset näkyvät, kun vedät alas näytön yläreunasta."</string>
<string name="notification_polite_work" msgid="8823596456640216391">"Käytä työprofiileissa"</string>
<string name="notification_polite_work_summary" msgid="5014189280132951378">"Käytä työprofiilin sovelluksissa"</string>
<string name="vr_listeners_title" msgid="4960357292472540964">"VR-avustinpalvelut"</string>
@@ -3818,7 +3802,9 @@
<string name="zen_mode_apps_priority_apps" msgid="7386196048313716076">"Valitut sovellukset"</string>
<string name="zen_mode_apps_none_apps" msgid="2493642312793604327">"Ei mitään"</string>
<string name="zen_mode_apps_subtext" msgid="1764211974662012877">"{count,plural,offset:2 =0{Mitkään sovellukset eivät voi keskeyttää}=1{{app_1} voi keskeyttää}=2{{app_1} ja {app_2} voivat keskeyttää}=3{{app_1}, {app_2} ja {app_3} voivat keskeyttää}other{{app_1}, {app_2} ja # muuta voivat keskeyttää}}"</string>
+ <string name="zen_mode_apps_work_app" msgid="8528767938316361588">"<xliff:g id="APP_LABEL">%s</xliff:g> (työ)"</string>
<string name="zen_mode_apps_calculating" msgid="5420121396943539286">"Lasketaan…"</string>
+ <string name="zen_mode_plus_n_items" msgid="6136713354369243421">"+<xliff:g id="NUMBER">%d</xliff:g>"</string>
<string name="zen_mode_bypassing_apps" msgid="625309443389126481">"Salli ohittaminen sovelluksille"</string>
<string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"Sovellukset, jotka saavat keskeyttää"</string>
<string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"Valitse lisää sovelluksia"</string>
@@ -3836,6 +3822,7 @@
<string name="zen_mode_sounds_none" msgid="6557474361948269420">"Mikään ei voi keskeyttää"</string>
<string name="zen_mode_people_none" msgid="4613147461974255046">"Kukaan ei voi keskeyttää"</string>
<string name="zen_mode_people_some" msgid="9101872681298810281">"Jotkut voivat keskeyttää"</string>
+ <string name="zen_mode_people_repeat_callers" msgid="4499084111069828761">"Usein soittavat voivat keskeyttää"</string>
<string name="zen_mode_people_all" msgid="311036110283015205">"Kaikki käyttäjät voivat keskeyttää"</string>
<string name="zen_mode_repeat_callers" msgid="2270356100287792138">"Toistuvasti soittavat"</string>
<string name="zen_mode_repeat_callers_title" msgid="8016699240338264781">"Salli usein soittavat"</string>
@@ -3855,13 +3842,37 @@
<string name="zen_mode_summary_alarms_only_by_hour" msgid="7400910210950788163">"{count,plural, =1{Muuta hälytyksiä tunnilla tähän asti: {time}}other{Muuta hälytyksiä # tunnilla tähän asti: {time}}}"</string>
<string name="zen_mode_summary_alarms_only_by_time" msgid="8140619669703968810">"Ota vain herätykset käyttöön kello <xliff:g id="FORMATTEDTIME">%1$s</xliff:g> asti."</string>
<string name="zen_mode_summary_always" msgid="722093064250082317">"Salli keskeytykset aina."</string>
- <!-- no translation found for zen_mode_rename_title (8146882272966214558) -->
+ <string name="zen_mode_rename_title" msgid="8146882272966214558">"Muokkaustila"</string>
+ <string name="zen_mode_new_custom_title" msgid="321750898430776191">"Lisää tila"</string>
+ <string name="zen_mode_new_custom_default_name" msgid="2778307946775085105">"Oma tila"</string>
+ <string name="zen_mode_edit_name_hint" msgid="4584652062167540536">"Tilan nimi"</string>
+ <string name="zen_mode_trigger_title_schedule_calendar" msgid="9206609438617550331">"Kalenteritapahtumat"</string>
+ <string name="zen_mode_trigger_title_bedtime" msgid="5086070900588489978">"Nukkumisaikataulu"</string>
+ <string name="zen_mode_trigger_title_driving" msgid="7890990983453164403">"Ajon aikana"</string>
+ <string name="zen_mode_trigger_title_generic" msgid="601273385119550420">"Linkitetty sovellukseen"</string>
+ <string name="zen_mode_trigger_summary_settings_in_app" msgid="4860667191183702601">"Tiedot ja asetukset: <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+ <string name="zen_mode_trigger_summary_managed_by_app" msgid="8631011868193102098">"Ylläpitäjä: <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+ <string name="zen_mode_confirm_disable_title" msgid="1232297660775719796">"Poista tila käytöstä"</string>
+ <string name="zen_mode_confirm_disable_message" msgid="7315541221665718491">"Jos poistat ominaisuuden käytöstä, tämä tila ei enää toimi tarkoitetulla tavalla ja sen asetukset piilotetaan."</string>
+ <string name="zen_mode_action_disable" msgid="3552921561331044881">"Poista käytöstä"</string>
+ <string name="zen_mode_confirm_enable_title" msgid="5683371335847448595">"Laita tila päälle"</string>
+ <string name="zen_mode_confirm_enable_message" msgid="7017879133260011419">"Jos laitat ominaisuuden päälle, tila aktivoituu automaattisesti aikataulun mukaan."</string>
+ <string name="zen_mode_action_enable" msgid="1161480633223176531">"Ota käyttöön"</string>
+ <!-- no translation found for zen_mode_blurb_schedule_time (8223898702097484009) -->
<skip />
- <!-- no translation found for zen_mode_new_custom_title (321750898430776191) -->
+ <!-- no translation found for zen_mode_blurb_schedule_calendar (382177907856065945) -->
<skip />
- <!-- no translation found for zen_mode_new_custom_default_name (2778307946775085105) -->
+ <!-- no translation found for zen_mode_blurb_bedtime (6155075956151013457) -->
<skip />
- <!-- no translation found for zen_mode_edit_name_hint (4584652062167540536) -->
+ <!-- no translation found for zen_mode_blurb_driving (1316054379000667305) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_immersive (5884004861848687869) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_theater (2999237960059524225) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_managed (5473921634985032149) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_generic (3041601339807075625) -->
<skip />
<string name="warning_button_text" msgid="1274234338874005639">"Varoitus"</string>
<string name="suggestion_button_close" msgid="6865170855573283759">"Sulje"</string>
@@ -4849,9 +4860,8 @@
<string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"Akku"</string>
<string name="settings_panel_title" msgid="346363079938069215">"Asetuspaneeli"</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>
+ <!-- no translation found for enable_desktop_mode_on_secondary_display (2609567824593768780) -->
+ <skip />
<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>
@@ -5026,7 +5036,6 @@
<string name="default_active_sim_mobile_data" msgid="6798083892814045301">"mobiilidata"</string>
<string name="wifi_scan_notify_message" msgid="1331238142061476869">"Laitteen käyttökokemuksen parantamiseksi sovellukset ja palvelut voivat hakea Wi-Fi-verkkoja myös silloin, kun Wi-Fi on pois päältä. Näin voidaan esimerkiksi kehittää sijaintiin perustuvia ominaisuuksia ja palveluja. Voit muuttaa asetusta Wi-Fi-haun asetuksissa."</string>
<string name="wifi_scan_change" msgid="8438320311511852918">"Muuta"</string>
- <string name="preference_summary_default_combination" msgid="4643585915107796253">"<xliff:g id="STATE">%1$s</xliff:g> / <xliff:g id="NETWORKMODE">%2$s</xliff:g>"</string>
<string name="mobile_data_connection_active" msgid="2422223108911581552">"Yhdistetty"</string>
<string name="mobile_data_temp_connection_active" msgid="3430470299756236413">"Väliaikaisesti yhdistetty"</string>
<string name="mobile_data_temp_using" msgid="5211002380149434155">"Käyttää väliaikaisesti: <xliff:g id="SUBNAME">%1$s</xliff:g>"</string>
@@ -5058,7 +5067,7 @@
<string name="app_pinning_main_switch_title" msgid="5465506660064032876">"Käytä sovelluksen kiinnitystä"</string>
<string name="developer_options_main_switch_title" msgid="1720074589554152501">"Käytä kehittäjäasetuksia"</string>
<string name="default_print_service_main_switch_title" msgid="4697133737128324036">"Käytä tulostuspalvelua"</string>
- <string name="multiple_users_main_switch_title" msgid="9158796544835843201">"Salli useiden käyttäjien kytkin"</string>
+ <string name="multiple_users_main_switch_title" msgid="9158796544835843201">"Salli käyttäjien välillä vaihtaminen"</string>
<string name="multiple_users_main_switch_keywords" msgid="4845954458094134356">"salli, useita, käyttäjä, lupa, monta"</string>
<string name="multiple_users_title_keywords" msgid="2395593167746225172">"monta, käyttäjää, profiilia, henkilöä, tiliä, vaihda, useita"</string>
<string name="wireless_debugging_main_switch_title" msgid="8463499572781441719">"Käytä langatonta virheenkorjausta"</string>
@@ -5172,9 +5181,11 @@
<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="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_enable_freeform_support" msgid="3697462756493543645">"Laite täytyy käynnistää uudelleen, jos haluat ottaa vapaamuotoisten ikkunoiden tuen käyttöön."</string>
+ <!-- no translation found for reboot_dialog_override_desktop_mode (7480950772574354130) -->
+ <skip />
+ <!-- no translation found for reboot_dialog_enable_desktop_mode_on_secondary_display (1153621881052401924) -->
+ <skip />
<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>
@@ -5292,10 +5303,8 @@
<string name="show_captions_enabled" msgid="7089043007924626">"Päällä"</string>
<string name="live_caption_disabled" msgid="3562035026547887366">"Pois päältä"</string>
<string name="live_caption_enabled" msgid="5269360946200718949">"Päällä"</string>
- <!-- no translation found for audio_seek_bar_state_left_first (8814986910920838972) -->
- <skip />
- <!-- no translation found for audio_seek_bar_state_right_first (1999368979633398876) -->
- <skip />
+ <string name="audio_seek_bar_state_left_first" msgid="8814986910920838972">"Audio %1$d %% vasen, %2$d %% oikea"</string>
+ <string name="audio_seek_bar_state_right_first" msgid="1999368979633398876">"Audio %1$d %% oikea, %2$d %% vasen"</string>
<string name="about_phone_device_name_warning" msgid="3243226572404472381">"Laitteesi nimi näkyy asentamillesi sovelluksille. Myös muut käyttäjät voivat nähdä nimen, kun muodostat Bluetooth-yhteyden laitteisiin, yhteyden Wi-Fi-verkkoon tai aktivoit Wi-Fi-hotspotin."</string>
<string name="grammatical_gender_title" msgid="8584242850477270828">"Kieliopillinen suku"</string>
<string name="grammatical_gender_dialog_title" msgid="8754048592099871587">"Valitse kieliopillinen suku"</string>
@@ -5407,5 +5416,6 @@
<string name="audio_streams_main_page_password_dialog_join_button" msgid="2967747276379153408">"Kuuntele striimiä"</string>
<string name="audio_streams_main_page_qr_code_scanner_summary" msgid="5312980105735143360">"Skannaa QR-koodi, niin <xliff:g id="DEVICE_NAME">%1$s</xliff:g> voi toistaa audiostriimiä"</string>
<string name="audio_streams_main_page_password_dialog_cannot_edit" msgid="9020898619297520153">"Salasanaa ei voi muokata jakamisen aikana. Jos haluat vaihtaa salasanaa, laita ensin audionjako pois päältä."</string>
+ <string name="audio_streams_qr_code_scanner_label" msgid="8799703301071378034">"QR-koodiskanneri"</string>
<string name="homepage_search" msgid="6759334912284663559">"Hae asetuksia"</string>
</resources>
diff --git a/res/values-fr-rCA-feminine/strings.xml b/res/values-fr-rCA-feminine/strings.xml
new file mode 100644
index 0000000..5cb71f6
--- /dev/null
+++ b/res/values-fr-rCA-feminine/strings.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2007 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="wifi_settings_wep_networks_disconnect_summary" msgid="6894496037087903635">"Vous êtes connectée à un réseau WEP. Si vous arrêtez d\'autoriser ces réseaux, vous serez déconnectée."</string>
+ <string name="vpn_replace_vpn_message" msgid="1094297700371463386">"Vous êtes déjà connectée à un RPV. Si vous vous connectez à un RPV différent, votre RPV actuel sera remplacé."</string>
+ <string name="users_summary" msgid="8473589474976307510">"Connectée en tant que <xliff:g id="USER_NAME">%1$s</xliff:g>"</string>
+ <string name="bluetooth_message_access_dialog_content" msgid="7186694737578788487">"Un appareil Bluetooth, <xliff:g id="DEVICE_NAME_0">%1$s</xliff:g>, souhaite accéder à vos messages.\n\nVous ne vous êtes jamais connectée à <xliff:g id="DEVICE_NAME_1">%2$s</xliff:g> auparavant."</string>
+ <string name="bluetooth_phonebook_access_dialog_content" msgid="959658135522249170">"Un appareil Bluetooth, <xliff:g id="DEVICE_NAME_0">%1$s</xliff:g>, souhaite accéder à vos contacts et à votre journal d\'appels. Cela comprend des données à propos des appels entrants et sortants.\n\nVous ne vous êtes jamais connectée à <xliff:g id="DEVICE_NAME_1">%2$s</xliff:g> auparavant."</string>
+</resources>
diff --git a/res/values-fr-rCA-masculine/strings.xml b/res/values-fr-rCA-masculine/strings.xml
new file mode 100644
index 0000000..1a0d252
--- /dev/null
+++ b/res/values-fr-rCA-masculine/strings.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2007 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="wifi_settings_wep_networks_disconnect_summary" msgid="6894496037087903635">"Vous êtes connecté à un réseau WEP. Si vous arrêtez d\'autoriser ces réseaux, vous serez déconnecté."</string>
+ <string name="vpn_replace_vpn_message" msgid="1094297700371463386">"Vous êtes déjà connecté à un RPV. Si vous vous connectez à un RPV différent, votre RPV actuel sera remplacé."</string>
+ <string name="users_summary" msgid="8473589474976307510">"Connecté en tant que <xliff:g id="USER_NAME">%1$s</xliff:g>"</string>
+ <string name="bluetooth_message_access_dialog_content" msgid="7186694737578788487">"Un appareil Bluetooth, <xliff:g id="DEVICE_NAME_0">%1$s</xliff:g>, souhaite accéder à vos messages.\n\nVous ne vous êtes jamais connecté à <xliff:g id="DEVICE_NAME_1">%2$s</xliff:g> auparavant."</string>
+ <string name="bluetooth_phonebook_access_dialog_content" msgid="959658135522249170">"Un appareil Bluetooth, <xliff:g id="DEVICE_NAME_0">%1$s</xliff:g>, souhaite accéder à vos contacts et à votre journal d\'appels. Cela comprend des données à propos des appels entrants et sortants.\n\nVous ne vous êtes jamais connecté à <xliff:g id="DEVICE_NAME_1">%2$s</xliff:g> auparavant."</string>
+</resources>
diff --git a/res/values-fr-rCA-neuter/strings.xml b/res/values-fr-rCA-neuter/strings.xml
new file mode 100644
index 0000000..07dd7e6
--- /dev/null
+++ b/res/values-fr-rCA-neuter/strings.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2007 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="wifi_settings_wep_networks_disconnect_summary" msgid="6894496037087903635">"Vous êtes connecté·e à un réseau WEP. Si vous arrêtez d\'autoriser ces réseaux, vous serez déconnecté·e."</string>
+ <string name="vpn_replace_vpn_message" msgid="1094297700371463386">"Vous disposez déjà d\'une connexion à un RPV. Si vous vous connectez à un RPV différent, votre RPV actuel sera remplacé."</string>
+ <string name="users_summary" msgid="8473589474976307510">"Connecté·e en tant que <xliff:g id="USER_NAME">%1$s</xliff:g>"</string>
+ <string name="bluetooth_message_access_dialog_content" msgid="7186694737578788487">"Un appareil Bluetooth, <xliff:g id="DEVICE_NAME_0">%1$s</xliff:g>, souhaite accéder à vos messages.\n\nVous ne vous êtes jamais connecté·e à <xliff:g id="DEVICE_NAME_1">%2$s</xliff:g> auparavant."</string>
+ <string name="bluetooth_phonebook_access_dialog_content" msgid="959658135522249170">"Un appareil Bluetooth, <xliff:g id="DEVICE_NAME_0">%1$s</xliff:g>, souhaite accéder à vos contacts et à votre journal d\'appels. Cela comprend des données à propos des appels entrants et sortants.\n\nVous ne vous êtes jamais connecté·e à <xliff:g id="DEVICE_NAME_1">%2$s</xliff:g> auparavant."</string>
+</resources>
diff --git a/res/values-fr-rCA/strings.xml b/res/values-fr-rCA/strings.xml
index a0f6f3a..82135b0 100644
--- a/res/values-fr-rCA/strings.xml
+++ b/res/values-fr-rCA/strings.xml
@@ -41,6 +41,8 @@
<string name="radioInfo_data_suspended" msgid="2001254415431299603">"Suspendu"</string>
<string name="radioInfo_unknown" msgid="2892562356748600367">"Inconnu"</string>
<string name="preview_pager_content_description" msgid="3762247188224576303">"Aperçu"</string>
+ <!-- no translation found for qr_code_content_description (1852208464419291347) -->
+ <skip />
<string name="font_size_make_smaller_desc" msgid="4978038055549590140">"Rapetisser"</string>
<string name="font_size_make_larger_desc" msgid="5583046033381722247">"Agrandir"</string>
<string name="stay_awake_on_fold_title" msgid="6590454679898134221">"Toujours"</string>
@@ -277,13 +279,13 @@
<string name="lock_after_timeout_summary_with_exception" msgid="3441806647509073124">"<xliff:g id="TIMEOUT_STRING">%1$s</xliff:g> après la mise en veille, sauf lorsque l\'appareil est maintenu déverrouillé par <xliff:g id="TRUST_AGENT_NAME">%2$s</xliff:g>"</string>
<string name="owner_info_settings_title" msgid="3555626140700093017">"Ajouter du texte sur l\'écran"</string>
<string name="owner_info_settings_summary" msgid="347238313388083297">"Aucun"</string>
- <string name="owner_info_settings_edit_text_hint" msgid="841926875876050274">"Par exemple : Android de Jonathan"</string>
- <string name="location_settings_title" msgid="8375074508036087178">"Position"</string>
+ <string name="owner_info_settings_edit_text_hint" msgid="841926875876050274">"Par exemple : Android de Jonathan."</string>
+ <string name="location_settings_title" msgid="8375074508036087178">"Localisation"</string>
<string name="location_settings_primary_switch_title" msgid="8849081766644685127">"Utiliser ma position"</string>
<string name="location_settings_summary_location_off" msgid="4797932754681162262">"Désactivé"</string>
<string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{Activée / # appli a accès à la position}one{Activée / # appli a accès à la position}other{Activée / # applis ont accès à la position}}"</string>
<string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"Chargement en cours…"</string>
- <string name="location_settings_footer_general" msgid="1040507068701188821">"Les applis qui disposent de l\'autorisation de détection des appareils à proximité peuvent déterminer la position relative des appareils connectés."</string>
+ <string name="location_settings_footer_general" msgid="3447585552176173502">"Les applis qui possèdent l\'autorisation de détection des appareils à proximité peuvent déterminer la position relative des appareils connectés."</string>
<string name="location_settings_footer_location_off" msgid="8568995909147566720">"L\'accès à la position est désactivé pour les applis et les services. La position de votre appareil pourrait quand même être envoyée aux intervenants d\'urgence lorsque vous appelez ou textez un numéro d\'urgence."</string>
<string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"En savoir plus sur les paramètres de localisation"</string>
<string name="location_settings_tooltip_text_for_chrome" msgid="5781821709250544575">"Pour modifier cela, accédez à Paramètres ChromeOS > Confidentialité et sécurité > Paramètres de confidentialité > Accès à la localisation"</string>
@@ -301,8 +303,8 @@
<string name="security_settings_face_preference_summary_none" msgid="523320857738436024">"Configuration requise"</string>
<string name="security_settings_face_preference_title" msgid="2126625155005348417">"Déverr. par reconn. faciale"</string>
<string name="security_settings_face_profile_preference_title" msgid="7519527436266375005">"Déverrouillage reconnaissance faciale pour travail"</string>
- <string name="security_settings_face_enroll_education_title" msgid="6448806884597691208">"Configurer le déverrouillage par reconn. faciale"</string>
- <string name="security_settings_face_enroll_education_title_accessibility" msgid="3701874093226957891">"Configurer le Déverrouillage par reconn. faciale"</string>
+ <string name="security_settings_face_enroll_education_title" msgid="6448806884597691208">"Configurez le déverrouillage par reconn. faciale"</string>
+ <string name="security_settings_face_enroll_education_title_accessibility" msgid="3701874093226957891">"Configurer le Déverrouillage par reconnaissance faciale"</string>
<string name="security_settings_face_enroll_education_title_unlock_disabled" msgid="8810954233979716906">"Utiliser son visage pour s\'authentifier"</string>
<string name="security_settings_face_enroll_education_message" msgid="4308030157487176799"></string>
<string name="security_settings_face_enroll_education_start" msgid="8830924400907195590">"Commencer"</string>
@@ -439,7 +441,7 @@
<string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"Ajouter une montre"</string>
<string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"Retirer une montre"</string>
<string name="security_settings_biometric_preference_title" msgid="298146483579539448">"Déverr. par reconn. faciale et empreinte digitale"</string>
- <string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"Déverr. par reconn. faciale et empreinte digitale pour le travail"</string>
+ <string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"Déverrouillage par recon. faciale et emp. digitale pour le travail"</string>
<string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"Configuration requise"</string>
<string name="security_settings_biometric_preference_summary_both_fp_multiple" msgid="4821859306609955966">"Empreintes digitales et visage ajoutés"</string>
<string name="security_settings_biometric_preference_summary_both_fp_single" msgid="684409535278676426">"Empreinte digitale et visage ajoutés"</string>
@@ -464,7 +466,7 @@
<string name="cancel_lock_screen_dialog_button_label" msgid="1801132985957491690">"Annuler"</string>
<string name="security_settings_fingerprint_enroll_find_sensor_title" msgid="886085239313346000">"Toucher le capteur"</string>
<string name="security_settings_sfps_enroll_find_sensor_title" msgid="8327884364635804363">"Touchez l\'interrupteur sans l\'enfoncer"</string>
- <string name="security_settings_udfps_enroll_find_sensor_title" msgid="8077484429913330179">"Comment configurer votre empreinte digitale"</string>
+ <string name="security_settings_udfps_enroll_find_sensor_title" msgid="8077484429913330179">"Configurez votre empreinte digitale"</string>
<string name="security_settings_fingerprint_enroll_find_sensor_message" msgid="6160543980992596286">"Il se trouve à l\'arrière de votre téléphone. Utilisez votre index."</string>
<string name="security_settings_udfps_enroll_find_sensor_message" msgid="8383106460819519961">"Le capteur d\'empreintes digitales se trouve sur votre écran. Vous capturerez votre empreinte digitale au prochain écran."</string>
<string name="security_settings_udfps_enroll_find_sensor_start_button" msgid="3172268783620336357">"Commencer"</string>
@@ -850,7 +852,6 @@
<string name="nfc_reboot_dialog_title" msgid="2033983438635768169">"Redémarrer l\'appareil?"</string>
<string name="nfc_reboot_dialog_message" msgid="4929353168157966992">"Les détails de la journalisation CCP sont enregistrés à des fins de développement uniquement. Des données CCP supplémentaires sont comprises dans les rapports de bogue, qui peuvent contenir des renseignements confidentiels. Redémarrez votre appareil pour modifier ce paramètre."</string>
<string name="nfc_reboot_dialog_confirm" msgid="4769763632008584567">"Redémarrer"</string>
- <string name="keywords_external_display" msgid="4181375057920134909">"duplication, écran externe, écran connecté, écran usb, résolution, rotation"</string>
<string name="external_display_on" msgid="2560104443500154333">"Activé"</string>
<string name="external_display_off" msgid="5634413756025351374">"Désactivé"</string>
<string name="external_display_settings_title" msgid="6256884595821605779">"Écran externe"</string>
@@ -1021,7 +1022,7 @@
<string name="wifi_dpp_connect_network_using_qr_code" msgid="6975258007798254937">"Utilisez un code QR pour ajouter un appareil à ce réseau"</string>
<string name="wifi_dpp_qr_code_is_not_valid_format" msgid="5190689503019328279">"Le format du code QR est incorrect"</string>
<string name="retry" msgid="7542103800274026915">"Réessayer"</string>
- <string name="wifi_shared" msgid="8850748923537589782">"Partager avec d\'autres utilisateurs d\'appareils"</string>
+ <string name="wifi_shared" msgid="8850748923537589782">"Partager avec d\'autres utilisateurs de l\'appareil"</string>
<string name="wifi_unchanged" msgid="8026045290856150191">"(aucune modification)"</string>
<string name="wifi_unspecified" msgid="4561964943472312208">"Veuillez choisir"</string>
<string name="wifi_multiple_cert_added" msgid="2151019652853383776">"(Certificats multiples ajoutés)"</string>
@@ -1035,7 +1036,7 @@
<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>
- <string name="no_internet_access_text" msgid="3611993143350310936">"Ce réseau ne dispose d\'aucun accès à Internet. Voulez-vous quand même l\'utiliser?"</string>
+ <string name="no_internet_access_text" msgid="3611993143350310936">"Ce réseau ne dispose d\'aucun accès Internet. Voulez-vous quand même l\'utiliser?"</string>
<string name="partial_connectivity_text" msgid="8874614799723694554">"Connectivité limitée : certains services et applis pourraient ne pas fonctionner. Utiliser quand même?"</string>
<string name="no_internet_access_remember" msgid="5113610157731269258">"Ne plus me demander pour ce réseau"</string>
<string name="lost_internet_access_title" msgid="9032463989950384698">"Le Wi‑Fi n\'est pas connecté à Internet"</string>
@@ -1335,7 +1336,7 @@
<string name="enable_auto_data_switch_dialog_message" msgid="5777287241521946883">"Autorisez votre téléphone à passer automatiquement à <xliff:g id="BACKUP_CARRIER">%1$s</xliff:g> pour les données cellulaires en cas de meilleure disponibilité."</string>
<string name="auto_data_switch_dialog_managed_profile_warning" msgid="6839438290079866605">\n\n"Les appels, les messages et le trafic réseau peuvent être visibles pour votre organisation."</string>
<string name="wrong_pin_code_pukked" msgid="3414172752791445033">"NIP de carte SIM incorrect. Vous devez maintenant communiquer avec votre fournisseur de services pour déverrouiller votre appareil."</string>
- <string name="wrong_pin_code" msgid="8124222991071607958">"{count,plural, =1{NIP de la carte SIM incorrect. Il vous reste # tentative. Après cela, vous devrez communiquer avec votre fournisseur de services pour déverrouiller votre appareil.}one{NIP de la carte SIM incorrect. Il vous reste # tentative.}other{NIP de la carte SIM incorrect. Il vous reste # tentatives.}}"</string>
+ <string name="wrong_pin_code" msgid="8124222991071607958">"{count,plural, =1{NIP de la carte SIM incorrect. Il vous reste # tentative. Après cela, vous devrez communiquer avec votre opérateur pour déverrouiller votre appareil.}one{NIP de la carte SIM incorrect. Il vous reste # tentative.}other{NIP de la carte SIM incorrect. Il vous reste # tentatives.}}"</string>
<string name="wrong_pin_code_one" msgid="6924852214263071441">"NIP de module SIM incorrect. Il vous reste une tentative. Après cela, vous devrez communiquer avec votre fournisseur de services pour déverrouiller votre appareil."</string>
<string name="pin_failed" msgid="3726505565797352255">"Le déverrouillage par NIP de carte SIM a échoué."</string>
<string name="system_update_settings_list_item_title" msgid="3398346836439366350">"Mises à jour du système"</string>
@@ -1421,7 +1422,7 @@
<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>
<string name="storage_system_label" msgid="8320948583086758295">"Système"</string>
- <string name="storage_wizard_guest" msgid="5813419895687733649">"En mode Invité, on ne peut formater de cartes SD"</string>
+ <string name="storage_wizard_guest" msgid="5813419895687733649">"En mode Invité, on ne peut pas formater de cartes SD"</string>
<string name="storage_wizard_format_progress_title" msgid="9170393018855949774">"Formatage de « <xliff:g id="NAME">^1</xliff:g> » en cours..."</string>
<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>
@@ -1706,7 +1707,7 @@
<string name="lockpattern_recording_inprogress" msgid="7268008332694009191">"Relevez le doigt lorsque vous avez terminé"</string>
<string name="lockpattern_recording_incorrect_too_short" msgid="3351522018450593723">"Reliez au moins <xliff:g id="NUMBER">%d</xliff:g> points. Veuillez réessayer."</string>
<string name="lockpattern_pattern_entered_header" msgid="7709618312713127249">"Schéma enregistré"</string>
- <string name="lockpattern_need_to_confirm" msgid="6489499109451714360">"Redessinez le schéma pour confirmer"</string>
+ <string name="lockpattern_need_to_confirm" msgid="6489499109451714360">"Retracez le schéma pour confirmer"</string>
<string name="lockpattern_pattern_confirmed_header" msgid="2969990617475456153">"Votre nouveau schéma de déverrouillage est le suivant :"</string>
<string name="lockpattern_confirm_button_text" msgid="6122815520373044089">"Confirmer"</string>
<string name="lockpattern_restart_button_text" msgid="255339375151895998">"Redessiner"</string>
@@ -1804,7 +1805,7 @@
<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="not_installed" msgid="5074606858798519449">"Pas installée pour cet utilisateur"</string>
<string name="installed" msgid="2837449358488825884">"Installée"</string>
<string name="no_applications" msgid="985069304755391640">"Aucune appli"</string>
<string name="internal_storage" msgid="999496851424448809">"Mémoire de stockage interne"</string>
@@ -1854,7 +1855,7 @@
<!-- no translation found for service_process_name (7827318358399776412) -->
<skip />
<string name="running_process_item_user_label" msgid="1444898861984132133">"Utilisateur : <xliff:g id="USER_NAME">%1$s</xliff:g>"</string>
- <string name="running_process_item_removed_user_label" msgid="4812732296696662613">"Utilisateur supprimé"</string>
+ <string name="running_process_item_removed_user_label" msgid="4812732296696662613">"Utilisateur retiré"</string>
<string name="running_processes_item_description_s_s" msgid="6835918861352501671">"<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_s_p" msgid="1209371773353932361">"<xliff:g id="NUMPROCESS">%1$d</xliff:g> processus et <xliff:g id="NUMSERVICES">%2$d</xliff:g> services"</string>
<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>
@@ -1918,6 +1919,8 @@
<string name="slow_keys_summary" msgid="1784371292745423292">"Règle le temps nécessaire pour qu\'un appui sur une touche soit activé à <xliff:g id="SLOW_KEYS_THRESHOLD">%1$d</xliff:g> ms"</string>
<string name="sticky_keys" msgid="7317317044898161747">"Touches rémanentes"</string>
<string name="sticky_keys_summary" msgid="1844953803625480623">"Appuyer sur une clé à la fois pour activer les raccourcis plutôt que de maintenir plusieurs touches enfoncées en même temps"</string>
+ <string name="mouse_keys" msgid="6237254627808525540">"Touches de la souris"</string>
+ <string name="mouse_keys_summary" msgid="2396247040177734245">"Utilisez le clavier physique pour contrôler la souris."</string>
<string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"Raccourcis clavier"</string>
<string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"Afficher la liste de raccourcis"</string>
<string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"Claviers et outils pour le profil professionnel"</string>
@@ -1942,14 +1945,10 @@
<string name="pointer_fill_style_yellow_button" msgid="5025969961559379024">"Changez style du pointeur à jaune"</string>
<string name="pointer_fill_style_pink_button" msgid="4106218142489635673">"Changez le style du pointeur à rose"</string>
<string name="pointer_fill_style_blue_button" msgid="5594958078854032785">"Changez le style du pointeur à bleu"</string>
- <!-- no translation found for pointer_stroke_style (1886986630216050665) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_white (673686194443825383) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_black (4655806167067437330) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_none (8953927511729800247) -->
- <skip />
+ <string name="pointer_stroke_style" msgid="1886986630216050665">"Style de trait du pointeur"</string>
+ <string name="pointer_stroke_style_name_white" msgid="673686194443825383">"Blanc"</string>
+ <string name="pointer_stroke_style_name_black" msgid="4655806167067437330">"Noir"</string>
+ <string name="pointer_stroke_style_name_none" msgid="8953927511729800247">"Aucun"</string>
<string name="trackpad_touch_gesture" msgid="8641725062131922497">"Apprendre les gestes du pavé tactile"</string>
<string name="keywords_touchpad" msgid="8159846254066666032">"pavé tactile, souris, curseur, faire défiler, balayer, faire un clic droit, cliquer, pointeur"</string>
<string name="keywords_trackpad_bottom_right_tap" msgid="1285062446073929305">"faire un clic droit, toucher"</string>
@@ -2179,8 +2178,6 @@
<string name="accessibility_shortcut_edit_dialog_summary_floating_button" msgid="6266489864614886247">"Touchez le bouton flottant"</string>
<string name="accessibility_shortcut_edit_dialog_title_software_by_gesture" msgid="4775049370625630546">"Geste d\'accessibilité"</string>
<string name="accessibility_shortcut_edit_dialog_summary_software" msgid="8315934725362849788">"Touchez le bouton d\'accessibilité <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g> au bas de l\'écran. Pour basculer entre les fonctionnalités, maintenez le doigt sur le bouton d\'accessibilité."</string>
- <string name="accessibility_shortcut_edit_dialog_summary_software_gesture" msgid="8292555254353761635">"Balayez l\'écran de bas en haut avec deux doigts.\n\nPour basculer entre les fonctionnalités, balayez l\'écran vers le haut avec deux doigts et maintenez la pression."</string>
- <string name="accessibility_shortcut_edit_dialog_summary_software_gesture_talkback" msgid="84483464524360845">"Balayez l\'écran de bas en haut avec trois doigts.\n\nPour basculer entre les fonctionnalités, balayez l\'écran vers le haut avec trois doigts et maintenez-les-y."</string>
<string name="accessibility_shortcut_edit_dialog_summary_gesture" msgid="2081123009255579884">"{count,plural, =1{Balayez votre écran du bas vers le haut. Pour basculer entre les fonctionnalités, balayez l\'écran vers le haut et maintenez le doigt en place.}one{Balayez l\'écran du bas vers le haut avec # doigt. Pour basculer entre les fonctionnalités, balayez l\'écran vers le haut avec # doigt et maintenez-le en place.}other{Balayez l\'écran du bas vers le haut avec # doigts. Pour basculer entre les fonctionnalités, balayez l\'écran vers le haut avec # doigts et maintenez-les en place.}}"</string>
<string name="accessibility_shortcut_edit_dialog_summary_software_floating" msgid="4459254227203203324"><annotation id="link">"Autres options"</annotation></string>
<string name="footer_learn_more_content_description" msgid="8843798273152131341">"En savoir plus sur <xliff:g id="SERVICE">%1$s</xliff:g>"</string>
@@ -2191,16 +2188,12 @@
<string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="844089763968552142">"Touches de volume"</string>
<string name="accessibility_shortcut_hardware_keyword" msgid="2483152542320987022">"touches de volume"</string>
<string name="accessibility_shortcut_edit_dialog_summary_hardware" msgid="2503134386397991634">"Maintenez enfoncées les deux touches de volume"</string>
- <string name="accessibility_shortcut_edit_dialog_title_two_finger_double_tap" msgid="2271778556854020996">"Toucher deux fois l\'écran avec deux doigts"</string>
<string name="accessibility_shortcut_edit_screen_title_two_finger_double_tap" msgid="8952595692906527694">"Toucher deux fois avec %1$d doigts"</string>
<string name="accessibility_shortcut_edit_screen_summary_two_finger_double_tap" msgid="385404127425496362">"Touchez rapidement l\'écran deux fois avec %1$d doigts"</string>
<string name="accessibility_shortcut_edit_screen_title_triple_tap" msgid="3314488747597058942">"Toucher trois fois"</string>
<string name="accessibility_shortcut_edit_screen_summary_triple_tap" msgid="4839204951599629871">"Touchez rapidement l\'écran %1$d fois. Cela pourrait ralentir votre appareil."</string>
<string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="6271718715836961167">"toucher deux fois avec %1$d doigts"</string>
- <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"Touchez rapidement l\'écran {0,number,integer} fois avec deux doigts"</string>
- <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"Toucher l\'écran trois fois"</string>
<string name="accessibility_shortcut_triple_tap_keyword" msgid="5359347130888464334">"toucher trois fois"</string>
- <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"Touchez rapidement l\'écran {0,number,integer} fois. Ce raccourci peut ralentir votre appareil"</string>
<string name="accessibility_shortcut_edit_dialog_title_advance" msgid="4567868630655591506">"Paramètres avancés"</string>
<string name="accessibility_screen_magnification_navbar_configuration_warning" msgid="266736851606791552">"Le bouton d\'accessibilité est défini à <xliff:g id="SERVICE">%1$s</xliff:g>. Pour utiliser cette fonction, maintenez enfoncé le bouton d\'accessibilité, puis sélectionnez l\'agrandissement."</string>
<string name="accessibility_screen_magnification_gesture_navigation_warning" msgid="991017769735632046">"Le geste d\'accessibilité est défini pour <xliff:g id="SERVICE">%1$s</xliff:g>. Pour utiliser le zoom, balayez l\'écran de bas en haut deux avec doigts, puis maintenez-les-y. Sélectionnez ensuite Zoom."</string>
@@ -2369,6 +2362,7 @@
<string name="daltonizer_mode_tritanomaly_title" msgid="2278786218762602022">"Bleu-jaune"</string>
<string name="daltonizer_mode_grayscale_title" msgid="152005391387952588">"Nuances de gris"</string>
<string name="daltonizer_saturation_title" msgid="2999486412114963068">"Intensité"</string>
+ <string name="daltonizer_saturation_unavailable_summary" msgid="8319753055567798775">"Inaccessible en mode Nuances de gris ou lorsque la correction des couleurs est désactivée"</string>
<string name="daltonizer_mode_deuteranomaly_summary" msgid="2117727423019598455">"Vert faible, deutéranomalie"</string>
<string name="daltonizer_mode_protanomaly_summary" msgid="4617032854982040748">"Rouge faible, protanomalie"</string>
<string name="daltonizer_mode_tritanomaly_summary" msgid="2428218320118180070">"Tritanomalie"</string>
@@ -2418,15 +2412,8 @@
<string name="color_cyan" msgid="4341758639597035927">"Cyan"</string>
<string name="color_yellow" msgid="5957551912912679058">"Jaune"</string>
<string name="color_magenta" msgid="8943538189219528423">"Magenta"</string>
- <string name="enable_service_title" msgid="7231533866953706788">"Permettre au service <xliff:g id="SERVICE">%1$s</xliff:g> de contrôler complètement votre appareil?"</string>
<string name="capabilities_list_title" msgid="1225853611983394386">"<xliff:g id="SERVICE">%1$s</xliff:g> doit pouvoir :"</string>
<string name="touch_filtered_warning" msgid="4225815157460318241">"Une appli obscurcit une demande d\'autorisation, alors Paramètres ne peut pas vérifier votre réponse."</string>
- <string name="accessibility_service_warning" msgid="6779187188736432618">"<xliff:g id="SERVICE">%1$s</xliff:g> demande l\'autorisation de contrôler cet appareil. Le service peut lire l\'écran et agir pour les utilisateurs qui font appels aux fonctions d\'accessibilité. Ce niveau de contrôle ne convient pas à la majorité des applis."</string>
- <string name="accessibility_service_warning_description" msgid="6573203795976134751">"Le contrôle total convient aux applis qui répondent à vos besoins d\'accessibilité. Il ne convient pas à la plupart des applis."</string>
- <string name="accessibility_service_screen_control_title" msgid="324795030658109870">"Afficher et contrôler l\'écran"</string>
- <string name="accessibility_service_screen_control_description" msgid="8431940515157990426">"Cette fonctionnalité peut lire tout le contenu à l\'écran et afficher du contenu par-dessus d\'autres applis."</string>
- <string name="accessibility_service_action_perform_title" msgid="1449360056585337833">"Afficher et effectuer des actions"</string>
- <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"Cette fonctionnalité peut faire le suivi de vos interactions avec une appli ou un capteur matériel et interagir avec des applis en votre nom."</string>
<string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Autoriser"</string>
<string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Refuser"</string>
<string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Désactiver"</string>
@@ -2440,7 +2427,7 @@
<string name="keywords_accessibility" msgid="8593989878379366798">"vision, audition, aveugle, sourd, motricité, dextérité, fonctionnel, assistance, facilité d\'utilisation, facilité d\'accès, main, aide"</string>
<string name="keywords_magnification" msgid="3908145308269840862">"Agrandisseur d\'écran, zoom, agrandissement, vision faible, agrandir, rendre plus gros"</string>
<string name="keywords_talkback" msgid="2816435437095102527"></string>
- <string name="keywords_live_caption" msgid="1667203998080567556">"Sous-titres, sous-titrage, CC, sous-titres instantanés, malentendant, perte auditive, transcription en temps réel assistée par ordinateur, synthèse textuelle, sous-titrer"</string>
+ <string name="keywords_live_caption" msgid="1667203998080567556">"Sous-titres, sous-titrage, CC, Transcription instantanée, malentendant, perte auditive, la traduction en temps réel des communications (CART), synthèse textuelle, sous-titrer"</string>
<string name="keywords_live_transcribe" msgid="3226990195174890997"></string>
<string name="keywords_sound_notifications" msgid="8183107485754075413"></string>
<string name="keywords_sound_amplifier" msgid="939404835256246663"></string>
@@ -2743,7 +2730,7 @@
<string name="credentials_reset_summary" msgid="5400585520572874255">"Supprimer tous les certificats"</string>
<string name="trusted_credentials" msgid="2522784976058244683">"Certificats de confiance"</string>
<string name="trusted_credentials_summary" msgid="345822338358409468">"Afficher les certificats d\'autorité de confiance"</string>
- <string name="user_credentials" msgid="4044405430790970775">"Authentifiants d\'utilisateur"</string>
+ <string name="user_credentials" msgid="4044405430790970775">"Authentifiant d\'utilisateur"</string>
<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>
@@ -2912,7 +2899,7 @@
<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">"Applis supprimées"</string>
- <string name="data_usage_uninstalled_apps_users" msgid="1262228664057122983">"Applis et utilisateurs supprimés"</string>
+ <string name="data_usage_uninstalled_apps_users" msgid="1262228664057122983">"Applis et utilisateurs retiré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>
@@ -2947,7 +2934,7 @@
<string name="vpn_set_vpn_title" msgid="1667539483005810682">"Définir le RPV permanent?"</string>
<string name="vpn_first_always_on_vpn_message" msgid="2769478310633047870">"Si vous activez ce paramètre, vous ne disposerez d\'aucune connexion Internet jusqu\'à ce que le RPV parvienne à se connecter"</string>
<string name="vpn_replace_always_on_vpn_enable_message" msgid="9154843462740876652">"Votre RPV existant sera remplacé, et vous ne disposerez d\'aucune connexion Internet jusqu\'à ce que le RPV parvienne à se connecter"</string>
- <string name="vpn_replace_always_on_vpn_disable_message" msgid="4299175336198481106">"Vous êtes déjà connecté à un RPV permanent. Si vous vous connectez à un autre RPV, le RPV actuel sera remplacé et le mode permanent sera désactivé."</string>
+ <string name="vpn_replace_always_on_vpn_disable_message" msgid="4299175336198481106">"Votre appareil est déjà connecté à un RPV permanent. Si vous vous connectez à un autre RPV, le RPV actuel sera remplacé, et le mode permanent sera désactivé."</string>
<string name="vpn_replace_vpn_message" msgid="1094297700371463386">"Vous êtes déjà connecté à un RPV. Si vous vous connectez à un RPV différent, votre RPV actuel sera remplacé."</string>
<string name="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>
@@ -2966,7 +2953,7 @@
<string name="vpn_require_connection_title" msgid="4186758487822779039">"Exiger une connexion RPV?"</string>
<string name="vpn_insecure_dialog_subtitle" msgid="1857621742868835300">"Pas sécuritaire. Passez à un RPV de type IKEv2"</string>
<string name="vpn_start_unsupported" msgid="7139925503292269904">"Échec du démarrage d\'un RPV non pris en charge."</string>
- <string name="vpn_lockdown_summary" msgid="4700625960550559029">"Sélectionnez un profil RPV auquel rester connecté en permanence. Le trafic réseau ne sera autorisé que lorsque vous serez connecté à ce RPV."</string>
+ <string name="vpn_lockdown_summary" msgid="4700625960550559029">"Sélectionnez un profil RPV auquel l\'appareil restera connecté en permanence. Le trafic réseau sera autorisé seulement lorsque votre appareil sera connecté à ce RPV."</string>
<string name="vpn_lockdown_none" msgid="455915403560910517">"Aucun"</string>
<string name="vpn_lockdown_config_error" msgid="1992071316416371316">"Le RPV permanent nécessite une adresse IP pour le serveur et le DNS."</string>
<string name="vpn_no_network" msgid="7187593680049843763">"Aucune connexion réseau. Veuillez réessayer plus tard."</string>
@@ -2984,10 +2971,10 @@
<string name="trusted_credentials_remove_confirmation" msgid="3420345440353248381">"Supprimer définitivement le certificat d\'autorité utilisateur?"</string>
<string name="credential_being_used_by" msgid="3682869943025283499">"En cours d\'utilisation par"</string>
<string name="credential_contains" msgid="3146519680449595771">"Cette entrée contient"</string>
- <string name="one_userkey" msgid="6363426728683951234">"Une clé utilisateur"</string>
+ <string name="one_userkey" msgid="6363426728683951234">"1 clé d\'utilisateur"</string>
<string name="one_usercrt" msgid="2097644070227688983">"Un certificat utilisateur"</string>
<string name="one_cacrt" msgid="982242103604501559">"Un certificat CA"</string>
- <string name="n_cacrts" msgid="5886462550192731627">"%d certificats CA"</string>
+ <string name="n_cacrts" msgid="5886462550192731627">"%d certificats CA"</string>
<string name="user_credential_title" msgid="4686178602575567298">"Détails de l\'authentifiant"</string>
<string name="user_credential_removed" msgid="4087675887725394743">"L\'identifiant suivant a été supprimé : <xliff:g id="CREDENTIAL_NAME">%s</xliff:g>"</string>
<string name="user_credential_none_installed" msgid="918620912366836994">"Aucun authentifiant d\'utilisateur installé"</string>
@@ -3002,8 +2989,8 @@
<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 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_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 ce certificat, 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 ce certificat, 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>
@@ -3014,7 +3001,7 @@
<string name="user_summary_restricted_not_set_up" msgid="1658946988920104613">"Non configuré : profil limité"</string>
<string name="user_summary_managed_profile_not_set_up" msgid="5739207307082458746">"Non configuré : profil professionnel"</string>
<string name="user_owner" msgid="2079206733011361994">"Propriétaire"</string>
- <string name="user_admin" msgid="4024553191395768119">"Admin"</string>
+ <string name="user_admin" msgid="4024553191395768119">"Administrateur"</string>
<string name="user_you" msgid="3070562015202859996">"Vous (<xliff:g id="NAME">%s</xliff:g>)"</string>
<string name="user_add_max_count" msgid="3328539978480663740">"Vous ne pouvez plus ajouter d’utilisateurs. Retirez un utilisateur pour en ajouter un nouveau."</string>
<string name="user_cannot_add_accounts_message" msgid="2351326078338805337">"Les profils limités ne peuvent pas ajouter de compte."</string>
@@ -3029,7 +3016,7 @@
<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_adding_new_user" msgid="7439602720177181412">"Ajout de l\'utilisateur en cours…"</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 applis et les données de cette session seront supprimées."</string>
@@ -3141,7 +3128,7 @@
<string name="restriction_location_enable_title" msgid="4872281754836538066">"Position"</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_next" msgid="3884832431439072471">"Suivant"</string>
<string name="wizard_back_adoptable" msgid="1447814356855134183">"Formater autrement"</string>
<string name="regulatory_info_text" msgid="1154461023369976667"></string>
<string name="sim_settings_title" msgid="2254609719033946272">"Cartes SIM"</string>
@@ -3368,10 +3355,8 @@
<string name="zen_mode_automation_settings_title" msgid="3709324184191870926">"Horaires"</string>
<string name="zen_mode_delete_automatic_rules" msgid="5020468289267191765">"Supprimer les horaires"</string>
<string name="zen_mode_schedule_delete" msgid="5383420576833765114">"Supprimer"</string>
- <!-- no translation found for zen_mode_menu_rename_mode (4681802125016390837) -->
- <skip />
- <!-- no translation found for zen_mode_menu_delete_mode (5380084696402157428) -->
- <skip />
+ <string name="zen_mode_menu_rename_mode" msgid="4681802125016390837">"Renommer"</string>
+ <string name="zen_mode_menu_delete_mode" msgid="5380084696402157428">"Supprimer"</string>
<string name="zen_mode_delete_mode_confirmation" msgid="7594340592051947392">"Supprimer le mode « <xliff:g id="MODE">%1$s</xliff:g> »?"</string>
<string name="zen_mode_rule_name_edit" msgid="1053237022416700481">"Modifier"</string>
<string name="zen_mode_automation_settings_page_title" msgid="6217433860514433311">"Horaires"</string>
@@ -3395,8 +3380,7 @@
<string name="zen_mode_visual_signals_settings_subtitle" msgid="7433077540895876672">"Autoriser les signaux visuels"</string>
<string name="mode_interruption_filter_title" msgid="3343846700214702347">"Rester concentré"</string>
<string name="mode_device_effects_title" msgid="5857008332618433744">"Actions supplémentaires"</string>
- <!-- no translation found for modes_sound_summary_off (6972648204528227879) -->
- <skip />
+ <string name="modes_sound_summary_off" msgid="6972648204528227879">"{count,plural, =0{Désactivé}=1{Désactivé : 1 mode peut s\'activer automatiquement}one{Désactivé : # mode peut s\'activer automatiquement}other{Désactivé : # modes peuvent s\'activer automatiquement}}"</string>
<string name="mode_display_settings_title" msgid="8132825978346535472">"Paramètres d\'affichage"</string>
<string name="mode_display_options_section" msgid="5151597748243866532">"Options d\'affichage"</string>
<string name="mode_grayscale_title" msgid="6027553257331235461">"Nuances de gris"</string>
@@ -3557,7 +3541,7 @@
<string name="lockscreen_bypass_summary" msgid="4578154430436224161">"Après le déverrouillage, accédez au dernier écran utilisé. Les notifications ne s\'afficheront pas à l\'écran. Balayez du haut vers le bas pour les voir."</string>
<string name="keywords_lockscreen_bypass" msgid="41035425468915498">"Écran de verrouillage, écran verrouillé, ignorer, contourner"</string>
<string name="locked_work_profile_notification_title" msgid="279367321791301499">"Lorsque le profil professionnel est verrouillé"</string>
- <string name="unseen_notifs_lock_screen" msgid="6910701117021324612">"Afficher seul. les nouv. notif. sur l\'écran de verrouillage"</string>
+ <string name="unseen_notifs_lock_screen" msgid="6910701117021324612">"Afficher seul. les nouvelles notifi. sur l\'écran de verrou."</string>
<string name="unseen_notifs_lock_screen_summary" msgid="5996722793868021391">"Retirez automatiquement les notifications consultées de l\'écran de verrouillage"</string>
<string name="lock_screen_notifs_title" msgid="3412042692317304449">"Notifications sur l\'écran de verrouillage"</string>
<string name="lock_screen_notifs_show_all_summary" msgid="4226586018375762117">"Afficher les conversations, par défaut et silencieuses"</string>
@@ -3630,7 +3614,7 @@
<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 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_assistant_security_warning_summary" msgid="4846559755787348129">"Les notifications améliorées ont remplacé les notifications adaptatives Android sous Android 12. Cette fonctionnalité vous suggère des actions et des 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\'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>
@@ -3659,9 +3643,9 @@
<string name="notif_listener_not_migrated" msgid="6265206376374278226">"Cette appli ne prend pas en charge les paramètres améliorés"</string>
<string name="notif_listener_more_settings" msgid="1348409392307208921">"Plus de paramètres"</string>
<string name="notif_listener_more_settings_desc" msgid="7995492074281663658">"Plus de paramètres sont accessibles dans cette appli"</string>
- <string name="notification_polite_title" msgid="4737150709382859870">"Notifications adaptatives"</string>
- <string name="notification_polite_main_control_title" msgid="7267191551379543859">"Utiliser les notifications adaptatives"</string>
- <string name="notification_polite_description" msgid="7749280535620291610">"Lorsque vous recevez de nombreuses notifications dans un court laps de temps, votre téléphone baisse le volume et réduit les fenêtres contextuelles à l\'écran pendant deux minutes maximum. Les appels, les alarmes et les conversations prioritaires continuent de vibrer, d\'émettre un son ou de s\'afficher à l\'écran, et toutes les notifications sont faciles à trouver lorsque vous faites glisser le volet des notifications vers le bas."</string>
+ <string name="notification_polite_title" msgid="6121016426991791557">"Période de stabil. des notif."</string>
+ <string name="notification_polite_main_control_title" msgid="5812529809151927149">"Utiliser l\'atténuation des notifications"</string>
+ <string name="notification_polite_description" msgid="5497748284893832854">"Lorsque vous recevez de nombreuses notifications pendant un court laps de temps, votre appareil baisse le volume et réduit les alertes pour une période maximale de deux minutes. Les appels, les alarmes et les conversations prioritaires ne sont pas concernés par cette mesure. \n\nLes notifications reçues pendant cette période peuvent être affichées en faisant glisser votre doigt du haut de l\'écran vers le bas."</string>
<string name="notification_polite_work" msgid="8823596456640216391">"Appliquer aux profils professionnels"</string>
<string name="notification_polite_work_summary" msgid="5014189280132951378">"L\'appliquer aux applis du profil professionnel"</string>
<string name="vr_listeners_title" msgid="4960357292472540964">"Services d\'assistance pour la réalité virtuelle"</string>
@@ -3818,7 +3802,9 @@
<string name="zen_mode_apps_priority_apps" msgid="7386196048313716076">"Applis sélectionnées"</string>
<string name="zen_mode_apps_none_apps" msgid="2493642312793604327">"Aucune"</string>
<string name="zen_mode_apps_subtext" msgid="1764211974662012877">"{count,plural,offset:2 =0{Aucune appli ne peut provoquer d\'interruption}=1{{app_1} peut provoquer des interruptions}=2{{app_1} et {app_2} peuvent provoquer des interruptions}=3{{app_1}, {app_2} et {app_3} peuvent provoquer des interruptions}one{{app_1}, {app_2} et # autre appli peuvent provoquer des interruptions}other{{app_1}, {app_2} et # autres applis peuvent provoquer des interruptions}}"</string>
+ <string name="zen_mode_apps_work_app" msgid="8528767938316361588">"<xliff:g id="APP_LABEL">%s</xliff:g> (professionnel)"</string>
<string name="zen_mode_apps_calculating" msgid="5420121396943539286">"Calcul en cours…"</string>
+ <string name="zen_mode_plus_n_items" msgid="6136713354369243421">"+<xliff:g id="NUMBER">%d</xliff:g>"</string>
<string name="zen_mode_bypassing_apps" msgid="625309443389126481">"Autoriser les applis à ignorer le mode Ne pas déranger"</string>
<string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"Applis qui peuvent provoquer des interruptions"</string>
<string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"Sélectionner plus d\'applis"</string>
@@ -3836,6 +3822,7 @@
<string name="zen_mode_sounds_none" msgid="6557474361948269420">"Rien ne peut provoquer d\'interruption"</string>
<string name="zen_mode_people_none" msgid="4613147461974255046">"Personne ne peut provoquer d\'interruption"</string>
<string name="zen_mode_people_some" msgid="9101872681298810281">"Certaines personnes peuvent provoquer des interruptions"</string>
+ <string name="zen_mode_people_repeat_callers" msgid="4499084111069828761">"Les appelants fréquents peuvent vous interrompre"</string>
<string name="zen_mode_people_all" msgid="311036110283015205">"Tout le monde peut provoquer des interruptions"</string>
<string name="zen_mode_repeat_callers" msgid="2270356100287792138">"Appelants fréquents"</string>
<string name="zen_mode_repeat_callers_title" msgid="8016699240338264781">"Autoriser les appels répétés"</string>
@@ -3855,13 +3842,37 @@
<string name="zen_mode_summary_alarms_only_by_hour" msgid="7400910210950788163">"{count,plural, =1{Ne recevoir que les alarmes pendant une heure jusqu\'à {time}}one{Ne recevoir que les alarmes pendant # heure jusqu\'à {time}}other{Ne recevoir que les alarmes pendant # heures jusqu\'à {time}}}"</string>
<string name="zen_mode_summary_alarms_only_by_time" msgid="8140619669703968810">"Ne recevoir que les alarmes jusqu\'à <xliff:g id="FORMATTEDTIME">%1$s</xliff:g>"</string>
<string name="zen_mode_summary_always" msgid="722093064250082317">"Activer le mode Toujours interrompre"</string>
- <!-- no translation found for zen_mode_rename_title (8146882272966214558) -->
+ <string name="zen_mode_rename_title" msgid="8146882272966214558">"Modifier le mode"</string>
+ <string name="zen_mode_new_custom_title" msgid="321750898430776191">"Ajouter un mode"</string>
+ <string name="zen_mode_new_custom_default_name" msgid="2778307946775085105">"Mode personnalisé"</string>
+ <string name="zen_mode_edit_name_hint" msgid="4584652062167540536">"Nom du mode"</string>
+ <string name="zen_mode_trigger_title_schedule_calendar" msgid="9206609438617550331">"Événements d\'agenda"</string>
+ <string name="zen_mode_trigger_title_bedtime" msgid="5086070900588489978">"Horaire de sommeil"</string>
+ <string name="zen_mode_trigger_title_driving" msgid="7890990983453164403">"En conduisant"</string>
+ <string name="zen_mode_trigger_title_generic" msgid="601273385119550420">"Associé à l\'appli"</string>
+ <string name="zen_mode_trigger_summary_settings_in_app" msgid="4860667191183702601">"Renseignements et paramètres dans <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+ <string name="zen_mode_trigger_summary_managed_by_app" msgid="8631011868193102098">"Géré par <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+ <string name="zen_mode_confirm_disable_title" msgid="1232297660775719796">"Désactiver le mode"</string>
+ <string name="zen_mode_confirm_disable_message" msgid="7315541221665718491">"Si vous désactivez cette fonctionnalité, le mode cessera de fonctionner comme prévu et ses paramètres seront masqués."</string>
+ <string name="zen_mode_action_disable" msgid="3552921561331044881">"Désactiver"</string>
+ <string name="zen_mode_confirm_enable_title" msgid="5683371335847448595">"Activer le mode"</string>
+ <string name="zen_mode_confirm_enable_message" msgid="7017879133260011419">"Si vous activez cette fonctionnalité, le mode s\'activera automatiquement selon son programme."</string>
+ <string name="zen_mode_action_enable" msgid="1161480633223176531">"Activer"</string>
+ <!-- no translation found for zen_mode_blurb_schedule_time (8223898702097484009) -->
<skip />
- <!-- no translation found for zen_mode_new_custom_title (321750898430776191) -->
+ <!-- no translation found for zen_mode_blurb_schedule_calendar (382177907856065945) -->
<skip />
- <!-- no translation found for zen_mode_new_custom_default_name (2778307946775085105) -->
+ <!-- no translation found for zen_mode_blurb_bedtime (6155075956151013457) -->
<skip />
- <!-- no translation found for zen_mode_edit_name_hint (4584652062167540536) -->
+ <!-- no translation found for zen_mode_blurb_driving (1316054379000667305) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_immersive (5884004861848687869) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_theater (2999237960059524225) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_managed (5473921634985032149) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_generic (3041601339807075625) -->
<skip />
<string name="warning_button_text" msgid="1274234338874005639">"Mise en garde"</string>
<string name="suggestion_button_close" msgid="6865170855573283759">"Fermer"</string>
@@ -4196,7 +4207,7 @@
<string name="data_warning_footnote" msgid="5991901765915710592">"C\'est votre appareil qui mesure l\'utilisation des données pour les limites et les avertissements. Ces mesures peuvent différer de celles de votre fournisseur de services."</string>
<string name="set_data_limit" msgid="9010326815874642680">"Définir limite consomm. données"</string>
<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="data_usage_template" msgid="3822452362629968010">"<xliff:g id="ID_1">%1$s</xliff:g> utilisées pour la période suivante : <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 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>
@@ -4280,7 +4291,7 @@
<string name="notification_log_details_ranking_null" msgid="6607596177723101524">"L\'objet de classement est manquant."</string>
<string name="notification_log_details_ranking_none" msgid="2484105338466675261">"L\'objet de classement ne contient pas cette touche."</string>
<string name="display_cutout_emulation" msgid="1421648375408281244">"Encoche de l\'écran"</string>
- <string name="display_cutout_emulation_keywords" msgid="4506580703807358127">"découpe d\'affichage, encoche"</string>
+ <string name="display_cutout_emulation_keywords" msgid="4506580703807358127">"encoche de l\'écran, encoche"</string>
<string name="overlay_option_device_default" msgid="7986355499809313848">"Valeurs par défaut de l\'appareil"</string>
<string name="overlay_toast_failed_to_apply" msgid="4839587811338164960">"Impossible d\'appliquer la superposition"</string>
<string name="special_access" msgid="1767980727423395147">"Accès spécial des applis"</string>
@@ -4312,7 +4323,7 @@
<string name="dark_theme_slice_subtitle" msgid="5555724345330434268">"Contribue à prolonger l\'autonomie de la pile"</string>
<string name="quick_settings_developer_tiles" msgid="7336007844525766623">"Paramètres rapides, tuiles de développeur"</string>
<string name="adb_authorization_timeout_title" msgid="6996844506783749754">"Désactiver le délai d\'expiration des autorisations adb"</string>
- <string name="adb_authorization_timeout_summary" msgid="409931540424019778">"Désactivez le retrait automatique des autorisations adb pour des systèmes qui ne se sont pas connectés ou qui n\'ont pas été configurés par l\'utilisateur dans le délai d\'expiration par défaut (respectivement, sept jours et un jour minimum)."</string>
+ <string name="adb_authorization_timeout_summary" msgid="409931540424019778">"Désactiver 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 applis personnelles déterminer les contacts à l\'aide de l\'annuaire professionnel"</string>
@@ -4502,7 +4513,7 @@
<string name="game_storage_settings" msgid="2521393115726178837">"Jeux"</string>
<string name="app_info_storage_title" msgid="4076977173803093808">"Espace utilisé"</string>
<string name="webview_uninstalled_for_user" msgid="627352948986275488">"(désinst. pour l\'utilisateur <xliff:g id="USER">%s</xliff:g>)"</string>
- <string name="webview_disabled_for_user" msgid="5809886172032644498">"(désactivé pour l\'utilisateur <xliff:g id="USER">%s</xliff:g>)"</string>
+ <string name="webview_disabled_for_user" msgid="5809886172032644498">"(désactivé pour <xliff:g id="USER">%s</xliff:g>)"</string>
<string name="autofill_app" msgid="7595308061826307921">"Service de remplissage auto"</string>
<string name="default_autofill_app" msgid="372234803718251606">"Service de remplissage automatique par défaut"</string>
<string name="autofill_passwords" msgid="6708057251459761083">"Mots de passe"</string>
@@ -4849,9 +4860,8 @@
<string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"Pile"</string>
<string name="settings_panel_title" msgid="346363079938069215">"Panneau Paramètres"</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>
+ <!-- no translation found for enable_desktop_mode_on_secondary_display (2609567824593768780) -->
+ <skip />
<string name="enable_non_resizable_multi_window" msgid="6832903754625404477">"Activer éléments non redimensionnables en mode multi-fenêtre"</string>
<string name="enable_non_resizable_multi_window_summary" msgid="3275763753261901999">"Activer les applis non redimensionnables en mode multi-fenêtre"</string>
<string name="hwui_force_dark_title" msgid="4256904905631994219">"Forcer l\'activation du thème sombre forcé"</string>
@@ -4932,7 +4942,7 @@
<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 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="work_profile_app_subtext" msgid="5043419461440127879">"Profil professionnel"</string>
<string name="system_default_app_subtext" msgid="5212055189703164839">"Paramètres par défaut"</string>
<string name="default_app_none" msgid="5420632042222036264">"Aucune"</string>
<string name="select_invalid_bug_report_handler_toast_text" msgid="8857326334015386692">"Ce choix n\'est plus valide. Réessayez."</string>
@@ -5026,7 +5036,6 @@
<string name="default_active_sim_mobile_data" msgid="6798083892814045301">"données cellulaires"</string>
<string name="wifi_scan_notify_message" msgid="1331238142061476869">"Pour améliorer l\'expérience d\'utilisation de l\'appareil, les applis et les services peuvent continuer de rechercher les réseaux Wi-Fi en tout temps, même si le Wi-FI est désactivé. Cette autorisation peut permettre, par exemple, d\'améliorer les fonctionnalités et les services reposant sur la localisation. Vous pouvez modifier vos préférences dans les paramètres de recherche de réseaux Wi-Fi."</string>
<string name="wifi_scan_change" msgid="8438320311511852918">"Changer"</string>
- <string name="preference_summary_default_combination" msgid="4643585915107796253">"<xliff:g id="STATE">%1$s</xliff:g> : <xliff:g id="NETWORKMODE">%2$s</xliff:g>"</string>
<string name="mobile_data_connection_active" msgid="2422223108911581552">"Connexion active"</string>
<string name="mobile_data_temp_connection_active" msgid="3430470299756236413">"Connectée temporairement"</string>
<string name="mobile_data_temp_using" msgid="5211002380149434155">"Utilise temporairement <xliff:g id="SUBNAME">%1$s</xliff:g>"</string>
@@ -5172,9 +5181,11 @@
<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="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_enable_freeform_support" msgid="3697462756493543645">"Vous devez redémarrer l\'appareil pour activer la prise en charge des fenêtres de forme libre."</string>
+ <!-- no translation found for reboot_dialog_override_desktop_mode (7480950772574354130) -->
+ <skip />
+ <!-- no translation found for reboot_dialog_enable_desktop_mode_on_secondary_display (1153621881052401924) -->
+ <skip />
<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>
@@ -5291,11 +5302,9 @@
<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>
- <!-- no translation found for audio_seek_bar_state_left_first (8814986910920838972) -->
- <skip />
- <!-- no translation found for audio_seek_bar_state_right_first (1999368979633398876) -->
- <skip />
+ <string name="live_caption_enabled" msgid="5269360946200718949">"Activés"</string>
+ <string name="audio_seek_bar_state_left_first" msgid="8814986910920838972">"Son %1$d%% à gauche, %2$d%% à droite"</string>
+ <string name="audio_seek_bar_state_right_first" msgid="1999368979633398876">"Son %1$d%% à droite, %2$d%% à gauche"</string>
<string name="about_phone_device_name_warning" msgid="3243226572404472381">"Le nom de votre appareil est visible aux applis que vous avez installées. Il est également possible que d\'autres personnes voient le nom de votre appareil lorsque vous vous connectez à des appareils Bluetooth ou à un réseau Wi-Fi, ou lorsque vous configurez un point d\'accès Wi-Fi."</string>
<string name="grammatical_gender_title" msgid="8584242850477270828">"Genre grammatical"</string>
<string name="grammatical_gender_dialog_title" msgid="8754048592099871587">"Sélectionnez un genre grammatical"</string>
@@ -5407,5 +5416,6 @@
<string name="audio_streams_main_page_password_dialog_join_button" msgid="2967747276379153408">"Écouter le flux"</string>
<string name="audio_streams_main_page_qr_code_scanner_summary" msgid="5312980105735143360">"Balayez le code QR d\'un flux audio pour l\'écouter avec votre <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
<string name="audio_streams_main_page_password_dialog_cannot_edit" msgid="9020898619297520153">"Impossible de modifier le mot de passe lors du partage. Pour modifier le mot de passe, désactivez d\'abord le partage audio."</string>
+ <string name="audio_streams_qr_code_scanner_label" msgid="8799703301071378034">"Lecteur de code QR"</string>
<string name="homepage_search" msgid="6759334912284663559">"Paramètres de recherche"</string>
</resources>
diff --git a/res/values-fr/strings.xml b/res/values-fr/strings.xml
index c0d867e..7e2c42e 100644
--- a/res/values-fr/strings.xml
+++ b/res/values-fr/strings.xml
@@ -41,6 +41,8 @@
<string name="radioInfo_data_suspended" msgid="2001254415431299603">"Interrompu"</string>
<string name="radioInfo_unknown" msgid="2892562356748600367">"Inconnu"</string>
<string name="preview_pager_content_description" msgid="3762247188224576303">"Aperçu"</string>
+ <!-- no translation found for qr_code_content_description (1852208464419291347) -->
+ <skip />
<string name="font_size_make_smaller_desc" msgid="4978038055549590140">"Réduire"</string>
<string name="font_size_make_larger_desc" msgid="5583046033381722247">"Agrandir"</string>
<string name="stay_awake_on_fold_title" msgid="6590454679898134221">"Toujours"</string>
@@ -283,7 +285,7 @@
<string name="location_settings_summary_location_off" msgid="4797932754681162262">"Désactivé"</string>
<string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{Activée/# appli a accès à la position}one{Activée/# appli a accès à la position}other{Activée/# applis ont accès à la position}}"</string>
<string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"Chargement…"</string>
- <string name="location_settings_footer_general" msgid="1040507068701188821">"Les applis ayant l\'autorisation de détecter les appareils à proximité peuvent déterminer la position relative des appareils connectés."</string>
+ <string name="location_settings_footer_general" msgid="3447585552176173502">"Les applis ayant l\'autorisation de détecter les appareils à proximité peuvent déterminer la position relative des appareils connectés."</string>
<string name="location_settings_footer_location_off" msgid="8568995909147566720">"L\'accès à la position est désactivé pour les applis et les services. La position de votre appareil peut toujours être envoyée aux services d\'urgence lorsque vous les contactez par téléphone ou SMS."</string>
<string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"En savoir plus sur les paramètres de localisation."</string>
<string name="location_settings_tooltip_text_for_chrome" msgid="5781821709250544575">"Pour apporter des modifications, rendez-vous dans Paramètres de ChromeOS > Confidentialité et sécurité > Paramètres de confidentialité > Accès à la position"</string>
@@ -850,7 +852,6 @@
<string name="nfc_reboot_dialog_title" msgid="2033983438635768169">"Redémarrer l\'appareil ?"</string>
<string name="nfc_reboot_dialog_message" msgid="4929353168157966992">"La journalisation des détails NFC est destinée exclusivement au développement. Des données NFC supplémentaires sont incluses dans les rapports de bug. Ils peuvent contenir des informations privées. Redémarrez votre appareil pour modifier ce paramètre."</string>
<string name="nfc_reboot_dialog_confirm" msgid="4769763632008584567">"Redémarrer"</string>
- <string name="keywords_external_display" msgid="4181375057920134909">"dupliquer, écran externe, écran connecté, écran usb, résolution, rotation"</string>
<string name="external_display_on" msgid="2560104443500154333">"Activé"</string>
<string name="external_display_off" msgid="5634413756025351374">"Désactivé"</string>
<string name="external_display_settings_title" msgid="6256884595821605779">"Écran externe"</string>
@@ -1918,6 +1919,8 @@
<string name="slow_keys_summary" msgid="1784371292745423292">"Règle le temps de réponse d\'une pression de touche sur <xliff:g id="SLOW_KEYS_THRESHOLD">%1$d</xliff:g> ms"</string>
<string name="sticky_keys" msgid="7317317044898161747">"Touches persistantes"</string>
<string name="sticky_keys_summary" msgid="1844953803625480623">"Pour les raccourcis, appuyez sur une touche à la fois au lieu de maintenir les touches enfoncées"</string>
+ <string name="mouse_keys" msgid="6237254627808525540">"Touches pour la souris"</string>
+ <string name="mouse_keys_summary" msgid="2396247040177734245">"Utiliser le clavier physique pour contrôler la souris."</string>
<string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"Raccourcis clavier"</string>
<string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"Afficher la liste des raccourcis"</string>
<string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"Claviers et outils du profil professionnel"</string>
@@ -1942,14 +1945,10 @@
<string name="pointer_fill_style_yellow_button" msgid="5025969961559379024">"Définir rempl. pointeur sur jaune"</string>
<string name="pointer_fill_style_pink_button" msgid="4106218142489635673">"Définir rempl. pointeur sur rose"</string>
<string name="pointer_fill_style_blue_button" msgid="5594958078854032785">"Définir rempl. pointeur sur bleu"</string>
- <!-- no translation found for pointer_stroke_style (1886986630216050665) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_white (673686194443825383) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_black (4655806167067437330) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_none (8953927511729800247) -->
- <skip />
+ <string name="pointer_stroke_style" msgid="1886986630216050665">"Style de trait du pointeur"</string>
+ <string name="pointer_stroke_style_name_white" msgid="673686194443825383">"Blanc"</string>
+ <string name="pointer_stroke_style_name_black" msgid="4655806167067437330">"Noir"</string>
+ <string name="pointer_stroke_style_name_none" msgid="8953927511729800247">"Aucun"</string>
<string name="trackpad_touch_gesture" msgid="8641725062131922497">"Découvrir gestes au pavé tactile"</string>
<string name="keywords_touchpad" msgid="8159846254066666032">"pavé tactile, pavé tactile, souris, curseur, faire défiler, balayer, clic droit, clic, pointeur"</string>
<string name="keywords_trackpad_bottom_right_tap" msgid="1285062446073929305">"clic droit, appuyer"</string>
@@ -2138,7 +2137,7 @@
<string name="accessibility_text_reading_conversation_message_1" msgid="7883952203831957831">"Des projets pour le week-end ?"</string>
<string name="accessibility_text_reading_conversation_message_2" msgid="8112160435318635856">"Je vais à la plage. Tu veux venir ?"</string>
<string name="accessibility_screen_option" msgid="8465307075278878145">"Options"</string>
- <string name="accessibility_preference_magnification_summary" msgid="2875518904115896888">"Zoom avant sur l\'écran"</string>
+ <string name="accessibility_preference_magnification_summary" msgid="2875518904115896888">"Zoomez sur l\'écran"</string>
<string name="accessibility_screen_magnification_short_summary" msgid="2207048420669939150">"Appuyer trois fois pour zoomer"</string>
<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>
@@ -2179,8 +2178,6 @@
<string name="accessibility_shortcut_edit_dialog_summary_floating_button" msgid="6266489864614886247">"Appuyez sur le bouton flottant"</string>
<string name="accessibility_shortcut_edit_dialog_title_software_by_gesture" msgid="4775049370625630546">"Geste d\'accessibilité"</string>
<string name="accessibility_shortcut_edit_dialog_summary_software" msgid="8315934725362849788">"Appuyez sur le bouton Accessibilité (<xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g>) en bas de votre écran. Pour changer de fonctionnalité, appuyez de manière prolongée sur le bouton Accessibilité."</string>
- <string name="accessibility_shortcut_edit_dialog_summary_software_gesture" msgid="8292555254353761635">"Balayez l\'écran de bas en haut avec deux doigts.\n\nPour changer de fonctionnalité, balayez l\'écran vers le haut avec deux doigts et appuyez de manière prolongée."</string>
- <string name="accessibility_shortcut_edit_dialog_summary_software_gesture_talkback" msgid="84483464524360845">"Balayez l\'écran de bas en haut avec trois doigts.\n\nPour changer de fonctionnalité, balayez l\'écran vers le haut avec trois doigts et appuyez de manière prolongée."</string>
<string name="accessibility_shortcut_edit_dialog_summary_gesture" msgid="2081123009255579884">"{count,plural, =1{Balayez votre écran de bas en haut. Pour changer de fonctionnalité, balayez l\'écran vers le haut et appuyez de manière prolongée.}one{Balayez votre écran de bas en haut avec # doigt. Pour changer de fonctionnalité, balayez l\'écran vers le haut avec # doigt et appuyez de manière prolongée.}other{Balayez votre écran de bas en haut avec # doigts. Pour changer de fonctionnalité, balayez l\'écran vers le haut avec # doigts et appuyez de manière prolongée.}}"</string>
<string name="accessibility_shortcut_edit_dialog_summary_software_floating" msgid="4459254227203203324"><annotation id="link">"Plus d\'options"</annotation></string>
<string name="footer_learn_more_content_description" msgid="8843798273152131341">"En savoir plus sur <xliff:g id="SERVICE">%1$s</xliff:g>"</string>
@@ -2191,16 +2188,12 @@
<string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="844089763968552142">"Boutons de volume"</string>
<string name="accessibility_shortcut_hardware_keyword" msgid="2483152542320987022">"boutons de volume"</string>
<string name="accessibility_shortcut_edit_dialog_summary_hardware" msgid="2503134386397991634">"Appuyez de manière prolongée sur les deux boutons de volume"</string>
- <string name="accessibility_shortcut_edit_dialog_title_two_finger_double_tap" msgid="2271778556854020996">"Appui double à deux doigts sur l\'écran"</string>
<string name="accessibility_shortcut_edit_screen_title_two_finger_double_tap" msgid="8952595692906527694">"Appuyer deux fois avec %1$d doigts"</string>
<string name="accessibility_shortcut_edit_screen_summary_two_finger_double_tap" msgid="385404127425496362">"Appuyez rapidement deux fois sur l\'écran avec %1$d doigts."</string>
<string name="accessibility_shortcut_edit_screen_title_triple_tap" msgid="3314488747597058942">"Appuyer trois fois"</string>
<string name="accessibility_shortcut_edit_screen_summary_triple_tap" msgid="4839204951599629871">"Appuyez rapidement %1$d fois sur l\'écran. Votre appareil peut être ralenti."</string>
<string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="6271718715836961167">"appuyer deux fois avec %1$d doigts"</string>
- <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"Appuyer rapidement sur l\'écran {0,number,integer} fois avec deux doigts"</string>
- <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"Appuyer trois fois sur l\'écran"</string>
<string name="accessibility_shortcut_triple_tap_keyword" msgid="5359347130888464334">"appuyer trois fois"</string>
- <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"Appuyer rapidement {0,number,integer} fois sur l\'écran. Ce raccourci peut ralentir votre appareil."</string>
<string name="accessibility_shortcut_edit_dialog_title_advance" msgid="4567868630655591506">"Paramètres avancés"</string>
<string name="accessibility_screen_magnification_navbar_configuration_warning" msgid="266736851606791552">"Le bouton Accessibilité est défini sur <xliff:g id="SERVICE">%1$s</xliff:g>. Pour utiliser la loupe, appuyez de manière prolongée sur le bouton Accessibilité, puis sélectionnez la loupe."</string>
<string name="accessibility_screen_magnification_gesture_navigation_warning" msgid="991017769735632046">"Le geste d\'accessibilité est défini sur <xliff:g id="SERVICE">%1$s</xliff:g>. Pour utiliser la loupe, balayez l\'écran de bas en haut avec deux doigts et maintenez la pression, puis sélectionnez la loupe."</string>
@@ -2369,6 +2362,7 @@
<string name="daltonizer_mode_tritanomaly_title" msgid="2278786218762602022">"Bleu-jaune"</string>
<string name="daltonizer_mode_grayscale_title" msgid="152005391387952588">"Nuances de gris"</string>
<string name="daltonizer_saturation_title" msgid="2999486412114963068">"Intensité"</string>
+ <string name="daltonizer_saturation_unavailable_summary" msgid="8319753055567798775">"Indisponible en mode \"Nuances de gris\" ou lorsque la correction des couleurs est désactivée"</string>
<string name="daltonizer_mode_deuteranomaly_summary" msgid="2117727423019598455">"Vert faible, deutéranomalie"</string>
<string name="daltonizer_mode_protanomaly_summary" msgid="4617032854982040748">"Rouge faible, protanomalie"</string>
<string name="daltonizer_mode_tritanomaly_summary" msgid="2428218320118180070">"Tritanomalie"</string>
@@ -2418,15 +2412,8 @@
<string name="color_cyan" msgid="4341758639597035927">"Cyan"</string>
<string name="color_yellow" msgid="5957551912912679058">"Jaune"</string>
<string name="color_magenta" msgid="8943538189219528423">"Magenta"</string>
- <string name="enable_service_title" msgid="7231533866953706788">"Accorder le contrôle total de votre appareil à <xliff:g id="SERVICE">%1$s</xliff:g> ?"</string>
<string name="capabilities_list_title" msgid="1225853611983394386">"<xliff:g id="SERVICE">%1$s</xliff:g> doit pouvoir :"</string>
<string name="touch_filtered_warning" msgid="4225815157460318241">"Une application masque la demande d\'autorisation. Impossible de valider votre réponse via l\'application Paramètres."</string>
- <string name="accessibility_service_warning" msgid="6779187188736432618">"<xliff:g id="SERVICE">%1$s</xliff:g> demande le contrôle total de cet appareil. Le service peut lire l\'écran et agir pour le compte des utilisateurs ayant des besoins en matière d\'accessibilité. Ce niveau de contrôle n\'est pas approprié pour la plupart des applications."</string>
- <string name="accessibility_service_warning_description" msgid="6573203795976134751">"Le contrôle total convient aux applications qui répondent à vos besoins d\'accessibilité. Il ne convient pas à la plupart des applications."</string>
- <string name="accessibility_service_screen_control_title" msgid="324795030658109870">"Afficher et contrôler l\'écran"</string>
- <string name="accessibility_service_screen_control_description" msgid="8431940515157990426">"Le service peut lire l\'intégralité du contenu à l\'écran et afficher du contenu par-dessus d\'autres applications."</string>
- <string name="accessibility_service_action_perform_title" msgid="1449360056585337833">"Afficher et effectuer des actions"</string>
- <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"Le service peut suivre vos interactions avec une application ou un capteur matériel, et interagir avec les applications en votre nom."</string>
<string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Autoriser"</string>
<string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Refuser"</string>
<string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Désactiver"</string>
@@ -3368,10 +3355,8 @@
<string name="zen_mode_automation_settings_title" msgid="3709324184191870926">"Programmes"</string>
<string name="zen_mode_delete_automatic_rules" msgid="5020468289267191765">"Supprimer des programmes"</string>
<string name="zen_mode_schedule_delete" msgid="5383420576833765114">"Supprimer"</string>
- <!-- no translation found for zen_mode_menu_rename_mode (4681802125016390837) -->
- <skip />
- <!-- no translation found for zen_mode_menu_delete_mode (5380084696402157428) -->
- <skip />
+ <string name="zen_mode_menu_rename_mode" msgid="4681802125016390837">"Renommer"</string>
+ <string name="zen_mode_menu_delete_mode" msgid="5380084696402157428">"Supprimer"</string>
<string name="zen_mode_delete_mode_confirmation" msgid="7594340592051947392">"Supprimer le mode <xliff:g id="MODE">%1$s</xliff:g> ?"</string>
<string name="zen_mode_rule_name_edit" msgid="1053237022416700481">"Modifier"</string>
<string name="zen_mode_automation_settings_page_title" msgid="6217433860514433311">"Programmes"</string>
@@ -3395,8 +3380,7 @@
<string name="zen_mode_visual_signals_settings_subtitle" msgid="7433077540895876672">"Autoriser les signaux visuels"</string>
<string name="mode_interruption_filter_title" msgid="3343846700214702347">"Restez concentré"</string>
<string name="mode_device_effects_title" msgid="5857008332618433744">"Autres actions"</string>
- <!-- no translation found for modes_sound_summary_off (6972648204528227879) -->
- <skip />
+ <string name="modes_sound_summary_off" msgid="6972648204528227879">"{count,plural, =0{Désactivé}=1{Désactivé/1 mode peut s\'activer automatiquement}one{Désactivé/# mode peut s\'activer automatiquement}other{Désactivé/# modes peuvent s\'activer automatiquement}}"</string>
<string name="mode_display_settings_title" msgid="8132825978346535472">"Paramètres d\'affichage"</string>
<string name="mode_display_options_section" msgid="5151597748243866532">"Options d\'affichage"</string>
<string name="mode_grayscale_title" msgid="6027553257331235461">"Nuances de gris"</string>
@@ -3659,9 +3643,9 @@
<string name="notif_listener_not_migrated" msgid="6265206376374278226">"Cette appli n\'est pas compatible avec les paramètres avancés"</string>
<string name="notif_listener_more_settings" msgid="1348409392307208921">"Autres paramètres"</string>
<string name="notif_listener_more_settings_desc" msgid="7995492074281663658">"D\'autres paramètres sont disponibles dans l\'appli"</string>
- <string name="notification_polite_title" msgid="4737150709382859870">"Notifications intelligentes"</string>
- <string name="notification_polite_main_control_title" msgid="7267191551379543859">"Utiliser les notifications intelligentes"</string>
- <string name="notification_polite_description" msgid="7749280535620291610">"Si vous recevez de nombreuses notifications en peu de temps, votre téléphone baisse le volume et minimise les pop-ups à l\'écran pendant deux minutes maximum. Les appels, les alarmes et les conversations prioritaires continuent de vibrer, d\'émettre un son ou de s\'afficher à l\'écran. Retrouvez facilement toutes les notifications en faisant glisser le volet des notifications vers le bas."</string>
+ <string name="notification_polite_title" msgid="6121016426991791557">"Limitation des notifications"</string>
+ <string name="notification_polite_main_control_title" msgid="5812529809151927149">"Utiliser la limitation des notifications"</string>
+ <string name="notification_polite_description" msgid="5497748284893832854">"Si vous recevez de nombreuses notifications en peu de temps, votre appareil baisse le volume et minimise les alertes pendant 2 minutes maximum. Les appels, les alarmes et les conversations prioritaires ne sont pas affectés. \n\nLes notifications reçues pendant la limitation sont accessibles en faisant glisser votre doigt du haut de l\'écran vers le bas."</string>
<string name="notification_polite_work" msgid="8823596456640216391">"Appliquer aux profils professionnels"</string>
<string name="notification_polite_work_summary" msgid="5014189280132951378">"Appliquer aux applis du profil professionnel"</string>
<string name="vr_listeners_title" msgid="4960357292472540964">"Services d\'assistance RV"</string>
@@ -3818,7 +3802,9 @@
<string name="zen_mode_apps_priority_apps" msgid="7386196048313716076">"Applis sélectionnées"</string>
<string name="zen_mode_apps_none_apps" msgid="2493642312793604327">"Aucune"</string>
<string name="zen_mode_apps_subtext" msgid="1764211974662012877">"{count,plural,offset:2 =0{Aucune application ne peut interrompre le mode Ne pas déranger}=1{{app_1} peut interrompre le mode Ne pas déranger}=2{{app_1} et {app_2} peuvent interrompre le mode Ne pas déranger}=3{{app_1}, {app_2} et {app_3} peuvent interrompre le mode Ne pas déranger}one{{app_1}, {app_2} et # autre appli peuvent interrompre le mode Ne pas déranger}other{{app_1}, {app_2} et # autres applis peuvent interrompre le mode Ne pas déranger}}"</string>
+ <string name="zen_mode_apps_work_app" msgid="8528767938316361588">"<xliff:g id="APP_LABEL">%s</xliff:g> (professionnel)"</string>
<string name="zen_mode_apps_calculating" msgid="5420121396943539286">"Calcul en cours"</string>
+ <string name="zen_mode_plus_n_items" msgid="6136713354369243421">"+ <xliff:g id="NUMBER">%d</xliff:g>"</string>
<string name="zen_mode_bypassing_apps" msgid="625309443389126481">"Autoriser des applications à ignorer ce mode"</string>
<string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"Applis qui peuvent interrompre"</string>
<string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"Sélectionnez plus d\'applications"</string>
@@ -3836,6 +3822,7 @@
<string name="zen_mode_sounds_none" msgid="6557474361948269420">"Rien ne peut l\'interrompre"</string>
<string name="zen_mode_people_none" msgid="4613147461974255046">"Personne ne peut interrompre le mode Ne pas déranger"</string>
<string name="zen_mode_people_some" msgid="9101872681298810281">"Certaines personnes peuvent l\'interrompre"</string>
+ <string name="zen_mode_people_repeat_callers" msgid="4499084111069828761">"Les appelants récurrents peuvent interrompre"</string>
<string name="zen_mode_people_all" msgid="311036110283015205">"Toutes les personnes peuvent interrompre le mode Ne pas déranger"</string>
<string name="zen_mode_repeat_callers" msgid="2270356100287792138">"Appels répétés"</string>
<string name="zen_mode_repeat_callers_title" msgid="8016699240338264781">"Autoriser les appels répétés"</string>
@@ -3855,13 +3842,37 @@
<string name="zen_mode_summary_alarms_only_by_hour" msgid="7400910210950788163">"{count,plural, =1{Ne recevoir que les alarmes pendant 1 heure jusqu\'à {time}}one{Ne recevoir que les alarmes pendant # heure jusqu\'à {time}}other{Ne recevoir que les alarmes pendant # heures jusqu\'à {time}}}"</string>
<string name="zen_mode_summary_alarms_only_by_time" msgid="8140619669703968810">"Ne recevoir que les alarmes jusqu\'à <xliff:g id="FORMATTEDTIME">%1$s</xliff:g>"</string>
<string name="zen_mode_summary_always" msgid="722093064250082317">"Toujours interrompre"</string>
- <!-- no translation found for zen_mode_rename_title (8146882272966214558) -->
+ <string name="zen_mode_rename_title" msgid="8146882272966214558">"Modifier le mode"</string>
+ <string name="zen_mode_new_custom_title" msgid="321750898430776191">"Ajouter un mode"</string>
+ <string name="zen_mode_new_custom_default_name" msgid="2778307946775085105">"Mode personnalisé"</string>
+ <string name="zen_mode_edit_name_hint" msgid="4584652062167540536">"Nom du mode"</string>
+ <string name="zen_mode_trigger_title_schedule_calendar" msgid="9206609438617550331">"Événements d\'agenda"</string>
+ <string name="zen_mode_trigger_title_bedtime" msgid="5086070900588489978">"Horaires de sommeil"</string>
+ <string name="zen_mode_trigger_title_driving" msgid="7890990983453164403">"En conduisant"</string>
+ <string name="zen_mode_trigger_title_generic" msgid="601273385119550420">"Associé à l\'appli"</string>
+ <string name="zen_mode_trigger_summary_settings_in_app" msgid="4860667191183702601">"Informations et paramètres dans <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+ <string name="zen_mode_trigger_summary_managed_by_app" msgid="8631011868193102098">"Géré par <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+ <string name="zen_mode_confirm_disable_title" msgid="1232297660775719796">"Désactiver ce mode"</string>
+ <string name="zen_mode_confirm_disable_message" msgid="7315541221665718491">"Si vous désactivez cette fonctionnalité, le mode ne fonctionnera plus comme prévu et ses paramètres seront masqués."</string>
+ <string name="zen_mode_action_disable" msgid="3552921561331044881">"Désactiver"</string>
+ <string name="zen_mode_confirm_enable_title" msgid="5683371335847448595">"Activer ce mode"</string>
+ <string name="zen_mode_confirm_enable_message" msgid="7017879133260011419">"Si vous activez cette fonctionnalité, le mode s\'activera automatiquement en fonction de sa programmation."</string>
+ <string name="zen_mode_action_enable" msgid="1161480633223176531">"Activer"</string>
+ <!-- no translation found for zen_mode_blurb_schedule_time (8223898702097484009) -->
<skip />
- <!-- no translation found for zen_mode_new_custom_title (321750898430776191) -->
+ <!-- no translation found for zen_mode_blurb_schedule_calendar (382177907856065945) -->
<skip />
- <!-- no translation found for zen_mode_new_custom_default_name (2778307946775085105) -->
+ <!-- no translation found for zen_mode_blurb_bedtime (6155075956151013457) -->
<skip />
- <!-- no translation found for zen_mode_edit_name_hint (4584652062167540536) -->
+ <!-- no translation found for zen_mode_blurb_driving (1316054379000667305) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_immersive (5884004861848687869) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_theater (2999237960059524225) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_managed (5473921634985032149) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_generic (3041601339807075625) -->
<skip />
<string name="warning_button_text" msgid="1274234338874005639">"Avertissement"</string>
<string name="suggestion_button_close" msgid="6865170855573283759">"Fermer"</string>
@@ -4849,9 +4860,8 @@
<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="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>
+ <!-- no translation found for enable_desktop_mode_on_secondary_display (2609567824593768780) -->
+ <skip />
<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>
@@ -5026,7 +5036,6 @@
<string name="default_active_sim_mobile_data" msgid="6798083892814045301">"données mobiles"</string>
<string name="wifi_scan_notify_message" msgid="1331238142061476869">"Pour améliorer l\'expérience sur l\'appareil, les applis et services peuvent continuer de rechercher les réseaux Wi-Fi, même quand le Wi-Fi est désactivé. Cela peut servir, par exemple, à améliorer les fonctionnalités et services basés sur la localisation. Vous pouvez modifier cela dans les paramètres de recherche Wi-Fi."</string>
<string name="wifi_scan_change" msgid="8438320311511852918">"Modifier"</string>
- <string name="preference_summary_default_combination" msgid="4643585915107796253">"<xliff:g id="STATE">%1$s</xliff:g>/<xliff:g id="NETWORKMODE">%2$s</xliff:g>"</string>
<string name="mobile_data_connection_active" msgid="2422223108911581552">"Connecté"</string>
<string name="mobile_data_temp_connection_active" msgid="3430470299756236413">"Connexion temporaire"</string>
<string name="mobile_data_temp_using" msgid="5211002380149434155">"Utilisation temporaire de <xliff:g id="SUBNAME">%1$s</xliff:g>"</string>
@@ -5172,9 +5181,11 @@
<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="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_enable_freeform_support" msgid="3697462756493543645">"Un redémarrage est nécessaire pour activer la prise en charge des fenêtres de forme libre."</string>
+ <!-- no translation found for reboot_dialog_override_desktop_mode (7480950772574354130) -->
+ <skip />
+ <!-- no translation found for reboot_dialog_enable_desktop_mode_on_secondary_display (1153621881052401924) -->
+ <skip />
<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>
@@ -5292,8 +5303,10 @@
<string name="show_captions_enabled" msgid="7089043007924626">"Activé"</string>
<string name="live_caption_disabled" msgid="3562035026547887366">"Désactivés"</string>
<string name="live_caption_enabled" msgid="5269360946200718949">"Activés"</string>
+ <!-- String.format failed for translation -->
<!-- no translation found for audio_seek_bar_state_left_first (8814986910920838972) -->
<skip />
+ <!-- String.format failed for translation -->
<!-- no translation found for audio_seek_bar_state_right_first (1999368979633398876) -->
<skip />
<string name="about_phone_device_name_warning" msgid="3243226572404472381">"Les applis que vous avez installées ont accès au nom de votre appareil. D\'autres personnes peuvent aussi le voir lorsque vous vous connectez à des appareils Bluetooth ou à un réseau Wi-Fi, ou lorsque vous configurez un point d\'accès Wi-Fi."</string>
@@ -5407,5 +5420,6 @@
<string name="audio_streams_main_page_password_dialog_join_button" msgid="2967747276379153408">"Écouter le flux"</string>
<string name="audio_streams_main_page_qr_code_scanner_summary" msgid="5312980105735143360">"Scanner le code QR d\'un flux audio pour l\'écouter avec <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
<string name="audio_streams_main_page_password_dialog_cannot_edit" msgid="9020898619297520153">"Impossible de modifier le mot de passe lors du partage. Pour modifier le mot de passe, il faut d\'abord désactiver le partage audio."</string>
- <string name="homepage_search" msgid="6759334912284663559">"Paramètres de recherche"</string>
+ <string name="audio_streams_qr_code_scanner_label" msgid="8799703301071378034">"Lecteur de code QR"</string>
+ <string name="homepage_search" msgid="6759334912284663559">"Rechercher un paramètre"</string>
</resources>
diff --git a/res/values-gl/strings.xml b/res/values-gl/strings.xml
index c4b6654..1da6a9b 100644
--- a/res/values-gl/strings.xml
+++ b/res/values-gl/strings.xml
@@ -41,6 +41,8 @@
<string name="radioInfo_data_suspended" msgid="2001254415431299603">"Suspendido"</string>
<string name="radioInfo_unknown" msgid="2892562356748600367">"Descoñecido"</string>
<string name="preview_pager_content_description" msgid="3762247188224576303">"Vista previa"</string>
+ <!-- no translation found for qr_code_content_description (1852208464419291347) -->
+ <skip />
<string name="font_size_make_smaller_desc" msgid="4978038055549590140">"Reducir"</string>
<string name="font_size_make_larger_desc" msgid="5583046033381722247">"Ampliar"</string>
<string name="stay_awake_on_fold_title" msgid="6590454679898134221">"Sempre"</string>
@@ -65,8 +67,7 @@
<string name="bluetooth_disconnect_title" msgid="4581951246357823044">"Desconectar dispositivo?"</string>
<string name="bluetooth_pairing_pref_title" msgid="3497193027590444598">"Vincular novo dispositivo"</string>
<string name="keywords_add_bt_device" msgid="4533191164203174011">"Bluetooth"</string>
- <!-- no translation found for bluetooth_screen_auto_on_title (2203993262483477532) -->
- <skip />
+ <string name="bluetooth_screen_auto_on_title" msgid="2203993262483477532">"Activar mañá automaticamente"</string>
<string name="bluetooth_pair_right_ear_button" msgid="3979894494803078852">"Vincular dereito"</string>
<string name="bluetooth_pair_left_ear_button" msgid="1019938875726073791">"Vincular esquerdo"</string>
<string name="bluetooth_pair_other_ear_dialog_title" msgid="3814943511999984012">"Vincula o outro audiófono"</string>
@@ -284,7 +285,7 @@
<string name="location_settings_summary_location_off" msgid="4797932754681162262">"Desactivada"</string>
<string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{Opción activada: # aplicación ten acceso á localización}other{Opción activada: # aplicacións teñen acceso á localización}}"</string>
<string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"Cargando…"</string>
- <string name="location_settings_footer_general" msgid="1040507068701188821">"As aplicacións con permiso para buscar dispositivos próximos poden determinar a posición relativa dos dispositivos conectados."</string>
+ <string name="location_settings_footer_general" msgid="3447585552176173502">"As aplicacións con permiso para buscar dispositivos próximos poden determinar a posición relativa dos dispositivos conectados."</string>
<string name="location_settings_footer_location_off" msgid="8568995909147566720">"O acceso á localización está desactivado para as aplicacións e os dispositivos. Con todo, é posible que a localización do dispositivo se envíe aos servizos de emerxencias cando chames a un número de emerxencias ou lle envíes unha mensaxe."</string>
<string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Máis información sobre a configuración de localización"</string>
<string name="location_settings_tooltip_text_for_chrome" msgid="5781821709250544575">"Para facer o cambio, vai á configuración de ChromeOS > Privacidade e seguranza > Controis de privacidade > Acceso á localización"</string>
@@ -616,7 +617,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>
@@ -851,36 +852,20 @@
<string name="nfc_reboot_dialog_title" msgid="2033983438635768169">"Queres reiniciar o dispositivo?"</string>
<string name="nfc_reboot_dialog_message" msgid="4929353168157966992">"O rexistro detallado de NFC só se utiliza para fins de programación. Os datos de NFC adicionais inclúense nos informes de erros, que poden conter información privada. Reinicia o dispositivo para cambiar esta opción de configuración."</string>
<string name="nfc_reboot_dialog_confirm" msgid="4769763632008584567">"Reiniciar"</string>
- <!-- no translation found for keywords_external_display (4181375057920134909) -->
- <skip />
- <!-- no translation found for external_display_on (2560104443500154333) -->
- <skip />
- <!-- no translation found for external_display_off (5634413756025351374) -->
- <skip />
- <!-- no translation found for external_display_settings_title (6256884595821605779) -->
- <skip />
- <!-- no translation found for external_display_use_title (8198257340836261386) -->
- <skip />
- <!-- no translation found for external_display_resolution_settings_title (2446784716488289268) -->
- <skip />
- <!-- no translation found for external_display_not_found (1912355133386555798) -->
- <skip />
- <!-- no translation found for external_display_rotation (7160062306817490204) -->
- <skip />
- <!-- no translation found for external_display_standard_rotation (545969032327487219) -->
- <skip />
- <!-- no translation found for external_display_rotation_90 (7371530414227542947) -->
- <skip />
- <!-- no translation found for external_display_rotation_180 (6469137724447819841) -->
- <skip />
- <!-- no translation found for external_display_rotation_270 (7819322302457740514) -->
- <skip />
- <!-- no translation found for external_display_change_resolution_footer_title (9024291681663573443) -->
- <skip />
- <!-- no translation found for external_display_not_found_footer_title (8882902921634316363) -->
- <skip />
- <!-- no translation found for external_display_more_options_title (1222751990705118774) -->
- <skip />
+ <string name="external_display_on" msgid="2560104443500154333">"Activada"</string>
+ <string name="external_display_off" msgid="5634413756025351374">"Desactivada"</string>
+ <string name="external_display_settings_title" msgid="6256884595821605779">"Pantalla externa"</string>
+ <string name="external_display_use_title" msgid="8198257340836261386">"Usar pantalla externa"</string>
+ <string name="external_display_resolution_settings_title" msgid="2446784716488289268">"Resolución da pantalla"</string>
+ <string name="external_display_not_found" msgid="1912355133386555798">"A pantalla externa está desconectada"</string>
+ <string name="external_display_rotation" msgid="7160062306817490204">"Ángulo"</string>
+ <string name="external_display_standard_rotation" msgid="545969032327487219">"Estándar"</string>
+ <string name="external_display_rotation_90" msgid="7371530414227542947">"90°"</string>
+ <string name="external_display_rotation_180" msgid="6469137724447819841">"180°"</string>
+ <string name="external_display_rotation_270" msgid="7819322302457740514">"270°"</string>
+ <string name="external_display_change_resolution_footer_title" msgid="9024291681663573443">"O cambio de ángulo ou resolución pode deter as aplicacións que se estean executando"</string>
+ <string name="external_display_not_found_footer_title" msgid="8882902921634316363">"O dispositivo ten que estar conectado a unha pantalla externa para que se proxecte a túa"</string>
+ <string name="external_display_more_options_title" msgid="1222751990705118774">"Máis opcións"</string>
<string name="wifi_display_settings_title" msgid="6451625615274960175">"Emitir"</string>
<string name="keywords_wifi_display_settings" msgid="5753883229564422679">"proxección"</string>
<string name="wifi_display_enable_menu_item" msgid="7391841780777318134">"Activar visualización sen fíos"</string>
@@ -1934,6 +1919,8 @@
<string name="slow_keys_summary" msgid="1784371292745423292">"Axusta o tempo que tarda a activación dunha tecla premida a <xliff:g id="SLOW_KEYS_THRESHOLD">%1$d</xliff:g> ms"</string>
<string name="sticky_keys" msgid="7317317044898161747">"Teclas presas"</string>
<string name="sticky_keys_summary" msgid="1844953803625480623">"Preme unha tecla de cada vez para os atallos, en lugar de manter premidas varias"</string>
+ <string name="mouse_keys" msgid="6237254627808525540">"Teclas para o rato"</string>
+ <string name="mouse_keys_summary" msgid="2396247040177734245">"Usa o teclado físico para controlar o rato."</string>
<string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"Atallos de teclado"</string>
<string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"Mostra a lista de atallos"</string>
<string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"Teclados e ferramentas do perfil de traballo"</string>
@@ -1958,14 +1945,10 @@
<string name="pointer_fill_style_yellow_button" msgid="5025969961559379024">"Cambiar recheo punteiro a amarelo"</string>
<string name="pointer_fill_style_pink_button" msgid="4106218142489635673">"Cambiar recheo do punteiro a rosa"</string>
<string name="pointer_fill_style_blue_button" msgid="5594958078854032785">"Cambiar recheo do punteiro a azul"</string>
- <!-- no translation found for pointer_stroke_style (1886986630216050665) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_white (673686194443825383) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_black (4655806167067437330) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_none (8953927511729800247) -->
- <skip />
+ <string name="pointer_stroke_style" msgid="1886986630216050665">"Estilo do trazo de punteiro"</string>
+ <string name="pointer_stroke_style_name_white" msgid="673686194443825383">"Branco"</string>
+ <string name="pointer_stroke_style_name_black" msgid="4655806167067437330">"Negro"</string>
+ <string name="pointer_stroke_style_name_none" msgid="8953927511729800247">"Ningún"</string>
<string name="trackpad_touch_gesture" msgid="8641725062131922497">"Descubrir xestos no panel táctil"</string>
<string name="keywords_touchpad" msgid="8159846254066666032">"panel táctil, rato, cursor, desprazar, pasar o dedo, facer clic co botón dereito, facer clic, punteiro"</string>
<string name="keywords_trackpad_bottom_right_tap" msgid="1285062446073929305">"facer clic co botón dereito, tocar"</string>
@@ -2009,12 +1992,9 @@
<string name="user_selected_keyboard_layout_label" msgid="154742505924555156">"Selección do usuario: <xliff:g id="LAYOUT_LABEL">%s</xliff:g>"</string>
<string name="speech_category_title" msgid="5995161659186229742">"Voz"</string>
<string name="pointer_speed" msgid="7398649279282675718">"Velocidade do punteiro"</string>
- <!-- no translation found for pointer_scale (4941564570571663964) -->
- <skip />
- <!-- no translation found for pointer_scale_decrease_content_description (4479646756230008068) -->
- <skip />
- <!-- no translation found for pointer_scale_increase_content_description (1049632123702664450) -->
- <skip />
+ <string name="pointer_scale" msgid="4941564570571663964">"Tamaño do punteiro"</string>
+ <string name="pointer_scale_decrease_content_description" msgid="4479646756230008068">"Reducir o tamaño do punteiro"</string>
+ <string name="pointer_scale_increase_content_description" msgid="1049632123702664450">"Aumentar o tamaño do punteiro"</string>
<string name="game_controller_settings_category" msgid="8557472715034961918">"Mando do xogo"</string>
<string name="vibrate_input_devices" msgid="5192591087864449142">"Redirixir vibración"</string>
<string name="vibrate_input_devices_summary" msgid="8791680891376689823">"Envía vibración ao mando de xogos se está conectado"</string>
@@ -2198,8 +2178,6 @@
<string name="accessibility_shortcut_edit_dialog_summary_floating_button" msgid="6266489864614886247">"Toca o botón flotante."</string>
<string name="accessibility_shortcut_edit_dialog_title_software_by_gesture" msgid="4775049370625630546">"Xesto de accesibilidade"</string>
<string name="accessibility_shortcut_edit_dialog_summary_software" msgid="8315934725362849788">"Toca o botón Accesibilidade <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g> na parte inferior da pantalla. Para cambiar de función, mantén premido o botón Accesibilidade."</string>
- <string name="accessibility_shortcut_edit_dialog_summary_software_gesture" msgid="8292555254353761635">"Pasa 2 dedos cara arriba desde a parte inferior da pantalla.\n\nPara cambiar de función, pasa 2 dedos cara arriba e mantén premida a pantalla."</string>
- <string name="accessibility_shortcut_edit_dialog_summary_software_gesture_talkback" msgid="84483464524360845">"Pasa 3 dedos cara arriba desde a parte inferior da pantalla.\n\nPara cambiar de función, pasa 3 dedos cara arriba e mantén premida a pantalla."</string>
<string name="accessibility_shortcut_edit_dialog_summary_gesture" msgid="2081123009255579884">"{count,plural, =1{Pasa o dedo cara arriba desde a parte inferior da pantalla. Para cambiar de función, pasa o dedo cara arriba e mantén premido.}other{Pasa # dedos cara arriba desde a parte inferior da pantalla. Para cambiar de función, pasa # dedos cara arriba e mantén premido.}}"</string>
<string name="accessibility_shortcut_edit_dialog_summary_software_floating" msgid="4459254227203203324"><annotation id="link">"Máis opcións"</annotation></string>
<string name="footer_learn_more_content_description" msgid="8843798273152131341">"Máis información sobre <xliff:g id="SERVICE">%1$s</xliff:g>"</string>
@@ -2210,16 +2188,12 @@
<string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="844089763968552142">"Teclas de volume"</string>
<string name="accessibility_shortcut_hardware_keyword" msgid="2483152542320987022">"teclas de volume"</string>
<string name="accessibility_shortcut_edit_dialog_summary_hardware" msgid="2503134386397991634">"Mantén premidas as dúas teclas de volume."</string>
- <string name="accessibility_shortcut_edit_dialog_title_two_finger_double_tap" msgid="2271778556854020996">"Toca dúas veces a pantalla con dous dedos"</string>
<string name="accessibility_shortcut_edit_screen_title_two_finger_double_tap" msgid="8952595692906527694">"Tocar dúas veces con %1$d dedos"</string>
<string name="accessibility_shortcut_edit_screen_summary_two_finger_double_tap" msgid="385404127425496362">"Toca a pantalla rapidamente dúas veces con %1$d dedos."</string>
<string name="accessibility_shortcut_edit_screen_title_triple_tap" msgid="3314488747597058942">"Tocar tres veces"</string>
<string name="accessibility_shortcut_edit_screen_summary_triple_tap" msgid="4839204951599629871">"Toca a pantalla rapidamente %1$d veces. Este atallo pode reducir a velocidade do dispositivo."</string>
<string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="6271718715836961167">"Toca dúas veces con %1$d dedos"</string>
- <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"Toca a pantalla rapidamente {0,number,integer} veces con dous dedos."</string>
- <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"Tres toques na pantalla"</string>
<string name="accessibility_shortcut_triple_tap_keyword" msgid="5359347130888464334">"tres toques"</string>
- <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"Toca a pantalla {0,number,integer} veces rapidamente. Este atallo pode reducir a velocidade do dispositivo"</string>
<string name="accessibility_shortcut_edit_dialog_title_advance" msgid="4567868630655591506">"Avanzado"</string>
<string name="accessibility_screen_magnification_navbar_configuration_warning" msgid="266736851606791552">"O botón Accesibilidade está configurado en <xliff:g id="SERVICE">%1$s</xliff:g>. Para utilizar a ampliación, mantén tocado o botón Accesibilidade e, a continuación, selecciona a ampliación."</string>
<string name="accessibility_screen_magnification_gesture_navigation_warning" msgid="991017769735632046">"O xesto de accesibilidade definiuse para o servizo <xliff:g id="SERVICE">%1$s</xliff:g>. Para utilizar a ampliación, pasa dous dedos cara arriba desde a parte inferior da pantalla e mantena premida. Despois selecciona a ampliación."</string>
@@ -2388,6 +2362,7 @@
<string name="daltonizer_mode_tritanomaly_title" msgid="2278786218762602022">"Azul-amarelo"</string>
<string name="daltonizer_mode_grayscale_title" msgid="152005391387952588">"Escala de grises"</string>
<string name="daltonizer_saturation_title" msgid="2999486412114963068">"Intensidade"</string>
+ <string name="daltonizer_saturation_unavailable_summary" msgid="8319753055567798775">"Non está dispoñible para o modo de escala de grises nin cando a corrección da cor está desactivada"</string>
<string name="daltonizer_mode_deuteranomaly_summary" msgid="2117727423019598455">"Verde suave (deuteranomalía)"</string>
<string name="daltonizer_mode_protanomaly_summary" msgid="4617032854982040748">"Vermello suave (protanomalía)"</string>
<string name="daltonizer_mode_tritanomaly_summary" msgid="2428218320118180070">"Tritanomalía"</string>
@@ -2437,15 +2412,8 @@
<string name="color_cyan" msgid="4341758639597035927">"Ciano"</string>
<string name="color_yellow" msgid="5957551912912679058">"Amarelo"</string>
<string name="color_magenta" msgid="8943538189219528423">"Maxenta"</string>
- <string name="enable_service_title" msgid="7231533866953706788">"Queres permitir que <xliff:g id="SERVICE">%1$s</xliff:g> poida controlar totalmente o teu dispositivo?"</string>
<string name="capabilities_list_title" msgid="1225853611983394386">"<xliff:g id="SERVICE">%1$s</xliff:g> precisa:"</string>
<string name="touch_filtered_warning" msgid="4225815157460318241">"Posto que unha aplicación se superpón sobre una solicitude de permiso, a configuración non pode verificar a túa resposta."</string>
- <string name="accessibility_service_warning" msgid="6779187188736432618">"<xliff:g id="SERVICE">%1$s</xliff:g> solicita poder controlar totalmente este dispositivo. O servizo pode ler a pantalla e actuar en nome dos usuarios con necesidades de accesibilidade. Este nivel de control non é adecuado para a maioría das aplicacións."</string>
- <string name="accessibility_service_warning_description" msgid="6573203795976134751">"O control total é adecuado para as aplicacións que che axudan coa accesibilidade, pero non para a maioría das aplicacións."</string>
- <string name="accessibility_service_screen_control_title" msgid="324795030658109870">"Ver e controlar a pantalla"</string>
- <string name="accessibility_service_screen_control_description" msgid="8431940515157990426">"Pode ler todo o contido da pantalla e mostralo sobre outras aplicacións."</string>
- <string name="accessibility_service_action_perform_title" msgid="1449360056585337833">"Ver e realizar accións"</string>
- <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"Pode facer un seguimento das túas interaccións cunha aplicación ou cun sensor de hardware, así como interactuar por ti coas aplicacións."</string>
<string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Permitir"</string>
<string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Denegar"</string>
<string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Desactivar"</string>
@@ -3369,20 +3337,16 @@
<string name="zen_mode_settings_schedules_summary" msgid="2047688589286811617">"{count,plural, =0{Ningunha planificación}=1{Definiuse 1 planificación}other{Definíronse # planificacións}}"</string>
<string name="zen_mode_settings_title" msgid="682676757791334259">"Non molestar"</string>
<string name="zen_modes_list_title" msgid="5138745349253275428">"Modos de prioridade"</string>
- <!-- no translation found for zen_modes_add_mode (4806287336036228772) -->
- <skip />
+ <string name="zen_modes_add_mode" msgid="4806287336036228772">"Engadir un modo"</string>
<string name="zen_mode_settings_summary" msgid="6040862775514495191">"Só se reciben notificacións de aplicacións e persoas importantes"</string>
<string name="zen_mode_select_schedule" msgid="5135520719771212697">"Seleccionar tipo de activación"</string>
<string name="zen_mode_select_schedule_time" msgid="1761728920617757652">"Hora"</string>
<string name="zen_mode_select_schedule_time_example" msgid="3071816060919446355">"Por exemplo: \"9:30-17:00\""</string>
<string name="zen_mode_select_schedule_calendar" msgid="4320676795917533667">"Calendario"</string>
<string name="zen_mode_select_schedule_calendar_example" msgid="6549820995975678001">"Por exemplo: \"calendario persoal\""</string>
- <!-- no translation found for zen_mode_active_text (5002406772481439437) -->
- <skip />
- <!-- no translation found for zen_mode_disabled_needs_setup (389269759040103728) -->
- <skip />
- <!-- no translation found for zen_mode_disabled_by_user (138592173630683253) -->
- <skip />
+ <string name="zen_mode_active_text" msgid="5002406772481439437">"ACTIVADO"</string>
+ <string name="zen_mode_disabled_needs_setup" msgid="389269759040103728">"Sen configurar"</string>
+ <string name="zen_mode_disabled_by_user" msgid="138592173630683253">"Desactivado"</string>
<string name="zen_mode_new_title" msgid="4934720193004330740">"Crear un modo"</string>
<string name="zen_mode_new_option_custom" msgid="1060993879440003341">"Personalizado"</string>
<string name="zen_mode_slice_subtitle" msgid="6849372107272604160">"Limitar as interrupcións"</string>
@@ -3393,8 +3357,7 @@
<string name="zen_mode_schedule_delete" msgid="5383420576833765114">"Eliminar"</string>
<string name="zen_mode_menu_rename_mode" msgid="4681802125016390837">"Cambiar de nome"</string>
<string name="zen_mode_menu_delete_mode" msgid="5380084696402157428">"Eliminar"</string>
- <!-- no translation found for zen_mode_delete_mode_confirmation (7594340592051947392) -->
- <skip />
+ <string name="zen_mode_delete_mode_confirmation" msgid="7594340592051947392">"Queres eliminar o modo <xliff:g id="MODE">%1$s</xliff:g>?"</string>
<string name="zen_mode_rule_name_edit" msgid="1053237022416700481">"Editar"</string>
<string name="zen_mode_automation_settings_page_title" msgid="6217433860514433311">"Planificacións"</string>
<string name="zen_mode_automatic_rule_settings_page_title" msgid="5264835276518295033">"Planificación"</string>
@@ -3680,12 +3643,9 @@
<string name="notif_listener_not_migrated" msgid="6265206376374278226">"Esta aplicación non admite a configuración mellorada"</string>
<string name="notif_listener_more_settings" msgid="1348409392307208921">"Máis opcións de configuración"</string>
<string name="notif_listener_more_settings_desc" msgid="7995492074281663658">"Hai máis opcións de configuración dentro desta aplicación"</string>
- <!-- no translation found for notification_polite_title (4737150709382859870) -->
- <skip />
- <!-- no translation found for notification_polite_main_control_title (7267191551379543859) -->
- <skip />
- <!-- no translation found for notification_polite_description (7749280535620291610) -->
- <skip />
+ <string name="notification_polite_title" msgid="6121016426991791557">"Amainar notificacións"</string>
+ <string name="notification_polite_main_control_title" msgid="5812529809151927149">"Usar a función de amainar as notificacións"</string>
+ <string name="notification_polite_description" msgid="5497748284893832854">"Cando recibas moitas notificacións en pouco tempo, o teu dispositivo baixará o volume e reducirá ao mínimo o número de alertas durante ata dous minutos. As chamadas, alarmas e conversas prioritarias non se verán afectadas. \n\nPara ver as notificacións amainadas, arrastra cara abaixo a parte superior da pantalla."</string>
<string name="notification_polite_work" msgid="8823596456640216391">"Aplicar aos perfís de traballo"</string>
<string name="notification_polite_work_summary" msgid="5014189280132951378">"Usa esta opción coas aplicacións do perfil de traballo"</string>
<string name="vr_listeners_title" msgid="4960357292472540964">"Servizos do asistente de RV"</string>
@@ -3841,9 +3801,10 @@
<string name="zen_mode_apps_category" msgid="4082380323683889391">"Aplicacións que poden interromper"</string>
<string name="zen_mode_apps_priority_apps" msgid="7386196048313716076">"Aplicacións seleccionadas"</string>
<string name="zen_mode_apps_none_apps" msgid="2493642312793604327">"Ningunha"</string>
- <!-- no translation found for zen_mode_apps_subtext (1764211974662012877) -->
- <skip />
+ <string name="zen_mode_apps_subtext" msgid="1764211974662012877">"{count,plural,offset:2 =0{Ningunha aplicación pode interromper}=1{{app_1} pode interromper}=2{{app_1} e {app_2} poden interromper}=3{{app_1}, {app_2} e {app_3} poden interromper}other{{app_1}, {app_2} e # aplicacións máis poden interromper}}"</string>
+ <string name="zen_mode_apps_work_app" msgid="8528767938316361588">"<xliff:g id="APP_LABEL">%s</xliff:g> (traballo)"</string>
<string name="zen_mode_apps_calculating" msgid="5420121396943539286">"Calculando…"</string>
+ <string name="zen_mode_plus_n_items" msgid="6136713354369243421">"+<xliff:g id="NUMBER">%d</xliff:g>"</string>
<string name="zen_mode_bypassing_apps" msgid="625309443389126481">"Permitir que as aplicacións ignoren o modo Non molestar"</string>
<string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"Aplicacións que poden interromper"</string>
<string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"Selecciona máis aplicacións"</string>
@@ -3861,6 +3822,7 @@
<string name="zen_mode_sounds_none" msgid="6557474361948269420">"Nada pode interromper o modo Non molestar"</string>
<string name="zen_mode_people_none" msgid="4613147461974255046">"Ninguén pode interromper o modo Non molestar"</string>
<string name="zen_mode_people_some" msgid="9101872681298810281">"Algunhas persoas poden interromper o modo Non molestar"</string>
+ <string name="zen_mode_people_repeat_callers" msgid="4499084111069828761">"A chamadas repetidas poden interromper"</string>
<string name="zen_mode_people_all" msgid="311036110283015205">"Todas as persoas poden interromper o modo Non molestar"</string>
<string name="zen_mode_repeat_callers" msgid="2270356100287792138">"Chamadas repetidas"</string>
<string name="zen_mode_repeat_callers_title" msgid="8016699240338264781">"Permitir chamadas repetidas"</string>
@@ -3884,6 +3846,34 @@
<string name="zen_mode_new_custom_title" msgid="321750898430776191">"Engadir un modo"</string>
<string name="zen_mode_new_custom_default_name" msgid="2778307946775085105">"Modo personalizado"</string>
<string name="zen_mode_edit_name_hint" msgid="4584652062167540536">"Nome do modo"</string>
+ <string name="zen_mode_trigger_title_schedule_calendar" msgid="9206609438617550331">"Eventos do calendario"</string>
+ <string name="zen_mode_trigger_title_bedtime" msgid="5086070900588489978">"Horas de sono"</string>
+ <string name="zen_mode_trigger_title_driving" msgid="7890990983453164403">"Mentres conduces"</string>
+ <string name="zen_mode_trigger_title_generic" msgid="601273385119550420">"Vinculados á aplicación"</string>
+ <string name="zen_mode_trigger_summary_settings_in_app" msgid="4860667191183702601">"Información e configuración en <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+ <string name="zen_mode_trigger_summary_managed_by_app" msgid="8631011868193102098">"Xestión a cargo de <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+ <string name="zen_mode_confirm_disable_title" msgid="1232297660775719796">"Desactivar o modo"</string>
+ <string name="zen_mode_confirm_disable_message" msgid="7315541221665718491">"Se desactivas esta función, o modo deixará de funcionar como debe e ocultarase a súa configuración."</string>
+ <string name="zen_mode_action_disable" msgid="3552921561331044881">"Desactivar"</string>
+ <string name="zen_mode_confirm_enable_title" msgid="5683371335847448595">"Activar o modo"</string>
+ <string name="zen_mode_confirm_enable_message" msgid="7017879133260011419">"Se activas esta función, o modo iniciarase de forma automática conforme a súa programación."</string>
+ <string name="zen_mode_action_enable" msgid="1161480633223176531">"Activar"</string>
+ <!-- no translation found for zen_mode_blurb_schedule_time (8223898702097484009) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_schedule_calendar (382177907856065945) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_bedtime (6155075956151013457) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_driving (1316054379000667305) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_immersive (5884004861848687869) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_theater (2999237960059524225) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_managed (5473921634985032149) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_generic (3041601339807075625) -->
+ <skip />
<string name="warning_button_text" msgid="1274234338874005639">"Advertencia"</string>
<string name="suggestion_button_close" msgid="6865170855573283759">"Pechar"</string>
<string name="device_feedback" msgid="5351614458411688608">"Enviar comentarios do dispositivo"</string>
@@ -4870,9 +4860,8 @@
<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="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>
+ <!-- no translation found for enable_desktop_mode_on_secondary_display (2609567824593768780) -->
+ <skip />
<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>
@@ -5047,7 +5036,6 @@
<string name="default_active_sim_mobile_data" msgid="6798083892814045301">"datos móbiles"</string>
<string name="wifi_scan_notify_message" msgid="1331238142061476869">"Para mellorar a experiencia que ofrece o dispositivo, as aplicacións e os servizos poden seguir buscando redes wifi en calquera momento, aínda que esta conexión estea desactivada. Esta opción pódese utilizar, por exemplo, para mellorar as funcións e os servizos baseados na localización, e podes cambiala na configuración da función Busca de redes wifi."</string>
<string name="wifi_scan_change" msgid="8438320311511852918">"Cambiar"</string>
- <string name="preference_summary_default_combination" msgid="4643585915107796253">"<xliff:g id="STATE">%1$s</xliff:g> / <xliff:g id="NETWORKMODE">%2$s</xliff:g>"</string>
<string name="mobile_data_connection_active" msgid="2422223108911581552">"Conectada"</string>
<string name="mobile_data_temp_connection_active" msgid="3430470299756236413">"Conectada temporalmente"</string>
<string name="mobile_data_temp_using" msgid="5211002380149434155">"Usando <xliff:g id="SUBNAME">%1$s</xliff:g> temporalmente"</string>
@@ -5079,8 +5067,7 @@
<string name="app_pinning_main_switch_title" msgid="5465506660064032876">"Usar fixación de aplicación"</string>
<string name="developer_options_main_switch_title" msgid="1720074589554152501">"Usar opcións para programadores"</string>
<string name="default_print_service_main_switch_title" msgid="4697133737128324036">"Usar servizo de impresión"</string>
- <!-- no translation found for multiple_users_main_switch_title (9158796544835843201) -->
- <skip />
+ <string name="multiple_users_main_switch_title" msgid="9158796544835843201">"Permitir cambiar de usuario"</string>
<string name="multiple_users_main_switch_keywords" msgid="4845954458094134356">"permitir, varios, usuario, deixar, moitos"</string>
<string name="multiple_users_title_keywords" msgid="2395593167746225172">"múltiples, usuarios, perfís, persoas, contas, cambiar, moitos"</string>
<string name="wireless_debugging_main_switch_title" msgid="8463499572781441719">"Usar depuración sen fíos"</string>
@@ -5194,9 +5181,11 @@
<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="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_enable_freeform_support" msgid="3697462756493543645">"Cómpre reiniciar o dispositivo para activar a compatibilidade coas ventás de forma libre."</string>
+ <!-- no translation found for reboot_dialog_override_desktop_mode (7480950772574354130) -->
+ <skip />
+ <!-- no translation found for reboot_dialog_enable_desktop_mode_on_secondary_display (1153621881052401924) -->
+ <skip />
<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>
@@ -5427,6 +5416,6 @@
<string name="audio_streams_main_page_password_dialog_join_button" msgid="2967747276379153408">"Escoitar emisión"</string>
<string name="audio_streams_main_page_qr_code_scanner_summary" msgid="5312980105735143360">"Escanea o código QR dunha emisión de audio para escoitala con <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
<string name="audio_streams_main_page_password_dialog_cannot_edit" msgid="9020898619297520153">"Non se pode modificar o contrasinal mentres se comparte audio. Para facelo, primeiro desactiva o audio compartido."</string>
- <!-- no translation found for homepage_search (6759334912284663559) -->
- <skip />
+ <string name="audio_streams_qr_code_scanner_label" msgid="8799703301071378034">"Escáner de códigos QR"</string>
+ <string name="homepage_search" msgid="6759334912284663559">"Buscar en Configuración"</string>
</resources>
diff --git a/res/values-gu/strings.xml b/res/values-gu/strings.xml
index ee14fbd..2a5bab0 100644
--- a/res/values-gu/strings.xml
+++ b/res/values-gu/strings.xml
@@ -41,6 +41,8 @@
<string name="radioInfo_data_suspended" msgid="2001254415431299603">"સસ્પેન્ડેડ"</string>
<string name="radioInfo_unknown" msgid="2892562356748600367">"અજાણી"</string>
<string name="preview_pager_content_description" msgid="3762247188224576303">"પ્રીવ્યૂ"</string>
+ <!-- no translation found for qr_code_content_description (1852208464419291347) -->
+ <skip />
<string name="font_size_make_smaller_desc" msgid="4978038055549590140">"વધુ નાનું બનાવો"</string>
<string name="font_size_make_larger_desc" msgid="5583046033381722247">"વધુ મોટું બનાવો"</string>
<string name="stay_awake_on_fold_title" msgid="6590454679898134221">"હંમેશાં"</string>
@@ -283,7 +285,7 @@
<string name="location_settings_summary_location_off" msgid="4797932754681162262">"બંધ છે"</string>
<string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{ચાલુ છે / # ઍપ લોકેશનનો ઍક્સેસ ધરાવે છે}one{ચાલુ છે / # ઍપ લોકેશનનો ઍક્સેસ ધરાવે છે}other{ચાલુ છે / # ઍપ લોકેશનનો ઍક્સેસ ધરાવે છે}}"</string>
<string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"લોડ કરી રહ્યું છે…"</string>
- <string name="location_settings_footer_general" msgid="1040507068701188821">"નજીકના ડિવાઇસ જોવાની પરવાનગી ધરાવતી ઍપ, કનેક્ટ કરેલા ડિવાઇસના સ્થાનની માહિતી મેળવી શકે છે."</string>
+ <string name="location_settings_footer_general" msgid="3447585552176173502">"નજીકના ડિવાઇસ જોવાની પરવાનગી ધરાવતી બધી ઍપ, કનેક્ટ કરેલા ડિવાઇસના લોકેશન નિર્ધારિત કરી શકે છે."</string>
<string name="location_settings_footer_location_off" msgid="8568995909147566720">"ઍપ અને સેવાઓને આપવામાં આવેલો લોકેશનની માહિતીનો ઍક્સેસ બંધ છે. આમ છતાં જ્યારે તમે કૉલ કે ટેક્સ્ટ મારફતે ઇમર્જન્સી નંબરનો સંપર્ક કરશો, ત્યારે ઇમર્જન્સીમાં પ્રતિસાદ આપનારાઓને તમારા ડિવાઇસના લોકેશનની માહિતી મોકલવામાં આવી શકે છે."</string>
<string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"લોકેશન સેટિંગ વિશે વધુ જાણો"</string>
<string name="location_settings_tooltip_text_for_chrome" msgid="5781821709250544575">"ફેરફાર કરવા માટે, ChromeOS સેટિંગ > પ્રાઇવસી અને સુરક્ષા > પ્રાઇવસીને લગતા નિયંત્રણો > લોકેશન ઍક્સેસ પર જાઓ"</string>
@@ -850,7 +852,6 @@
<string name="nfc_reboot_dialog_title" msgid="2033983438635768169">"શું ડિવાઇસને ફરી શરૂ કરીએ?"</string>
<string name="nfc_reboot_dialog_message" msgid="4929353168157966992">"NFCનું વિગતવાર લૉગ ઇન માત્ર ડેવલપમેન્ટના હેતુઓ માટે છે. બગ રિપોર્ટમાં વધારાનો NFC ડેટા શામેલ છે, જેમાં ખાનગી માહિતી હોઈ શકે છે. આ સેટિંગમાં ફેરફાર કરવા માટે, તમારા ડિવાઇસને ફરી શરૂ કરો."</string>
<string name="nfc_reboot_dialog_confirm" msgid="4769763632008584567">"ફરી શરૂ કરો"</string>
- <string name="keywords_external_display" msgid="4181375057920134909">"મિરર, બાહ્ય ડિસ્પ્લે, કનેક્ટેડ ડિસ્પ્લે, USB ડિસ્પ્લે, રિઝોલ્યુશન, રોટેશન"</string>
<string name="external_display_on" msgid="2560104443500154333">"ચાલુ"</string>
<string name="external_display_off" msgid="5634413756025351374">"બંધ"</string>
<string name="external_display_settings_title" msgid="6256884595821605779">"બાહ્ય ડિસ્પ્લે"</string>
@@ -1918,6 +1919,8 @@
<string name="slow_keys_summary" msgid="1784371292745423292">"<xliff:g id="SLOW_KEYS_THRESHOLD">%1$d</xliff:g> ms સુધીમાં સક્રિય થવા માટે, કોઈ કીને દબાવવામાં લાગતા સમયની ગોઠવણી કરે છે"</string>
<string name="sticky_keys" msgid="7317317044898161747">"સ્ટીકી કી"</string>
<string name="sticky_keys_summary" msgid="1844953803625480623">"શૉર્ટકટ માટે કીને એકસાથે દબાવી રાખવાને બદલે એક સમયે એક જ કી દબાવો"</string>
+ <string name="mouse_keys" msgid="6237254627808525540">"માઉસની કી"</string>
+ <string name="mouse_keys_summary" msgid="2396247040177734245">"માઉસને નિયંત્રિત કરવા માટે, વાસ્તવિક કીબોર્ડનો ઉપયોગ કરો."</string>
<string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"કીબોર્ડ શૉર્ટકટ"</string>
<string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"શૉર્ટકટની સૂચિ બતાવો"</string>
<string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"કાર્યાલયનું પ્રોફાઇલ અને સાધનો"</string>
@@ -2175,8 +2178,6 @@
<string name="accessibility_shortcut_edit_dialog_summary_floating_button" msgid="6266489864614886247">"ફ્લોટિંગ બટન પર ટૅપ કરો"</string>
<string name="accessibility_shortcut_edit_dialog_title_software_by_gesture" msgid="4775049370625630546">"ઍક્સેસિબિલિટીનો સંકેત"</string>
<string name="accessibility_shortcut_edit_dialog_summary_software" msgid="8315934725362849788">"તમારી સ્ક્રીનની સૌથી નીચેની બાજુ આવેલા ઍક્સેસિબિલિટી બટન <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g> પર ટૅપ કરો. કોઈ એક સુવિધાથી બીજી સુવિધા પર સ્વિચ કરવા માટે, ઍક્સેસિબિલિટી બટનને ટચ કરીને થોડીવાર દબાવી રાખો."</string>
- <string name="accessibility_shortcut_edit_dialog_summary_software_gesture" msgid="8292555254353761635">"2 આંગળી વડે સ્ક્રીનની નીચેના ભાગથી ઉપરની તરફ સ્વાઇપ કરો.\n\nકોઈ એક સુવિધાથી બીજી સુવિધા પર સ્વિચ કરવા માટે, 2 આંગળી વડે ઉપરની તરફ સ્વાઇપ કરીને દબાવી રાખો."</string>
- <string name="accessibility_shortcut_edit_dialog_summary_software_gesture_talkback" msgid="84483464524360845">"3 આંગળી વડે સ્ક્રીનની નીચેના ભાગથી ઉપરની તરફ સ્વાઇપ કરો.\n\nકોઈ એક સુવિધાથી બીજી સુવિધા પર સ્વિચ કરવા માટે, 3 આંગળી વડે ઉપરની તરફ સ્વાઇપ કરીને દબાવી રાખો."</string>
<string name="accessibility_shortcut_edit_dialog_summary_gesture" msgid="2081123009255579884">"{count,plural, =1{તમારી સ્ક્રીનની સૌથી નીચેથી ઉપરની તરફ સ્વાઇપ કરો. કોઈ એક સુવિધાથી બીજી સુવિધા પર સ્વિચ કરવા માટે, સ્ક્રીનની ઉપરની તરફ સ્વાઇપ કરીને દબાવી રાખો.}one{તમારી સ્ક્રીનની સૌથી નીચેથી ઉપરની તરફ # આંગળી વડે સ્વાઇપ કરો. કોઈ એક સુવિધાથી બીજી સુવિધા પર સ્વિચ કરવા માટે, # આંગળી વડે સ્ક્રીનની ઉપરની તરફ સ્વાઇપ કરીને દબાવી રાખો.}other{તમારી સ્ક્રીનની સૌથી નીચેથી ઉપરની તરફ # આંગળી વડે સ્વાઇપ કરો. કોઈ એક સુવિધાથી બીજી સુવિધા પર સ્વિચ કરવા માટે, # આંગળી વડે સ્ક્રીનની ઉપરની તરફ સ્વાઇપ કરીને દબાવી રાખો.}}"</string>
<string name="accessibility_shortcut_edit_dialog_summary_software_floating" msgid="4459254227203203324"><annotation id="link">"વધુ વિકલ્પો"</annotation></string>
<string name="footer_learn_more_content_description" msgid="8843798273152131341">"<xliff:g id="SERVICE">%1$s</xliff:g> વિશે વધુ જાણો"</string>
@@ -2187,16 +2188,12 @@
<string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="844089763968552142">"વૉલ્યૂમ કી"</string>
<string name="accessibility_shortcut_hardware_keyword" msgid="2483152542320987022">"વૉલ્યૂમ કી"</string>
<string name="accessibility_shortcut_edit_dialog_summary_hardware" msgid="2503134386397991634">"વૉલ્યૂમની બન્ને કીને દબાવી રાખો"</string>
- <string name="accessibility_shortcut_edit_dialog_title_two_finger_double_tap" msgid="2271778556854020996">"સ્ક્રીન પર બે આંગળી વડે બે વાર ટૅપ કરો"</string>
<string name="accessibility_shortcut_edit_screen_title_two_finger_double_tap" msgid="8952595692906527694">"%1$d આંગળી વડે બે વાર ટૅપ કરો"</string>
<string name="accessibility_shortcut_edit_screen_summary_two_finger_double_tap" msgid="385404127425496362">"સ્ક્રીન પર %1$d આંગળી વડે ઝડપથી બે વાર ટૅપ કરો"</string>
<string name="accessibility_shortcut_edit_screen_title_triple_tap" msgid="3314488747597058942">"ત્રણ વાર ટૅપ કરો"</string>
<string name="accessibility_shortcut_edit_screen_summary_triple_tap" msgid="4839204951599629871">"સ્ક્રીન પર ઝડપથી %1$d વાર ટૅપ કરો. આમ કરવાથી તમારું ડિવાઇસ ધીમું થઈ શકે છે."</string>
<string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="6271718715836961167">"%1$d આંગળી વડે બે વાર ટૅપ કરો"</string>
- <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"સ્ક્રીન પર ઝડપથી બે આંગળી વડે {0,number,integer} વાર ટૅપ કરો"</string>
- <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"સ્ક્રીનને ત્રણ વાર ટૅપ કરો"</string>
<string name="accessibility_shortcut_triple_tap_keyword" msgid="5359347130888464334">"ત્રણ વાર ટૅપ કરો"</string>
- <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"ઝડપથી સ્ક્રીન પર {0,number,integer} વાર ટૅપ કરો. આ શૉર્ટકટ તમારા ડિવાઇસને ધીમું કરી શકે છે"</string>
<string name="accessibility_shortcut_edit_dialog_title_advance" msgid="4567868630655591506">"વિગતવાર"</string>
<string name="accessibility_screen_magnification_navbar_configuration_warning" msgid="266736851606791552">"ઍક્સેસિબિલિટી બટનને <xliff:g id="SERVICE">%1$s</xliff:g> પર સેટ કરેલું છે. વિસ્તૃતીકરણનો ઉપયોગ કરવા માટે, ઍક્સેસિબિલિટી બટનને દબાવી રાખો, પછી વિસ્તૃતીકરણ પસંદ કરો."</string>
<string name="accessibility_screen_magnification_gesture_navigation_warning" msgid="991017769735632046">"ઍક્સેસિબિલિટી સંકેત <xliff:g id="SERVICE">%1$s</xliff:g>.પર સેટ કરવામાં આવ્યો છે. વિસ્તૃતીકરણનો ઉપયોગ કરવા માટે, સ્ક્રીનના નીચેના ભાગથી બે આંગળી વડે ઉપર સ્વાઇપ કરો અને હોલ્ડ કરી રાખો. ત્યાર બાદ વિસ્તૃતીકરણ પસંદ કરો."</string>
@@ -2365,6 +2362,7 @@
<string name="daltonizer_mode_tritanomaly_title" msgid="2278786218762602022">"વાદળી-પીળો"</string>
<string name="daltonizer_mode_grayscale_title" msgid="152005391387952588">"ગ્રેસ્કેલ"</string>
<string name="daltonizer_saturation_title" msgid="2999486412114963068">"તીવ્રતા"</string>
+ <string name="daltonizer_saturation_unavailable_summary" msgid="8319753055567798775">"ગ્રેસ્કેલ મોડ માટે અથવા જ્યારે રંગ સુધારણા બંધ કરેલી હોય ત્યારે ઉપલબ્ધ નથી"</string>
<string name="daltonizer_mode_deuteranomaly_summary" msgid="2117727423019598455">"લીલો રંગ ન દેખાવાની સમસ્યા, ડ્યૂટેરેનોમલી"</string>
<string name="daltonizer_mode_protanomaly_summary" msgid="4617032854982040748">"લાલ રંગ ન દેખાવાની સમસ્યા, પ્રોટેનોમલી"</string>
<string name="daltonizer_mode_tritanomaly_summary" msgid="2428218320118180070">"ટ્રાઇટેનોમલી"</string>
@@ -2414,15 +2412,8 @@
<string name="color_cyan" msgid="4341758639597035927">"વાદળી"</string>
<string name="color_yellow" msgid="5957551912912679058">"પીળો"</string>
<string name="color_magenta" msgid="8943538189219528423">"મજેન્ટા"</string>
- <string name="enable_service_title" msgid="7231533866953706788">"શું <xliff:g id="SERVICE">%1$s</xliff:g>ને તમારા ડિવાઇસના સંપૂર્ણ નિયંત્રણની મંજૂરી આપીએ?"</string>
<string name="capabilities_list_title" msgid="1225853611983394386">"<xliff:g id="SERVICE">%1$s</xliff:g>ને આની જરૂર છે:"</string>
<string name="touch_filtered_warning" msgid="4225815157460318241">"એક ઍપ પરવાનગી વિનંતીને અસ્પષ્ટ કરતી હોવાને કારણે, સેટિંગ તમારા પ્રતિસાદને ચકાસી શકતી નથી."</string>
- <string name="accessibility_service_warning" msgid="6779187188736432618">"<xliff:g id="SERVICE">%1$s</xliff:g> આ ડિવાઇસના સંપૂર્ણ નિયંત્રણ માટે વિનંતી કરે છે. સેવા ઍક્સેસિબિલિટીની જરૂર હોય તેવા વપરાશકર્તા વતી સ્ક્રીન વાંચીને કાર્ય કરી શકે છે. મોટાભાગની ઍપ માટે આ લેવલનું નિયંત્રણ યોગ્ય નથી."</string>
- <string name="accessibility_service_warning_description" msgid="6573203795976134751">"ઍક્સેસિબિલિટી સંબંધિત આવશ્યકતા માટે સહાય કરતી ઍપ માટે સંપૂર્ણ નિયંત્રણ યોગ્ય છે, પણ મોટા ભાગની ઍપ માટે યોગ્ય નથી."</string>
- <string name="accessibility_service_screen_control_title" msgid="324795030658109870">"જોવા અને નિયંત્રણ માટેની સ્ક્રીન"</string>
- <string name="accessibility_service_screen_control_description" msgid="8431940515157990426">"તે સ્ક્રીન પરનું બધું કન્ટેન્ટ વાંચી શકે છે અને કન્ટેન્ટને અન્ય ઍપ પર બતાવી શકે છે."</string>
- <string name="accessibility_service_action_perform_title" msgid="1449360056585337833">"ક્રિયાઓ જુઓ અને કરો"</string>
- <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"તે ઍપ અથવા હાર્ડવેર સેન્સર વડે તમારી ક્રિયાપ્રતિક્રિયાને ટ્રૅક કરી શકે છે અને તમારા વતી ઍપ સાથે ક્રિયાપ્રતિક્રિયા કરી શકે છે."</string>
<string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"મંજૂરી આપો"</string>
<string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"નકારો"</string>
<string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"બંધ કરો"</string>
@@ -3364,10 +3355,8 @@
<string name="zen_mode_automation_settings_title" msgid="3709324184191870926">"શેડ્યૂલ"</string>
<string name="zen_mode_delete_automatic_rules" msgid="5020468289267191765">"શેડ્યૂલ ડિલીટ કરો"</string>
<string name="zen_mode_schedule_delete" msgid="5383420576833765114">"ડિલીટ કરો"</string>
- <!-- no translation found for zen_mode_menu_rename_mode (4681802125016390837) -->
- <skip />
- <!-- no translation found for zen_mode_menu_delete_mode (5380084696402157428) -->
- <skip />
+ <string name="zen_mode_menu_rename_mode" msgid="4681802125016390837">"નામ બદલો"</string>
+ <string name="zen_mode_menu_delete_mode" msgid="5380084696402157428">"ડિલીટ કરો"</string>
<string name="zen_mode_delete_mode_confirmation" msgid="7594340592051947392">"\"<xliff:g id="MODE">%1$s</xliff:g>\" મોડ ડિલીટ કરીએ?"</string>
<string name="zen_mode_rule_name_edit" msgid="1053237022416700481">"ફેરફાર કરો"</string>
<string name="zen_mode_automation_settings_page_title" msgid="6217433860514433311">"શેડ્યૂલ"</string>
@@ -3391,8 +3380,7 @@
<string name="zen_mode_visual_signals_settings_subtitle" msgid="7433077540895876672">"વિઝ્યુઅલ સંકેતોને મંજૂરી આપો"</string>
<string name="mode_interruption_filter_title" msgid="3343846700214702347">"એકાગ્રચિત્ત રહો"</string>
<string name="mode_device_effects_title" msgid="5857008332618433744">"અતિરિક્ત ક્રિયાઓ"</string>
- <!-- no translation found for modes_sound_summary_off (6972648204528227879) -->
- <skip />
+ <string name="modes_sound_summary_off" msgid="6972648204528227879">"{count,plural, =0{બંધ}=1{બંધ / 1 મોડ ઑટોમૅટિક રીતે ચાલુ થઈ શકે છે}one{બંધ / # મોડ ઑટોમૅટિક રીતે ચાલુ થઈ શકે છે}other{બંધ / # મોડ ઑટોમૅટિક રીતે ચાલુ થઈ શકે છે}}"</string>
<string name="mode_display_settings_title" msgid="8132825978346535472">"ડિસ્પ્લે સેટિંગ"</string>
<string name="mode_display_options_section" msgid="5151597748243866532">"ડિસ્પ્લેનાં વિકલ્પો"</string>
<string name="mode_grayscale_title" msgid="6027553257331235461">"ગ્રેસ્કેલ"</string>
@@ -3655,9 +3643,9 @@
<string name="notif_listener_not_migrated" msgid="6265206376374278226">"આ ઍપ વધારાના સેટિંગને સપોર્ટ કરતી નથી"</string>
<string name="notif_listener_more_settings" msgid="1348409392307208921">"વધુ સેટિંગ"</string>
<string name="notif_listener_more_settings_desc" msgid="7995492074281663658">"આ ઍપમાં વધુ સેટિંગ ઉપલબ્ધ છે"</string>
- <string name="notification_polite_title" msgid="4737150709382859870">"અડૅપ્ટિવ નોટિફિકેશન"</string>
- <string name="notification_polite_main_control_title" msgid="7267191551379543859">"અડૅપ્ટિવ નોટિફિકેશનનો ઉપયોગ કરો"</string>
- <string name="notification_polite_description" msgid="7749280535620291610">"જ્યારે ટૂંકા સમયગાળામાં તમને ઘણા નોટિફિકેશન મળે, ત્યારે તમારો ફોન વૉલ્યૂમ ઘટાડશે અને બે મિનિટ સુધી સ્ક્રીન પરના પૉપ-અપને ઓછા કરશે. કૉલ, અલાર્મ અને પ્રાધાન્યતા ધરાવતી વાતચીતોને કારણે હજી પણ ફોન વાઇબ્રેટ થશે, વગાડશે અથવા સ્ક્રીન પર બતાવશે અને જ્યારે તમે સ્ક્રીનની સૌથી ઉપરથી નીચે તરફ ખેંચો, ત્યારે તમામ નોટિફિકેશન શોધવા સરળ છે."</string>
+ <string name="notification_polite_title" msgid="6121016426991791557">"નોટિફિકેશન કૂલડાઉન"</string>
+ <string name="notification_polite_main_control_title" msgid="5812529809151927149">"નોટિફિકેશન કૂલડાઉનનો ઉપયોગ કરો"</string>
+ <string name="notification_polite_description" msgid="5497748284893832854">"જ્યારે ટૂંકા સમયગાળામાં તમને ઘણા નોટિફિકેશન પ્રાપ્ત થાય, ત્યારે તમારું ડિવાઇસ તેનું વૉલ્યૂમ ઘટાડશે અને 2 મિનિટ સુધી અલર્ટને ઓછા કરશે. કૉલ, અલાર્મ અને પ્રાધાન્યતા ધરાવતી વાતચીતોને અસર થતી નથી. \n\nકૂલડાઉન દરમિયાન પ્રાપ્ત થયેલા નોટિફિકેશનને સ્ક્રીનની સૌથી ઉપરની બાજુએથી નીચેની તરફ સ્ક્રોલ કરીને શોધી શકાય છે."</string>
<string name="notification_polite_work" msgid="8823596456640216391">"ઑફિસની પ્રોફાઇલ પર લાગુ કરો"</string>
<string name="notification_polite_work_summary" msgid="5014189280132951378">"ઑફિસની પ્રોફાઇલ ઍપ પર લાગુ કરો"</string>
<string name="vr_listeners_title" msgid="4960357292472540964">"VR સહાયક સેવાઓ"</string>
@@ -3814,7 +3802,9 @@
<string name="zen_mode_apps_priority_apps" msgid="7386196048313716076">"પસંદગીની ઍપ"</string>
<string name="zen_mode_apps_none_apps" msgid="2493642312793604327">"એકપણ નહીં"</string>
<string name="zen_mode_apps_subtext" msgid="1764211974662012877">"{count,plural,offset:2 =0{કોઈપણ ઍપ વિક્ષેપ કરી શકશે નહીં}=1{{app_1} વિક્ષેપ કરી શકે છે}=2{{app_1} અને {app_2} વિક્ષેપ કરી શકે છે}=3{{app_1}, {app_2} અને {app_3} વિક્ષેપ કરી શકે છે}one{{app_1}, {app_2} અને વધુ # વિક્ષેપ કરી શકે છે}other{{app_1}, {app_2} અને વધુ # વિક્ષેપ કરી શકે છે}}"</string>
+ <string name="zen_mode_apps_work_app" msgid="8528767938316361588">"<xliff:g id="APP_LABEL">%s</xliff:g> (ઑફિસ)"</string>
<string name="zen_mode_apps_calculating" msgid="5420121396943539286">"ગણતરી કરી રહ્યાં છીએ…"</string>
+ <string name="zen_mode_plus_n_items" msgid="6136713354369243421">"+<xliff:g id="NUMBER">%d</xliff:g>"</string>
<string name="zen_mode_bypassing_apps" msgid="625309443389126481">"અૅપને ઓવરરાઇડ કરવાની મંજૂરી આપો"</string>
<string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"વિક્ષેપ ઊભો કરી શકે તેવી ઍપ"</string>
<string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"વધુ ઍપ પસંદ કરો"</string>
@@ -3832,6 +3822,7 @@
<string name="zen_mode_sounds_none" msgid="6557474361948269420">"કોઈપણ સાઉન્ડ \'ખલેલ પાડશો નહીં\' મોડને વિક્ષેપ કરી શકશે નહીં"</string>
<string name="zen_mode_people_none" msgid="4613147461974255046">"કોઈપણ વિક્ષેપ કરી શકશે નહીં"</string>
<string name="zen_mode_people_some" msgid="9101872681298810281">"અમુક લોકો વિક્ષેપ કરી શકે છે"</string>
+ <string name="zen_mode_people_repeat_callers" msgid="4499084111069828761">"રિપીટ કૉલર વિક્ષેપ કરી શકે છે"</string>
<string name="zen_mode_people_all" msgid="311036110283015205">"બધા લોકો વિક્ષેપ કરી શકે છે"</string>
<string name="zen_mode_repeat_callers" msgid="2270356100287792138">"પુનરાવર્તિત કૉલર્સ"</string>
<string name="zen_mode_repeat_callers_title" msgid="8016699240338264781">"રિપીટ કૉલરને મંજૂરી આપો"</string>
@@ -3851,13 +3842,37 @@
<string name="zen_mode_summary_alarms_only_by_hour" msgid="7400910210950788163">"{count,plural, =1{{time} સુધી ફક્ત એક કલાક માટે અલાર્મમાં બદલો}one{{time} સુધી ફક્ત # કલાક માટે અલાર્મમાં બદલો}other{{time} સુધી ફક્ત # કલાક માટે અલાર્મમાં બદલો}}"</string>
<string name="zen_mode_summary_alarms_only_by_time" msgid="8140619669703968810">"એલાર્મ્સ પર ફક્ત <xliff:g id="FORMATTEDTIME">%1$s</xliff:g> સુધી બદલો"</string>
<string name="zen_mode_summary_always" msgid="722093064250082317">"હંમેશાં ખલેલ પાડો પર બદલો"</string>
- <!-- no translation found for zen_mode_rename_title (8146882272966214558) -->
+ <string name="zen_mode_rename_title" msgid="8146882272966214558">"ફેરફાર કરવાનો મોડ"</string>
+ <string name="zen_mode_new_custom_title" msgid="321750898430776191">"મોડ ઉમેરો"</string>
+ <string name="zen_mode_new_custom_default_name" msgid="2778307946775085105">"કસ્ટમ મોડ"</string>
+ <string name="zen_mode_edit_name_hint" msgid="4584652062167540536">"મોડનું નામ"</string>
+ <string name="zen_mode_trigger_title_schedule_calendar" msgid="9206609438617550331">"કૅલેન્ડર ઇવેન્ટ"</string>
+ <string name="zen_mode_trigger_title_bedtime" msgid="5086070900588489978">"સૂવાનું શેડ્યૂલ"</string>
+ <string name="zen_mode_trigger_title_driving" msgid="7890990983453164403">"ડ્રાઇવિંગ કરતી વખતે"</string>
+ <string name="zen_mode_trigger_title_generic" msgid="601273385119550420">"ઍપ સાથે લિંક કરેલા"</string>
+ <string name="zen_mode_trigger_summary_settings_in_app" msgid="4860667191183702601">"<xliff:g id="APP_NAME">%1$s</xliff:g>માંની માહિતી અને સેટિંગ"</string>
+ <string name="zen_mode_trigger_summary_managed_by_app" msgid="8631011868193102098">"<xliff:g id="APP_NAME">%1$s</xliff:g> દ્વારા મેનેજ કરવામાં આવે છે"</string>
+ <string name="zen_mode_confirm_disable_title" msgid="1232297660775719796">"મોડ બંધ કરો"</string>
+ <string name="zen_mode_confirm_disable_message" msgid="7315541221665718491">"જો તમે આ સુવિધા બંધ કરો છો, તો મોડ હવેથી ઇચ્છિત રીતે કાર્ય કરશે નહીં અને તેના સેટિંગ છુપાવવામાં આવશે."</string>
+ <string name="zen_mode_action_disable" msgid="3552921561331044881">"બંધ કરો"</string>
+ <string name="zen_mode_confirm_enable_title" msgid="5683371335847448595">"મોડ ચાલુ કરો"</string>
+ <string name="zen_mode_confirm_enable_message" msgid="7017879133260011419">"જો તમે આ સુવિધા ચાલુ કરો છો, તો મોડ તેના શેડ્યૂલ પ્રમાણે ઑટોમૅટિક રીતે સક્રિય થશે."</string>
+ <string name="zen_mode_action_enable" msgid="1161480633223176531">"ચાલુ કરો"</string>
+ <!-- no translation found for zen_mode_blurb_schedule_time (8223898702097484009) -->
<skip />
- <!-- no translation found for zen_mode_new_custom_title (321750898430776191) -->
+ <!-- no translation found for zen_mode_blurb_schedule_calendar (382177907856065945) -->
<skip />
- <!-- no translation found for zen_mode_new_custom_default_name (2778307946775085105) -->
+ <!-- no translation found for zen_mode_blurb_bedtime (6155075956151013457) -->
<skip />
- <!-- no translation found for zen_mode_edit_name_hint (4584652062167540536) -->
+ <!-- no translation found for zen_mode_blurb_driving (1316054379000667305) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_immersive (5884004861848687869) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_theater (2999237960059524225) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_managed (5473921634985032149) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_generic (3041601339807075625) -->
<skip />
<string name="warning_button_text" msgid="1274234338874005639">"ચેતવણી"</string>
<string name="suggestion_button_close" msgid="6865170855573283759">"બંધ કરો"</string>
@@ -4845,9 +4860,8 @@
<string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"બૅટરી"</string>
<string name="settings_panel_title" msgid="346363079938069215">"સેટિંગ પૅનલ"</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>
+ <!-- no translation found for enable_desktop_mode_on_secondary_display (2609567824593768780) -->
+ <skip />
<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>
@@ -5022,7 +5036,6 @@
<string name="default_active_sim_mobile_data" msgid="6798083892814045301">"મોબાઇલ ડેટા"</string>
<string name="wifi_scan_notify_message" msgid="1331238142061476869">"ડિવાઇસના અનુભવને બહેતર બનાવવા માટે, વાઇ-ફાઇ બંધ હોય ત્યારે પણ ઍપ અને સેવાઓ કોઈપણ સમયે વાઇ-ફાઇ નેટવર્ક સ્કૅન કરી શકે છે. ઉદાહરણ તરીકે, આનો ઉપયોગ લોકેશન આધારિત સુવિધાઓ અને સેવાઓને બહેતર બનાવવા માટે કરી શકાય છે. તમે વાઇ-ફાઇ સ્કૅનિંગના સેટિંગમાં જઈને આને બદલી શકો છો."</string>
<string name="wifi_scan_change" msgid="8438320311511852918">"બદલો"</string>
- <string name="preference_summary_default_combination" msgid="4643585915107796253">"<xliff:g id="STATE">%1$s</xliff:g> / <xliff:g id="NETWORKMODE">%2$s</xliff:g>"</string>
<string name="mobile_data_connection_active" msgid="2422223108911581552">"કનેક્ટ કરેલું"</string>
<string name="mobile_data_temp_connection_active" msgid="3430470299756236413">"હંગામી રીતે કનેક્ટ કર્યું"</string>
<string name="mobile_data_temp_using" msgid="5211002380149434155">"હંગામી રીતે <xliff:g id="SUBNAME">%1$s</xliff:g>નો ઉપયોગ કરી રહ્યું છે"</string>
@@ -5168,9 +5181,11 @@
<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="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_enable_freeform_support" msgid="3697462756493543645">"ફ્રીફોર્મ વિન્ડો સપોર્ટ ચાલુ કરવા માટે રીબૂટ કરવું જરૂરી છે."</string>
+ <!-- no translation found for reboot_dialog_override_desktop_mode (7480950772574354130) -->
+ <skip />
+ <!-- no translation found for reboot_dialog_enable_desktop_mode_on_secondary_display (1153621881052401924) -->
+ <skip />
<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>
@@ -5401,5 +5416,6 @@
<string name="audio_streams_main_page_password_dialog_join_button" msgid="2967747276379153408">"સ્ટ્રીમ સાંભળો"</string>
<string name="audio_streams_main_page_qr_code_scanner_summary" msgid="5312980105735143360">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> વડે સાંભળવા માટે, ઑડિયો સ્ટ્રીમનો QR કોડ સ્કૅન કરો"</string>
<string name="audio_streams_main_page_password_dialog_cannot_edit" msgid="9020898619297520153">"શેર કરતી વખતે પાસવર્ડમાં ફેરફાર કરી શકાતો નથી. પાસવર્ડ બદલવા માટે, પહેલાં ઑડિયો શેરિંગ બંધ કરો."</string>
+ <string name="audio_streams_qr_code_scanner_label" msgid="8799703301071378034">"QR કોડ સ્કૅનર"</string>
<string name="homepage_search" msgid="6759334912284663559">"શોધ સેટિંગ"</string>
</resources>
diff --git a/res/values-hi/strings.xml b/res/values-hi/strings.xml
index 1c461fc..4ffb3dd 100644
--- a/res/values-hi/strings.xml
+++ b/res/values-hi/strings.xml
@@ -41,6 +41,8 @@
<string name="radioInfo_data_suspended" msgid="2001254415431299603">"निलंबित"</string>
<string name="radioInfo_unknown" msgid="2892562356748600367">"अज्ञात"</string>
<string name="preview_pager_content_description" msgid="3762247188224576303">"झलक"</string>
+ <!-- no translation found for qr_code_content_description (1852208464419291347) -->
+ <skip />
<string name="font_size_make_smaller_desc" msgid="4978038055549590140">"छोटा करें"</string>
<string name="font_size_make_larger_desc" msgid="5583046033381722247">"बड़ा करें"</string>
<string name="stay_awake_on_fold_title" msgid="6590454679898134221">"हमेशा"</string>
@@ -283,7 +285,7 @@
<string name="location_settings_summary_location_off" msgid="4797932754681162262">"बंद है"</string>
<string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{चालू है / # ऐप्लिकेशन के पास जगह की जानकारी का ऐक्सेस है}one{चालू है / # ऐप्लिकेशन के पास जगह की जानकारी का ऐक्सेस है}other{चालू है / # ऐप्लिकेशन के पास जगह की जानकारी का ऐक्सेस है}}"</string>
<string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"लोड हो रहा है…"</string>
- <string name="location_settings_footer_general" msgid="1040507068701188821">"ऐसे ऐप्लिकेशन, जिन्हें आस-पास मौजूद डिवाइसों के साथ इंटरैक्ट करने की अनुमति मिली है वे कनेक्ट किए गए डिवाइसों की जगह की जानकारी का पता लगा सकते हैं."</string>
+ <string name="location_settings_footer_general" msgid="3447585552176173502">"जिन ऐप्लिकेशन को आस-पास मौजूद डिवाइसों के साथ इंटरैक्ट करने की अनुमति मिली है वे कनेक्ट किए गए डिवाइसों की जगह की जानकारी का पता लगा सकते हैं."</string>
<string name="location_settings_footer_location_off" msgid="8568995909147566720">"ऐप्लिकेशन और सेवाओं के लिए, जगह की जानकारी का ऐक्सेस बंद है. आपके डिवाइस की जगह की जानकारी, आपातकालीन स्थिति में मदद करने वाले लोगों को अब भी दी जा सकती है. ऐसा आपके किसी आपातकालीन नंबर पर कॉल करने या मैसेज भेजने पर किया जाएगा."</string>
<string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"जगह की जानकारी की सेटिंग के बारे में ज़्यादा जानें"</string>
<string name="location_settings_tooltip_text_for_chrome" msgid="5781821709250544575">"इसे बदलने के लिए, ChromeOS की सेटिंग > निजता और सुरक्षा > निजता सेटिंग > जगह की जानकारी के ऐक्सेस पर जाएं"</string>
@@ -302,7 +304,7 @@
<string name="security_settings_face_preference_title" msgid="2126625155005348417">"फ़ेस अनलॉक"</string>
<string name="security_settings_face_profile_preference_title" msgid="7519527436266375005">"वर्क प्रोफ़ाइल के लिए फ़ेस अनलॉक की सुविधा"</string>
<string name="security_settings_face_enroll_education_title" msgid="6448806884597691208">"फ़ेस अनलॉक की सुविधा सेट अप करने का तरीका"</string>
- <string name="security_settings_face_enroll_education_title_accessibility" msgid="3701874093226957891">"फे़स अनलॉक की सुविधा सेट अप करें"</string>
+ <string name="security_settings_face_enroll_education_title_accessibility" msgid="3701874093226957891">"फे़स अनलॉक सेट अप करें"</string>
<string name="security_settings_face_enroll_education_title_unlock_disabled" msgid="8810954233979716906">"चेहरे का इस्तेमाल कर पुष्टि करें"</string>
<string name="security_settings_face_enroll_education_message" msgid="4308030157487176799"></string>
<string name="security_settings_face_enroll_education_start" msgid="8830924400907195590">"शुरू करें"</string>
@@ -466,7 +468,7 @@
<string name="security_settings_sfps_enroll_find_sensor_title" msgid="8327884364635804363">"पावर बटन को दबाने के बजाय, इसे बस उंगली से छुएं"</string>
<string name="security_settings_udfps_enroll_find_sensor_title" msgid="8077484429913330179">"फ़िंगरप्रिंट सेट अप करने का तरीका"</string>
<string name="security_settings_fingerprint_enroll_find_sensor_message" msgid="6160543980992596286">"यह आपके फ़ोन के पीछे दिया गया है. अपने अंगूठे के पास की उंगली का उपयोग करें."</string>
- <string name="security_settings_udfps_enroll_find_sensor_message" msgid="8383106460819519961">"फ़िंगरप्रिंट सेंसर आपकी स्क्रीन पर है. आपको अगली स्क्रीन पर, अपना फ़िंगरप्रिंट कैप्चर करने का विकल्प मिलेगा."</string>
+ <string name="security_settings_udfps_enroll_find_sensor_message" msgid="8383106460819519961">"फ़िंगरप्रिंट सेंसर आपकी स्क्रीन पर है. अगली स्क्रीन पर, आपको अपना फ़िंगरप्रिंट कैप्चर करना होगा."</string>
<string name="security_settings_udfps_enroll_find_sensor_start_button" msgid="3172268783620336357">"शुरू करें"</string>
<string name="security_settings_udfps_enroll_a11y" msgid="1899453114050362235">"फ़िंगरप्रिंट सेंसर ढूंढने के लिए, स्क्रीन पर अपनी उंगली घुमाएं. फ़िंगरप्रिंट सेंसर को दबाकर रखें."</string>
<string name="security_settings_fingerprint_enroll_find_sensor_content_description" msgid="3065850549419750523">"डिवाइस और उस पर फ़िंगरप्रिंट सेंसर की जगह बताने वाला चित्रण"</string>
@@ -497,7 +499,7 @@
<string name="security_settings_sfps_animation_a11y_label" msgid="8808819903730940446">"<xliff:g id="PERCENTAGE">%d</xliff:g> प्रतिशत रजिस्टर"</string>
<string name="security_settings_udfps_enroll_progress_a11y_message" msgid="6183535114682369699">"फ़िंगरप्रिंट सेट अप करने की प्रक्रिया <xliff:g id="PERCENTAGE">%d</xliff:g> प्रतिशत तक पूरी हो चुकी है"</string>
<string name="security_settings_fingerprint_enroll_finish_title" msgid="3606325177406951457">"फ़िंगरप्रिंट जोड़ा गया"</string>
- <string name="security_settings_require_screen_on_to_auth_title" msgid="1641621458536715518">"डिवाइस को किसी भी समय अनलॉक करने के लिए सेंसर को छुएं"</string>
+ <string name="security_settings_require_screen_on_to_auth_title" msgid="1641621458536715518">"कभी भी छूकर अनलॉक करें"</string>
<string name="security_settings_require_screen_on_to_auth_description" msgid="4158414711168345398">"स्क्रीन बंद होने पर भी डिवाइस को अनलॉक करने के लिए, सेंसर को छुएं. हालांकि, इससे डिवाइस के अनजाने में अनलॉक होने की संभावना बढ़ जाती है."</string>
<string name="security_settings_require_screen_on_to_auth_keywords" msgid="5557869560397089603">"स्क्रीन, अनलॉक करें"</string>
<string name="security_settings_fingerprint_enroll_enrolling_skip" msgid="3004786457919122854">"बाद में करें"</string>
@@ -850,7 +852,6 @@
<string name="nfc_reboot_dialog_title" msgid="2033983438635768169">"क्या आपको डिवाइस रीस्टार्ट करना है?"</string>
<string name="nfc_reboot_dialog_message" msgid="4929353168157966992">"एनएफ़सी का लाॅग सिर्फ़ डेवलपमेंट के मकसद से बनाया गया है. गड़बड़ी की रिपोर्ट में एनएफ़सी का अतिरिक्त डेटा शामिल होता है. इसमें निजी जानकारी भी शामिल हो सकती है. इस सेटिंग को बदलने के लिए, डिवाइस को रीस्टार्ट करें."</string>
<string name="nfc_reboot_dialog_confirm" msgid="4769763632008584567">"रीस्टार्ट करें"</string>
- <string name="keywords_external_display" msgid="4181375057920134909">"स्क्रीन शेयर करना, बाहरी डिसप्ले, कनेक्ट किया गया डिसप्ले, यूएसबी डिसप्ले, रिज़ॉल्यूशन, रोटेशन"</string>
<string name="external_display_on" msgid="2560104443500154333">"चालू है"</string>
<string name="external_display_off" msgid="5634413756025351374">"बंद है"</string>
<string name="external_display_settings_title" msgid="6256884595821605779">"बाहरी डिसप्ले"</string>
@@ -1918,6 +1919,8 @@
<string name="slow_keys_summary" msgid="1784371292745423292">"किसी कुंजी को दबाने पर, स्क्रीन पर होने वाली प्रतिक्रिया का समय <xliff:g id="SLOW_KEYS_THRESHOLD">%1$d</xliff:g> मि॰से॰ तक अडजस्ट किया जा सकता है"</string>
<string name="sticky_keys" msgid="7317317044898161747">"स्टिकी बटन"</string>
<string name="sticky_keys_summary" msgid="1844953803625480623">"शॉर्टकट के लिए, कई कुंजियों को एक साथ दबाकर रखने के बजाय एक बार में एक कुंजी दबाएं"</string>
+ <string name="mouse_keys" msgid="6237254627808525540">"माउस का काम करने वाले बटन"</string>
+ <string name="mouse_keys_summary" msgid="2396247040177734245">"माउस से कंट्रोल करने के लिए, फ़िज़िकल कीबोर्ड का इस्तेमाल करें."</string>
<string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"कीबोर्ड शॉर्टकट"</string>
<string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"शॉर्टकट की सूची दिखाएं"</string>
<string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"काम के प्रोफ़ाइल से जुड़े कीबोर्ड और टूल"</string>
@@ -2175,8 +2178,6 @@
<string name="accessibility_shortcut_edit_dialog_summary_floating_button" msgid="6266489864614886247">"फ़्लोटिंग बटन पर टैप करें"</string>
<string name="accessibility_shortcut_edit_dialog_title_software_by_gesture" msgid="4775049370625630546">"सुलभता से जुड़े हाथ के जेस्चर"</string>
<string name="accessibility_shortcut_edit_dialog_summary_software" msgid="8315934725362849788">"स्क्रीन पर सबसे नीचे मौजूद, सुलभता बटन <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g> पर टैप करें. सुविधाओं के बीच स्विच करने के लिए, सुलभता बटन को दबाकर रखें."</string>
- <string name="accessibility_shortcut_edit_dialog_summary_software_gesture" msgid="8292555254353761635">"स्क्रीन पर नीचे से ऊपर की ओर दो उंगलियों से स्वाइप करें.\n\nएक सुविधा से दूसरी सुविधा पर जाने के लिए, दो उंगलियों से ऊपर की ओर स्वाइप करें और स्क्रीन को थोड़ी देर दबाकर रखें."</string>
- <string name="accessibility_shortcut_edit_dialog_summary_software_gesture_talkback" msgid="84483464524360845">"स्क्रीन पर नीचे से ऊपर की ओर तीन उंगलियों से स्वाइप करें.\n\nएक सुविधा से दूसरी सुविधा पर जाने के लिए, तीन उंगलियों से ऊपर की ओर स्वाइप करें और स्क्रीन को थोड़ी देर दबाकर रखें."</string>
<string name="accessibility_shortcut_edit_dialog_summary_gesture" msgid="2081123009255579884">"{count,plural, =1{स्क्रीन पर नीचे से ऊपर की ओर स्वाइप करें. सुविधाओं के बीच स्विच करने के लिए, ऊपर की ओर स्वाइप करें और दबाकर रखें.}one{स्क्रीन पर # उंगली से नीचे से ऊपर की ओर स्वाइप करें. सुविधाओं के बीच स्विच करने के लिए, स्क्रीन पर # उंगली से ऊपर की ओर स्वाइप करें और दबाकर रखें.}other{स्क्रीन पर # उंगलियों से नीचे से ऊपर की ओर स्वाइप करें. सुविधाओं के बीच स्विच करने के लिए, स्क्रीन पर # उंगलियों से ऊपर की ओर स्वाइप करें और दबाकर रखें.}}"</string>
<string name="accessibility_shortcut_edit_dialog_summary_software_floating" msgid="4459254227203203324"><annotation id="link">"और विकल्प"</annotation></string>
<string name="footer_learn_more_content_description" msgid="8843798273152131341">"<xliff:g id="SERVICE">%1$s</xliff:g> के बारे में ज़्यादा जानें"</string>
@@ -2187,16 +2188,12 @@
<string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="844089763968552142">"आवाज़ बटन"</string>
<string name="accessibility_shortcut_hardware_keyword" msgid="2483152542320987022">"आवाज़ बटन"</string>
<string name="accessibility_shortcut_edit_dialog_summary_hardware" msgid="2503134386397991634">"आवाज़ वाले दोनों बटन दबाकर रखें"</string>
- <string name="accessibility_shortcut_edit_dialog_title_two_finger_double_tap" msgid="2271778556854020996">"दो उंगलियों से दो बार टैप करें"</string>
<string name="accessibility_shortcut_edit_screen_title_two_finger_double_tap" msgid="8952595692906527694">"%1$d-उंगलियों से दो बार टैप करें"</string>
<string name="accessibility_shortcut_edit_screen_summary_two_finger_double_tap" msgid="385404127425496362">"स्क्रीन पर %1$d उंगलियों से फटाफट दो बार टैप करें"</string>
<string name="accessibility_shortcut_edit_screen_title_triple_tap" msgid="3314488747597058942">"तीन बार टैप करें"</string>
<string name="accessibility_shortcut_edit_screen_summary_triple_tap" msgid="4839204951599629871">"स्क्रीन पर फटाफट %1$d बार टैप करें. ऐसा करने से, हो सकता है कि आपका डिवाइस थोड़ा धीरे काम करे."</string>
<string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="6271718715836961167">"%1$d-उंगलियों से दो बार टैप करें"</string>
- <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"स्क्रीन पर तुरंत दो उंगलियों से {0,number,integer} बार टैप करें"</string>
- <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"स्क्रीन पर तीन बार टैप करें"</string>
<string name="accessibility_shortcut_triple_tap_keyword" msgid="5359347130888464334">"तीन बार टैप करें"</string>
- <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"स्क्रीन पर जल्दी-जल्दी {0,number,integer} बार टैप करें. इस शॉर्टकट के इस्तेमाल से आपके डिवाइस की रफ़्तार धीमी हो सकती है"</string>
<string name="accessibility_shortcut_edit_dialog_title_advance" msgid="4567868630655591506">"ऐडवांस"</string>
<string name="accessibility_screen_magnification_navbar_configuration_warning" msgid="266736851606791552">"सुलभता बटन <xliff:g id="SERVICE">%1$s</xliff:g> पर सेट है. बड़ा करने के लिए, सुलभता बटन को दबाकर रखें, फिर बड़ा करना चुनें."</string>
<string name="accessibility_screen_magnification_gesture_navigation_warning" msgid="991017769735632046">"सुलभता जेस्चर को <xliff:g id="SERVICE">%1$s</xliff:g> के लिए सेट किया गया है. बड़ा करने के लिए, दो उंगलियों से स्क्रीन के सबसे निचले हिस्से से ऊपर की ओर स्वाइप करें और रुके रहें. फिर \'बड़ा करना\' चुनें."</string>
@@ -2365,6 +2362,7 @@
<string name="daltonizer_mode_tritanomaly_title" msgid="2278786218762602022">"नीला-हरा रंग पहचान न पाना"</string>
<string name="daltonizer_mode_grayscale_title" msgid="152005391387952588">"डिसप्ले को ग्रेस्केल में करने की सुविधा"</string>
<string name="daltonizer_saturation_title" msgid="2999486412114963068">"इंटेंसिटी"</string>
+ <string name="daltonizer_saturation_unavailable_summary" msgid="8319753055567798775">"ग्रेस्केल मोड या रंग में सुधार करने की सुविधा के बंद होने पर उपलब्ध नहीं है"</string>
<string name="daltonizer_mode_deuteranomaly_summary" msgid="2117727423019598455">"ऐसी समस्या जिसमें हरा रंग लाल दिखता है"</string>
<string name="daltonizer_mode_protanomaly_summary" msgid="4617032854982040748">"ऐसी समस्या जिसमें लाल रंग हरा दिखता है"</string>
<string name="daltonizer_mode_tritanomaly_summary" msgid="2428218320118180070">"नीला-हरा और पीला-लाल रंग पहचान न पाने की समस्या"</string>
@@ -2414,15 +2412,8 @@
<string name="color_cyan" msgid="4341758639597035927">"नीला-हरा"</string>
<string name="color_yellow" msgid="5957551912912679058">"पीला"</string>
<string name="color_magenta" msgid="8943538189219528423">"मैजेंटा"</string>
- <string name="enable_service_title" msgid="7231533866953706788">"<xliff:g id="SERVICE">%1$s</xliff:g> को, अपना डिवाइस पूरी तरह कंट्रोल करने की अनुमति देनी है?"</string>
<string name="capabilities_list_title" msgid="1225853611983394386">"<xliff:g id="SERVICE">%1$s</xliff:g> के लिए यह ज़रूरी है:"</string>
<string name="touch_filtered_warning" msgid="4225815157460318241">"क्यूंकि ऐप की वजह से अनुमति के अनुरोध को समझने में दिक्कत हो रही है, इसलिए सेटिंग से आपके जवाब की पुष्टि नहीं हो पा रही हैं."</string>
- <string name="accessibility_service_warning" msgid="6779187188736432618">"<xliff:g id="SERVICE">%1$s</xliff:g> इस डिवाइस पर पूरा नियंत्रण मांग रहा है. यह सेवा, स्क्रीन पर दिख रही जानकारी पढ़ सकती है और सुलभता से जुड़ी ज़रूरतों वाले उपयोगकर्ताओं की तरफ़ से काम कर सकती है. नियंत्रण का यह लेवल ज़्यादातर ऐप्लिकेशन के लिए सही नहीं है."</string>
- <string name="accessibility_service_warning_description" msgid="6573203795976134751">"पूरी तरह कंट्रोल करने की अनुमति उन ऐप्लिकेशन के लिए ठीक है जो सुलभता से जुड़ी ज़रूरतों के लिए बने हैं, लेकिन ज़्यादातर ऐप्लिकेशन के लिए यह ठीक नहीं है."</string>
- <string name="accessibility_service_screen_control_title" msgid="324795030658109870">"स्क्रीन को देखें और कंट्रोल करें"</string>
- <string name="accessibility_service_screen_control_description" msgid="8431940515157990426">"यह स्क्रीन पर दिखने वाले कॉन्टेंट को पढ़ सकता है और उसे दूसरे ऐप्लिकेशन के ऊपर दिखा सकता है."</string>
- <string name="accessibility_service_action_perform_title" msgid="1449360056585337833">"देखें और कार्रवाई करें"</string>
- <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"यह आपके और किसी ऐप्लिकेशन या हार्डवेयर सेंसर के बीच होने वाले इंटरैक्शन को ट्रैक कर सकता है और आपकी तरफ़ से ऐप्लिकेशन के साथ इंटरैक्ट कर सकता है."</string>
<string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"अनुमति दें"</string>
<string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"अनुमति न दें"</string>
<string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"बंद करें"</string>
@@ -3034,7 +3025,7 @@
<string name="user_category_title" msgid="4368580529662699083">"उपयोगकर्ता"</string>
<string name="other_user_category_title" msgid="7089976887307643217">"अन्य उपयोगकर्ता"</string>
<string name="remove_guest_on_exit" msgid="8202972371459611066">"मेहमान मोड में की गई गतिविधि मिट जाए"</string>
- <string name="remove_guest_on_exit_summary" msgid="3969962695703280353">"मेहमान मोड से बाहर निकलने पर, उस मोड में की गई गतिविधियों का डेटा मिटा दिया जाए"</string>
+ <string name="remove_guest_on_exit_summary" msgid="3969962695703280353">"मेहमान मोड से बाहर निकलने पर, उस मोड में की गई गतिविधियों का डेटा मिट जाएगा"</string>
<string name="remove_guest_on_exit_dialog_title" msgid="2310442892536079416">"मेहमान मोड की गतिविधि को मिटाना है?"</string>
<string name="remove_guest_on_exit_dialog_message" msgid="8112409834021851883">"मेहमान के तौर पर ब्राउज़ किए गए इस सेशन में मौजूद डेटा और इस्तेमाल किए गए ऐप्लिकेशन को मिटा दिया जाएगा. इसके अलावा, आने वाले समय में हर बार मेहमान मोड से बाहर निकलने पर, उस दौरान की गई गतिविधियां मिटा दी जाएंगी"</string>
<string name="remove_guest_on_exit_keywords" msgid="4961310523576166193">"मिटाएं, मेहमान, गतिविधि, हटाएं, डेटा, वेबसाइट पर आने या जाने वाले, हमेशा के लिए मिटाएं"</string>
@@ -3364,10 +3355,8 @@
<string name="zen_mode_automation_settings_title" msgid="3709324184191870926">"शेड्यूल"</string>
<string name="zen_mode_delete_automatic_rules" msgid="5020468289267191765">"शेड्यूल मिटाएं"</string>
<string name="zen_mode_schedule_delete" msgid="5383420576833765114">"मिटाएं"</string>
- <!-- no translation found for zen_mode_menu_rename_mode (4681802125016390837) -->
- <skip />
- <!-- no translation found for zen_mode_menu_delete_mode (5380084696402157428) -->
- <skip />
+ <string name="zen_mode_menu_rename_mode" msgid="4681802125016390837">"नाम बदलें"</string>
+ <string name="zen_mode_menu_delete_mode" msgid="5380084696402157428">"मिटाएं"</string>
<string name="zen_mode_delete_mode_confirmation" msgid="7594340592051947392">"क्या आपको \"<xliff:g id="MODE">%1$s</xliff:g>\" मोड मिटाना है?"</string>
<string name="zen_mode_rule_name_edit" msgid="1053237022416700481">"बदलाव करें"</string>
<string name="zen_mode_automation_settings_page_title" msgid="6217433860514433311">"शेड्यूल"</string>
@@ -3391,8 +3380,7 @@
<string name="zen_mode_visual_signals_settings_subtitle" msgid="7433077540895876672">"संकेत दिखाए जाने की अनुमति दें"</string>
<string name="mode_interruption_filter_title" msgid="3343846700214702347">"फ़ोकस बनाए रखें"</string>
<string name="mode_device_effects_title" msgid="5857008332618433744">"अन्य कार्रवाइयां"</string>
- <!-- no translation found for modes_sound_summary_off (6972648204528227879) -->
- <skip />
+ <string name="modes_sound_summary_off" msgid="6972648204528227879">"{count,plural, =0{बंद है}=1{बंद है / 1 मोड अपने-आप चालू हो सकता है}one{बंद है / # मोड अपने-आप चालू हो सकता है}other{बंद है / # मोड अपने-आप चालू हो सकते हैं}}"</string>
<string name="mode_display_settings_title" msgid="8132825978346535472">"डिसप्ले की सेटिंग"</string>
<string name="mode_display_options_section" msgid="5151597748243866532">"डिसप्ले के विकल्प"</string>
<string name="mode_grayscale_title" msgid="6027553257331235461">"ग्रेस्केल"</string>
@@ -3655,9 +3643,9 @@
<string name="notif_listener_not_migrated" msgid="6265206376374278226">"यह ऐप्लिकेशन, बेहतर सेटिंग के साथ काम नहीं करता है"</string>
<string name="notif_listener_more_settings" msgid="1348409392307208921">"अन्य सेटिंग"</string>
<string name="notif_listener_more_settings_desc" msgid="7995492074281663658">"इस ऐप्लिकेशन में ज़्यादा सेटिंग उपलब्ध हैं"</string>
- <string name="notification_polite_title" msgid="4737150709382859870">"ज़रूरत के हिसाब से सूचनाएं पाने की सुविधा"</string>
- <string name="notification_polite_main_control_title" msgid="7267191551379543859">"ज़रूरत के हिसाब से सूचनाएं पाने की सुविधा इस्तेमाल करें"</string>
- <string name="notification_polite_description" msgid="7749280535620291610">"कम समय में काफ़ी सूचनाएं मिलने पर, दो मिनट के लिए आपका फ़ोन इन सूचनाओं से होने वाली आवाज़ों को कम करेगा और स्क्रीन पर कम पॉप-अप दिखाएगा. कॉल, अलार्म, और अहम बातचीत से जुड़ी सूचनाएं अब भी पहले की तरह ही मिलेंगी या स्क्रीन पर दिखेंगी. साथ ही, आपको मिली सभी सूचनाएं, स्क्रीन पर सबसे ऊपर से नीचे की ओर स्वाइप करके आसानी से मिल जाएंगी."</string>
+ <string name="notification_polite_title" msgid="6121016426991791557">"लगातार सूचनाएं आने पर आवाज़ कम करने की सेटिंग"</string>
+ <string name="notification_polite_main_control_title" msgid="5812529809151927149">"एक ही ऐप से लगातार सूचनाएं आने पर आवाज़ कम करने वाली सेटिंग का इस्त्माल करें"</string>
+ <string name="notification_polite_description" msgid="5497748284893832854">"कम समय में कई सूचनाएं मिलने पर, दो मिनट के लिए आपका डिवाइस इन सूचनाओं से होने वाली आवाज़ों को कम करेगा और स्क्रीन पर कम सूचनाएं दिखाएगा. हालांकि, कॉल, अलार्म, और अहम बातचीत से जुड़ी सूचनाएं अब भी पहले की तरह ही मिलती रहेंगी. \n\nआवाज़ और सूचनाएं कम होने के दौरान मिली सभी सूचनाएं, आपको आसानी से मिल जाएंगी. इसके लिए, स्क्रीन पर सबसे ऊपर से नीचे की ओर स्वाइप करें."</string>
<string name="notification_polite_work" msgid="8823596456640216391">"वर्क प्रोफ़ाइल पर लागू करें"</string>
<string name="notification_polite_work_summary" msgid="5014189280132951378">"वर्क प्रोफ़ाइल ऐप्लिकेशन पर लागू करें"</string>
<string name="vr_listeners_title" msgid="4960357292472540964">"वीआर के साथ काम करने वाली सेवाएं"</string>
@@ -3814,7 +3802,9 @@
<string name="zen_mode_apps_priority_apps" msgid="7386196048313716076">"चुने गए ऐप्लिकेशन"</string>
<string name="zen_mode_apps_none_apps" msgid="2493642312793604327">"कोई नहीं"</string>
<string name="zen_mode_apps_subtext" msgid="1764211974662012877">"{count,plural,offset:2 =0{कोई भी ऐप्लिकेशन \'परेशान न करें\' मोड को बायपास नहीं कर सकता}=1{{app_1} \'परेशान न करें\' मोड को बायपास कर सकता है}=2{{app_1} और {app_2} \'परेशान न करें\' मोड को बायपास कर सकते हैं}=3{{app_1}, {app_2}, और {app_3} \'परेशान न करें\' मोड को बायपास कर सकते हैं}one{{app_1}, {app_2}, और # अन्य ऐप्लिकेशन \'परेशान न करें\' मोड को बायपास कर सकते हैं}other{{app_1}, {app_2}, और # अन्य ऐप्लिकेशन \'परेशान न करें\' मोड को बायपास कर सकते हैं}}"</string>
+ <string name="zen_mode_apps_work_app" msgid="8528767938316361588">"<xliff:g id="APP_LABEL">%s</xliff:g> (काम के लिए)"</string>
<string name="zen_mode_apps_calculating" msgid="5420121396943539286">"डेटा फ़ेच किया जा रहा है…"</string>
+ <string name="zen_mode_plus_n_items" msgid="6136713354369243421">"+<xliff:g id="NUMBER">%d</xliff:g>"</string>
<string name="zen_mode_bypassing_apps" msgid="625309443389126481">"ऐप्लिकेशन को ओवरराइड करने की मंज़ूरी दें"</string>
<string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"ऐप्लिकेशन जो \'परेशान न करें\' मोड को बायपास कर सकते हैं"</string>
<string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"और ऐप्लिकेशन चुनें"</string>
@@ -3832,6 +3822,7 @@
<string name="zen_mode_sounds_none" msgid="6557474361948269420">"कोई भी आवाज़ \'परेशान न करें\' मोड को बायपास नहीं कर सकती"</string>
<string name="zen_mode_people_none" msgid="4613147461974255046">"कोई भी व्यक्ति \'परेशान न करें\' मोड को बायपास नहीं कर सकता"</string>
<string name="zen_mode_people_some" msgid="9101872681298810281">"कुछ चुने हुए लोग \'परेशान न करें\' मोड को बायपास कर सकते हैं"</string>
+ <string name="zen_mode_people_repeat_callers" msgid="4499084111069828761">"बार-बार कॉल करने वालों (कॉलर) से परेशानी हो सकती है"</string>
<string name="zen_mode_people_all" msgid="311036110283015205">"कोई भी व्यक्ति \'परेशान न करें\' मोड को बायपास कर सकता है"</string>
<string name="zen_mode_repeat_callers" msgid="2270356100287792138">"बार-बार कॉल करने वाले (कॉलर)"</string>
<string name="zen_mode_repeat_callers_title" msgid="8016699240338264781">"दोबारा काॅल करने वालों को बायपास करने की अनुमति दें"</string>
@@ -3851,13 +3842,37 @@
<string name="zen_mode_summary_alarms_only_by_hour" msgid="7400910210950788163">"{count,plural, =1{{time} तक, सिर्फ़ एक घंटे के लिए अलार्म मोड पर स्विच करें}one{{time} तक, सिर्फ़ # घंटे के लिए अलार्म मोड पर स्विच करें}other{{time} तक, सिर्फ़ # घंटों के लिए अलार्म मोड पर स्विच करें}}"</string>
<string name="zen_mode_summary_alarms_only_by_time" msgid="8140619669703968810">"केवल <xliff:g id="FORMATTEDTIME">%1$s</xliff:g> तक के लिए अलार्म को बदलें"</string>
<string name="zen_mode_summary_always" msgid="722093064250082317">"हमेशा बाधित करें में बदलें"</string>
- <!-- no translation found for zen_mode_rename_title (8146882272966214558) -->
+ <string name="zen_mode_rename_title" msgid="8146882272966214558">"मोड में बदलाव करें"</string>
+ <string name="zen_mode_new_custom_title" msgid="321750898430776191">"मोड जोड़ें"</string>
+ <string name="zen_mode_new_custom_default_name" msgid="2778307946775085105">"कस्टम मोड"</string>
+ <string name="zen_mode_edit_name_hint" msgid="4584652062167540536">"मोड का नाम"</string>
+ <string name="zen_mode_trigger_title_schedule_calendar" msgid="9206609438617550331">"कैलेंडर इवेंट"</string>
+ <string name="zen_mode_trigger_title_bedtime" msgid="5086070900588489978">"सोने का शेड्यूल"</string>
+ <string name="zen_mode_trigger_title_driving" msgid="7890990983453164403">"ड्राइव करते समय"</string>
+ <string name="zen_mode_trigger_title_generic" msgid="601273385119550420">"ऐप्लिकेशन से लिंक किए गए मोड"</string>
+ <string name="zen_mode_trigger_summary_settings_in_app" msgid="4860667191183702601">"जानकारी और सेटिंग <xliff:g id="APP_NAME">%1$s</xliff:g> में दिखेंगी"</string>
+ <string name="zen_mode_trigger_summary_managed_by_app" msgid="8631011868193102098">"इन्हें <xliff:g id="APP_NAME">%1$s</xliff:g> मैनेज कर रहा है"</string>
+ <string name="zen_mode_confirm_disable_title" msgid="1232297660775719796">"मोड को बंद करें"</string>
+ <string name="zen_mode_confirm_disable_message" msgid="7315541221665718491">"अगर इस सुविधा को बंद कर दिया जाता है, तो मोड सही तरीके से काम नहीं करेगा. उससे जुड़ी सेटिंग भी छिपा दी जाएंगी."</string>
+ <string name="zen_mode_action_disable" msgid="3552921561331044881">"बंद करें"</string>
+ <string name="zen_mode_confirm_enable_title" msgid="5683371335847448595">"मोड को चालू करें"</string>
+ <string name="zen_mode_confirm_enable_message" msgid="7017879133260011419">"अगर इस सुविधा को चालू कर दिया जाता है, तो प्राथमिकता मोड शेड्यूल के हिसाब से अपने-आप चालू हो जाएगा."</string>
+ <string name="zen_mode_action_enable" msgid="1161480633223176531">"चालू करें"</string>
+ <!-- no translation found for zen_mode_blurb_schedule_time (8223898702097484009) -->
<skip />
- <!-- no translation found for zen_mode_new_custom_title (321750898430776191) -->
+ <!-- no translation found for zen_mode_blurb_schedule_calendar (382177907856065945) -->
<skip />
- <!-- no translation found for zen_mode_new_custom_default_name (2778307946775085105) -->
+ <!-- no translation found for zen_mode_blurb_bedtime (6155075956151013457) -->
<skip />
- <!-- no translation found for zen_mode_edit_name_hint (4584652062167540536) -->
+ <!-- no translation found for zen_mode_blurb_driving (1316054379000667305) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_immersive (5884004861848687869) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_theater (2999237960059524225) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_managed (5473921634985032149) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_generic (3041601339807075625) -->
<skip />
<string name="warning_button_text" msgid="1274234338874005639">"चेतावनी"</string>
<string name="suggestion_button_close" msgid="6865170855573283759">"बंद करें"</string>
@@ -4845,9 +4860,8 @@
<string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"बैटरी"</string>
<string name="settings_panel_title" msgid="346363079938069215">"सेटिंग पैनल"</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>
+ <!-- no translation found for enable_desktop_mode_on_secondary_display (2609567824593768780) -->
+ <skip />
<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>
@@ -5022,7 +5036,6 @@
<string name="default_active_sim_mobile_data" msgid="6798083892814045301">"मोबाइल डेटा"</string>
<string name="wifi_scan_notify_message" msgid="1331238142061476869">"डिवाइस इस्तेमाल करने के अनुभव को बेहतर बनाने के लिए, ऐप्लिकेशन और सेवाएं किसी भी समय वाई-फ़ाई नेटवर्क स्कैन कर सकती हैं. ऐसा वाई-फ़ाई बंद होने पर भी किया जा सकता है. उदाहरण के लिए, इसका इस्तेमाल जगह से जुड़ी सुविधाओं और सेवाओं को बेहतर बनाने के लिए किया जा सकता है. वाई-फ़ाई स्कैनिंग की सेटिंग में जाकर, इसे बदला जा सकता है."</string>
<string name="wifi_scan_change" msgid="8438320311511852918">"बदलें"</string>
- <string name="preference_summary_default_combination" msgid="4643585915107796253">"<xliff:g id="STATE">%1$s</xliff:g> / <xliff:g id="NETWORKMODE">%2$s</xliff:g>"</string>
<string name="mobile_data_connection_active" msgid="2422223108911581552">"कनेक्ट हो गया"</string>
<string name="mobile_data_temp_connection_active" msgid="3430470299756236413">"इंटरनेट कनेक्शन कुछ समय के लिए है"</string>
<string name="mobile_data_temp_using" msgid="5211002380149434155">"कुछ समय के लिए <xliff:g id="SUBNAME">%1$s</xliff:g> का इंटरनेट इस्तेमाल किया जा रहा है"</string>
@@ -5054,7 +5067,7 @@
<string name="app_pinning_main_switch_title" msgid="5465506660064032876">"ऐप्लिकेशन पिन करने की सुविधा का इस्तेमाल करें"</string>
<string name="developer_options_main_switch_title" msgid="1720074589554152501">"डेवलपर के लिए सेटिंग और टूल का इस्तेमाल करें"</string>
<string name="default_print_service_main_switch_title" msgid="4697133737128324036">"प्रिंट करने की सेवा का इस्तेमाल करें"</string>
- <string name="multiple_users_main_switch_title" msgid="9158796544835843201">"उपयोगकर्ता को स्विच करने की अनुमति दें"</string>
+ <string name="multiple_users_main_switch_title" msgid="9158796544835843201">"उपयोगकर्ता जोड़ने की अनुमति दें"</string>
<string name="multiple_users_main_switch_keywords" msgid="4845954458094134356">"अनुमति दें, कई, इस्तेमाल करने वाले, मंज़ूरी दें, कई सारे"</string>
<string name="multiple_users_title_keywords" msgid="2395593167746225172">"कई, उपयोगकर्ता, प्रोफ़ाइलें, लोग, खाते, स्विच, बहुत"</string>
<string name="wireless_debugging_main_switch_title" msgid="8463499572781441719">"वॉयरलेस डीबगिंग का इस्तेमाल करें"</string>
@@ -5168,9 +5181,11 @@
<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="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_enable_freeform_support" msgid="3697462756493543645">"फ़्रीफ़ॉर्म विंडो सहायता मोड को चालू करने के लिए, डिवाइस को फिर से चालू करना होगा."</string>
+ <!-- no translation found for reboot_dialog_override_desktop_mode (7480950772574354130) -->
+ <skip />
+ <!-- no translation found for reboot_dialog_enable_desktop_mode_on_secondary_display (1153621881052401924) -->
+ <skip />
<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>
@@ -5401,5 +5416,6 @@
<string name="audio_streams_main_page_password_dialog_join_button" msgid="2967747276379153408">"स्ट्रीम सुनें"</string>
<string name="audio_streams_main_page_qr_code_scanner_summary" msgid="5312980105735143360">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> पर सुनने के लिए, ऑडियो स्ट्रीम का क्यूआर कोड स्कैन करें"</string>
<string name="audio_streams_main_page_password_dialog_cannot_edit" msgid="9020898619297520153">"शेयर करने के दौरान पासवर्ड में बदलाव नहीं किया जा सकता. पासवर्ड बदलने के लिए, पहले ऑडियो शेयर करने की सुविधा बंद करें."</string>
- <string name="homepage_search" msgid="6759334912284663559">"खोज की सेटिंग"</string>
+ <string name="audio_streams_qr_code_scanner_label" msgid="8799703301071378034">"क्यूआर कोड स्कैनर"</string>
+ <string name="homepage_search" msgid="6759334912284663559">"सेटिंग खोजें"</string>
</resources>
diff --git a/res/values-hr/strings.xml b/res/values-hr/strings.xml
index 13a3f34..7089b56 100644
--- a/res/values-hr/strings.xml
+++ b/res/values-hr/strings.xml
@@ -41,6 +41,8 @@
<string name="radioInfo_data_suspended" msgid="2001254415431299603">"Obustavljeno"</string>
<string name="radioInfo_unknown" msgid="2892562356748600367">"Nepoznato"</string>
<string name="preview_pager_content_description" msgid="3762247188224576303">"Pregled"</string>
+ <!-- no translation found for qr_code_content_description (1852208464419291347) -->
+ <skip />
<string name="font_size_make_smaller_desc" msgid="4978038055549590140">"Smanji"</string>
<string name="font_size_make_larger_desc" msgid="5583046033381722247">"Povećaj"</string>
<string name="stay_awake_on_fold_title" msgid="6590454679898134221">"Uvijek"</string>
@@ -283,7 +285,7 @@
<string name="location_settings_summary_location_off" msgid="4797932754681162262">"Isključeno"</string>
<string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{Uključeno / # aplikacija ima pristup lokaciji}one{Uključeno / # aplikacija ima pristup lokaciji}few{Uključeno / # aplikacije imaju pristup lokaciji}other{Uključeno / # aplikacija ima pristup lokaciji}}"</string>
<string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"Učitavanje…"</string>
- <string name="location_settings_footer_general" msgid="1040507068701188821">"Aplikacije s dopuštenjem za uređaje u blizini mogu odrediti približni položaj povezanih uređaja."</string>
+ <string name="location_settings_footer_general" msgid="3447585552176173502">"Aplikacije s dopuštenjem za uređaje u blizini mogu odrediti približni položaj povezanih uređaja."</string>
<string name="location_settings_footer_location_off" msgid="8568995909147566720">"Pristup lokaciji isključen je za aplikacije i usluge. Lokacija vašeg uređaja i dalje se može poslati djelatnicima hitnih službi kada nazovete broj hitne službe ili na njega pošaljete SMS."</string>
<string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Saznajte više o postavkama lokacije"</string>
<string name="location_settings_tooltip_text_for_chrome" msgid="5781821709250544575">"Da biste promijenili, otvorite Postavke ChromeOS-a > Privatnost i sigurnost > Kontrole privatnosti > Pristup lokaciji"</string>
@@ -743,22 +745,22 @@
</xliff:g>Beskontaktno plaćanje neće biti dostupno.<xliff:g id="EMPTY_LINE_1">
-</xliff:g>Wallet, plaćanje i druge aplikacije koje zahtijevaju autentifikaciju možda neće ispravno funkcionirati."</string>
+</xliff:g>Novčanik, plaćanje i druge aplikacije koje zahtijevaju autentifikaciju možda neće ispravno funkcionirati."</string>
<string name="unlock_disable_frp_warning_content_fingerprint_authbound_keys" msgid="7158076544627335461">"Vaše će se zaključavanje zaslona i otključavanje otiskom prsta ukloniti.<xliff:g id="EMPTY_LINE_0">
</xliff:g>Beskontaktno plaćanje neće biti dostupno.<xliff:g id="EMPTY_LINE_1">
-</xliff:g>Wallet, plaćanje i druge aplikacije koje zahtijevaju autentifikaciju možda neće ispravno funkcionirati."</string>
+</xliff:g>Novčanik, plaćanje i druge aplikacije koje zahtijevaju autentifikaciju možda neće ispravno funkcionirati."</string>
<string name="unlock_disable_frp_warning_content_face_authbound_keys" msgid="8120786951217029818">"Vaše će se zaključavanje zaslona i otključavanje licem ukloniti.<xliff:g id="EMPTY_LINE_0">
</xliff:g>Beskontaktno plaćanje neće biti dostupno.<xliff:g id="EMPTY_LINE_1">
-</xliff:g>Wallet, plaćanje i druge aplikacije koje zahtijevaju autentifikaciju možda neće ispravno funkcionirati."</string>
+</xliff:g>Novčanik, plaćanje i druge aplikacije koje zahtijevaju autentifikaciju možda neće ispravno funkcionirati."</string>
<string name="unlock_disable_frp_warning_content_face_fingerprint_authbound_keys" msgid="1574263040292024543">"Vaše će se zaključavanje zaslona te otključavanje licem i otiskom prsta ukloniti.<xliff:g id="EMPTY_LINE_0">
</xliff:g>Beskontaktno plaćanje neće biti dostupno.<xliff:g id="EMPTY_LINE_1">
-</xliff:g>Wallet, plaćanje i druge aplikacije koje zahtijevaju autentifikaciju možda neće ispravno funkcionirati."</string>
+</xliff:g>Novčanik, plaćanje i druge aplikacije koje zahtijevaju autentifikaciju možda neće ispravno funkcionirati."</string>
<string name="unlock_disable_frp_warning_ok" msgid="6173427638951230842">"Izbriši"</string>
<string name="unlock_footer_high_complexity_requested" msgid="4471274783909915352">"<xliff:g id="APP_NAME">%1$s</xliff:g> preporučuje snažniji PIN ili zaporku i bez toga možda neće pravilno funkcionirati"</string>
<string name="unlock_footer_medium_complexity_requested" msgid="5515870066751600640">"<xliff:g id="APP_NAME">%1$s</xliff:g> preporučuje novi PIN ili zaporku i bez toga možda neće pravilno funkcionirati"</string>
@@ -850,7 +852,6 @@
<string name="nfc_reboot_dialog_title" msgid="2033983438635768169">"Ponovo pokrenuti?"</string>
<string name="nfc_reboot_dialog_message" msgid="4929353168157966992">"Detaljno zapisivanje za NFC namijenjeno je samo u razvojne svrhe. Dodatni podaci NFC-a uključeni su u izvješća o programskim pogreškama koja mogu sadržavati privatne podatke. Ponovo pokrenite uređaj da biste promijenili tu postavku."</string>
<string name="nfc_reboot_dialog_confirm" msgid="4769763632008584567">"Ponovno pokreni"</string>
- <string name="keywords_external_display" msgid="4181375057920134909">"zrcaljenje, vanjski zaslon, povezani zaslon, USB zaslon, razlučivost, rotacija"</string>
<string name="external_display_on" msgid="2560104443500154333">"Uključeno"</string>
<string name="external_display_off" msgid="5634413756025351374">"Isključeno"</string>
<string name="external_display_settings_title" msgid="6256884595821605779">"Vanjski zaslon"</string>
@@ -1636,7 +1637,7 @@
<string name="lockpassword_choose_your_pin_header" msgid="7754265746504679473">"Postavite PIN"</string>
<string name="lockpassword_choose_your_profile_pin_header" msgid="4581749963670819048">"Postavite PIN poslovnog profila"</string>
<string name="lockpassword_choose_your_pattern_header" msgid="5674909390779586252">"Postavite uzorak"</string>
- <string name="lockpassword_choose_your_pattern_description" msgid="6808109256008481046">"Radi dodatne sigurnosti, postavite uzorak za otključavanje uređaja"</string>
+ <string name="lockpassword_choose_your_pattern_description" msgid="6808109256008481046">"Da bi uređaj bio još sigurniji, postavite uzorak za otključavanje"</string>
<string name="lockpassword_choose_your_profile_pattern_header" msgid="3101811498330756641">"Postavite uzorak poslovnog profila"</string>
<string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="3167261267229254090">"Otisak prsta zahtijeva zaporku"</string>
<string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="4707788269512303400">"Otisak prsta zahtijeva uzorak"</string>
@@ -1918,6 +1919,8 @@
<string name="slow_keys_summary" msgid="1784371292745423292">"Vrijeme potrebno za aktivaciju pritiska tipke prilagođava se na <xliff:g id="SLOW_KEYS_THRESHOLD">%1$d</xliff:g> ms"</string>
<string name="sticky_keys" msgid="7317317044898161747">"Ljepljive tipke"</string>
<string name="sticky_keys_summary" msgid="1844953803625480623">"Pritisnite jednu po jednu tipku za prečace umjesto da ih pritisnete zajedno"</string>
+ <string name="mouse_keys" msgid="6237254627808525540">"Tipke miša"</string>
+ <string name="mouse_keys_summary" msgid="2396247040177734245">"Upotrijebite fizičku tipkovnicu za upravljanje mišem."</string>
<string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"Tipkovni prečaci"</string>
<string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"Prikaži popis prečaca"</string>
<string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"Tipkovnice i alati radnog profila"</string>
@@ -1942,14 +1945,10 @@
<string name="pointer_fill_style_yellow_button" msgid="5025969961559379024">"Promjena ispunj. pokaz. na žuto"</string>
<string name="pointer_fill_style_pink_button" msgid="4106218142489635673">"Promjena ispunj. pokaz. na ružič."</string>
<string name="pointer_fill_style_blue_button" msgid="5594958078854032785">"Promjena ispunj. pokaz. na plavo"</string>
- <!-- no translation found for pointer_stroke_style (1886986630216050665) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_white (673686194443825383) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_black (4655806167067437330) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_none (8953927511729800247) -->
- <skip />
+ <string name="pointer_stroke_style" msgid="1886986630216050665">"Stil poteza pokazivačem"</string>
+ <string name="pointer_stroke_style_name_white" msgid="673686194443825383">"Bijelo"</string>
+ <string name="pointer_stroke_style_name_black" msgid="4655806167067437330">"Crno"</string>
+ <string name="pointer_stroke_style_name_none" msgid="8953927511729800247">"Ništa"</string>
<string name="trackpad_touch_gesture" msgid="8641725062131922497">"Učenje pokreta za dodirnu podlogu"</string>
<string name="keywords_touchpad" msgid="8159846254066666032">"dodirna površina, miš, pokazivač, pomicanje, prijeći prstom, kliknuti desnom tipkom, kliknuti, pokazivači"</string>
<string name="keywords_trackpad_bottom_right_tap" msgid="1285062446073929305">"kliknuti desnom tipkom, dodirnuti"</string>
@@ -2179,8 +2178,6 @@
<string name="accessibility_shortcut_edit_dialog_summary_floating_button" msgid="6266489864614886247">"Dodirnite plutajući gumb"</string>
<string name="accessibility_shortcut_edit_dialog_title_software_by_gesture" msgid="4775049370625630546">"Pokret za pristupačnost"</string>
<string name="accessibility_shortcut_edit_dialog_summary_software" msgid="8315934725362849788">"Dodirnite gumb za pristupačnost <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g> pri dnu zaslona. Da biste prešli na neku drugu značajku, dodirnite i zadržite gumb za pristupačnost."</string>
- <string name="accessibility_shortcut_edit_dialog_summary_software_gesture" msgid="8292555254353761635">"Prijeđite s dva prsta prema gore od dna zaslona.\n\nDa biste prešli na neku drugu značajku, prijeđite s dva prsta prema gore i zadržite."</string>
- <string name="accessibility_shortcut_edit_dialog_summary_software_gesture_talkback" msgid="84483464524360845">"Prijeđite s tri prsta prema gore od dna zaslona.\n\nDa biste prešli na neku drugu značajku, prijeđite s tri prsta prema gore i zadržite."</string>
<string name="accessibility_shortcut_edit_dialog_summary_gesture" msgid="2081123009255579884">"{count,plural, =1{Prijeđite prstom od dna zaslona prema gore. Da biste prešli na neku drugu značajku, prijeđite prstom prema gore i zadržite.}one{Prijeđite # prstom prema gore s dna zaslona. Da biste prešli na neku drugu značajku, prijeđite # prstom prema gore i zadržite.}few{Prijeđite s # prsta prema gore s dna zaslona. Da biste prešli na neku drugu značajku, prijeđite s # prsta prema gore i zadržite.}other{Prijeđite s # prstiju prema gore s dna zaslona. Da biste prešli na neku drugu značajku, prijeđite s # prstiju prema gore i zadržite.}}"</string>
<string name="accessibility_shortcut_edit_dialog_summary_software_floating" msgid="4459254227203203324"><annotation id="link">"Više opcija"</annotation></string>
<string name="footer_learn_more_content_description" msgid="8843798273152131341">"Saznajte više o usluzi <xliff:g id="SERVICE">%1$s</xliff:g>"</string>
@@ -2191,16 +2188,12 @@
<string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="844089763968552142">"Tipke za glasnoću"</string>
<string name="accessibility_shortcut_hardware_keyword" msgid="2483152542320987022">"tipke za glasnoću"</string>
<string name="accessibility_shortcut_edit_dialog_summary_hardware" msgid="2503134386397991634">"Pritisnite i zadržite obje tipke za glasnoću"</string>
- <string name="accessibility_shortcut_edit_dialog_title_two_finger_double_tap" msgid="2271778556854020996">"Dvaput dodirnite zaslon dvama prstima"</string>
<string name="accessibility_shortcut_edit_screen_title_two_finger_double_tap" msgid="8952595692906527694">"Dodirnite dvaput s %1$d prsta"</string>
<string name="accessibility_shortcut_edit_screen_summary_two_finger_double_tap" msgid="385404127425496362">"Brzo dodirnite zaslon dvaput s %1$d prsta"</string>
<string name="accessibility_shortcut_edit_screen_title_triple_tap" msgid="3314488747597058942">"Dodirnite triput"</string>
<string name="accessibility_shortcut_edit_screen_summary_triple_tap" msgid="4839204951599629871">"Brzo dodirnite zaslon %1$d puta. To bi moglo usporiti uređaj."</string>
<string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="6271718715836961167">"Dodirnite dvaput s %1$d prsta"</string>
- <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"Brzo dodirnite zaslon dvama prstima ovoliko puta: {0,number,integer}"</string>
- <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"Triput dodirnite zaslon"</string>
<string name="accessibility_shortcut_triple_tap_keyword" msgid="5359347130888464334">"dodirnite triput"</string>
- <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"Brzo dodirnite zaslon {0,number,integer} puta. Taj prečac može usporiti uređaj"</string>
<string name="accessibility_shortcut_edit_dialog_title_advance" msgid="4567868630655591506">"Napredno"</string>
<string name="accessibility_screen_magnification_navbar_configuration_warning" msgid="266736851606791552">"Gumb Pristupačnost postavljen je na <xliff:g id="SERVICE">%1$s</xliff:g>. Da biste upotrijebili povećanje, dodirnite i zadržite gumb Pristupačnost i zatim odaberite povećanje."</string>
<string name="accessibility_screen_magnification_gesture_navigation_warning" msgid="991017769735632046">"Pokret pristupačnosti postavljen je tako da otvara <xliff:g id="SERVICE">%1$s</xliff:g>. Da biste koristili povećanje, s dva prsta prijeđite od dna zaslona prema gore i zadržite. Zatim odaberite povećanje."</string>
@@ -2369,6 +2362,7 @@
<string name="daltonizer_mode_tritanomaly_title" msgid="2278786218762602022">"Plavo – žuto"</string>
<string name="daltonizer_mode_grayscale_title" msgid="152005391387952588">"Nijanse sive"</string>
<string name="daltonizer_saturation_title" msgid="2999486412114963068">"Intenzitet"</string>
+ <string name="daltonizer_saturation_unavailable_summary" msgid="8319753055567798775">"Nedostupno za način nijansi sive ili kad je korekcija boja onemogućena"</string>
<string name="daltonizer_mode_deuteranomaly_summary" msgid="2117727423019598455">"Oslabljen osjet zelene boje, deuteranomalija"</string>
<string name="daltonizer_mode_protanomaly_summary" msgid="4617032854982040748">"Oslabljen osjet crvene boje, protanomalija"</string>
<string name="daltonizer_mode_tritanomaly_summary" msgid="2428218320118180070">"Tritanomalija"</string>
@@ -2418,15 +2412,8 @@
<string name="color_cyan" msgid="4341758639597035927">"Cijan"</string>
<string name="color_yellow" msgid="5957551912912679058">"Žuta"</string>
<string name="color_magenta" msgid="8943538189219528423">"Grimizna"</string>
- <string name="enable_service_title" msgid="7231533866953706788">"Želite li aplikaciji <xliff:g id="SERVICE">%1$s</xliff:g> dopustiti potpunu kontrolu nad uređajem?"</string>
<string name="capabilities_list_title" msgid="1225853611983394386">"<xliff:g id="SERVICE">%1$s</xliff:g> treba sljedeće:"</string>
<string name="touch_filtered_warning" msgid="4225815157460318241">"Budući da aplikacija prekriva zahtjev za dopuštenje, Postavke ne mogu potvrditi vaš odgovor."</string>
- <string name="accessibility_service_warning" msgid="6779187188736432618">"Usluga <xliff:g id="SERVICE">%1$s</xliff:g> zahtijeva punu kontrolu nad ovim uređajem. Ta usluga može čitati zaslon i postupati u ime korisnika kojima je potrebna prilagođena pristupačnost. Ta razina kontrole nije primjerena za većinu aplikacija."</string>
- <string name="accessibility_service_warning_description" msgid="6573203795976134751">"Potpuna kontrola prikladna je za aplikacije koje vam pomažu s potrebama pristupačnosti, ali ne i za većinu aplikacija."</string>
- <string name="accessibility_service_screen_control_title" msgid="324795030658109870">"Pregled zaslona i upravljanje njime"</string>
- <string name="accessibility_service_screen_control_description" msgid="8431940515157990426">"Može čitati sav sadržaj na zaslonu i prikazati sadržaj povrh drugih aplikacija."</string>
- <string name="accessibility_service_action_perform_title" msgid="1449360056585337833">"Pregled i izvršavanje radnji"</string>
- <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"Može pratiti vaše interakcije s aplikacijama ili senzorom uređaja i stupati u interakciju s aplikacijama u vaše ime."</string>
<string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Dopusti"</string>
<string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Odbij"</string>
<string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Isključi"</string>
@@ -3656,9 +3643,9 @@
<string name="notif_listener_not_migrated" msgid="6265206376374278226">"Ta aplikacija ne podržava napredne postavke"</string>
<string name="notif_listener_more_settings" msgid="1348409392307208921">"Više postavki"</string>
<string name="notif_listener_more_settings_desc" msgid="7995492074281663658">"Više postavki dostupno je unutar aplikacije"</string>
- <string name="notification_polite_title" msgid="4737150709382859870">"Prilagodljive obavijesti"</string>
- <string name="notification_polite_main_control_title" msgid="7267191551379543859">"Koristi prilagodljive obavijesti"</string>
- <string name="notification_polite_description" msgid="7749280535620291610">"Kad u kratkom vremenskom razdoblju primite velik broj obavijesti, telefon će smanjiti glasnoću i minimizirati skočne prozore na zaslonu u trajanju do dvije minute. Pozivi, alarmi i prioritetni razgovori i dalje će vibrirati, zvučno se oglašavati ili prikazivati na zaslonu, a sve obavijesti jednostavno ćete pronaći tako da povučete prstom od vrha zaslona prema dolje."</string>
+ <string name="notification_polite_title" msgid="6121016426991791557">"Postupno stišavanje obavijesti"</string>
+ <string name="notification_polite_main_control_title" msgid="5812529809151927149">"Upotreba stišavanja obavijesti"</string>
+ <string name="notification_polite_description" msgid="5497748284893832854">"Ako u kratkom vremenskom razdoblju primite velik broj obavijesti, uređaj će smanjiti glasnoću i minimizirati upozorenja u trajanju do dvije minute. To ne utječe na pozive, alarme i prioritetne razgovore. \n\nObavijesti primljene tijekom stišavanja mogu se pronaći tako da povučete prstom prema dolje s vrha zaslona."</string>
<string name="notification_polite_work" msgid="8823596456640216391">"Primijeni na poslovne profile"</string>
<string name="notification_polite_work_summary" msgid="5014189280132951378">"Primijeni na aplikacije poslovnog profila"</string>
<string name="vr_listeners_title" msgid="4960357292472540964">"Pomoćne usluge za virtualnu stvarnost"</string>
@@ -3815,7 +3802,9 @@
<string name="zen_mode_apps_priority_apps" msgid="7386196048313716076">"Odabrane aplikacije"</string>
<string name="zen_mode_apps_none_apps" msgid="2493642312793604327">"Nijedna"</string>
<string name="zen_mode_apps_subtext" msgid="1764211974662012877">"{count,plural,offset:2 =0{Nijedna aplikacija ne može prekidati}=1{{app_1} može prekidati}=2{{app_1} i {app_2} mogu prekidati}=3{{app_1}, {app_2} i {app_3} mogu prekidati}one{{app_1}, {app_2} i još # aplikacija mogu prekidati}few{{app_1}, {app_2} i još # aplikacije mogu prekidati}other{{app_1}, {app_2} i još # aplikacija mogu prekidati}}"</string>
+ <string name="zen_mode_apps_work_app" msgid="8528767938316361588">"<xliff:g id="APP_LABEL">%s</xliff:g> (posao)"</string>
<string name="zen_mode_apps_calculating" msgid="5420121396943539286">"Izračun u tijeku…"</string>
+ <string name="zen_mode_plus_n_items" msgid="6136713354369243421">"+ <xliff:g id="NUMBER">%d</xliff:g>"</string>
<string name="zen_mode_bypassing_apps" msgid="625309443389126481">"Dopusti aplikacijama da nadjačaju"</string>
<string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"Aplikacije koje mogu prekidati"</string>
<string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"Odaberite više aplikacija"</string>
@@ -3833,6 +3822,7 @@
<string name="zen_mode_sounds_none" msgid="6557474361948269420">"Ništa ne može prekidati"</string>
<string name="zen_mode_people_none" msgid="4613147461974255046">"Nitko ne može prekidati"</string>
<string name="zen_mode_people_some" msgid="9101872681298810281">"Neke osobe mogu prekidati"</string>
+ <string name="zen_mode_people_repeat_callers" msgid="4499084111069828761">"Ponovni pozivatelji mogu ometati"</string>
<string name="zen_mode_people_all" msgid="311036110283015205">"Sve osobe mogu prekidati"</string>
<string name="zen_mode_repeat_callers" msgid="2270356100287792138">"Uzastopni pozivi"</string>
<string name="zen_mode_repeat_callers_title" msgid="8016699240338264781">"Dopusti ponovne pozivatelje"</string>
@@ -3856,6 +3846,34 @@
<string name="zen_mode_new_custom_title" msgid="321750898430776191">"Dodavanje načina"</string>
<string name="zen_mode_new_custom_default_name" msgid="2778307946775085105">"Prilagođeni način"</string>
<string name="zen_mode_edit_name_hint" msgid="4584652062167540536">"Naziv načina"</string>
+ <string name="zen_mode_trigger_title_schedule_calendar" msgid="9206609438617550331">"Događaji iz kalendara"</string>
+ <string name="zen_mode_trigger_title_bedtime" msgid="5086070900588489978">"Raspored spavanja"</string>
+ <string name="zen_mode_trigger_title_driving" msgid="7890990983453164403">"Tijekom vožnje"</string>
+ <string name="zen_mode_trigger_title_generic" msgid="601273385119550420">"Povezano s aplikacijom"</string>
+ <string name="zen_mode_trigger_summary_settings_in_app" msgid="4860667191183702601">"Podaci i postavke u aplikaciji <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+ <string name="zen_mode_trigger_summary_managed_by_app" msgid="8631011868193102098">"Upravlja <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+ <string name="zen_mode_confirm_disable_title" msgid="1232297660775719796">"Onemogućivanje načina"</string>
+ <string name="zen_mode_confirm_disable_message" msgid="7315541221665718491">"Ako onemogućite tu značajku, način više neće funkcionirati prema očekivanjima, a njegove će se postavke sakriti."</string>
+ <string name="zen_mode_action_disable" msgid="3552921561331044881">"Onemogući"</string>
+ <string name="zen_mode_confirm_enable_title" msgid="5683371335847448595">"Omogućivanje načina"</string>
+ <string name="zen_mode_confirm_enable_message" msgid="7017879133260011419">"Ako omogućite tu značajku, način će se automatski aktivirati prema rasporedu."</string>
+ <string name="zen_mode_action_enable" msgid="1161480633223176531">"Omogući"</string>
+ <!-- no translation found for zen_mode_blurb_schedule_time (8223898702097484009) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_schedule_calendar (382177907856065945) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_bedtime (6155075956151013457) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_driving (1316054379000667305) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_immersive (5884004861848687869) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_theater (2999237960059524225) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_managed (5473921634985032149) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_generic (3041601339807075625) -->
+ <skip />
<string name="warning_button_text" msgid="1274234338874005639">"Upozorenje"</string>
<string name="suggestion_button_close" msgid="6865170855573283759">"Zatvori"</string>
<string name="device_feedback" msgid="5351614458411688608">"Pošalji povr. informacije o uređaju"</string>
@@ -4842,9 +4860,8 @@
<string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"Baterija"</string>
<string name="settings_panel_title" msgid="346363079938069215">"Ploča postavki"</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>
+ <!-- no translation found for enable_desktop_mode_on_secondary_display (2609567824593768780) -->
+ <skip />
<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>
@@ -5020,7 +5037,6 @@
<string name="default_active_sim_mobile_data" msgid="6798083892814045301">"mobilne podatke"</string>
<string name="wifi_scan_notify_message" msgid="1331238142061476869">"Radi boljeg doživljaja na uređaju, aplikacije i usluge i dalje mogu tražiti Wi‑Fi mreže u bilo kojem trenutku, čak i kada je Wi‑Fi isključen. Time se primjerice mogu poboljšati značajke i usluge koje se temelje na lokaciji. To možete promijeniti u postavkama traženja Wi-Fija."</string>
<string name="wifi_scan_change" msgid="8438320311511852918">"Promijenite"</string>
- <string name="preference_summary_default_combination" msgid="4643585915107796253">"<xliff:g id="STATE">%1$s</xliff:g> / <xliff:g id="NETWORKMODE">%2$s</xliff:g>"</string>
<string name="mobile_data_connection_active" msgid="2422223108911581552">"Povezano"</string>
<string name="mobile_data_temp_connection_active" msgid="3430470299756236413">"Privremeno povezano"</string>
<string name="mobile_data_temp_using" msgid="5211002380149434155">"Privremeno koristite <xliff:g id="SUBNAME">%1$s</xliff:g>"</string>
@@ -5166,9 +5182,11 @@
<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="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_enable_freeform_support" msgid="3697462756493543645">"Za omogućivanje podrške za prozore slobodnog oblika potrebno je ponovno pokretanje."</string>
+ <!-- no translation found for reboot_dialog_override_desktop_mode (7480950772574354130) -->
+ <skip />
+ <!-- no translation found for reboot_dialog_enable_desktop_mode_on_secondary_display (1153621881052401924) -->
+ <skip />
<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>
@@ -5286,10 +5304,8 @@
<string name="show_captions_enabled" msgid="7089043007924626">"Uključeno"</string>
<string name="live_caption_disabled" msgid="3562035026547887366">"Isključeno"</string>
<string name="live_caption_enabled" msgid="5269360946200718949">"Uključeno"</string>
- <!-- no translation found for audio_seek_bar_state_left_first (8814986910920838972) -->
- <skip />
- <!-- no translation found for audio_seek_bar_state_right_first (1999368979633398876) -->
- <skip />
+ <string name="audio_seek_bar_state_left_first" msgid="8814986910920838972">"Zvuk %1$d%% lijevo, %2$d%% desno"</string>
+ <string name="audio_seek_bar_state_right_first" msgid="1999368979633398876">"Zvuk %1$d%% desno, %2$d%% lijevo"</string>
<string name="about_phone_device_name_warning" msgid="3243226572404472381">"Naziv vašeg uređaja vidljiv je aplikacijama koje ste instalirali. Mogu ga vidjeti i druge osobe kada se povežete s Bluetooth uređajima ili Wi-Fi mrežom ili kada postavite Wi-Fi žarišnu točku."</string>
<string name="grammatical_gender_title" msgid="8584242850477270828">"Gramatički rod"</string>
<string name="grammatical_gender_dialog_title" msgid="8754048592099871587">"Odaberite gramatički rod"</string>
@@ -5401,5 +5417,6 @@
<string name="audio_streams_main_page_password_dialog_join_button" msgid="2967747276379153408">"Slušajte stream"</string>
<string name="audio_streams_main_page_qr_code_scanner_summary" msgid="5312980105735143360">"Skenirajte QR kôd audiostreama da biste slušali s uređajem <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
<string name="audio_streams_main_page_password_dialog_cannot_edit" msgid="9020898619297520153">"Nije moguće urediti zaporku dok je zajedničko slušanje u tijeku. Da biste promijenili zaporku, prvo isključite zajedničko slušanje."</string>
+ <string name="audio_streams_qr_code_scanner_label" msgid="8799703301071378034">"Čitač QR koda"</string>
<string name="homepage_search" msgid="6759334912284663559">"Pretražite postavke"</string>
</resources>
diff --git a/res/values-hu/strings.xml b/res/values-hu/strings.xml
index d594397..fd953c2 100644
--- a/res/values-hu/strings.xml
+++ b/res/values-hu/strings.xml
@@ -41,6 +41,8 @@
<string name="radioInfo_data_suspended" msgid="2001254415431299603">"Felfüggesztve"</string>
<string name="radioInfo_unknown" msgid="2892562356748600367">"Ismeretlen"</string>
<string name="preview_pager_content_description" msgid="3762247188224576303">"Előnézet"</string>
+ <!-- no translation found for qr_code_content_description (1852208464419291347) -->
+ <skip />
<string name="font_size_make_smaller_desc" msgid="4978038055549590140">"Kisebb"</string>
<string name="font_size_make_larger_desc" msgid="5583046033381722247">"Nagyobb"</string>
<string name="stay_awake_on_fold_title" msgid="6590454679898134221">"Mindig"</string>
@@ -283,7 +285,7 @@
<string name="location_settings_summary_location_off" msgid="4797932754681162262">"Ki"</string>
<string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{Be / # alkalmazás hozzáfér a helyadatokhoz}other{Be / # alkalmazás hozzáfér a helyadatokhoz}}"</string>
<string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"Betöltés…"</string>
- <string name="location_settings_footer_general" msgid="1040507068701188821">"A közeli eszközökre vonatkozó engedéllyel rendelkező alkalmazások meghatározhatják a csatlakoztatott eszközök relatív pozícióját."</string>
+ <string name="location_settings_footer_general" msgid="3447585552176173502">"A közeli eszközökre vonatkozó engedéllyel rendelkező alkalmazások meghatározhatják a csatlakoztatott eszközök relatív pozícióját."</string>
<string name="location_settings_footer_location_off" msgid="8568995909147566720">"A helyhozzáférés ki van kapcsolva az alkalmazásoknál és a szolgáltatásoknál. A rendszer azonban így is elküldheti az eszköz helyét a segélyszolgálatoknak, ha Ön segélyhívó számot hív, vagy SMS-t küld rá."</string>
<string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"További információ a helybeállításokról"</string>
<string name="location_settings_tooltip_text_for_chrome" msgid="5781821709250544575">"A módosításához lépjen a következő menübe ChromeOS-eszközén: Beállítások > Adatvédelem és biztonság > Adatvédelmi beállítások > Helyhozzáférés"</string>
@@ -850,7 +852,6 @@
<string name="nfc_reboot_dialog_title" msgid="2033983438635768169">"Újraindítja az eszközt?"</string>
<string name="nfc_reboot_dialog_message" msgid="4929353168157966992">"A részletes NFC-naplózás csak fejlesztési célokra szolgál. A hibajelentésekben további NFC-adatok is szerepelnek, amelyek között privát információk is lehetnek. A beállítás módosításához indítsa újra eszközét."</string>
<string name="nfc_reboot_dialog_confirm" msgid="4769763632008584567">"Újraindítás"</string>
- <string name="keywords_external_display" msgid="4181375057920134909">"tükrözés, külső kijelző, csatlakoztatott kijelző, usb-s kijelző, felbontás, elforgatás"</string>
<string name="external_display_on" msgid="2560104443500154333">"Be"</string>
<string name="external_display_off" msgid="5634413756025351374">"Ki"</string>
<string name="external_display_settings_title" msgid="6256884595821605779">"Külső kijelző"</string>
@@ -1918,6 +1919,8 @@
<string name="slow_keys_summary" msgid="1784371292745423292">"Átállítja a billentyű lenyomásától az aktiválásig eltelő időtartamot <xliff:g id="SLOW_KEYS_THRESHOLD">%1$d</xliff:g> ms-ra"</string>
<string name="sticky_keys" msgid="7317317044898161747">"Beragadó billentyűk"</string>
<string name="sticky_keys_summary" msgid="1844953803625480623">"Egyszerre egy billentyű lenyomásával használhat billentyűparancsokat több billentyű egyszeri lenyomva tartása helyett"</string>
+ <string name="mouse_keys" msgid="6237254627808525540">"Egérgombok"</string>
+ <string name="mouse_keys_summary" msgid="2396247040177734245">"Használhatja a fizikai billentyűzetet az egér vezérlésére."</string>
<string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"Billentyűparancsok"</string>
<string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"Billentyűparancsok listájának megjelenítése"</string>
<string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"Munkaprofil billentyűzetei és eszközei"</string>
@@ -1942,14 +1945,10 @@
<string name="pointer_fill_style_yellow_button" msgid="5025969961559379024">"Mutatókitöltés-stílus módosítása: sárga"</string>
<string name="pointer_fill_style_pink_button" msgid="4106218142489635673">"Mutatókitöltés-stílus módosítása: rózsaszín"</string>
<string name="pointer_fill_style_blue_button" msgid="5594958078854032785">"Mutatókitöltés-stílus módosítása: kék"</string>
- <!-- no translation found for pointer_stroke_style (1886986630216050665) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_white (673686194443825383) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_black (4655806167067437330) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_none (8953927511729800247) -->
- <skip />
+ <string name="pointer_stroke_style" msgid="1886986630216050665">"Mutató húzásának stílusa"</string>
+ <string name="pointer_stroke_style_name_white" msgid="673686194443825383">"Fehér"</string>
+ <string name="pointer_stroke_style_name_black" msgid="4655806167067437330">"Fekete"</string>
+ <string name="pointer_stroke_style_name_none" msgid="8953927511729800247">"Nincs"</string>
<string name="trackpad_touch_gesture" msgid="8641725062131922497">"Érintőpad-kézmozdulatok megismerése"</string>
<string name="keywords_touchpad" msgid="8159846254066666032">"érintőpad, érintő pad, egér, kurzor, görgetés, csúsztatás, kattintás jobb egérgombbal, kattintás, mutató"</string>
<string name="keywords_trackpad_bottom_right_tap" msgid="1285062446073929305">"kattintás jobb egérgombbal, koppintás"</string>
@@ -2179,8 +2178,6 @@
<string name="accessibility_shortcut_edit_dialog_summary_floating_button" msgid="6266489864614886247">"Koppintson a lebegő gombra"</string>
<string name="accessibility_shortcut_edit_dialog_title_software_by_gesture" msgid="4775049370625630546">"Kisegítő kézmozdulat"</string>
<string name="accessibility_shortcut_edit_dialog_summary_software" msgid="8315934725362849788">"Koppintson a Kisegítő lehetőségek gombra (<xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g>) a képernyő alján. A funkciók közötti váltáshoz érintse meg és tartsa lenyomva a Kisegítő lehetőségek gombot."</string>
- <string name="accessibility_shortcut_edit_dialog_summary_software_gesture" msgid="8292555254353761635">"Csúsztasson két ujjával felfelé a képernyő aljáról.\n\nA funkciók közötti váltáshoz csúsztasson felfelé két ujjával, és ne emelje fel őket a képernyőről."</string>
- <string name="accessibility_shortcut_edit_dialog_summary_software_gesture_talkback" msgid="84483464524360845">"Csúsztasson három ujjával felfelé a képernyő aljáról.\n\nA funkciók közötti váltáshoz csúsztasson felfelé három ujjával, és ne emelje fel őket a képernyőről."</string>
<string name="accessibility_shortcut_edit_dialog_summary_gesture" msgid="2081123009255579884">"{count,plural, =1{Csúsztassa felfelé az ujját a képernyő aljától. A funkciók közötti váltáshoz húzza az ujját felfelé és tartsa a képernyőn.}other{Csúsztassa felfelé # ujját a képernyő aljától. A funkciók közötti váltáshoz csúsztassa felfelé # ujját, és tartsa lenyomva őket a képernyőn.}}"</string>
<string name="accessibility_shortcut_edit_dialog_summary_software_floating" msgid="4459254227203203324"><annotation id="link">"További lehetőségek"</annotation></string>
<string name="footer_learn_more_content_description" msgid="8843798273152131341">"További információ erről: <xliff:g id="SERVICE">%1$s</xliff:g>"</string>
@@ -2191,16 +2188,12 @@
<string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="844089763968552142">"Hangerőszabályzó gombok"</string>
<string name="accessibility_shortcut_hardware_keyword" msgid="2483152542320987022">"hangerőszabályzó gombok"</string>
<string name="accessibility_shortcut_edit_dialog_summary_hardware" msgid="2503134386397991634">"Tartsa lenyomva mindkét hangerőgombot"</string>
- <string name="accessibility_shortcut_edit_dialog_title_two_finger_double_tap" msgid="2271778556854020996">"Dupla koppintás a képernyőn két ujjal"</string>
<string name="accessibility_shortcut_edit_screen_title_two_finger_double_tap" msgid="8952595692906527694">"%1$d-ujjas dupla koppintás"</string>
<string name="accessibility_shortcut_edit_screen_summary_two_finger_double_tap" msgid="385404127425496362">"Koppintson gyorsan egymás után kétszer %1$d ujjal"</string>
<string name="accessibility_shortcut_edit_screen_title_triple_tap" msgid="3314488747597058942">"Három koppintás"</string>
<string name="accessibility_shortcut_edit_screen_summary_triple_tap" msgid="4839204951599629871">"Koppintson a képernyőre %1$d-szor gyorsan egymás után. Ez lelassíthatja az eszközét."</string>
<string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="6271718715836961167">"%1$d-ujjas dupla koppintás"</string>
- <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"Gyors koppintás a képernyőre két ujjal {0,number,integer} alkalommal"</string>
- <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"Háromszori koppintás a képernyőre"</string>
<string name="accessibility_shortcut_triple_tap_keyword" msgid="5359347130888464334">"három koppintás"</string>
- <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"Koppintson a képernyőre gyorsan, {0,number,integer} alkalommal. Ez a gyorsparancs lelassíthatja az eszközét."</string>
<string name="accessibility_shortcut_edit_dialog_title_advance" msgid="4567868630655591506">"Speciális"</string>
<string name="accessibility_screen_magnification_navbar_configuration_warning" msgid="266736851606791552">"A Kisegítő lehetőségek gomb a következőre van állítva: <xliff:g id="SERVICE">%1$s</xliff:g>. Nagyításhoz tartsa lenyomva a Kisegítő lehetőségek gombot, majd válassza a nagyítás lehetőséget."</string>
<string name="accessibility_screen_magnification_gesture_navigation_warning" msgid="991017769735632046">"A kisegítő kézmozdulat a következőre van beállítva: <xliff:g id="SERVICE">%1$s</xliff:g>. A nagyítás használatához gyorsan csúsztassa fel két ujját a képernyő aljáról, majd tartsa. Ezután válassza a nagyítás lehetőséget."</string>
@@ -2369,6 +2362,7 @@
<string name="daltonizer_mode_tritanomaly_title" msgid="2278786218762602022">"Kék-sárga"</string>
<string name="daltonizer_mode_grayscale_title" msgid="152005391387952588">"Szürkeárnyalatos"</string>
<string name="daltonizer_saturation_title" msgid="2999486412114963068">"Intenzitás"</string>
+ <string name="daltonizer_saturation_unavailable_summary" msgid="8319753055567798775">"Nem áll rendelkezésre szürkeárnyalatos módban, és amikor le van tiltva a színjavítás"</string>
<string name="daltonizer_mode_deuteranomaly_summary" msgid="2117727423019598455">"Zöldszín-tévesztés (deuteranomália)"</string>
<string name="daltonizer_mode_protanomaly_summary" msgid="4617032854982040748">"Vörösszín-tévesztés (protanomália)"</string>
<string name="daltonizer_mode_tritanomaly_summary" msgid="2428218320118180070">"Tritanomália"</string>
@@ -2418,15 +2412,8 @@
<string name="color_cyan" msgid="4341758639597035927">"Zöldeskék"</string>
<string name="color_yellow" msgid="5957551912912679058">"Sárga"</string>
<string name="color_magenta" msgid="8943538189219528423">"Magenta"</string>
- <string name="enable_service_title" msgid="7231533866953706788">"Teljes körű vezérlést biztosít eszköze felett a(z) <xliff:g id="SERVICE">%1$s</xliff:g> szolgáltatás számára?"</string>
<string name="capabilities_list_title" msgid="1225853611983394386">"A(z) <xliff:g id="SERVICE">%1$s</xliff:g> szolgáltatásnak a következőkre van szüksége:"</string>
<string name="touch_filtered_warning" msgid="4225815157460318241">"Mivel az egyik alkalmazás zavar egy engedélykérelmet, a Beállítások funkció nem tudja ellenőrizni az Ön válaszát."</string>
- <string name="accessibility_service_warning" msgid="6779187188736432618">"A(z) <xliff:g id="SERVICE">%1$s</xliff:g> teljes irányítást kér az eszköz felett. Az alkalmazás felolvashatja a képernyőn lévő tartalmat, és cselekedhet a kisegítő lehetőségekre szoruló felhasználók helyett. Az irányítás ilyen szintje nem megfelelő a legtöbb alkalmazás számára."</string>
- <string name="accessibility_service_warning_description" msgid="6573203795976134751">"A teljes vezérlés indokolt olyan alkalmazásoknál, amelyek kisegítő lehetőségeket nyújtanak, a legtöbb alkalmazásnál azonban nem."</string>
- <string name="accessibility_service_screen_control_title" msgid="324795030658109870">"Képernyő megtekintése és kezelése"</string>
- <string name="accessibility_service_screen_control_description" msgid="8431940515157990426">"Elolvashatja a képernyő tartalmát, és tartalmakat jeleníthet meg más alkalmazások felett."</string>
- <string name="accessibility_service_action_perform_title" msgid="1449360056585337833">"Műveletek megtekintése és elvégzése"</string>
- <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"Követheti az alkalmazásokkal és hardveres érzékelőkkel való interakcióit, és műveleteket végezhet az alkalmazásokkal az Ön nevében."</string>
<string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Engedélyezés"</string>
<string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Tiltás"</string>
<string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Igen"</string>
@@ -3098,10 +3085,10 @@
<string name="extreme_threats_summary" msgid="3560742429496902008">"Riasztások extrém károkkal járó veszélyekről"</string>
<string name="severe_threats_title" msgid="8962959394373974324">"Komoly veszélyek"</string>
<string name="severe_threats_summary" msgid="4982256198071601484">"Riasztások komoly károkkal járó veszélyekről"</string>
- <string name="amber_alerts_title" msgid="5238275758191804575">"NARANCS riasztás"</string>
+ <string name="amber_alerts_title" msgid="5238275758191804575">"AMBER-riasztások"</string>
<string name="amber_alerts_summary" msgid="5755221775246075883">"Közlemények kérése elrabolt gyerekekről"</string>
<string name="repeat_title" msgid="8676570486899483606">"Ismétlés"</string>
- <string name="cell_broadcast_settings" msgid="2416980110093867199">"Vezeték nélküli vészjelzések"</string>
+ <string name="cell_broadcast_settings" msgid="2416980110093867199">"Vezeték nélküli riasztások"</string>
<string name="network_operators_settings" msgid="5105453353329748954">"Mobilszolgáltatók"</string>
<string name="access_point_names" msgid="5768430498022188057">"Hozzáférési pontok nevei"</string>
<string name="enhanced_4g_lte_mode_title" msgid="6624700245232361149">"VoLTE"</string>
@@ -3368,10 +3355,8 @@
<string name="zen_mode_automation_settings_title" msgid="3709324184191870926">"Ütemezések"</string>
<string name="zen_mode_delete_automatic_rules" msgid="5020468289267191765">"Ütemezések törlése"</string>
<string name="zen_mode_schedule_delete" msgid="5383420576833765114">"Törlés"</string>
- <!-- no translation found for zen_mode_menu_rename_mode (4681802125016390837) -->
- <skip />
- <!-- no translation found for zen_mode_menu_delete_mode (5380084696402157428) -->
- <skip />
+ <string name="zen_mode_menu_rename_mode" msgid="4681802125016390837">"Átnevezés"</string>
+ <string name="zen_mode_menu_delete_mode" msgid="5380084696402157428">"Törlés"</string>
<string name="zen_mode_delete_mode_confirmation" msgid="7594340592051947392">"Törli a(z) „<xliff:g id="MODE">%1$s</xliff:g>” módot?"</string>
<string name="zen_mode_rule_name_edit" msgid="1053237022416700481">"Szerkesztés"</string>
<string name="zen_mode_automation_settings_page_title" msgid="6217433860514433311">"Ütemezések"</string>
@@ -3395,8 +3380,7 @@
<string name="zen_mode_visual_signals_settings_subtitle" msgid="7433077540895876672">"Vizuális jelek engedélyezése"</string>
<string name="mode_interruption_filter_title" msgid="3343846700214702347">"Folyamatosan figyeljen"</string>
<string name="mode_device_effects_title" msgid="5857008332618433744">"További műveletek"</string>
- <!-- no translation found for modes_sound_summary_off (6972648204528227879) -->
- <skip />
+ <string name="modes_sound_summary_off" msgid="6972648204528227879">"{count,plural, =0{Ki}=1{Ki / 1 mód automatikusan bekapcsolhat}other{Ki/ # mód automatikusan bekapcsolhat}}"</string>
<string name="mode_display_settings_title" msgid="8132825978346535472">"Megjelenítési beállítások"</string>
<string name="mode_display_options_section" msgid="5151597748243866532">"Megjelenítési beállítások"</string>
<string name="mode_grayscale_title" msgid="6027553257331235461">"Szürkeárnyalatos"</string>
@@ -3659,9 +3643,9 @@
<string name="notif_listener_not_migrated" msgid="6265206376374278226">"Az alkalmazás nem támogatja a speciális beállításokat"</string>
<string name="notif_listener_more_settings" msgid="1348409392307208921">"További beállítások"</string>
<string name="notif_listener_more_settings_desc" msgid="7995492074281663658">"Ebben az alkalmazásban további beállítások állnak rendelkezésre"</string>
- <string name="notification_polite_title" msgid="4737150709382859870">"Alkalmazkodó értesítések"</string>
- <string name="notification_polite_main_control_title" msgid="7267191551379543859">"Alkalmazkodó értesítések használata"</string>
- <string name="notification_polite_description" msgid="7749280535620291610">"Ha rövid időn belül sok értesítést kap, telefonja két percig csökkenti a hangerőt, és kis méretre állítja az előugró ablakokat a képernyőn. A hívásoknál, az ébresztéseknél és a fontos beszélgetéseknél továbbra is rezeg és hangjelzést ad a telefon, valamint megjeleníti őket a képernyőn. Az összes értesítést könnyen megtalálhatja az ujjának a képernyő tetejéről való lehúzásával."</string>
+ <string name="notification_polite_title" msgid="6121016426991791557">"Értesítések befagyasztása"</string>
+ <string name="notification_polite_main_control_title" msgid="5812529809151927149">"Az értesítések befagyasztásának használata"</string>
+ <string name="notification_polite_description" msgid="5497748284893832854">"Ha rövid időn belül sok értesítést kap, telefonja két percig csökkenti a hangerőt, és kis méretűre állítja a figyelmeztetéseket. A hívásokat, az ébresztéseket és a fontos beszélgetéseket nem érinti ez a beállítás. \n\nA befagyasztás ideje alatt kapott értesítések megtekintéséhez húzza lefelé az ujját a képernyő tetejéről."</string>
<string name="notification_polite_work" msgid="8823596456640216391">"Alkalmazás munkaprofilokra"</string>
<string name="notification_polite_work_summary" msgid="5014189280132951378">"Alkalmazás a munkaprofil alkalmazásaira"</string>
<string name="vr_listeners_title" msgid="4960357292472540964">"Virtuálisvalóság-segédszolgáltatás"</string>
@@ -3818,7 +3802,9 @@
<string name="zen_mode_apps_priority_apps" msgid="7386196048313716076">"Kiválasztott alkalmazások"</string>
<string name="zen_mode_apps_none_apps" msgid="2493642312793604327">"Nincs"</string>
<string name="zen_mode_apps_subtext" msgid="1764211974662012877">"{count,plural,offset:2 =0{Egy alkalmazás sem szakíthatja meg a „Ne zavarjanak” módot}=1{A következő megszakíthatja a „Ne zavarjanak” módot: {app_1}}=2{A következők megszakíthatják a „Ne zavarjanak” módot: {app_1} és {app_2}}=3{A következők megszakíthatják a „Ne zavarjanak” módot: {app_1}, {app_2} és {app_3}}other{A következők megszakíthatják a „Ne zavarjanak” módot: {app_1}, {app_2} és # egyéb}}"</string>
+ <string name="zen_mode_apps_work_app" msgid="8528767938316361588">"<xliff:g id="APP_LABEL">%s</xliff:g> (munkahely)"</string>
<string name="zen_mode_apps_calculating" msgid="5420121396943539286">"Számítás…"</string>
+ <string name="zen_mode_plus_n_items" msgid="6136713354369243421">"+<xliff:g id="NUMBER">%d</xliff:g>"</string>
<string name="zen_mode_bypassing_apps" msgid="625309443389126481">"Felülbírálás engedélyezése az alkalmazások számára"</string>
<string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"Azok az alkalmazások, amelyeknél engedélyezve van a megszakítás"</string>
<string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"További alkalmazások kiválasztása"</string>
@@ -3836,6 +3822,7 @@
<string name="zen_mode_sounds_none" msgid="6557474361948269420">"Semmi sem szakíthatja meg a „Ne zavarjanak” módot"</string>
<string name="zen_mode_people_none" msgid="4613147461974255046">"Senki sem szakíthatja meg a „Ne zavarjanak” módot"</string>
<string name="zen_mode_people_some" msgid="9101872681298810281">"Néhány személy megszakíthatja a „Ne zavarjanak” módot"</string>
+ <string name="zen_mode_people_repeat_callers" msgid="4499084111069828761">"A többször hívó személyek számára engedélyezett a megzavarás"</string>
<string name="zen_mode_people_all" msgid="311036110283015205">"Minden személy megszakíthatja a „Ne zavarjanak” módot"</string>
<string name="zen_mode_repeat_callers" msgid="2270356100287792138">"Többször hívó személyek"</string>
<string name="zen_mode_repeat_callers_title" msgid="8016699240338264781">"Többször hívó személyek engedélyezése"</string>
@@ -3855,13 +3842,37 @@
<string name="zen_mode_summary_alarms_only_by_hour" msgid="7400910210950788163">"{count,plural, =1{Módosítás csak ébresztésekre egy órára, eddig: {time}}other{Módosítás csak ébresztésekre # órára, eddig: {time}}}"</string>
<string name="zen_mode_summary_alarms_only_by_time" msgid="8140619669703968810">"Váltás „Csak ébresztésekre” eddig: <xliff:g id="FORMATTEDTIME">%1$s</xliff:g>"</string>
<string name="zen_mode_summary_always" msgid="722093064250082317">"Módosítás a bármikor történő megszakításra"</string>
- <!-- no translation found for zen_mode_rename_title (8146882272966214558) -->
+ <string name="zen_mode_rename_title" msgid="8146882272966214558">"Szerkesztési mód"</string>
+ <string name="zen_mode_new_custom_title" msgid="321750898430776191">"Mód hozzáadása"</string>
+ <string name="zen_mode_new_custom_default_name" msgid="2778307946775085105">"Egyéni mód"</string>
+ <string name="zen_mode_edit_name_hint" msgid="4584652062167540536">"Mód neve"</string>
+ <string name="zen_mode_trigger_title_schedule_calendar" msgid="9206609438617550331">"Naptáresemények"</string>
+ <string name="zen_mode_trigger_title_bedtime" msgid="5086070900588489978">"Alvásritmus"</string>
+ <string name="zen_mode_trigger_title_driving" msgid="7890990983453164403">"Vezetés közben"</string>
+ <string name="zen_mode_trigger_title_generic" msgid="601273385119550420">"Apphoz társítva"</string>
+ <string name="zen_mode_trigger_summary_settings_in_app" msgid="4860667191183702601">"Információk és beállítások a(z) <xliff:g id="APP_NAME">%1$s</xliff:g> appban"</string>
+ <string name="zen_mode_trigger_summary_managed_by_app" msgid="8631011868193102098">"Kezelő: <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+ <string name="zen_mode_confirm_disable_title" msgid="1232297660775719796">"Mód kikapcsolása"</string>
+ <string name="zen_mode_confirm_disable_message" msgid="7315541221665718491">"Ha kikapcsolja ezt a funkciót, a mód nem a várt módon fog működni, a beállításai pedig el lesznek rejtve."</string>
+ <string name="zen_mode_action_disable" msgid="3552921561331044881">"Kikapcsolás"</string>
+ <string name="zen_mode_confirm_enable_title" msgid="5683371335847448595">"Mód bekapcsolása"</string>
+ <string name="zen_mode_confirm_enable_message" msgid="7017879133260011419">"Ha bekapcsolja ezt a funkciót, a mód automatikusan aktiválódik az ütemezésének megfelelően."</string>
+ <string name="zen_mode_action_enable" msgid="1161480633223176531">"Bekapcsolás"</string>
+ <!-- no translation found for zen_mode_blurb_schedule_time (8223898702097484009) -->
<skip />
- <!-- no translation found for zen_mode_new_custom_title (321750898430776191) -->
+ <!-- no translation found for zen_mode_blurb_schedule_calendar (382177907856065945) -->
<skip />
- <!-- no translation found for zen_mode_new_custom_default_name (2778307946775085105) -->
+ <!-- no translation found for zen_mode_blurb_bedtime (6155075956151013457) -->
<skip />
- <!-- no translation found for zen_mode_edit_name_hint (4584652062167540536) -->
+ <!-- no translation found for zen_mode_blurb_driving (1316054379000667305) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_immersive (5884004861848687869) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_theater (2999237960059524225) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_managed (5473921634985032149) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_generic (3041601339807075625) -->
<skip />
<string name="warning_button_text" msgid="1274234338874005639">"Figyelmeztetés"</string>
<string name="suggestion_button_close" msgid="6865170855573283759">"Bezárás"</string>
@@ -4849,9 +4860,8 @@
<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="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>
+ <!-- no translation found for enable_desktop_mode_on_secondary_display (2609567824593768780) -->
+ <skip />
<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>
@@ -5026,7 +5036,6 @@
<string name="default_active_sim_mobile_data" msgid="6798083892814045301">"mobiladatok"</string>
<string name="wifi_scan_notify_message" msgid="1331238142061476869">"Az eszközhasználati élmény javítása érdekében az alkalmazások és a szolgáltatások továbbra is bármikor kereshetnek Wi-Fi-hálózatokat, még akkor is, ha a Wi-Fi ki van kapcsolva. Ez például a helyalapú funkciók és szolgáltatások javítására használható. A funkciót a Wi-Fi-keresési beállítások között módosíthatja."</string>
<string name="wifi_scan_change" msgid="8438320311511852918">"Módosítás"</string>
- <string name="preference_summary_default_combination" msgid="4643585915107796253">"<xliff:g id="STATE">%1$s</xliff:g> (<xliff:g id="NETWORKMODE">%2$s</xliff:g>)"</string>
<string name="mobile_data_connection_active" msgid="2422223108911581552">"Csatlakozva"</string>
<string name="mobile_data_temp_connection_active" msgid="3430470299756236413">"Ideiglenesen csatlakoztatva"</string>
<string name="mobile_data_temp_using" msgid="5211002380149434155">"Ideiglenes használatban: <xliff:g id="SUBNAME">%1$s</xliff:g>"</string>
@@ -5172,9 +5181,11 @@
<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="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_enable_freeform_support" msgid="3697462756493543645">"A szabad formátumú ablak támogatásának engedélyezéséhez újraindításra van szükség."</string>
+ <!-- no translation found for reboot_dialog_override_desktop_mode (7480950772574354130) -->
+ <skip />
+ <!-- no translation found for reboot_dialog_enable_desktop_mode_on_secondary_display (1153621881052401924) -->
+ <skip />
<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>
@@ -5292,10 +5303,8 @@
<string name="show_captions_enabled" msgid="7089043007924626">"Be"</string>
<string name="live_caption_disabled" msgid="3562035026547887366">"Ki"</string>
<string name="live_caption_enabled" msgid="5269360946200718949">"Be"</string>
- <!-- no translation found for audio_seek_bar_state_left_first (8814986910920838972) -->
- <skip />
- <!-- no translation found for audio_seek_bar_state_right_first (1999368979633398876) -->
- <skip />
+ <string name="audio_seek_bar_state_left_first" msgid="8814986910920838972">"Hang: %1$d%% a bal oldalon, %2$d%% a jobb oldalon"</string>
+ <string name="audio_seek_bar_state_right_first" msgid="1999368979633398876">"Hang: %1$d%% a jobb oldalon, %2$d%% a bal oldalon"</string>
<string name="about_phone_device_name_warning" msgid="3243226572404472381">"Eszköze neve látható a telepített alkalmazások számára. Mások is láthatják, ha csatlakoztatja telefonját más Bluetooth-eszközökhöz, Wi-Fi-hálózathoz, vagy ha Wi-Fi-hotspotot állít be."</string>
<string name="grammatical_gender_title" msgid="8584242850477270828">"Nyelvtani nem"</string>
<string name="grammatical_gender_dialog_title" msgid="8754048592099871587">"Nyelvtani nem kiválasztása"</string>
@@ -5407,5 +5416,6 @@
<string name="audio_streams_main_page_password_dialog_join_button" msgid="2967747276379153408">"Stream hallgatása"</string>
<string name="audio_streams_main_page_qr_code_scanner_summary" msgid="5312980105735143360">"Audiostream QR-kódjának beolvasása a(z) <xliff:g id="DEVICE_NAME">%1$s</xliff:g> eszközön való hallgatáshoz"</string>
<string name="audio_streams_main_page_password_dialog_cannot_edit" msgid="9020898619297520153">"Megosztás közben a jelszó nem módosítható. Ha módosítani kívánja a jelszót, először kapcsolja ki a hang megosztását."</string>
+ <string name="audio_streams_qr_code_scanner_label" msgid="8799703301071378034">"QR-kód-szkennelő"</string>
<string name="homepage_search" msgid="6759334912284663559">"Keresési beállítások"</string>
</resources>
diff --git a/res/values-hy/strings.xml b/res/values-hy/strings.xml
index 1dff77f..6ec343f 100644
--- a/res/values-hy/strings.xml
+++ b/res/values-hy/strings.xml
@@ -41,6 +41,8 @@
<string name="radioInfo_data_suspended" msgid="2001254415431299603">"Անջատված"</string>
<string name="radioInfo_unknown" msgid="2892562356748600367">"Անհայտ"</string>
<string name="preview_pager_content_description" msgid="3762247188224576303">"Նախադիտում"</string>
+ <!-- no translation found for qr_code_content_description (1852208464419291347) -->
+ <skip />
<string name="font_size_make_smaller_desc" msgid="4978038055549590140">"Փոքրացնել"</string>
<string name="font_size_make_larger_desc" msgid="5583046033381722247">"Մեծացնել"</string>
<string name="stay_awake_on_fold_title" msgid="6590454679898134221">"Միշտ"</string>
@@ -283,7 +285,7 @@
<string name="location_settings_summary_location_off" msgid="4797932754681162262">"Անջատված է"</string>
<string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{Միացված է / Տեղադրության տվյալները հասանելի են # հավելվածի}one{Միացված է / Տեղադրության տվյալները հասանելի են # հավելվածի}other{Միացված է / Տեղադրության տվյալները հասանելի են # հավելվածի}}"</string>
<string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"Բեռնում…"</string>
- <string name="location_settings_footer_general" msgid="1040507068701188821">"Հավելվածները, որոնց հասանելի են մոտակա սարքերը, կարող են որոշել միացված սարքերի հարաբերական դիրքավորումը։"</string>
+ <string name="location_settings_footer_general" msgid="3447585552176173502">"Հավելվածները, որոնց հասանելի են մոտակա սարքերը, կարող են որոշել միացված սարքերի հարաբերական դիրքավորումը։"</string>
<string name="location_settings_footer_location_off" msgid="8568995909147566720">"Տեղադրության տվյալների օգտագործման թույլտվությունն անջատված է հավելվածների և ծառայությունների համար։ Ձեր սարքի տեղադրության տվյալները կարող են ուղարկվել փրկարար ծառայություններին, եթե դուք զանգեք կամ հաղորդագրություն գրեք արտակարգ իրավիճակների հեռախոսահամարով։"</string>
<string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Իմանալ ավելին տեղադրության կարգավորումների մասին"</string>
<string name="location_settings_tooltip_text_for_chrome" msgid="5781821709250544575">"Փոխելու համար անցեք ChromeOS-ի կարգավորումներ > Գաղտնիություն և անվտանգություն > Գաղտնիության կարգավորումներ > Տեղորոշման թույլտվություն"</string>
@@ -850,7 +852,6 @@
<string name="nfc_reboot_dialog_title" msgid="2033983438635768169">"Վերագործարկե՞լ սարքը"</string>
<string name="nfc_reboot_dialog_message" msgid="4929353168157966992">"NFC-ի միջոցով մանրամասն մատյանի վարումը նախատեսված է ոչ միայն ծրագրավորման նպատակներով։ NFC-ի լրացուցիչ տվյալները ավելացվում են նաև վրիպակների մասին զեկույցներում, որոնք կարող են անձնական տեղեկություններ պարունակել։ Այս կարգավորումը փոխելու համար վերագործարկեք ձեր սարքը։"</string>
<string name="nfc_reboot_dialog_confirm" msgid="4769763632008584567">"Վերագործարկել"</string>
- <string name="keywords_external_display" msgid="4181375057920134909">"հայելապատճենել, արտաքին էկրան, միացված էկրան, usb էկրան, լուծաչափ, պտտում"</string>
<string name="external_display_on" msgid="2560104443500154333">"Միացված է"</string>
<string name="external_display_off" msgid="5634413756025351374">"Անջատված է"</string>
<string name="external_display_settings_title" msgid="6256884595821605779">"Արտաքին էկրան"</string>
@@ -1918,6 +1919,8 @@
<string name="slow_keys_summary" msgid="1784371292745423292">"Կարգավորում է ժամանակի տևողությունը, որից հետո ստեղնը արձագանքում է սեղմմանը՝ <xliff:g id="SLOW_KEYS_THRESHOLD">%1$d</xliff:g> մվ"</string>
<string name="sticky_keys" msgid="7317317044898161747">"Կպչուն ստեղներ"</string>
<string name="sticky_keys_summary" msgid="1844953803625480623">"Դյուրանցումների համար միաժամանակ սեղմեք մեկ ստեղն, այլ ոչ թե միասին սեղմած պահեք մի քանիսը"</string>
+ <string name="mouse_keys" msgid="6237254627808525540">"Մկնիկի ստեղներ"</string>
+ <string name="mouse_keys_summary" msgid="2396247040177734245">"Կառավարեք մկնիկը ֆիզիկական ստեղնաշարի միջոցով։"</string>
<string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"Ստեղնային դյուրանցումներ"</string>
<string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"Ցույց տալ ստեղնաշարի դյուրանցումների ցանկը"</string>
<string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"Աշխատանքային պրոֆիլի ստեղնաշարեր և գործիքներ"</string>
@@ -1942,14 +1945,10 @@
<string name="pointer_fill_style_yellow_button" msgid="5025969961559379024">"Ցուցիչի լցման ոճը դարձնել դեղին"</string>
<string name="pointer_fill_style_pink_button" msgid="4106218142489635673">"Ցուցիչի լցման ոճը դարձնել վարդագույն"</string>
<string name="pointer_fill_style_blue_button" msgid="5594958078854032785">"Ցուցիչի լցման ոճը դարձնել կապույտ"</string>
- <!-- no translation found for pointer_stroke_style (1886986630216050665) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_white (673686194443825383) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_black (4655806167067437330) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_none (8953927511729800247) -->
- <skip />
+ <string name="pointer_stroke_style" msgid="1886986630216050665">"Նշորդի ոճը"</string>
+ <string name="pointer_stroke_style_name_white" msgid="673686194443825383">"Սպիտակ"</string>
+ <string name="pointer_stroke_style_name_black" msgid="4655806167067437330">"Սև"</string>
+ <string name="pointer_stroke_style_name_none" msgid="8953927511729800247">"Ընտրված չէ"</string>
<string name="trackpad_touch_gesture" msgid="8641725062131922497">"Սովորել հպահարթակի ժեստերը"</string>
<string name="keywords_touchpad" msgid="8159846254066666032">"հպահարթակ, մկնիկ, նշորդ, ոլորել, թերթել, աջ սեղմել, սեղմում, ցուցիչ"</string>
<string name="keywords_trackpad_bottom_right_tap" msgid="1285062446073929305">"սեղմել մկնիկի աջ կոճակը, հպել"</string>
@@ -2179,8 +2178,6 @@
<string name="accessibility_shortcut_edit_dialog_summary_floating_button" msgid="6266489864614886247">"Հպեք լողացող կոճակին"</string>
<string name="accessibility_shortcut_edit_dialog_title_software_by_gesture" msgid="4775049370625630546">"Հատուկ գործառույթների ժեստ"</string>
<string name="accessibility_shortcut_edit_dialog_summary_software" msgid="8315934725362849788">"Էկրանի ներքևում հպեք «Հատուկ գործառույթներ» <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g> կոճակին։ Մի գործառույթից մյուսին անցնելու համար հպեք «Հատուկ գործառույթներ» կոճակին և պահեք։"</string>
- <string name="accessibility_shortcut_edit_dialog_summary_software_gesture" msgid="8292555254353761635">"Երկու մատով սահեցրեք էկրանի ներքևից վերև։\n\nՄի գործառույթից մյուսին անցնելու համար երկու մատը սահեցրեք վերև և պահեք։"</string>
- <string name="accessibility_shortcut_edit_dialog_summary_software_gesture_talkback" msgid="84483464524360845">"Երեք մատով սահեցրեք էկրանի ներքևից վերև։\n\nՄի գործառույթից մյուսին անցնելու համար երեք մատը սահեցրեք վերև և պահեք։"</string>
<string name="accessibility_shortcut_edit_dialog_summary_gesture" msgid="2081123009255579884">"{count,plural, =1{Մատը սահեցրեք էկրանի ներքևից վերև։ Մեկ գործառույթից մյուսին անցնելու համար սահեցրեք վերև և պահեք։}one{Էկրանի ներքևից # մատը սահեցրեք վերև։ Մեկ գործառույթից մյուսին անցնելու համար # մատը սահեցրեք վերև և պահեք։}other{Էկրանի ներքևից # մատը սահեցրեք վերև։ Մեկ գործառույթից մյուսին անցնելու համար # մատը սահեցրեք վերև և պահեք։}}"</string>
<string name="accessibility_shortcut_edit_dialog_summary_software_floating" msgid="4459254227203203324"><annotation id="link">"Այլ ընտրանքներ"</annotation></string>
<string name="footer_learn_more_content_description" msgid="8843798273152131341">"Իմանալ ավելին «<xliff:g id="SERVICE">%1$s</xliff:g>» ծառայության մասին"</string>
@@ -2191,16 +2188,12 @@
<string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="844089763968552142">"Ձայնի ուժգնության կոճակներ"</string>
<string name="accessibility_shortcut_hardware_keyword" msgid="2483152542320987022">"ձայնի ուժգնության կոճակներ"</string>
<string name="accessibility_shortcut_edit_dialog_summary_hardware" msgid="2503134386397991634">"Սեղմեք և պահեք ձայնի ուժգնության երկու կոճակները"</string>
- <string name="accessibility_shortcut_edit_dialog_title_two_finger_double_tap" msgid="2271778556854020996">"Երկու մատով կրկնակի հպում էկրանին"</string>
<string name="accessibility_shortcut_edit_screen_title_two_finger_double_tap" msgid="8952595692906527694">"%1$d մատով կրկնակի հպում"</string>
<string name="accessibility_shortcut_edit_screen_summary_two_finger_double_tap" msgid="385404127425496362">"Երկու անգամ %1$d մատով արագ հպեք էկրանին"</string>
<string name="accessibility_shortcut_edit_screen_title_triple_tap" msgid="3314488747597058942">"Եռակի հպում"</string>
<string name="accessibility_shortcut_edit_screen_summary_triple_tap" msgid="4839204951599629871">"%1$d անգամ արագ հպեք էկրանին։ Սա կարող է դանդաղեցնել սարքի աշխատանքը։"</string>
<string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="6271718715836961167">"%1$d մատով կրկնակի հպում"</string>
- <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"Երկու մատով {0,number,integer} անգամ արագ հպեք էկրանին"</string>
- <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"Եռակի հպեք էկրանին"</string>
<string name="accessibility_shortcut_triple_tap_keyword" msgid="5359347130888464334">"եռակի հպում"</string>
- <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"Արագ հպեք էկրանին {0,number,integer} անգամ։ Այս դյուրանցումը կարող է դանդաղեցնել սարքի աշխատանքը։"</string>
<string name="accessibility_shortcut_edit_dialog_title_advance" msgid="4567868630655591506">"Լրացուցիչ"</string>
<string name="accessibility_screen_magnification_navbar_configuration_warning" msgid="266736851606791552">"Մատչելիության կոճակի համար կարգավորված է <xliff:g id="SERVICE">%1$s</xliff:g> ծառայությունը: Խոշորացումն օգտագործելու համար հպեք և պահեք Մատչելիության կոճակը, ապա ընտրեք խոշորացումը:"</string>
<string name="accessibility_screen_magnification_gesture_navigation_warning" msgid="991017769735632046">"Հատուկ գործառույթների ժեստի համար սահմանված է «<xliff:g id="SERVICE">%1$s</xliff:g>» հրահանգը: Մեծացրեք մասշտաբը՝ երկու մատը սահեցնելով էկրանի ներքևից վերքև և պահեք: Այնուհետև ընտրեք «Խոշորացում»:"</string>
@@ -2369,6 +2362,7 @@
<string name="daltonizer_mode_tritanomaly_title" msgid="2278786218762602022">"Կապույտ-դեղին"</string>
<string name="daltonizer_mode_grayscale_title" msgid="152005391387952588">"Մոխրագույնի երանգներ"</string>
<string name="daltonizer_saturation_title" msgid="2999486412114963068">"Ինտենսիվություն"</string>
+ <string name="daltonizer_saturation_unavailable_summary" msgid="8319753055567798775">"Հասանելի չէ մոխրագույնի երանգների ռեժիմի համար, կամ երբ գունաշտկումն անջատված է"</string>
<string name="daltonizer_mode_deuteranomaly_summary" msgid="2117727423019598455">"Դեյտերանոմալիա"</string>
<string name="daltonizer_mode_protanomaly_summary" msgid="4617032854982040748">"Պրոտանոմալիա"</string>
<string name="daltonizer_mode_tritanomaly_summary" msgid="2428218320118180070">"Տրիտանոմալիա"</string>
@@ -2418,15 +2412,8 @@
<string name="color_cyan" msgid="4341758639597035927">"Երկնագույն"</string>
<string name="color_yellow" msgid="5957551912912679058">"Դեղին"</string>
<string name="color_magenta" msgid="8943538189219528423">"Մանուշակագույն"</string>
- <string name="enable_service_title" msgid="7231533866953706788">"Թույլատրե՞լ «<xliff:g id="SERVICE">%1$s</xliff:g>» ծառայությանը կառավարել ձեր սարքը"</string>
<string name="capabilities_list_title" msgid="1225853611983394386">"<xliff:g id="SERVICE">%1$s</xliff:g>-ին անհրաժեշտ է`"</string>
<string name="touch_filtered_warning" msgid="4225815157460318241">"Քանի որ ներածումն արգելափակված է ինչ-որ հավելվածի կողմից, Կարգավորումները չեն կարող հաստատել ձեր պատասխանը:"</string>
- <string name="accessibility_service_warning" msgid="6779187188736432618">"<xliff:g id="SERVICE">%1$s</xliff:g> ծառայությունը այս սարքն ամբողջությամբ վերահսկելու թույլտվություն է ուզում: Ծառայությունը կարող է կարդալ էկրանի տվյալները և գործել այն օգտատերերի անունից, որոնց հատուկ գործառույթներ են անհրաժեշտ: Հասանելիության այս մակարդակը նախատեսված չէ հավելվածների մեծամասնության համար:"</string>
- <string name="accessibility_service_warning_description" msgid="6573203795976134751">"Ամբողջական վերահսկումն անհրաժեշտ է միայն այն հավելվածներին, որոնք օգնում են ձեզ հատուկ գործառույթներից օգտվելիս։"</string>
- <string name="accessibility_service_screen_control_title" msgid="324795030658109870">"Դիտել և կառավարել էկրանը"</string>
- <string name="accessibility_service_screen_control_description" msgid="8431940515157990426">"Կարող է կարդալ էկրանի ողջ բովանդակությունը և ցուցադրել բովանդակություն այլ հավելվածների վրայից։"</string>
- <string name="accessibility_service_action_perform_title" msgid="1449360056585337833">"Դիտել և կատարել գործողությունները"</string>
- <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"Կարող է հետագծել ձեր գործողությունները հավելվածներում և սարքակազմի սենսորների վրա, ինչպես նաև հավելվածներում կատարել գործողություններ ձեր անունից։"</string>
<string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Թույլատրել"</string>
<string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Մերժել"</string>
<string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Անջատել"</string>
@@ -3656,9 +3643,9 @@
<string name="notif_listener_not_migrated" msgid="6265206376374278226">"Այս հավելվածում ընդլայնված կարգավորումները չեն աջակցվում"</string>
<string name="notif_listener_more_settings" msgid="1348409392307208921">"Լրացուցիչ կարգավորումներ"</string>
<string name="notif_listener_more_settings_desc" msgid="7995492074281663658">"Լրացուցիչ կարգավորումները հասանելի են հավելվածում"</string>
- <string name="notification_polite_title" msgid="4737150709382859870">"Հարմարվող ծանուցումներ"</string>
- <string name="notification_polite_main_control_title" msgid="7267191551379543859">"Օգտագործել հարմարվող ծանուցումները"</string>
- <string name="notification_polite_description" msgid="7749280535620291610">"Եթե կարճ ժամանակահատվածում շատ ծանուցումներ ստանաք, ձեր հեռախոսը երկու րոպեով կիջեցնի ձայնը և կնվազեցնի ելնող ծանուցումների քանակը։ Սա չի վերաբերում զանգերին, զարթուցիչներին և կարևոր զրույցներին։ Բոլոր ծանուցումները տեսնելու համար պարզապես սահեցրեք մատը էկրանի վերևից ներքև։"</string>
+ <string name="notification_polite_title" msgid="6121016426991791557">"Ծանուցումների ձայնի նվազեցում"</string>
+ <string name="notification_polite_main_control_title" msgid="5812529809151927149">"Օգտագործել ծանուցումների ձայնի իջեցումը"</string>
+ <string name="notification_polite_description" msgid="5497748284893832854">"Եթե կարճ ժամանակահատվածում շատ ծանուցումներ ստանաք, ձեր սարքը երկու րոպեով կիջեցնի ձայնը և կնվազեցնի ծանուցումների քանակը։ Դա չի ազդի զանգերի, զարթուցիչների և կարևոր զրույցների վրա։ \n\nԾանուցումների ձայնի իջեցման ռեժիմում ստացված ծանուցումները կարելի է գտնել՝ էկրանի վերևի եզրից սահեցնելով ներքև։"</string>
<string name="notification_polite_work" msgid="8823596456640216391">"Կիրառել աշխատանքային պրոֆիլների համար"</string>
<string name="notification_polite_work_summary" msgid="5014189280132951378">"Կիրառել աշխատանքային պրոֆիլի հավելվածների նկատմամբ"</string>
<string name="vr_listeners_title" msgid="4960357292472540964">"VR օգնության ծառայություններ"</string>
@@ -3815,7 +3802,9 @@
<string name="zen_mode_apps_priority_apps" msgid="7386196048313716076">"Ընտրված հավելվածները"</string>
<string name="zen_mode_apps_none_apps" msgid="2493642312793604327">"Ոչ մեկը"</string>
<string name="zen_mode_apps_subtext" msgid="1764211974662012877">"{count,plural,offset:2 =0{Ոչ մի հավելված չի կարող ընդհատել}=1{{app_1} հավելվածը կարող է ընդհատել}=2{{app_1} և {app_2} հավելվածները կարող են ընդհատել}=3{{app_1}, {app_2} և {app_3} հավելվածները կարող են ընդհատել}one{{app_1} և {app_2} հավելվածներն ու ևս # հավելված կարող են ընդհատել}other{{app_1} և {app_2} հավելվածներն ու ևս # հավելված կարող են ընդհատել}}"</string>
+ <string name="zen_mode_apps_work_app" msgid="8528767938316361588">"<xliff:g id="APP_LABEL">%s</xliff:g> (աշխատանքային)"</string>
<string name="zen_mode_apps_calculating" msgid="5420121396943539286">"Հաշվարկում…"</string>
+ <string name="zen_mode_plus_n_items" msgid="6136713354369243421">"+<xliff:g id="NUMBER">%d</xliff:g>"</string>
<string name="zen_mode_bypassing_apps" msgid="625309443389126481">"Թույլատրել հավելվածներին փոխել «Չանհանգստացնել» ռեժիմի կարգավորումները"</string>
<string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"Հավելվածներ, որոնք կարող են ընդհատել"</string>
<string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"Ընտրեք այլ հավելվածներ"</string>
@@ -3833,6 +3822,7 @@
<string name="zen_mode_sounds_none" msgid="6557474361948269420">"Ոչինչ չի կարող ընդհատել"</string>
<string name="zen_mode_people_none" msgid="4613147461974255046">"Ոչ ոք չի կարող ընդհատել"</string>
<string name="zen_mode_people_some" msgid="9101872681298810281">"Որոշ մարդիկ"</string>
+ <string name="zen_mode_people_repeat_callers" msgid="4499084111069828761">"Կրկնվող զանգերի գործառույթը կարող է ընդհատվել"</string>
<string name="zen_mode_people_all" msgid="311036110283015205">"Բոլոր մարդիկ"</string>
<string name="zen_mode_repeat_callers" msgid="2270356100287792138">"Կրկնվող զանգեր"</string>
<string name="zen_mode_repeat_callers_title" msgid="8016699240338264781">"Թույլատրել կրկնվող զանգեր"</string>
@@ -3856,6 +3846,34 @@
<string name="zen_mode_new_custom_title" msgid="321750898430776191">"Ավելացնել ռեժիմ"</string>
<string name="zen_mode_new_custom_default_name" msgid="2778307946775085105">"Հատուկ ռեժիմ"</string>
<string name="zen_mode_edit_name_hint" msgid="4584652062167540536">"Ռեժիմի անվանումը"</string>
+ <string name="zen_mode_trigger_title_schedule_calendar" msgid="9206609438617550331">"Օրացույցի միջոցառումներ"</string>
+ <string name="zen_mode_trigger_title_bedtime" msgid="5086070900588489978">"Քնի ժամանակացույց"</string>
+ <string name="zen_mode_trigger_title_driving" msgid="7890990983453164403">"Մեքենա վարելիս"</string>
+ <string name="zen_mode_trigger_title_generic" msgid="601273385119550420">"Հավելվածի հետ կապված"</string>
+ <string name="zen_mode_trigger_summary_settings_in_app" msgid="4860667191183702601">"Տեղեկություններ և կարգավորումներ <xliff:g id="APP_NAME">%1$s</xliff:g> հավելվածում"</string>
+ <string name="zen_mode_trigger_summary_managed_by_app" msgid="8631011868193102098">"Կառավարվում է <xliff:g id="APP_NAME">%1$s</xliff:g> հավելվածի կողմից"</string>
+ <string name="zen_mode_confirm_disable_title" msgid="1232297660775719796">"Ռեժիմի անջատում"</string>
+ <string name="zen_mode_confirm_disable_message" msgid="7315541221665718491">"Եթե անջատեք այս գործառույթը, ռեժիմն այլևս չի աշխատի նախատեսվածի պես, և դրա կարգավորումները կթաքցվեն։"</string>
+ <string name="zen_mode_action_disable" msgid="3552921561331044881">"Անջատել"</string>
+ <string name="zen_mode_confirm_enable_title" msgid="5683371335847448595">"Ռեժիմի միացում"</string>
+ <string name="zen_mode_confirm_enable_message" msgid="7017879133260011419">"Եթե միացնեք այս գործառույթը, ռեժիմն ավտոմատ կակտիվանա՝ համաձայն իր ժամանակացույցի։"</string>
+ <string name="zen_mode_action_enable" msgid="1161480633223176531">"Միացնել"</string>
+ <!-- no translation found for zen_mode_blurb_schedule_time (8223898702097484009) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_schedule_calendar (382177907856065945) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_bedtime (6155075956151013457) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_driving (1316054379000667305) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_immersive (5884004861848687869) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_theater (2999237960059524225) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_managed (5473921634985032149) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_generic (3041601339807075625) -->
+ <skip />
<string name="warning_button_text" msgid="1274234338874005639">"Նախազգուշացում"</string>
<string name="suggestion_button_close" msgid="6865170855573283759">"Փակել"</string>
<string name="device_feedback" msgid="5351614458411688608">"Կարծիք հայտնել սարքի մասին"</string>
@@ -4842,9 +4860,8 @@
<string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"Մարտկոց"</string>
<string name="settings_panel_title" msgid="346363079938069215">"Կարգավորումների վահանակ"</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>
+ <!-- no translation found for enable_desktop_mode_on_secondary_display (2609567824593768780) -->
+ <skip />
<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>
@@ -5019,7 +5036,6 @@
<string name="default_active_sim_mobile_data" msgid="6798083892814045301">"բջջային ինտերնետ"</string>
<string name="wifi_scan_notify_message" msgid="1331238142061476869">"Սարքի աշխատանքը բարելավելու համար հավելվածներն ու ծառայությունները նախկինի պես կարող են ցանկացած ժամանակ որոնել Wi‑Fi ցանցեր, նույնիսկ երբ Wi‑Fi-ն անջատված է։ Այս կարգավորումը կարելի է օգտագործել, օրինակ, տեղորոշում օգտագործող գործառույթներն ու ծառայությունները բարելավելու համար։ Սա կարող եք փոխել Wi‑Fi ցանցերի որոնման կարգավորումներում։"</string>
<string name="wifi_scan_change" msgid="8438320311511852918">"Փոխել"</string>
- <string name="preference_summary_default_combination" msgid="4643585915107796253">"<xliff:g id="STATE">%1$s</xliff:g>/<xliff:g id="NETWORKMODE">%2$s</xliff:g>"</string>
<string name="mobile_data_connection_active" msgid="2422223108911581552">"Միացած է"</string>
<string name="mobile_data_temp_connection_active" msgid="3430470299756236413">"Ժամանակավոր կապ"</string>
<string name="mobile_data_temp_using" msgid="5211002380149434155">"Ժամանակավորապես օգտագործվում է <xliff:g id="SUBNAME">%1$s</xliff:g> ցանցը"</string>
@@ -5051,7 +5067,7 @@
<string name="app_pinning_main_switch_title" msgid="5465506660064032876">"Օգտագործել հավելվածների ամրացումը"</string>
<string name="developer_options_main_switch_title" msgid="1720074589554152501">"Օգտագործել մշակողի ընտրանքները"</string>
<string name="default_print_service_main_switch_title" msgid="4697133737128324036">"Օգտագործել տպման ծառայությունը"</string>
- <string name="multiple_users_main_switch_title" msgid="9158796544835843201">"Թույլատրել օգտատերերի փոխումը"</string>
+ <string name="multiple_users_main_switch_title" msgid="9158796544835843201">"Թույլ տալ փոխել օգտատիրոջը"</string>
<string name="multiple_users_main_switch_keywords" msgid="4845954458094134356">"թույլ տալ, մի քանի, օգտատեր, թույլատրել, շատ"</string>
<string name="multiple_users_title_keywords" msgid="2395593167746225172">"մի քանի, օգտատերեր, պրոֆիլներ, մարդիկ, հաշիվներ, փոխել հաշիվը, շատ"</string>
<string name="wireless_debugging_main_switch_title" msgid="8463499572781441719">"Օգտագործել անլար վրիպազերծումը"</string>
@@ -5165,9 +5181,11 @@
<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="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_enable_freeform_support" msgid="3697462756493543645">"Կամայական ձևի պատուհանների աջակցումը միացնելու համար պահանջվում է վերաբեռնում։"</string>
+ <!-- no translation found for reboot_dialog_override_desktop_mode (7480950772574354130) -->
+ <skip />
+ <!-- no translation found for reboot_dialog_enable_desktop_mode_on_secondary_display (1153621881052401924) -->
+ <skip />
<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>
@@ -5285,10 +5303,8 @@
<string name="show_captions_enabled" msgid="7089043007924626">"Միացված է"</string>
<string name="live_caption_disabled" msgid="3562035026547887366">"Անջատված է"</string>
<string name="live_caption_enabled" msgid="5269360946200718949">"Միացված է"</string>
- <!-- no translation found for audio_seek_bar_state_left_first (8814986910920838972) -->
- <skip />
- <!-- no translation found for audio_seek_bar_state_right_first (1999368979633398876) -->
- <skip />
+ <string name="audio_seek_bar_state_left_first" msgid="8814986910920838972">"Աուդիո %1$d%% ձախ, %2$d%% աջ"</string>
+ <string name="audio_seek_bar_state_right_first" msgid="1999368979633398876">"Աուդիո %1$d%% աջ, %2$d%% ձախ"</string>
<string name="about_phone_device_name_warning" msgid="3243226572404472381">"Ձեր սարքի անունը տեսանելի է ձեր տեղադրած հավելվածներին։ Այն կարող են տեսնել օգտատերերը, երբ միանում եք Bluetooth սարքերի, Wi-Fi ցանցի, կամ կարգավորում եք Wi-Fi թեժ կետ։"</string>
<string name="grammatical_gender_title" msgid="8584242850477270828">"Քերականական սեռ"</string>
<string name="grammatical_gender_dialog_title" msgid="8754048592099871587">"Ընտրեք քերականական սեռը"</string>
@@ -5400,5 +5416,6 @@
<string name="audio_streams_main_page_password_dialog_join_button" msgid="2967747276379153408">"Լսել հոսքը"</string>
<string name="audio_streams_main_page_qr_code_scanner_summary" msgid="5312980105735143360">"Սկանավորեք աուդիո հոսքի QR կոդը՝ <xliff:g id="DEVICE_NAME">%1$s</xliff:g> սարքով լսելու համար"</string>
<string name="audio_streams_main_page_password_dialog_cannot_edit" msgid="9020898619297520153">"Փոխանցման ժամանակ հնարավոր չէ փոխել գաղտնաբառը։ Գաղտնաբառը փոխելու համար նախ անջատեք աուդիոյի փոխանցումը։"</string>
+ <string name="audio_streams_qr_code_scanner_label" msgid="8799703301071378034">"QR կոդերի սկաներ"</string>
<string name="homepage_search" msgid="6759334912284663559">"Որոնեք կարգավորումներում"</string>
</resources>
diff --git a/res/values-in/strings.xml b/res/values-in/strings.xml
index 04ca135..6088fc4 100644
--- a/res/values-in/strings.xml
+++ b/res/values-in/strings.xml
@@ -41,6 +41,8 @@
<string name="radioInfo_data_suspended" msgid="2001254415431299603">"Ditangguhkan"</string>
<string name="radioInfo_unknown" msgid="2892562356748600367">"Tidak diketahui"</string>
<string name="preview_pager_content_description" msgid="3762247188224576303">"Pratinjau"</string>
+ <!-- no translation found for qr_code_content_description (1852208464419291347) -->
+ <skip />
<string name="font_size_make_smaller_desc" msgid="4978038055549590140">"Buat lebih kecil"</string>
<string name="font_size_make_larger_desc" msgid="5583046033381722247">"Buat lebih besar"</string>
<string name="stay_awake_on_fold_title" msgid="6590454679898134221">"Selalu"</string>
@@ -283,7 +285,7 @@
<string name="location_settings_summary_location_off" msgid="4797932754681162262">"Nonaktif"</string>
<string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{Aktif / # aplikasi memiliki akses ke lokasi}other{Aktif / # aplikasi memiliki akses ke lokasi}}"</string>
<string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"Memuat…"</string>
- <string name="location_settings_footer_general" msgid="1040507068701188821">"Aplikasi dengan izin Perangkat di sekitar dapat menentukan posisi relatif perangkat terhubung."</string>
+ <string name="location_settings_footer_general" msgid="3447585552176173502">"Aplikasi dengan izin perangkat di sekitar dapat menentukan posisi relatif perangkat terhubung."</string>
<string name="location_settings_footer_location_off" msgid="8568995909147566720">"Akses lokasi dinonaktifkan untuk aplikasi dan layanan. Lokasi perangkat Anda tetap dapat dikirimkan ke petugas tanggap darurat saat Anda menelepon atau mengirim SMS ke nomor darurat."</string>
<string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Pelajari lebih lanjut Setelan lokasi"</string>
<string name="location_settings_tooltip_text_for_chrome" msgid="5781821709250544575">"Untuk mengubahnya, buka Setelan ChromeOS > Privasi dan keamanan > Kontrol privasi > Akses lokasi"</string>
@@ -850,7 +852,6 @@
<string name="nfc_reboot_dialog_title" msgid="2033983438635768169">"Mulai Ulang Perangkat?"</string>
<string name="nfc_reboot_dialog_message" msgid="4929353168157966992">"Pencatatan log NFC detail dimaksudkan hanya untuk tujuan pengembangan. Data NFC tambahan disertakan dalam laporan bug, yang mungkin berisi informasi pribadi. Mulai ulang perangkat untuk mengubah setelan ini."</string>
<string name="nfc_reboot_dialog_confirm" msgid="4769763632008584567">"Mulai ulang"</string>
- <string name="keywords_external_display" msgid="4181375057920134909">"pencerminan, layar eksternal, layar terhubung, layar usb, resolusi, rotasi"</string>
<string name="external_display_on" msgid="2560104443500154333">"Aktif"</string>
<string name="external_display_off" msgid="5634413756025351374">"Nonaktif"</string>
<string name="external_display_settings_title" msgid="6256884595821605779">"Layar Eksternal"</string>
@@ -1918,6 +1919,8 @@
<string name="slow_keys_summary" msgid="1784371292745423292">"Menyesuaikan waktu yang diperlukan agar penekanan tombol aktif ke <xliff:g id="SLOW_KEYS_THRESHOLD">%1$d</xliff:g> md"</string>
<string name="sticky_keys" msgid="7317317044898161747">"Tombol lekat"</string>
<string name="sticky_keys_summary" msgid="1844953803625480623">"Tekan satu tombol pada satu waktu untuk mengaktifkan pintasan, bukan menekan tombol secara bersamaan"</string>
+ <string name="mouse_keys" msgid="6237254627808525540">"Tombol mouse"</string>
+ <string name="mouse_keys_summary" msgid="2396247040177734245">"Gunakan keyboard fisik untuk mengontrol mouse."</string>
<string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"Pintasan keyboard"</string>
<string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"Tampilkan daftar pintasan"</string>
<string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"Keyboard & fitur profil kerja"</string>
@@ -1942,14 +1945,10 @@
<string name="pointer_fill_style_yellow_button" msgid="5025969961559379024">"Ubah gaya isian pointer ke warna kuning"</string>
<string name="pointer_fill_style_pink_button" msgid="4106218142489635673">"Ubah gaya isian pointer ke warna merah muda"</string>
<string name="pointer_fill_style_blue_button" msgid="5594958078854032785">"Ubah gaya isian pointer ke warna biru"</string>
- <!-- no translation found for pointer_stroke_style (1886986630216050665) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_white (673686194443825383) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_black (4655806167067437330) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_none (8953927511729800247) -->
- <skip />
+ <string name="pointer_stroke_style" msgid="1886986630216050665">"Gaya goresan kursor"</string>
+ <string name="pointer_stroke_style_name_white" msgid="673686194443825383">"Putih"</string>
+ <string name="pointer_stroke_style_name_black" msgid="4655806167067437330">"Hitam"</string>
+ <string name="pointer_stroke_style_name_none" msgid="8953927511729800247">"Tidak ada"</string>
<string name="trackpad_touch_gesture" msgid="8641725062131922497">"Pelajari gestur touchpad"</string>
<string name="keywords_touchpad" msgid="8159846254066666032">"trackpad, track pad, mouse, kursor, scroll, geser, klik kanan, klik, pointer"</string>
<string name="keywords_trackpad_bottom_right_tap" msgid="1285062446073929305">"klik kanan, ketuk"</string>
@@ -2179,8 +2178,6 @@
<string name="accessibility_shortcut_edit_dialog_summary_floating_button" msgid="6266489864614886247">"Ketuk tombol mengambang"</string>
<string name="accessibility_shortcut_edit_dialog_title_software_by_gesture" msgid="4775049370625630546">"Gestur aksesibilitas"</string>
<string name="accessibility_shortcut_edit_dialog_summary_software" msgid="8315934725362849788">"Ketuk tombol aksesibilitas <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g> di bagian bawah layar Anda. Sentuh lama tombol aksesibilitas untuk beralih ke fitur lain."</string>
- <string name="accessibility_shortcut_edit_dialog_summary_software_gesture" msgid="8292555254353761635">"Geser ke atas dari bawah layar dengan 2 jari.\n\nUntuk beralih ke fitur lain, geser ke atas dengan 2 jari dan tahan."</string>
- <string name="accessibility_shortcut_edit_dialog_summary_software_gesture_talkback" msgid="84483464524360845">"Geser ke atas dari bawah layar dengan 3 jari.\n\nUntuk beralih ke fitur lain, geser ke atas dengan 3 jari dan tahan."</string>
<string name="accessibility_shortcut_edit_dialog_summary_gesture" msgid="2081123009255579884">"{count,plural, =1{Geser ke atas dari bagian bawah layar. Untuk beralih ke fitur lain, geser ke atas dan tahan.}other{Geser ke atas dengan # jari dari bagian bawah layar. Geser ke atas dengan # jari dan tahan untuk beralih ke fitur lain.}}"</string>
<string name="accessibility_shortcut_edit_dialog_summary_software_floating" msgid="4459254227203203324"><annotation id="link">"Opsi lainnya"</annotation></string>
<string name="footer_learn_more_content_description" msgid="8843798273152131341">"Pelajari lebih lanjut <xliff:g id="SERVICE">%1$s</xliff:g>"</string>
@@ -2191,16 +2188,12 @@
<string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="844089763968552142">"Tombol volume"</string>
<string name="accessibility_shortcut_hardware_keyword" msgid="2483152542320987022">"tombol volume"</string>
<string name="accessibility_shortcut_edit_dialog_summary_hardware" msgid="2503134386397991634">"Tekan dan tahan kedua tombol volume"</string>
- <string name="accessibility_shortcut_edit_dialog_title_two_finger_double_tap" msgid="2271778556854020996">"Ketuk dua kali layar dengan dua jari"</string>
<string name="accessibility_shortcut_edit_screen_title_two_finger_double_tap" msgid="8952595692906527694">"Ketuk dua kali dengan %1$d jari"</string>
<string name="accessibility_shortcut_edit_screen_summary_two_finger_double_tap" msgid="385404127425496362">"Ketuk layar dua kali dengan cepat menggunakan %1$d jari"</string>
<string name="accessibility_shortcut_edit_screen_title_triple_tap" msgid="3314488747597058942">"Ketuk tiga kali"</string>
<string name="accessibility_shortcut_edit_screen_summary_triple_tap" msgid="4839204951599629871">"Ketuk layar %1$d kali dengan cepat (mungkin memperlambat perangkat Anda)"</string>
<string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="6271718715836961167">"Ketuk dua kali dengan %1$d jari"</string>
- <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"Ketuk cepat layar sebanyak {0,number,integer} kali dengan dua jari"</string>
- <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"Ketuk layar tiga kali"</string>
<string name="accessibility_shortcut_triple_tap_keyword" msgid="5359347130888464334">"ketuk tiga kali"</string>
- <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"Ketuk layar dengan cepat {0,number,integer} kali. Pintasan ini mungkin memperlambat perangkat Anda"</string>
<string name="accessibility_shortcut_edit_dialog_title_advance" msgid="4567868630655591506">"Lanjutan"</string>
<string name="accessibility_screen_magnification_navbar_configuration_warning" msgid="266736851606791552">"Tombol Aksesibilitas disetel ke <xliff:g id="SERVICE">%1$s</xliff:g>. Untuk menggunakan fitur pembesaran, sentuh lama tombol Aksesibilitas, kemudian pilih pembesaran."</string>
<string name="accessibility_screen_magnification_gesture_navigation_warning" msgid="991017769735632046">"Gestur aksesibilitas disetel ke <xliff:g id="SERVICE">%1$s</xliff:g>. Untuk menggunakan pembesaran, geser ke atas dengan dua jari dari bagian bawah layar dan tahan. Lalu, pilih pembesaran."</string>
@@ -2369,6 +2362,7 @@
<string name="daltonizer_mode_tritanomaly_title" msgid="2278786218762602022">"Biru-kuning"</string>
<string name="daltonizer_mode_grayscale_title" msgid="152005391387952588">"Hitam putih"</string>
<string name="daltonizer_saturation_title" msgid="2999486412114963068">"Intensitas"</string>
+ <string name="daltonizer_saturation_unavailable_summary" msgid="8319753055567798775">"Tidak tersedia untuk mode hitam putih atau saat koreksi warna dinonaktifkan"</string>
<string name="daltonizer_mode_deuteranomaly_summary" msgid="2117727423019598455">"Lemah hijau, deuteranomali"</string>
<string name="daltonizer_mode_protanomaly_summary" msgid="4617032854982040748">"Lemah merah, protanomali"</string>
<string name="daltonizer_mode_tritanomaly_summary" msgid="2428218320118180070">"Tritanomali"</string>
@@ -2418,15 +2412,8 @@
<string name="color_cyan" msgid="4341758639597035927">"Sian"</string>
<string name="color_yellow" msgid="5957551912912679058">"Kuning"</string>
<string name="color_magenta" msgid="8943538189219528423">"Magenta"</string>
- <string name="enable_service_title" msgid="7231533866953706788">"Izinkan <xliff:g id="SERVICE">%1$s</xliff:g> mengontrol perangkat Anda secara penuh?"</string>
<string name="capabilities_list_title" msgid="1225853611983394386">"<xliff:g id="SERVICE">%1$s</xliff:g> perlu:"</string>
<string name="touch_filtered_warning" msgid="4225815157460318241">"Karena sebuah aplikasi menghalangi permintaan izin, Setelan tidak dapat memverifikasi tanggapan Anda."</string>
- <string name="accessibility_service_warning" msgid="6779187188736432618">"<xliff:g id="SERVICE">%1$s</xliff:g> meminta kontrol penuh atas perangkat ini. Layanan dapat membaca layar dan bertindak atas nama pengguna yang memiliki kebutuhan aksesibilitas. Kontrol tingkat ini tidak sesuai untuk kebanyakan aplikasi."</string>
- <string name="accessibility_service_warning_description" msgid="6573203795976134751">"Kontrol penuh sesuai untuk aplikasi yang mendukung kebutuhan aksesibilitas Anda, tetapi tidak untuk sebagian besar aplikasi."</string>
- <string name="accessibility_service_screen_control_title" msgid="324795030658109870">"Melihat dan mengontrol layar"</string>
- <string name="accessibility_service_screen_control_description" msgid="8431940515157990426">"Membaca semua konten di layar dan menampilkan konten di atas aplikasi lain."</string>
- <string name="accessibility_service_action_perform_title" msgid="1449360056585337833">"Menampilkan dan melakukan tindakan"</string>
- <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"Melacak interaksi Anda dengan aplikasi atau sensor hardware, dan berinteraksi dengan aplikasi untuk Anda."</string>
<string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Izinkan"</string>
<string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Tolak"</string>
<string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Nonaktifkan"</string>
@@ -3368,10 +3355,8 @@
<string name="zen_mode_automation_settings_title" msgid="3709324184191870926">"Jadwal"</string>
<string name="zen_mode_delete_automatic_rules" msgid="5020468289267191765">"Hapus jadwal"</string>
<string name="zen_mode_schedule_delete" msgid="5383420576833765114">"Hapus"</string>
- <!-- no translation found for zen_mode_menu_rename_mode (4681802125016390837) -->
- <skip />
- <!-- no translation found for zen_mode_menu_delete_mode (5380084696402157428) -->
- <skip />
+ <string name="zen_mode_menu_rename_mode" msgid="4681802125016390837">"Ganti nama"</string>
+ <string name="zen_mode_menu_delete_mode" msgid="5380084696402157428">"Hapus"</string>
<string name="zen_mode_delete_mode_confirmation" msgid="7594340592051947392">"Hapus mode \"<xliff:g id="MODE">%1$s</xliff:g>\"?"</string>
<string name="zen_mode_rule_name_edit" msgid="1053237022416700481">"Edit"</string>
<string name="zen_mode_automation_settings_page_title" msgid="6217433860514433311">"Jadwal"</string>
@@ -3395,8 +3380,7 @@
<string name="zen_mode_visual_signals_settings_subtitle" msgid="7433077540895876672">"Izinkan sinyal visual"</string>
<string name="mode_interruption_filter_title" msgid="3343846700214702347">"Tetap fokus"</string>
<string name="mode_device_effects_title" msgid="5857008332618433744">"Tindakan tambahan"</string>
- <!-- no translation found for modes_sound_summary_off (6972648204528227879) -->
- <skip />
+ <string name="modes_sound_summary_off" msgid="6972648204528227879">"{count,plural, =0{Nonaktif}=1{Nonaktif/1 mode dapat aktif otomatis}other{Nonaktif/ # mode dapat aktif otomatis}}"</string>
<string name="mode_display_settings_title" msgid="8132825978346535472">"Setelan layar"</string>
<string name="mode_display_options_section" msgid="5151597748243866532">"Opsi tampilan"</string>
<string name="mode_grayscale_title" msgid="6027553257331235461">"Hitam putih"</string>
@@ -3659,9 +3643,9 @@
<string name="notif_listener_not_migrated" msgid="6265206376374278226">"Aplikasi ini tidak mendukung setelan yang ditingkatkan"</string>
<string name="notif_listener_more_settings" msgid="1348409392307208921">"Setelan lainnya"</string>
<string name="notif_listener_more_settings_desc" msgid="7995492074281663658">"Setelan lainnya tersedia di dalam aplikasi ini"</string>
- <string name="notification_polite_title" msgid="4737150709382859870">"Notifikasi Adaptif"</string>
- <string name="notification_polite_main_control_title" msgid="7267191551379543859">"Gunakan notifikasi adaptif"</string>
- <string name="notification_polite_description" msgid="7749280535620291610">"Saat Anda mendapatkan banyak notifikasi dalam waktu singkat, ponsel akan menurunkan volume dan meminimalkan jendela pop-up di layar hingga selama dua menit. Panggilan, alarm, dan percakapan prioritas akan tetap bergetar, mengeluarkan suara, atau ditampilkan di layar, serta semua notifikasi akan mudah ditemukan saat Anda menarik turun dari bagian atas layar."</string>
+ <string name="notification_polite_title" msgid="6121016426991791557">"Periode tunggu notifikasi"</string>
+ <string name="notification_polite_main_control_title" msgid="5812529809151927149">"Gunakan pengurangan suara dan getaran notifikasi"</string>
+ <string name="notification_polite_description" msgid="5497748284893832854">"Saat Anda menerima banyak notifikasi dalam waktu singkat, perangkat akan menurunkan volumenya dan meminimalkan notifikasi hingga selama 2 menit. Panggilan, alarm, dan percakapan prioritas tidak akan terpengaruh. \n\nNotifikasi yang diterima saat pengurangan suara dan getaran diaktifkan dapat ditemukan dengan menarik layar ke bawah dari bagian atas layar."</string>
<string name="notification_polite_work" msgid="8823596456640216391">"Terapkan pada profil kerja"</string>
<string name="notification_polite_work_summary" msgid="5014189280132951378">"Diterapkan untuk aplikasi profil kerja"</string>
<string name="vr_listeners_title" msgid="4960357292472540964">"Layanan bantuan VR"</string>
@@ -3818,7 +3802,9 @@
<string name="zen_mode_apps_priority_apps" msgid="7386196048313716076">"Aplikasi terpilih"</string>
<string name="zen_mode_apps_none_apps" msgid="2493642312793604327">"Tidak ada"</string>
<string name="zen_mode_apps_subtext" msgid="1764211974662012877">"{count,plural,offset:2 =0{Tidak ada aplikasi yang dapat mengganggu}=1{{app_1} dapat mengganggu}=2{{app_1} dan {app_2} dapat mengganggu}=3{{app_1}, {app_2}, dan {app_3} dapat mengganggu}other{{app_1}, {app_2}, dan # lainnya dapat mengganggu}}"</string>
+ <string name="zen_mode_apps_work_app" msgid="8528767938316361588">"<xliff:g id="APP_LABEL">%s</xliff:g> (Kerja)"</string>
<string name="zen_mode_apps_calculating" msgid="5420121396943539286">"Menghitung…"</string>
+ <string name="zen_mode_plus_n_items" msgid="6136713354369243421">"+<xliff:g id="NUMBER">%d</xliff:g>"</string>
<string name="zen_mode_bypassing_apps" msgid="625309443389126481">"Izinkan aplikasi mengganti"</string>
<string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"Aplikasi yang boleh menginterupsi"</string>
<string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"Pilih aplikasi lain"</string>
@@ -3836,6 +3822,7 @@
<string name="zen_mode_sounds_none" msgid="6557474361948269420">"Tidak ada yang boleh menginterupsi"</string>
<string name="zen_mode_people_none" msgid="4613147461974255046">"Tidak ada orang yang boleh menginterupsi"</string>
<string name="zen_mode_people_some" msgid="9101872681298810281">"Sebagian orang boleh menginterupsi"</string>
+ <string name="zen_mode_people_repeat_callers" msgid="4499084111069828761">"Penelepon berulang dapat mengganggu"</string>
<string name="zen_mode_people_all" msgid="311036110283015205">"Semua orang boleh menginterupsi"</string>
<string name="zen_mode_repeat_callers" msgid="2270356100287792138">"Penelepon berulang"</string>
<string name="zen_mode_repeat_callers_title" msgid="8016699240338264781">"Izinkan penelepon berulang"</string>
@@ -3855,13 +3842,37 @@
<string name="zen_mode_summary_alarms_only_by_hour" msgid="7400910210950788163">"{count,plural, =1{Ubah ke mode hanya alarm selama satu jam hingga {time}}other{Ubah ke mode hanya alarm selama # jam hingga {time}}}"</string>
<string name="zen_mode_summary_alarms_only_by_time" msgid="8140619669703968810">"Ubah ke mode hanya alarm hingga <xliff:g id="FORMATTEDTIME">%1$s</xliff:g>"</string>
<string name="zen_mode_summary_always" msgid="722093064250082317">"Ubah ke mode selalu ganggu"</string>
- <!-- no translation found for zen_mode_rename_title (8146882272966214558) -->
+ <string name="zen_mode_rename_title" msgid="8146882272966214558">"Edit mode"</string>
+ <string name="zen_mode_new_custom_title" msgid="321750898430776191">"Tambahkan mode"</string>
+ <string name="zen_mode_new_custom_default_name" msgid="2778307946775085105">"Mode kustom"</string>
+ <string name="zen_mode_edit_name_hint" msgid="4584652062167540536">"Nama mode"</string>
+ <string name="zen_mode_trigger_title_schedule_calendar" msgid="9206609438617550331">"Acara kalender"</string>
+ <string name="zen_mode_trigger_title_bedtime" msgid="5086070900588489978">"Jadwal tidur"</string>
+ <string name="zen_mode_trigger_title_driving" msgid="7890990983453164403">"Saat mengemudi"</string>
+ <string name="zen_mode_trigger_title_generic" msgid="601273385119550420">"Ditautkan ke aplikasi"</string>
+ <string name="zen_mode_trigger_summary_settings_in_app" msgid="4860667191183702601">"Info dan setelan di <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+ <string name="zen_mode_trigger_summary_managed_by_app" msgid="8631011868193102098">"Dikelola oleh <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+ <string name="zen_mode_confirm_disable_title" msgid="1232297660775719796">"Nonaktifkan Mode"</string>
+ <string name="zen_mode_confirm_disable_message" msgid="7315541221665718491">"Jika Anda menonaktifkan fitur ini, mode tidak akan berfungsi sebagaimana mestinya dan setelannya akan disembunyikan."</string>
+ <string name="zen_mode_action_disable" msgid="3552921561331044881">"Nonaktifkan"</string>
+ <string name="zen_mode_confirm_enable_title" msgid="5683371335847448595">"Aktifkan Mode"</string>
+ <string name="zen_mode_confirm_enable_message" msgid="7017879133260011419">"Jika Anda mengaktifkan fitur ini, mode akan otomatis aktif berdasarkan jadwalnya."</string>
+ <string name="zen_mode_action_enable" msgid="1161480633223176531">"Aktifkan"</string>
+ <!-- no translation found for zen_mode_blurb_schedule_time (8223898702097484009) -->
<skip />
- <!-- no translation found for zen_mode_new_custom_title (321750898430776191) -->
+ <!-- no translation found for zen_mode_blurb_schedule_calendar (382177907856065945) -->
<skip />
- <!-- no translation found for zen_mode_new_custom_default_name (2778307946775085105) -->
+ <!-- no translation found for zen_mode_blurb_bedtime (6155075956151013457) -->
<skip />
- <!-- no translation found for zen_mode_edit_name_hint (4584652062167540536) -->
+ <!-- no translation found for zen_mode_blurb_driving (1316054379000667305) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_immersive (5884004861848687869) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_theater (2999237960059524225) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_managed (5473921634985032149) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_generic (3041601339807075625) -->
<skip />
<string name="warning_button_text" msgid="1274234338874005639">"Peringatan"</string>
<string name="suggestion_button_close" msgid="6865170855573283759">"Tutup"</string>
@@ -4849,9 +4860,8 @@
<string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"Baterai"</string>
<string name="settings_panel_title" msgid="346363079938069215">"Panel Setelan"</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>
+ <!-- no translation found for enable_desktop_mode_on_secondary_display (2609567824593768780) -->
+ <skip />
<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>
@@ -5026,7 +5036,6 @@
<string name="default_active_sim_mobile_data" msgid="6798083892814045301">"data seluler"</string>
<string name="wifi_scan_notify_message" msgid="1331238142061476869">"Untuk meningkatkan fungsi perangkat, aplikasi dan layanan tetap dapat memindai jaringan Wi-Fi kapan saja, bahkan saat Wi-Fi nonaktif. Ini dapat digunakan, misalnya, untuk meningkatkan kualitas fitur dan layanan berbasis lokasi. Anda dapat mengubahnya di setelan pemindaian Wi‑Fi."</string>
<string name="wifi_scan_change" msgid="8438320311511852918">"Ubah"</string>
- <string name="preference_summary_default_combination" msgid="4643585915107796253">"<xliff:g id="STATE">%1$s</xliff:g> / <xliff:g id="NETWORKMODE">%2$s</xliff:g>"</string>
<string name="mobile_data_connection_active" msgid="2422223108911581552">"Terhubung"</string>
<string name="mobile_data_temp_connection_active" msgid="3430470299756236413">"Terhubung sementara"</string>
<string name="mobile_data_temp_using" msgid="5211002380149434155">"Menggunakan <xliff:g id="SUBNAME">%1$s</xliff:g> untuk sementara"</string>
@@ -5172,9 +5181,11 @@
<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="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_enable_freeform_support" msgid="3697462756493543645">"Perlu memulai ulang untuk mengaktifkan dukungan jendela bentuk bebas."</string>
+ <!-- no translation found for reboot_dialog_override_desktop_mode (7480950772574354130) -->
+ <skip />
+ <!-- no translation found for reboot_dialog_enable_desktop_mode_on_secondary_display (1153621881052401924) -->
+ <skip />
<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>
@@ -5292,10 +5303,8 @@
<string name="show_captions_enabled" msgid="7089043007924626">"Aktif"</string>
<string name="live_caption_disabled" msgid="3562035026547887366">"Nonaktif"</string>
<string name="live_caption_enabled" msgid="5269360946200718949">"Aktif"</string>
- <!-- no translation found for audio_seek_bar_state_left_first (8814986910920838972) -->
- <skip />
- <!-- no translation found for audio_seek_bar_state_right_first (1999368979633398876) -->
- <skip />
+ <string name="audio_seek_bar_state_left_first" msgid="8814986910920838972">"Audio %1$d%% kiri, %2$d%% kanan"</string>
+ <string name="audio_seek_bar_state_right_first" msgid="1999368979633398876">"Audio %1$d%% kanan, %2$d%% kiri"</string>
<string name="about_phone_device_name_warning" msgid="3243226572404472381">"Nama perangkat Anda dapat dilihat oleh aplikasi yang diinstal dan mungkin juga oleh orang lain saat Anda terhubung ke perangkat Bluetooth atau jaringan Wi-Fi, atau saat menyiapkan hotspot Wi-Fi."</string>
<string name="grammatical_gender_title" msgid="8584242850477270828">"Gender gramatikal"</string>
<string name="grammatical_gender_dialog_title" msgid="8754048592099871587">"Pilih Gender gramatikal"</string>
@@ -5407,5 +5416,6 @@
<string name="audio_streams_main_page_password_dialog_join_button" msgid="2967747276379153408">"Dengarkan streaming"</string>
<string name="audio_streams_main_page_qr_code_scanner_summary" msgid="5312980105735143360">"Pindai kode QR streaming audio agar dapat mendengarkan dengan <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
<string name="audio_streams_main_page_password_dialog_cannot_edit" msgid="9020898619297520153">"Tidak dapat mengedit sandi saat sedang membagikan audio. Untuk mengubah sandi, nonaktifkan berbagi audio terlebih dahulu."</string>
+ <string name="audio_streams_qr_code_scanner_label" msgid="8799703301071378034">"Pemindai kode QR"</string>
<string name="homepage_search" msgid="6759334912284663559">"Telusuri Setelan"</string>
</resources>
diff --git a/res/values-is/strings.xml b/res/values-is/strings.xml
index a784d72..61563e6 100644
--- a/res/values-is/strings.xml
+++ b/res/values-is/strings.xml
@@ -41,6 +41,8 @@
<string name="radioInfo_data_suspended" msgid="2001254415431299603">"Í bið"</string>
<string name="radioInfo_unknown" msgid="2892562356748600367">"Óþekkt"</string>
<string name="preview_pager_content_description" msgid="3762247188224576303">"Forskoðun"</string>
+ <!-- no translation found for qr_code_content_description (1852208464419291347) -->
+ <skip />
<string name="font_size_make_smaller_desc" msgid="4978038055549590140">"Minnka"</string>
<string name="font_size_make_larger_desc" msgid="5583046033381722247">"Stækka"</string>
<string name="stay_awake_on_fold_title" msgid="6590454679898134221">"Alltaf"</string>
@@ -283,7 +285,7 @@
<string name="location_settings_summary_location_off" msgid="4797932754681162262">"Slökkt"</string>
<string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{Kveikt / # forrit hefur aðgang að staðsetningu}one{Kveikt / # forrit hefur aðgang að staðsetningu}other{Kveikt / # forrit hafa aðgang að staðsetningu}}"</string>
<string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"Hleður…"</string>
- <string name="location_settings_footer_general" msgid="1040507068701188821">"Forrit með heimildir nálægra tækja geta ákvarðað afstæða staðsetningu tengdra tækja."</string>
+ <string name="location_settings_footer_general" msgid="3447585552176173502">"Forrit með heimildir nálægra tækja geta ákvarðað hlutfallslega stöðu tengdra tækja."</string>
<string name="location_settings_footer_location_off" msgid="8568995909147566720">"Slökkt er á aðgangi að staðsetningu fyrir forrit og þjónustur. Staðsetning tækisins kann samt að verða send til viðbragðsaðila þegar þú hringir eða sendir skilaboð í neyðarnúmer."</string>
<string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Nánar um staðsetningarstillingar"</string>
<string name="location_settings_tooltip_text_for_chrome" msgid="5781821709250544575">"Til að skipta skaltu opna „Stillingar ChromeOS > Persónuvernd og öryggi > Persónuverndarstillingar > Aðgangur að staðsetningu“"</string>
@@ -850,7 +852,6 @@
<string name="nfc_reboot_dialog_title" msgid="2033983438635768169">"Endurræsa tæki?"</string>
<string name="nfc_reboot_dialog_message" msgid="4929353168157966992">"Ítarleg NFC-skráning er aðeins ætluð í þróunartilgangi. Viðbótargögn um NFC fylgja villutilkynningum sem kunna að innihalda lokaðar upplýsingar. Endurræstu tækið til að breyta þessari stillingu."</string>
<string name="nfc_reboot_dialog_confirm" msgid="4769763632008584567">"Endurræsa"</string>
- <string name="keywords_external_display" msgid="4181375057920134909">"spegla, ytri skjár, tengdur skjár, USB-skjár, upplausn, snúningur"</string>
<string name="external_display_on" msgid="2560104443500154333">"Kveikt"</string>
<string name="external_display_off" msgid="5634413756025351374">"Slökkt"</string>
<string name="external_display_settings_title" msgid="6256884595821605779">"Ytri skjár"</string>
@@ -1918,6 +1919,8 @@
<string name="slow_keys_summary" msgid="1784371292745423292">"Stillir tímann sem það tekur lyklainnslátt að virka í <xliff:g id="SLOW_KEYS_THRESHOLD">%1$d</xliff:g> ms"</string>
<string name="sticky_keys" msgid="7317317044898161747">"Festilyklar"</string>
<string name="sticky_keys_summary" msgid="1844953803625480623">"Ýttu á einn lykil í einu fyrir flýtilykla í staðinn fyrir að halda lyklum saman niðri"</string>
+ <string name="mouse_keys" msgid="6237254627808525540">"Músarhnappar"</string>
+ <string name="mouse_keys_summary" msgid="2396247040177734245">"Notaðu sjálft lyklaborðið til að stjórna músinni."</string>
<string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"Flýtilyklar"</string>
<string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"Sýna lista yfir flýtileiðir"</string>
<string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"Lyklaborð og verkfæri vinnusniðs"</string>
@@ -1942,14 +1945,10 @@
<string name="pointer_fill_style_yellow_button" msgid="5025969961559379024">"Breyta stíl bendilfyllingar í gulan"</string>
<string name="pointer_fill_style_pink_button" msgid="4106218142489635673">"Breyta stíl bendilfyllingar í bleikan"</string>
<string name="pointer_fill_style_blue_button" msgid="5594958078854032785">"Breyta stíl bendilfyllingar í bláan"</string>
- <!-- no translation found for pointer_stroke_style (1886986630216050665) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_white (673686194443825383) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_black (4655806167067437330) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_none (8953927511729800247) -->
- <skip />
+ <string name="pointer_stroke_style" msgid="1886986630216050665">"Strokustíll bendils"</string>
+ <string name="pointer_stroke_style_name_white" msgid="673686194443825383">"Hvítur"</string>
+ <string name="pointer_stroke_style_name_black" msgid="4655806167067437330">"Svartur"</string>
+ <string name="pointer_stroke_style_name_none" msgid="8953927511729800247">"Ekkert"</string>
<string name="trackpad_touch_gesture" msgid="8641725062131922497">"Nánar um bendingar á snertifleti"</string>
<string name="keywords_touchpad" msgid="8159846254066666032">"snertiflötur, hljóðrásarhnappur, mús, bendill, fletta, strjúka, hægrismella, smella, bendill"</string>
<string name="keywords_trackpad_bottom_right_tap" msgid="1285062446073929305">"hægrismella, ýta"</string>
@@ -2179,8 +2178,6 @@
<string name="accessibility_shortcut_edit_dialog_summary_floating_button" msgid="6266489864614886247">"Ýttu á fljótandi hnappinn"</string>
<string name="accessibility_shortcut_edit_dialog_title_software_by_gesture" msgid="4775049370625630546">"Aðgengisbending"</string>
<string name="accessibility_shortcut_edit_dialog_summary_software" msgid="8315934725362849788">"Ýttu á aðgengishnappinn <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g> neðst á skjánum. Til að skipta á milli eiginleika skaltu halda aðgengishnappinum inni."</string>
- <string name="accessibility_shortcut_edit_dialog_summary_software_gesture" msgid="8292555254353761635">"Strjúktu upp frá neðri hluta skjásins með tveimur fingrum.\n\nTil að skipta á milli eiginleika skaltu strjúka upp með tveimur fingrum og halda inni."</string>
- <string name="accessibility_shortcut_edit_dialog_summary_software_gesture_talkback" msgid="84483464524360845">"Strjúktu upp frá neðri hluta skjásins með þremur fingrum.\n\nTil að skipta á milli eiginleika skaltu strjúka upp með þremur fingrum og halda inni."</string>
<string name="accessibility_shortcut_edit_dialog_summary_gesture" msgid="2081123009255579884">"{count,plural, =1{Strjúktu upp frá neðri hluta skjásins. Til að skipta á milli eiginleika skaltu strjúka upp og halda inni.}one{Strjúktu upp með # fingri frá neðri hluta skjásins. Til að skipta á milli eiginleika skaltu strjúka upp með # fingri og halda inni.}other{Strjúktu upp með # fingrum frá neðri hluta skjásins. Til að skipta á milli eiginleika skaltu strjúka upp með # fingrum og halda inni.}}"</string>
<string name="accessibility_shortcut_edit_dialog_summary_software_floating" msgid="4459254227203203324"><annotation id="link">"Fleiri valkostir"</annotation></string>
<string name="footer_learn_more_content_description" msgid="8843798273152131341">"Nánar um <xliff:g id="SERVICE">%1$s</xliff:g>"</string>
@@ -2191,16 +2188,12 @@
<string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="844089763968552142">"Hljóðstyrkstakkar"</string>
<string name="accessibility_shortcut_hardware_keyword" msgid="2483152542320987022">"hljóðstyrkstakkar"</string>
<string name="accessibility_shortcut_edit_dialog_summary_hardware" msgid="2503134386397991634">"Haltu báðum hljóðstyrkstökkunum inni"</string>
- <string name="accessibility_shortcut_edit_dialog_title_two_finger_double_tap" msgid="2271778556854020996">"Ýtt tvisvar á skjáinn með tveimur fingrum"</string>
<string name="accessibility_shortcut_edit_screen_title_two_finger_double_tap" msgid="8952595692906527694">"Ýtt tvisvar með %1$d-fingrum"</string>
<string name="accessibility_shortcut_edit_screen_summary_two_finger_double_tap" msgid="385404127425496362">"Ýttu hratt á skjáinn tvisvar með %1$d fingrum."</string>
<string name="accessibility_shortcut_edit_screen_title_triple_tap" msgid="3314488747597058942">"Ýttu þrisvar"</string>
<string name="accessibility_shortcut_edit_screen_summary_triple_tap" msgid="4839204951599629871">"Ýttu hratt á skjáinn %1$d sinnum. Þetta kann að hægja á tækinu þínu."</string>
<string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="6271718715836961167">"Ýtt tvisvar með %1$d-fingrum"</string>
- <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"Ýtt hratt á skjáinn {0,number,integer} sinnum með tveimur fingrum"</string>
- <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"Ýta þrisvar á skjá"</string>
<string name="accessibility_shortcut_triple_tap_keyword" msgid="5359347130888464334">"ýttu þrisvar"</string>
- <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"Ýttu snögglega á skjáinn {0,number,integer} sinnum. Þessi flýtileið kann að hægja á tækinu"</string>
<string name="accessibility_shortcut_edit_dialog_title_advance" msgid="4567868630655591506">"Ítarlegt"</string>
<string name="accessibility_screen_magnification_navbar_configuration_warning" msgid="266736851606791552">"Aðgengishnappurinn er stilltur á <xliff:g id="SERVICE">%1$s</xliff:g>. Til að nota stækkun skaltu halda aðgengishnappnum inni og velja stækkun."</string>
<string name="accessibility_screen_magnification_gesture_navigation_warning" msgid="991017769735632046">"Aðgengisbending er stillt á <xliff:g id="SERVICE">%1$s</xliff:g>. Til að nota stækkun skaltu strjúka upp með tveimur fingrum frá neðri hluta skjásins og halda inni. Síðan skaltu velja stækkun."</string>
@@ -2369,6 +2362,7 @@
<string name="daltonizer_mode_tritanomaly_title" msgid="2278786218762602022">"Blágul"</string>
<string name="daltonizer_mode_grayscale_title" msgid="152005391387952588">"Grátónar"</string>
<string name="daltonizer_saturation_title" msgid="2999486412114963068">"Styrkur"</string>
+ <string name="daltonizer_saturation_unavailable_summary" msgid="8319753055567798775">"Ekki í boði í grátónastillingu eða þegar slökkt er á litaleiðréttingu"</string>
<string name="daltonizer_mode_deuteranomaly_summary" msgid="2117727423019598455">"Græn litblinda"</string>
<string name="daltonizer_mode_protanomaly_summary" msgid="4617032854982040748">"Rauð litblinda"</string>
<string name="daltonizer_mode_tritanomaly_summary" msgid="2428218320118180070">"Blágul litblinda"</string>
@@ -2418,15 +2412,8 @@
<string name="color_cyan" msgid="4341758639597035927">"Blágrænn"</string>
<string name="color_yellow" msgid="5957551912912679058">"Gulur"</string>
<string name="color_magenta" msgid="8943538189219528423">"Blárauður"</string>
- <string name="enable_service_title" msgid="7231533866953706788">"Viltu leyfa „<xliff:g id="SERVICE">%1$s</xliff:g>“ að hafa fulla stjórn yfir tækinu þínu?"</string>
<string name="capabilities_list_title" msgid="1225853611983394386">"<xliff:g id="SERVICE">%1$s</xliff:g> þarf að:"</string>
<string name="touch_filtered_warning" msgid="4225815157460318241">"Stillingar geta ekki staðfest svarið þitt vegna þess að forrit er að fela heimildarbeiðni."</string>
- <string name="accessibility_service_warning" msgid="6779187188736432618">"<xliff:g id="SERVICE">%1$s</xliff:g> biður um fulla stjórn yfir þessu tæki. Þjónustan getur lesið af skjánum og gripið til aðgerða fyrir hönd notenda sem hafa ekki aðgang. Þess konar stjórnun er óviðeigandi fyrir flest forrit."</string>
- <string name="accessibility_service_warning_description" msgid="6573203795976134751">"Full stjórn er viðeigandi fyrir forrit sem hjálpa þér ef þú hefur ekki aðgang, en ekki fyrir flest forrit."</string>
- <string name="accessibility_service_screen_control_title" msgid="324795030658109870">"Skoða og stjórna skjá"</string>
- <string name="accessibility_service_screen_control_description" msgid="8431940515157990426">"Getur lesið allt efni á skjánum og birt efni yfir öðrum forritum."</string>
- <string name="accessibility_service_action_perform_title" msgid="1449360056585337833">"Skoða og framkvæma aðgerðir"</string>
- <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"Það getur fylgst með samskiptum þínum við forrit eða skynjara vélbúnaðar og haft samskipti við forrit fyrir þína hönd."</string>
<string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Leyfa"</string>
<string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Hafna"</string>
<string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Slökkva"</string>
@@ -3368,10 +3355,8 @@
<string name="zen_mode_automation_settings_title" msgid="3709324184191870926">"Tímaáætlanir"</string>
<string name="zen_mode_delete_automatic_rules" msgid="5020468289267191765">"Eyða áætlunum"</string>
<string name="zen_mode_schedule_delete" msgid="5383420576833765114">"Eyða"</string>
- <!-- no translation found for zen_mode_menu_rename_mode (4681802125016390837) -->
- <skip />
- <!-- no translation found for zen_mode_menu_delete_mode (5380084696402157428) -->
- <skip />
+ <string name="zen_mode_menu_rename_mode" msgid="4681802125016390837">"Endurnefna"</string>
+ <string name="zen_mode_menu_delete_mode" msgid="5380084696402157428">"Eyða"</string>
<string name="zen_mode_delete_mode_confirmation" msgid="7594340592051947392">"Eyða stillingunni „<xliff:g id="MODE">%1$s</xliff:g>“?"</string>
<string name="zen_mode_rule_name_edit" msgid="1053237022416700481">"Breyta"</string>
<string name="zen_mode_automation_settings_page_title" msgid="6217433860514433311">"Áætlanir"</string>
@@ -3395,8 +3380,7 @@
<string name="zen_mode_visual_signals_settings_subtitle" msgid="7433077540895876672">"Leyfa sjónræn merki"</string>
<string name="mode_interruption_filter_title" msgid="3343846700214702347">"Haltu einbeitingunni"</string>
<string name="mode_device_effects_title" msgid="5857008332618433744">"Fleiri aðgerðir"</string>
- <!-- no translation found for modes_sound_summary_off (6972648204528227879) -->
- <skip />
+ <string name="modes_sound_summary_off" msgid="6972648204528227879">"{count,plural, =0{Slökkt}=1{Slökkt / Ein stilling getur kveikt sjálfkrafa á sér}one{Slökkt / # stilling getur kveikt sjálfkrafa á sér}other{Slökkt / # stillingar geta kveikt sjálfkrafa á sér}}"</string>
<string name="mode_display_settings_title" msgid="8132825978346535472">"Skjástillingar"</string>
<string name="mode_display_options_section" msgid="5151597748243866532">"Birtingarvalkostir"</string>
<string name="mode_grayscale_title" msgid="6027553257331235461">"Grátónar"</string>
@@ -3659,9 +3643,9 @@
<string name="notif_listener_not_migrated" msgid="6265206376374278226">"Þetta forrit styður ekki endurbættar stillingar"</string>
<string name="notif_listener_more_settings" msgid="1348409392307208921">"Fleiri stillingar"</string>
<string name="notif_listener_more_settings_desc" msgid="7995492074281663658">"Fleiri stillingar eru í boði í forritinu"</string>
- <string name="notification_polite_title" msgid="4737150709382859870">"Breytilegar tilkynningar"</string>
- <string name="notification_polite_main_control_title" msgid="7267191551379543859">"Nota breytilegar tilkynningar"</string>
- <string name="notification_polite_description" msgid="7749280535620291610">"Þegar þú færð margar tilkynningar á skömmum tíma mun síminn þinn lækka hljóðstyrk og fækka sprettigluggum á skjánum í allt að tvær mínútur. Símtöl, vekjarar og forgangssamtöl halda áfram að titra, spila hljóð eða birtast á skjánum og þú getur auðveldlega séð allar tilkynningar með því að strjúka niður frá efsta hluta skjásins."</string>
+ <string name="notification_polite_title" msgid="6121016426991791557">"Fækkun tilkynninga"</string>
+ <string name="notification_polite_main_control_title" msgid="5812529809151927149">"Nota tilkynningadempun"</string>
+ <string name="notification_polite_description" msgid="5497748284893832854">"Þegar þú færð margar tilkynningar á skömmum tíma mun tækið þitt lækka hljóðstyrk og fækka viðvörunum í allt að tvær mínútur. Þetta hefur ekki áhrif á símtöl, vekjara og forgangssamtöl. \n\nÞú getur fundið mótteknar tilkynningar meðan á dempun stendur með því að draga niður efst á skjánum."</string>
<string name="notification_polite_work" msgid="8823596456640216391">"Nota fyrir vinnusnið"</string>
<string name="notification_polite_work_summary" msgid="5014189280132951378">"Nota fyrir forrit á vinnusniði"</string>
<string name="vr_listeners_title" msgid="4960357292472540964">"Hjálparþjónusta sýndarveruleika"</string>
@@ -3818,7 +3802,9 @@
<string name="zen_mode_apps_priority_apps" msgid="7386196048313716076">"Valin forrit"</string>
<string name="zen_mode_apps_none_apps" msgid="2493642312793604327">"Engin"</string>
<string name="zen_mode_apps_subtext" msgid="1764211974662012877">"{count,plural,offset:2 =0{Engin forrit mega trufla}=1{{app_1} má trufla}=2{{app_1} og {app_2} mega trufla}=3{{app_1}, {app_2} og {app_3} mega trufla}one{{app_1}, {app_2} og # til viðbótar mega trufla}other{{app_1}, {app_2} og # til viðbótar mega trufla}}"</string>
+ <string name="zen_mode_apps_work_app" msgid="8528767938316361588">"<xliff:g id="APP_LABEL">%s</xliff:g> (vinnusnið)"</string>
<string name="zen_mode_apps_calculating" msgid="5420121396943539286">"Reiknar út…"</string>
+ <string name="zen_mode_plus_n_items" msgid="6136713354369243421">"+<xliff:g id="NUMBER">%d</xliff:g>"</string>
<string name="zen_mode_bypassing_apps" msgid="625309443389126481">"Leyfa forritum að hnekkja"</string>
<string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"Forrit sem mega trufla"</string>
<string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"Veldu fleiri forrit"</string>
@@ -3836,6 +3822,7 @@
<string name="zen_mode_sounds_none" msgid="6557474361948269420">"Ekkert má trufla"</string>
<string name="zen_mode_people_none" msgid="4613147461974255046">"Enginn má trufla"</string>
<string name="zen_mode_people_some" msgid="9101872681298810281">"Sumt fólk má trufla"</string>
+ <string name="zen_mode_people_repeat_callers" msgid="4499084111069828761">"Endurteknar símhringingar geta valdið truflun"</string>
<string name="zen_mode_people_all" msgid="311036110283015205">"Allt fólk má trufla"</string>
<string name="zen_mode_repeat_callers" msgid="2270356100287792138">"Hringt endurtekið"</string>
<string name="zen_mode_repeat_callers_title" msgid="8016699240338264781">"Leyfa endurtekin símtöl"</string>
@@ -3855,13 +3842,37 @@
<string name="zen_mode_summary_alarms_only_by_hour" msgid="7400910210950788163">"{count,plural, =1{Skipta yfir í vekjara í aðeins eina klukkustund til kl. {time}}one{Skipta yfir í vekjara í aðeins # klukkustund til kl. {time}}other{Skipta yfir í vekjara í aðeins # klukkustundir til kl. {time}}}"</string>
<string name="zen_mode_summary_alarms_only_by_time" msgid="8140619669703968810">"Breyta í vekjara eingöngu til <xliff:g id="FORMATTEDTIME">%1$s</xliff:g>"</string>
<string name="zen_mode_summary_always" msgid="722093064250082317">"Breyta í truflanir alltaf"</string>
- <!-- no translation found for zen_mode_rename_title (8146882272966214558) -->
+ <string name="zen_mode_rename_title" msgid="8146882272966214558">"Breyta stillingu"</string>
+ <string name="zen_mode_new_custom_title" msgid="321750898430776191">"Bæta stillingu við"</string>
+ <string name="zen_mode_new_custom_default_name" msgid="2778307946775085105">"Sérsniðin stilling"</string>
+ <string name="zen_mode_edit_name_hint" msgid="4584652062167540536">"Heiti stillingar"</string>
+ <string name="zen_mode_trigger_title_schedule_calendar" msgid="9206609438617550331">"Dagatalsviðburðir"</string>
+ <string name="zen_mode_trigger_title_bedtime" msgid="5086070900588489978">"Svefnáætlun"</string>
+ <string name="zen_mode_trigger_title_driving" msgid="7890990983453164403">"Meðan á akstri stendur"</string>
+ <string name="zen_mode_trigger_title_generic" msgid="601273385119550420">"Tengt við forrit"</string>
+ <string name="zen_mode_trigger_summary_settings_in_app" msgid="4860667191183702601">"Upplýsingar og stillingar í <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+ <string name="zen_mode_trigger_summary_managed_by_app" msgid="8631011868193102098">"Stýrt af <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+ <string name="zen_mode_confirm_disable_title" msgid="1232297660775719796">"Slökkva á stillingu"</string>
+ <string name="zen_mode_confirm_disable_message" msgid="7315541221665718491">"Ef þú slekkur á þessum eiginleika mun stillingin ekki virka sem skyldi og stillingar hans verða faldar."</string>
+ <string name="zen_mode_action_disable" msgid="3552921561331044881">"Slökkva"</string>
+ <string name="zen_mode_confirm_enable_title" msgid="5683371335847448595">"Kveikja á stillingu"</string>
+ <string name="zen_mode_confirm_enable_message" msgid="7017879133260011419">"Ef þú kveikir á þessum eiginleika kvikna sjálfkrafa á stillingunni samkvæmt áætlun."</string>
+ <string name="zen_mode_action_enable" msgid="1161480633223176531">"Kveikja"</string>
+ <!-- no translation found for zen_mode_blurb_schedule_time (8223898702097484009) -->
<skip />
- <!-- no translation found for zen_mode_new_custom_title (321750898430776191) -->
+ <!-- no translation found for zen_mode_blurb_schedule_calendar (382177907856065945) -->
<skip />
- <!-- no translation found for zen_mode_new_custom_default_name (2778307946775085105) -->
+ <!-- no translation found for zen_mode_blurb_bedtime (6155075956151013457) -->
<skip />
- <!-- no translation found for zen_mode_edit_name_hint (4584652062167540536) -->
+ <!-- no translation found for zen_mode_blurb_driving (1316054379000667305) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_immersive (5884004861848687869) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_theater (2999237960059524225) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_managed (5473921634985032149) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_generic (3041601339807075625) -->
<skip />
<string name="warning_button_text" msgid="1274234338874005639">"Viðvörun"</string>
<string name="suggestion_button_close" msgid="6865170855573283759">"Loka"</string>
@@ -4849,9 +4860,8 @@
<string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"Rafhlaða"</string>
<string name="settings_panel_title" msgid="346363079938069215">"Stillingasvæði"</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>
+ <!-- no translation found for enable_desktop_mode_on_secondary_display (2609567824593768780) -->
+ <skip />
<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>
@@ -5026,7 +5036,6 @@
<string name="default_active_sim_mobile_data" msgid="6798083892814045301">"farsímagögn"</string>
<string name="wifi_scan_notify_message" msgid="1331238142061476869">"Til að bæta tækjaupplifun geta forrit og þjónustur áfram leitað að WiFi-netum hvenær sem er, jafnvel þótt slökkt sé á WiFi. Þetta getur til dæmis nýst til að bæta eiginleika og þjónustur sem byggja á staðsetningu. Hægt er að breyta þessu í stillingum WiFi-leitar."</string>
<string name="wifi_scan_change" msgid="8438320311511852918">"Breyta"</string>
- <string name="preference_summary_default_combination" msgid="4643585915107796253">"<xliff:g id="STATE">%1$s</xliff:g> / <xliff:g id="NETWORKMODE">%2$s</xliff:g>"</string>
<string name="mobile_data_connection_active" msgid="2422223108911581552">"Tengt"</string>
<string name="mobile_data_temp_connection_active" msgid="3430470299756236413">"Tímabundin tenging"</string>
<string name="mobile_data_temp_using" msgid="5211002380149434155">"Notar <xliff:g id="SUBNAME">%1$s</xliff:g> tímabundið"</string>
@@ -5172,9 +5181,11 @@
<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="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_enable_freeform_support" msgid="3697462756493543645">"Endurræsingar er krafist til að kveikja á stuðningi við glugga á frjálsu sniði."</string>
+ <!-- no translation found for reboot_dialog_override_desktop_mode (7480950772574354130) -->
+ <skip />
+ <!-- no translation found for reboot_dialog_enable_desktop_mode_on_secondary_display (1153621881052401924) -->
+ <skip />
<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>
@@ -5292,10 +5303,8 @@
<string name="show_captions_enabled" msgid="7089043007924626">"Kveikt"</string>
<string name="live_caption_disabled" msgid="3562035026547887366">"Slökkt"</string>
<string name="live_caption_enabled" msgid="5269360946200718949">"Kveikt"</string>
- <!-- no translation found for audio_seek_bar_state_left_first (8814986910920838972) -->
- <skip />
- <!-- no translation found for audio_seek_bar_state_right_first (1999368979633398876) -->
- <skip />
+ <string name="audio_seek_bar_state_left_first" msgid="8814986910920838972">"Hljóð: %1$d%% vinstri, %2$d%% hægri"</string>
+ <string name="audio_seek_bar_state_right_first" msgid="1999368979633398876">"Hljóð: %1$d%% hægri, %2$d%% vinstri"</string>
<string name="about_phone_device_name_warning" msgid="3243226572404472381">"Heiti tækisins er sýnilegt uppsettum forritum. Heiti þess er hugsanlega einnig sýnilegt öðru fólki þegar þú tengist Bluetooth-tækjum, WiFi-neti eða setur upp heitan WiFi-reit."</string>
<string name="grammatical_gender_title" msgid="8584242850477270828">"Kyn"</string>
<string name="grammatical_gender_dialog_title" msgid="8754048592099871587">"Veldu kyn"</string>
@@ -5407,5 +5416,6 @@
<string name="audio_streams_main_page_password_dialog_join_button" msgid="2967747276379153408">"Hlusta á streymi"</string>
<string name="audio_streams_main_page_qr_code_scanner_summary" msgid="5312980105735143360">"Skannaðu QR-kóða hljóðstreymis til að hlusta með <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
<string name="audio_streams_main_page_password_dialog_cannot_edit" msgid="9020898619297520153">"Ekki hægt að breyta aðgangsorði á meðan deilt er. Til að breyta aðgangsorðinu skaltu fyrst slökkva á hljóðdeilingu."</string>
+ <string name="audio_streams_qr_code_scanner_label" msgid="8799703301071378034">"QR-kóðaskanni"</string>
<string name="homepage_search" msgid="6759334912284663559">"Leitarstillingar"</string>
</resources>
diff --git a/res/values-it-feminine/strings.xml b/res/values-it-feminine/strings.xml
new file mode 100644
index 0000000..b71790b
--- /dev/null
+++ b/res/values-it-feminine/strings.xml
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2007 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="show_dev_on" msgid="2840850085134853754">"Ora sei una sviluppatrice."</string>
+ <string name="show_dev_already" msgid="7041756429707644630">"Non è necessario, sei già una sviluppatrice."</string>
+ <string name="storage_other_users" msgid="7017206190449510992">"Altre utenti"</string>
+ <string name="language_empty_list_user_restricted" msgid="8050367405839231863">"Non sei autorizzata a modificare la lingua del dispositivo."</string>
+ <string name="credentials_settings_not_available" msgid="7433088409177429600">"Le credenziali non sono disponibili per questa utente"</string>
+ <string name="vpn_replace_always_on_vpn_disable_message" msgid="4299175336198481106">"Sei già connessa a una rete VPN sempre attiva. Se ti connetti a un\'altra rete, la rete VPN attuale verrà sostituita e la modalità sempre attiva verrà disattivata."</string>
+ <string name="vpn_replace_vpn_message" msgid="1094297700371463386">"Sei già connessa a una rete VPN. Se ti connetti a un\'altra rete, la VPN attuale verrà sostituita."</string>
+ <string name="vpn_lockdown_summary" msgid="4700625960550559029">"Seleziona un profilo VPN a cui rimanere sempre connessa. Il traffico di rete sarà consentito solo quando sei connessa a questa VPN."</string>
+ <string name="ssl_ca_cert_info_message" msgid="3111724430981667845">"{numberOfCertificates,plural, =1{{orgName} ha installato un\'autorità di certificazione per il tuo profilo di lavoro. L\'amministratrice potrebbe monitorare l\'attività di rete lavorativa, inclusi siti web protetti, email e app.\n\nContatta l\'amministratrice per avere ulteriori informazioni su questo certificato.}other{{orgName} ha installato un\'autorità di certificazione per il tuo profilo di lavoro. L\'amministratrice potrebbe monitorare l\'attività di rete lavorativa, inclusi siti web protetti, email e app.\n\nContatta l\'amministratrice per avere ulteriori informazioni su questi certificati.}}"</string>
+ <string name="user_confirm_remove_self_title" msgid="926265330805361832">"Eliminare te stessa?"</string>
+ <string name="user_adding_new_user" msgid="7439602720177181412">"Aggiunta nuova utente…"</string>
+ <string name="other_user_category_title" msgid="7089976887307643217">"Altre utenti"</string>
+ <string name="user_revoke_admin_confirm_message" msgid="9207187319308572958">"Se rimuovi i privilegi amministrativi per questa utente, tu o un altro amministratore potrete concederglieli di nuovo in un secondo momento."</string>
+</resources>
diff --git a/res/values-it-masculine/strings.xml b/res/values-it-masculine/strings.xml
new file mode 100644
index 0000000..48199f9
--- /dev/null
+++ b/res/values-it-masculine/strings.xml
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2007 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="show_dev_on" msgid="2840850085134853754">"Ora sei uno sviluppatore."</string>
+ <string name="show_dev_already" msgid="7041756429707644630">"Non è necessario, sei già uno sviluppatore."</string>
+ <string name="storage_other_users" msgid="7017206190449510992">"Altri utenti"</string>
+ <string name="language_empty_list_user_restricted" msgid="8050367405839231863">"Non sei autorizzato a modificare la lingua del dispositivo."</string>
+ <string name="credentials_settings_not_available" msgid="7433088409177429600">"Le credenziali non sono disponibili per questo utente"</string>
+ <string name="vpn_replace_always_on_vpn_disable_message" msgid="4299175336198481106">"Sei già connesso a una rete VPN sempre attiva. Se ti connetti a un\'altra rete, la rete VPN attuale verrà sostituita e la modalità sempre attiva verrà disattivata."</string>
+ <string name="vpn_replace_vpn_message" msgid="1094297700371463386">"Sei già connesso a una rete VPN. Se ti connetti a un\'altra rete, la VPN attuale verrà sostituita."</string>
+ <string name="vpn_lockdown_summary" msgid="4700625960550559029">"Seleziona un profilo VPN a cui rimanere sempre connesso. Il traffico di rete sarà consentito solo quando sei connesso a questa VPN."</string>
+ <string name="ssl_ca_cert_info_message" msgid="3111724430981667845">"{numberOfCertificates,plural, =1{{orgName} ha installato un\'autorità di certificazione per il tuo profilo di lavoro. L\'amministratore potrebbe monitorare l\'attività di rete lavorativa, inclusi siti web protetti, email e app.\n\nContatta l\'amministratore per avere ulteriori informazioni su questo certificato.}other{{orgName} ha installato un\'autorità di certificazione per il tuo profilo di lavoro. L\'amministratore potrebbe monitorare l\'attività di rete lavorativa, inclusi siti web protetti, email e app.\n\nContatta l\'amministratore per avere ulteriori informazioni su questi certificati.}}"</string>
+ <string name="user_confirm_remove_self_title" msgid="926265330805361832">"Eliminare te stesso?"</string>
+ <string name="user_adding_new_user" msgid="7439602720177181412">"Aggiunta nuovo utente…"</string>
+ <string name="other_user_category_title" msgid="7089976887307643217">"Altri utenti"</string>
+ <string name="user_revoke_admin_confirm_message" msgid="9207187319308572958">"Se rimuovi i privilegi amministrativi per questo utente, tu o un altro amministratore potrete concederglieli di nuovo in un secondo momento."</string>
+</resources>
diff --git a/res/values-it-neuter/strings.xml b/res/values-it-neuter/strings.xml
new file mode 100644
index 0000000..4bf5eed
--- /dev/null
+++ b/res/values-it-neuter/strings.xml
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2007 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="show_dev_on" msgid="2840850085134853754">"Ora sei unə sviluppatorə."</string>
+ <string name="show_dev_already" msgid="7041756429707644630">"Non è necessario, sei già unə sviluppatorə."</string>
+ <string name="storage_other_users" msgid="7017206190449510992">"Altrə utenti"</string>
+ <string name="language_empty_list_user_restricted" msgid="8050367405839231863">"Non sei autorizzatə a modificare la lingua del dispositivo."</string>
+ <string name="credentials_settings_not_available" msgid="7433088409177429600">"Le credenziali non sono disponibili per questə utente"</string>
+ <string name="vpn_replace_always_on_vpn_disable_message" msgid="4299175336198481106">"Sei già connessə a una rete VPN sempre attiva. Se ti connetti a un\'altra rete, la rete VPN attuale verrà sostituita e la modalità sempre attiva verrà disattivata."</string>
+ <string name="vpn_replace_vpn_message" msgid="1094297700371463386">"Sei già connessə a una rete VPN. Se ti connetti a un\'altra rete, la VPN attuale verrà sostituita."</string>
+ <string name="vpn_lockdown_summary" msgid="4700625960550559029">"Seleziona un profilo VPN a cui rimanere sempre connessə. Il traffico di rete sarà consentito solo quando sei connessə a questa VPN."</string>
+ <string name="ssl_ca_cert_info_message" msgid="3111724430981667845">"{numberOfCertificates,plural, =1{{orgName} ha installato un\'autorità di certificazione per il tuo profilo di lavoro. L\'amministratorə potrebbe monitorare l\'attività di rete lavorativa, inclusi siti web protetti, email e app.\n\nContatta l\'amministratorə per avere ulteriori informazioni su questo certificato.}other{{orgName} ha installato un\'autorità di certificazione per il tuo profilo di lavoro. L\'amministratorə potrebbe monitorare l\'attività di rete lavorativa, inclusi siti web protetti, email e app.\n\nContatta l\'amministratorə per avere ulteriori informazioni su questi certificati.}}"</string>
+ <string name="user_confirm_remove_self_title" msgid="926265330805361832">"Eliminare te stessə?"</string>
+ <string name="user_adding_new_user" msgid="7439602720177181412">"Aggiunta nuovə utente…"</string>
+ <string name="other_user_category_title" msgid="7089976887307643217">"Altrə utenti"</string>
+ <string name="user_revoke_admin_confirm_message" msgid="9207187319308572958">"Se rimuovi i privilegi amministrativi per questə utente, tu o un altro amministratore potrete concederglieli di nuovo in un secondo momento."</string>
+</resources>
diff --git a/res/values-it/strings.xml b/res/values-it/strings.xml
index bdc5786..fb1918d 100644
--- a/res/values-it/strings.xml
+++ b/res/values-it/strings.xml
@@ -41,6 +41,7 @@
<string name="radioInfo_data_suspended" msgid="2001254415431299603">"Sospeso"</string>
<string name="radioInfo_unknown" msgid="2892562356748600367">"Sconosciuto"</string>
<string name="preview_pager_content_description" msgid="3762247188224576303">"Anteprima"</string>
+ <string name="qr_code_content_description" msgid="1852208464419291347">"Codice QR"</string>
<string name="font_size_make_smaller_desc" msgid="4978038055549590140">"Rimpicciolisci"</string>
<string name="font_size_make_larger_desc" msgid="5583046033381722247">"Ingrandisci"</string>
<string name="stay_awake_on_fold_title" msgid="6590454679898134221">"Sempre"</string>
@@ -71,7 +72,7 @@
<string name="bluetooth_pair_other_ear_dialog_title" msgid="3814943511999984012">"Accoppia l\'altro orecchio"</string>
<string name="bluetooth_pair_other_ear_dialog_left_ear_message" msgid="5711642363615781647">"La tua protesi uditiva sinistra è connessa.\n\nPer accoppiare quella destra, assicurati che sia accesa e pronta per l\'accoppiamento."</string>
<string name="bluetooth_pair_other_ear_dialog_right_ear_message" msgid="631521133525979967">"La tua protesi uditiva destra è connessa.\n\nPer accoppiare quella sinistra, assicurati che sia accesa e pronta per l\'accoppiamento."</string>
- <string name="bluetooth_pair_other_ear_dialog_right_ear_positive_button" msgid="533612082529204078">"Accoppia orecchio destro"</string>
+ <string name="bluetooth_pair_other_ear_dialog_right_ear_positive_button" msgid="533612082529204078">"Accoppia orecchio dx"</string>
<string name="bluetooth_pair_other_ear_dialog_left_ear_positive_button" msgid="6500192653171220257">"Accoppia orecchio sx"</string>
<string name="bluetooth_hearing_device_settings_title" msgid="6060072560486755057">"Impostazioni protesi uditive"</string>
<string name="bluetooth_hearing_device_settings_summary" msgid="3822646075744075158">"Scorciatoia, compatibilità con apparecchi acustici"</string>
@@ -216,7 +217,7 @@
<string name="terms_of_address_feminine" msgid="1743479869695539283">"Femminili"</string>
<string name="terms_of_address_masculine" msgid="983106046135098856">"Maschili"</string>
<string name="terms_of_address_neutral" msgid="5475414185543112478">"Neutra"</string>
- <string name="dlg_remove_locales_title" msgid="3170501604483612114">"{count,plural, =1{Vuoi rimuovere la lingua selezionata?}other{Vuoi rimuovere le lingue selezionate?}}"</string>
+ <string name="dlg_remove_locales_title" msgid="3170501604483612114">"{count,plural, =1{Rimuovere la lingua selezionata?}other{Rimuovere le lingue selezionate?}}"</string>
<string name="dlg_remove_locales_message" msgid="8110560091134252067">"Il testo verrà mostrato in un\'altra lingua."</string>
<string name="dlg_remove_locales_error_title" msgid="5875503658221562572">"Impossibile rimuovere tutte le lingue"</string>
<string name="dlg_remove_locales_error_message" msgid="6504279959974675302">"Mantieni almeno una lingua preferita"</string>
@@ -283,7 +284,7 @@
<string name="location_settings_summary_location_off" msgid="4797932754681162262">"Off"</string>
<string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{On / # app ha accesso alla posizione}other{On / # app hanno accesso alla posizione}}"</string>
<string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"Caricamento…"</string>
- <string name="location_settings_footer_general" msgid="1040507068701188821">"Le app con l\'autorizzazione Dispositivi nelle vicinanze possono stabilire la posizione relativa dei dispositivi connessi."</string>
+ <string name="location_settings_footer_general" msgid="3447585552176173502">"Le app con autorizzazione di accesso ai dispositivi nelle vicinanze possono stabilire la posizione relativa dei dispositivi connessi."</string>
<string name="location_settings_footer_location_off" msgid="8568995909147566720">"L\'accesso alla posizione è disattivato per app e servizi. La posizione del dispositivo potrebbe essere comunque inviata ai servizi di emergenza se chiami o invii un SMS a un numero di emergenza."</string>
<string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Scopri di più sulle impostazioni di geolocalizzazione"</string>
<string name="location_settings_tooltip_text_for_chrome" msgid="5781821709250544575">"Per apportare modifiche, vai alle Impostazioni di ChromeOS > Privacy e sicurezza > Controlli per la privacy > Accesso alla posizione"</string>
@@ -342,8 +343,8 @@
<string name="security_settings_face_enroll_must_re_enroll_title" msgid="4421818770682557621">"Riconfigura lo Sblocco con il Volto"</string>
<string name="security_settings_face_enroll_must_re_enroll_subtitle" msgid="3584740139535177961">"Migliora la sicurezza e le prestazioni"</string>
<string name="security_settings_face_enroll_improve_face_alert_title" msgid="6194184776580066012">"Configura lo Sblocco con il Volto"</string>
- <string name="security_settings_face_enroll_improve_face_alert_body" msgid="2670118180411127323">"Elimina l\'attuale modello del volto per riconfigurare lo Sblocco con il Volto.\n\nIl modello del volto verrà eliminato definitivamente e in sicurezza.\n\nDopo l\'eliminazione dovrai usare il PIN, la sequenza o la password per sbloccare il telefono o eseguire l\'autenticazione nelle app."</string>
- <string name="security_settings_face_enroll_improve_face_alert_body_fingerprint" msgid="2469599074650327489">"Elimina l\'attuale modello del volto per riconfigurare lo Sblocco con il Volto.\n\nIl modello del volto verrà eliminato definitivamente e in sicurezza.\n\nDopo l\'eliminazione dovrai usare l\'impronta, il PIN, la sequenza o la password per sbloccare il telefono o eseguire l\'autenticazione nelle app."</string>
+ <string name="security_settings_face_enroll_improve_face_alert_body" msgid="2670118180411127323">"Elimina l\'attuale modello del volto per riconfigurare lo Sblocco con il Volto.\n\nIl modello del volto verrà eliminato definitivamente e in sicurezza.\n\nDopo l\'eliminazione dovrai usare il PIN, la sequenza o la password per sbloccare lo smartphone o eseguire l\'autenticazione nelle app."</string>
+ <string name="security_settings_face_enroll_improve_face_alert_body_fingerprint" msgid="2469599074650327489">"Elimina l\'attuale modello del volto per riconfigurare lo Sblocco con il Volto.\n\nIl modello del volto verrà eliminato definitivamente e in sicurezza.\n\nDopo l\'eliminazione dovrai usare l\'impronta, il PIN, la sequenza o la password per sbloccare lo smartphone o eseguire l\'autenticazione nelle app."</string>
<string name="security_settings_face_settings_use_face_category" msgid="1638314154119800188">"Usa lo Sblocco con il Volto per"</string>
<string name="security_settings_face_settings_preferences_category" msgid="7628929873407280453">"Quando usi lo Sblocco con il Volto"</string>
<string name="security_settings_face_settings_require_attention" msgid="4395309855914391104">"Gli occhi devono essere aperti"</string>
@@ -778,7 +779,7 @@
<string name="lockpassword_password_too_short" msgid="1938086368137797700">"{count,plural, =1{Deve contenere almeno # carattere}other{Deve contenere almeno # caratteri}}"</string>
<string name="lockpassword_password_too_short_all_numeric" msgid="4301294924022401502">"{count,plural, =1{Se utilizzi solo numeri, la password deve avere almeno 1 cifra}other{Se utilizzi solo numeri, la password deve avere almeno # cifre}}"</string>
<string name="lockpassword_pin_too_short" msgid="8910105226463085689">"{count,plural, =1{Il PIN deve contenere almeno # cifra}other{Il PIN deve contenere almeno # cifre}}"</string>
- <string name="lockpassword_pin_too_short_autoConfirm_extra_message" msgid="3271351502900762571">"{count,plural, =1{Il PIN deve contenere almeno # cifra, ma è consigliato un PIN di {minAutoConfirmLen} cifre per una maggiore sicurezza}other{Il PIN deve contenere almeno # cifre, ma è consigliato un PIN di {minAutoConfirmLen} cifre per una maggiore sicurezza}}"</string>
+ <string name="lockpassword_pin_too_short_autoConfirm_extra_message" msgid="3271351502900762571">"{count,plural, =1{Il PIN deve contenere almeno # cifra, ma un PIN di {minAutoConfirmLen} cifre è consigliato per una maggiore sicurezza}other{Il PIN deve contenere almeno # cifre, ma un PIN di {minAutoConfirmLen} cifre è consigliato per una maggiore sicurezza}}"</string>
<string name="lockpassword_password_too_long" msgid="1940345313260498308">"{count,plural, =1{Deve contenere meno di # carattere}other{Deve contenere meno di # caratteri}}"</string>
<string name="lockpassword_pin_too_long" msgid="1678212054564388576">"{count,plural, =1{Deve contenere meno di # cifra}other{Deve contenere meno di # cifre}}"</string>
<string name="lockpassword_pin_recently_used" msgid="6650277060998923465">"L\'amministratore del dispositivo non consente l\'utilizzo di un PIN recente"</string>
@@ -850,7 +851,6 @@
<string name="nfc_reboot_dialog_title" msgid="2033983438635768169">"Vuoi riavviare il dispositivo?"</string>
<string name="nfc_reboot_dialog_message" msgid="4929353168157966992">"Il logging NFC dettagliato è a solo scopo di sviluppo. Vengono inclusi dati NFC aggiuntivi nelle segnalazioni di bug, che potrebbero contenere informazioni private. Riavvia il dispositivo per cambiare questa impostazione."</string>
<string name="nfc_reboot_dialog_confirm" msgid="4769763632008584567">"Riavvia"</string>
- <string name="keywords_external_display" msgid="4181375057920134909">"mirroring, display esterno, display connesso, display usb, risoluzione, ruota"</string>
<string name="external_display_on" msgid="2560104443500154333">"On"</string>
<string name="external_display_off" msgid="5634413756025351374">"Off"</string>
<string name="external_display_settings_title" msgid="6256884595821605779">"Display esterno"</string>
@@ -1035,7 +1035,7 @@
<string name="wifi_scan_always_turn_on_message_unknown" msgid="4903345360745717385">"Per migliorare la precisione della posizione e per altri scopi, un\'app sconosciuta vuole attivare la ricerca della rete, anche se il Wi‑Fi non è attivo.\n\nVuoi autorizzare ogni app che richiede di eseguire la ricerca?"</string>
<string name="wifi_scan_always_confirm_allow" msgid="4154200627800959777">"Consenti"</string>
<string name="wifi_scan_always_confirm_deny" msgid="6997087934558839256">"Rifiuta"</string>
- <string name="no_internet_access_text" msgid="3611993143350310936">"Questa rete non ha accesso a Internet. Vuoi restare connesso?"</string>
+ <string name="no_internet_access_text" msgid="3611993143350310936">"Questa rete non ha accesso a internet. Vuoi restare connesso?"</string>
<string name="partial_connectivity_text" msgid="8874614799723694554">"Alcuni servizi e app potrebbero non funzionare a causa della connettività limitata. Usarli comunque?"</string>
<string name="no_internet_access_remember" msgid="5113610157731269258">"Non chiedermelo più per questa rete"</string>
<string name="lost_internet_access_title" msgid="9032463989950384698">"Wi-Fi non connesso a Internet"</string>
@@ -1147,7 +1147,7 @@
<string name="wifi_add_app_single_network_saved_summary" msgid="7135016314713158289">"Salvata"</string>
<string name="wifi_add_app_network_save_failed_summary" msgid="7223817782309294652">"Impossibile salvare. Riprova."</string>
<string name="wifi_add_app_networks_title" msgid="4384594865433042851">"Vuoi salvare le reti?"</string>
- <string name="wifi_add_app_networks_saving_summary" msgid="577680250954742033">"Salvataggio di <xliff:g id="NUMBER">%d</xliff:g> reti…"</string>
+ <string name="wifi_add_app_networks_saving_summary" msgid="577680250954742033">"Salvataggio di <xliff:g id="NUMBER">%d</xliff:g> reti in corso…"</string>
<string name="wifi_add_app_networks_saved_summary" msgid="1648417628665152905">"Reti salvate"</string>
<string name="wifi_calling_settings_title" msgid="264665264535884440">"Chiamate Wi-Fi"</string>
<string name="wifi_calling_suggestion_title" msgid="4791435106729906727">"Estendi le chiamate usando il Wi‑Fi"</string>
@@ -1173,7 +1173,7 @@
<string name="wifi_calling_off_explanation" msgid="6295526820826322895">"Se le chiamate Wi-Fi sono attive, il tuo telefono può indirizzare le chiamate tramite reti Wi-Fi o la rete del tuo operatore, in base alle tue preferenze e alla potenza del segnale. Prima di attivare questa funzionalità, verifica tariffe e altri dettagli con il tuo operatore.<xliff:g id="ADDITIONAL_TEXT">%1$s</xliff:g>"</string>
<string name="wifi_calling_off_explanation_2" msgid="3487475808574416183"></string>
<string name="emergency_address_title" msgid="8102786488994263815">"Indirizzo per le emergenze"</string>
- <string name="emergency_address_summary" msgid="3022628750270626473">"Viene considerato la tua posizione quando fai una chiamata di emergenza tramite Wi‑Fi"</string>
+ <string name="emergency_address_summary" msgid="3022628750270626473">"Viene considerato come la tua posizione quando fai una chiamata di emergenza tramite Wi‑Fi"</string>
<string name="private_dns_help_message" msgid="851221502063782306"><annotation id="url">"Scopri di più"</annotation>" sulle funzioni di DNS privato"</string>
<string name="private_dns_mode_on" msgid="8878679071975375696">"On"</string>
<string name="wifi_calling_settings_activation_instructions" msgid="3936067355828542266">"Attiva le chiamate Wi-Fi"</string>
@@ -1421,14 +1421,14 @@
<string name="storage_os_detail_dialog_system" msgid="1423073052313067844">"Sono inclusi il tuo sistema operativo e i file necessari per far funzionare correttamente il tuo smartphone. Per proteggere la loro integrità, non è possibile accedere a questi file."</string>
<string name="storage_other_files_detail_dialog_system" msgid="8241153880150866635">"Sono inclusi la cache e altri file temporanei richiesti dal tuo sistema operativo. Potresti notare delle modifiche alla quantità di spazio di archiviazione utilizzato nel tempo."</string>
<string name="storage_system_label" msgid="8320948583086758295">"Sistema"</string>
- <string name="storage_wizard_guest" msgid="5813419895687733649">"Utenti Ospite non possono formattare le schede SD"</string>
+ <string name="storage_wizard_guest" msgid="5813419895687733649">"Utenti ospite non possono formattare le schede SD"</string>
<string name="storage_wizard_format_progress_title" msgid="9170393018855949774">"Formattazione della <xliff:g id="NAME">^1</xliff:g>…"</string>
<string name="storage_wizard_format_progress_body" msgid="1044024044955390417">"Non rimuovere il dispositivo <xliff:g id="NAME">^1</xliff:g> durante la formattazione."</string>
<string name="storage_wizard_ready_title" msgid="3631022511474086605">"Formattazione <xliff:g id="NAME">^1</xliff:g> eseguita"</string>
<string name="storage_wizard_move_confirm_title" msgid="6812469630804101590">"Sposta <xliff:g id="APP">^1</xliff:g>"</string>
<string name="storage_wizard_move_confirm_body" msgid="1713022828842263574">"Lo spostamento dell\'app <xliff:g id="APP">^1</xliff:g> e dei relativi dati sulla <xliff:g id="NAME_0">^2</xliff:g> sarà veloce. Potrai utilizzare l\'app soltanto al termine dello spostamento. \n\nNon rimuovere la <xliff:g id="NAME_1">^2</xliff:g> durante lo spostamento."</string>
<string name="storage_wizard_move_unlock" msgid="14651384927767749">"Per spostare i dati devi sbloccare l\'utente <xliff:g id="APP">^1</xliff:g>."</string>
- <string name="storage_wizard_move_progress_title" msgid="3912406225614672391">"Spostamento dell\'app <xliff:g id="APP">^1</xliff:g>…"</string>
+ <string name="storage_wizard_move_progress_title" msgid="3912406225614672391">"Spostamento dell\'app <xliff:g id="APP">^1</xliff:g> in corso…"</string>
<string name="storage_wizard_move_progress_body" msgid="2396714553394935094">"Non rimuovere la <xliff:g id="NAME">^1</xliff:g> durante lo spostamento. \n\nL\'app <xliff:g id="APP">^2</xliff:g> su questo dispositivo sarà disponibile soltanto al termine dello spostamento."</string>
<string name="storage_wizard_init_v2_title" msgid="2538630338392381113">"Come userai <xliff:g id="NAME">^1</xliff:g>?"</string>
<string name="storage_wizard_init_v2_or" msgid="5558706089661158026">"Oppure"</string>
@@ -1588,7 +1588,7 @@
<string name="location_recent_location_access_see_all" msgid="4203102419355323325">"Mostra tutto"</string>
<string name="location_recent_location_access_view_details" msgid="5803264082558504544">"Vedi dettagli"</string>
<string name="location_no_recent_apps" msgid="6814206631456177033">"Nessuna app ha richiesto la posizione di recente"</string>
- <string name="location_no_recent_accesses" msgid="6031735777805464247">"Nessuna app ha effettuato di recente l\'accesso alla posizone"</string>
+ <string name="location_no_recent_accesses" msgid="6031735777805464247">"Nessuna app ha effettuato di recente l\'accesso alla posizione"</string>
<string name="location_high_battery_use" msgid="4277318891200626524">"Elevato utilizzo della batteria"</string>
<string name="location_low_battery_use" msgid="5218950289737996431">"Basso utilizzo della batteria"</string>
<string name="location_scanning_wifi_always_scanning_title" msgid="5004781272733434794">"Ricerca di reti Wi-Fi"</string>
@@ -1918,6 +1918,8 @@
<string name="slow_keys_summary" msgid="1784371292745423292">"Regola il tempo richiesto per l\'attivazione della pressione di un tasto su <xliff:g id="SLOW_KEYS_THRESHOLD">%1$d</xliff:g> ms"</string>
<string name="sticky_keys" msgid="7317317044898161747">"Tasti permanenti"</string>
<string name="sticky_keys_summary" msgid="1844953803625480623">"Premi un tasto alla volta per le scorciatoie invece di tenere premuti più tasti contemporaneamente"</string>
+ <string name="mouse_keys" msgid="6237254627808525540">"Tasti del mouse"</string>
+ <string name="mouse_keys_summary" msgid="2396247040177734245">"Usa la tastiera fisica per controllare il mouse."</string>
<string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"Scorciatoie da tastiera"</string>
<string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"Mostra l\'elenco di scorciatoie"</string>
<string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"Tastiere e strumenti del profilo di lavoro"</string>
@@ -1942,14 +1944,10 @@
<string name="pointer_fill_style_yellow_button" msgid="5025969961559379024">"Cambia riempim. puntatore in giallo"</string>
<string name="pointer_fill_style_pink_button" msgid="4106218142489635673">"Cambia riempim. puntatore in rosa"</string>
<string name="pointer_fill_style_blue_button" msgid="5594958078854032785">"Cambia riempim. puntatore in blu"</string>
- <!-- no translation found for pointer_stroke_style (1886986630216050665) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_white (673686194443825383) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_black (4655806167067437330) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_none (8953927511729800247) -->
- <skip />
+ <string name="pointer_stroke_style" msgid="1886986630216050665">"Stile tratto puntatore"</string>
+ <string name="pointer_stroke_style_name_white" msgid="673686194443825383">"Bianco"</string>
+ <string name="pointer_stroke_style_name_black" msgid="4655806167067437330">"Nero"</string>
+ <string name="pointer_stroke_style_name_none" msgid="8953927511729800247">"Nessuno"</string>
<string name="trackpad_touch_gesture" msgid="8641725062131922497">"Impara i gesti con il touchpad"</string>
<string name="keywords_touchpad" msgid="8159846254066666032">"trackpad, track pad, mouse, cursore, scorrimento, scorrere, clic con il tasto destro del mouse, clic, puntatore"</string>
<string name="keywords_trackpad_bottom_right_tap" msgid="1285062446073929305">"clic con il tasto destro del mouse, tocco"</string>
@@ -2179,8 +2177,6 @@
<string name="accessibility_shortcut_edit_dialog_summary_floating_button" msgid="6266489864614886247">"Tocca il pulsante mobile"</string>
<string name="accessibility_shortcut_edit_dialog_title_software_by_gesture" msgid="4775049370625630546">"Gesto di accessibilità"</string>
<string name="accessibility_shortcut_edit_dialog_summary_software" msgid="8315934725362849788">"Tocca il pulsante Accessibilità <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g> nella parte inferiore dello schermo. Per spostarti tra le funzionalità, tocca e tieni premuto il pulsante Accessibilità."</string>
- <string name="accessibility_shortcut_edit_dialog_summary_software_gesture" msgid="8292555254353761635">"Scorri verso l\'alto dalla parte inferiore dello schermo con due dita.\n\nPer spostarti tra le funzionalità, scorri verso l\'alto con due dita e tieni premuto."</string>
- <string name="accessibility_shortcut_edit_dialog_summary_software_gesture_talkback" msgid="84483464524360845">"Scorri verso l\'alto dalla parte inferiore dello schermo con tre dita.\n\nPer spostarti tra le funzionalità, scorri verso l\'alto con tre dita e tieni premuto."</string>
<string name="accessibility_shortcut_edit_dialog_summary_gesture" msgid="2081123009255579884">"{count,plural, =1{Scorri verso l\'alto dalla parte inferiore dello schermo. Per spostarti tra le funzionalità, scorri verso l\'alto e tieni premuto.}other{Scorri verso l\'alto con # dita dalla parte inferiore dello schermo. Per spostarti tra le funzionalità, scorri verso l\'alto con # dita e tieni premuto.}}"</string>
<string name="accessibility_shortcut_edit_dialog_summary_software_floating" msgid="4459254227203203324"><annotation id="link">"Altre opzioni"</annotation></string>
<string name="footer_learn_more_content_description" msgid="8843798273152131341">"Scopri di più su <xliff:g id="SERVICE">%1$s</xliff:g>"</string>
@@ -2191,16 +2187,12 @@
<string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="844089763968552142">"Tasti del volume"</string>
<string name="accessibility_shortcut_hardware_keyword" msgid="2483152542320987022">"tasti del volume"</string>
<string name="accessibility_shortcut_edit_dialog_summary_hardware" msgid="2503134386397991634">"Tieni premuti entrambi i tasti del volume"</string>
- <string name="accessibility_shortcut_edit_dialog_title_two_finger_double_tap" msgid="2271778556854020996">"Tocca due volte lo schermo con due dita"</string>
<string name="accessibility_shortcut_edit_screen_title_two_finger_double_tap" msgid="8952595692906527694">"Tocca due volte con %1$d dita"</string>
<string name="accessibility_shortcut_edit_screen_summary_two_finger_double_tap" msgid="385404127425496362">"Tocca rapidamente lo schermo due volte con %1$d dita"</string>
<string name="accessibility_shortcut_edit_screen_title_triple_tap" msgid="3314488747597058942">"Tocca tre volte"</string>
<string name="accessibility_shortcut_edit_screen_summary_triple_tap" msgid="4839204951599629871">"Tocca rapidamente lo schermo %1$d volte. L\'operazione potrebbe rallentare il dispositivo."</string>
<string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="6271718715836961167">"Tocca due volte con %1$d dita"</string>
- <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"Tocca rapidamente lo schermo {0,number,integer} volte con due dita"</string>
- <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"Tocca 3 volte lo schermo"</string>
<string name="accessibility_shortcut_triple_tap_keyword" msgid="5359347130888464334">"tocca tre volte"</string>
- <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"Tocca lo schermo {0,number,integer} volte in rapida successione. Questa scorciatoia potrebbe rallentare il dispositivo."</string>
<string name="accessibility_shortcut_edit_dialog_title_advance" msgid="4567868630655591506">"Avanzate"</string>
<string name="accessibility_screen_magnification_navbar_configuration_warning" msgid="266736851606791552">"Il pulsante Accessibilità è impostato su <xliff:g id="SERVICE">%1$s</xliff:g>. Per utilizzare l\'ingrandimento, tocca e tieni premuto il pulsante Accessibilità, quindi seleziona l\'ingrandimento."</string>
<string name="accessibility_screen_magnification_gesture_navigation_warning" msgid="991017769735632046">"Il gesto di accessibilità è impostato per <xliff:g id="SERVICE">%1$s</xliff:g>. Per usare l\'ingrandimento, scorri con due dita verso l\'alto dalla parte inferiore dello schermo e tieni premuto. Dopodiché seleziona l\'ingrandimento."</string>
@@ -2369,6 +2361,7 @@
<string name="daltonizer_mode_tritanomaly_title" msgid="2278786218762602022">"Blu-giallo"</string>
<string name="daltonizer_mode_grayscale_title" msgid="152005391387952588">"Scala di grigi"</string>
<string name="daltonizer_saturation_title" msgid="2999486412114963068">"Intensità"</string>
+ <string name="daltonizer_saturation_unavailable_summary" msgid="8319753055567798775">"Non disponibile per la modalità Scala di grigi o quando la correzione del colore è disattivata"</string>
<string name="daltonizer_mode_deuteranomaly_summary" msgid="2117727423019598455">"Ridotta percezione del verde, deuteranomalia"</string>
<string name="daltonizer_mode_protanomaly_summary" msgid="4617032854982040748">"Ridotta percezione del rosso, protanomalia"</string>
<string name="daltonizer_mode_tritanomaly_summary" msgid="2428218320118180070">"Tritanomalia"</string>
@@ -2418,15 +2411,8 @@
<string name="color_cyan" msgid="4341758639597035927">"Ciano"</string>
<string name="color_yellow" msgid="5957551912912679058">"Giallo"</string>
<string name="color_magenta" msgid="8943538189219528423">"Magenta"</string>
- <string name="enable_service_title" msgid="7231533866953706788">"Vuoi consentire a <xliff:g id="SERVICE">%1$s</xliff:g> di avere il controllo totale del tuo dispositivo?"</string>
<string name="capabilities_list_title" msgid="1225853611983394386">"<xliff:g id="SERVICE">%1$s</xliff:g> deve:"</string>
<string name="touch_filtered_warning" msgid="4225815157460318241">"Un\'app sta oscurando una richiesta di autorizzazione, pertanto Impostazioni non può verificare la tua risposta."</string>
- <string name="accessibility_service_warning" msgid="6779187188736432618">"<xliff:g id="SERVICE">%1$s</xliff:g> richiede il totale controllo di questo dispositivo. Il servizio può leggere i contenuti sullo schermo e agire per conto di utenti con esigenze di accessibilità. Questo livello di controllo non è appropriato per la maggior parte delle app."</string>
- <string name="accessibility_service_warning_description" msgid="6573203795976134751">"Il controllo totale è appropriato per le app che rispondono alle tue esigenze di accessibilità, ma non per gran parte delle app."</string>
- <string name="accessibility_service_screen_control_title" msgid="324795030658109870">"Visualizzare e controllare lo schermo"</string>
- <string name="accessibility_service_screen_control_description" msgid="8431940515157990426">"Può leggere tutti i contenuti presenti sullo schermo e mostrare i contenuti sopra altre app."</string>
- <string name="accessibility_service_action_perform_title" msgid="1449360056585337833">"Visualizzare ed eseguire azioni"</string>
- <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"Può tenere traccia delle tue interazioni con un\'app o un sensore hardware e interagire con app per tuo conto."</string>
<string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Consenti"</string>
<string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Rifiuta"</string>
<string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Disattiva"</string>
@@ -2836,7 +2822,7 @@
<string name="remove_managed_profile_label" msgid="1294933737673830431">"Rimuovi profilo di lavoro"</string>
<string name="background_data" msgid="321903213000101158">"Dati in background"</string>
<string name="background_data_summary" msgid="6572245922513522466">"Sincron., invio e ricezione dati possibili in ogni momento"</string>
- <string name="background_data_dialog_title" msgid="1692005302993229867">"Disatt. dati backgr.?"</string>
+ <string name="background_data_dialog_title" msgid="1692005302993229867">"Disatt. dati backg.?"</string>
<string name="background_data_dialog_message" msgid="7760280837612824670">"La disattivazione dei dati in background aumenta la durata della batteria e riduce l\'utilizzo dei dati. Alcune applicazioni potrebbero utilizzare comunque la connessione dati in background."</string>
<string name="sync_enabled" msgid="5794103781356455043">"Sincronizzazione attiva"</string>
<string name="sync_disabled" msgid="1636223106968593391">"La sincronizzazione non è attiva"</string>
@@ -2947,8 +2933,8 @@
<string name="vpn_set_vpn_title" msgid="1667539483005810682">"Impostare la rete VPN sempre attiva?"</string>
<string name="vpn_first_always_on_vpn_message" msgid="2769478310633047870">"Quando questa impostazione è attiva, la connessione Internet non sarà disponibile fino a quando la rete VPN sarà connessa correttamente"</string>
<string name="vpn_replace_always_on_vpn_enable_message" msgid="9154843462740876652">"La rete VPN attuale sarà sostituita e la connessione Internet non sarà disponibile fino a quando la rete VPN sarà connessa correttamente"</string>
- <string name="vpn_replace_always_on_vpn_disable_message" msgid="4299175336198481106">"Sei già collegato a una rete VPN sempre attiva. Se ti connetti a un\'altra rete, la rete VPN attuale verrà sostituita e la modalità sempre attiva verrà disattivata."</string>
- <string name="vpn_replace_vpn_message" msgid="1094297700371463386">"Sei già collegato a una rete VPN. Se ti connetti a un\'altra rete, la VPN attuale verrà sostituita."</string>
+ <string name="vpn_replace_always_on_vpn_disable_message" msgid="4299175336198481106">"Hai già effettuato la connessione a una rete VPN sempre attiva. Se ti connetti a un\'altra rete, la rete VPN attuale verrà sostituita e la modalità sempre attiva verrà disattivata."</string>
+ <string name="vpn_replace_vpn_message" msgid="1094297700371463386">"Hai già eseguito la connessione a una rete VPN. Se ti connetti a un\'altra rete, la VPN attuale verrà sostituita."</string>
<string name="vpn_turn_on" msgid="3568307071295211187">"Attiva"</string>
<string name="vpn_cant_connect_title" msgid="5670787575925519386">"Impossibile connettersi alla rete <xliff:g id="VPN_NAME">%1$s</xliff:g>"</string>
<string name="vpn_cant_connect_message" msgid="2139148820719163694">"Questa app non supporta le reti VPN sempre attive"</string>
@@ -2966,7 +2952,7 @@
<string name="vpn_require_connection_title" msgid="4186758487822779039">"Connessione VPN obbligatoria?"</string>
<string name="vpn_insecure_dialog_subtitle" msgid="1857621742868835300">"Tipo non sicuro. Usa una VPN IKEv2."</string>
<string name="vpn_start_unsupported" msgid="7139925503292269904">"Impossibile avviare la VPN non supportata."</string>
- <string name="vpn_lockdown_summary" msgid="4700625960550559029">"Seleziona un profilo VPN a cui rimanere sempre connesso. Il traffico di rete sarà consentito solo quando sei connesso a questa VPN."</string>
+ <string name="vpn_lockdown_summary" msgid="4700625960550559029">"Seleziona un profilo VPN con cui mantenere la connessione attiva. Il traffico di rete sarà consentito solo durante la connessione a questa VPN."</string>
<string name="vpn_lockdown_none" msgid="455915403560910517">"Nessuna"</string>
<string name="vpn_lockdown_config_error" msgid="1992071316416371316">"La VPN sempre attiva richiede un indirizzo IP per server e DNS."</string>
<string name="vpn_no_network" msgid="7187593680049843763">"Nessuna connessione di rete disponibile. Riprova più tardi."</string>
@@ -3368,10 +3354,8 @@
<string name="zen_mode_automation_settings_title" msgid="3709324184191870926">"Pianificazioni"</string>
<string name="zen_mode_delete_automatic_rules" msgid="5020468289267191765">"Elimina pianificazioni"</string>
<string name="zen_mode_schedule_delete" msgid="5383420576833765114">"Elimina"</string>
- <!-- no translation found for zen_mode_menu_rename_mode (4681802125016390837) -->
- <skip />
- <!-- no translation found for zen_mode_menu_delete_mode (5380084696402157428) -->
- <skip />
+ <string name="zen_mode_menu_rename_mode" msgid="4681802125016390837">"Rinomina"</string>
+ <string name="zen_mode_menu_delete_mode" msgid="5380084696402157428">"Elimina"</string>
<string name="zen_mode_delete_mode_confirmation" msgid="7594340592051947392">"Vuoi eliminare la modalità \"<xliff:g id="MODE">%1$s</xliff:g>\"?"</string>
<string name="zen_mode_rule_name_edit" msgid="1053237022416700481">"Modifica"</string>
<string name="zen_mode_automation_settings_page_title" msgid="6217433860514433311">"Pianificazioni"</string>
@@ -3395,8 +3379,7 @@
<string name="zen_mode_visual_signals_settings_subtitle" msgid="7433077540895876672">"Consenti segnali visivi"</string>
<string name="mode_interruption_filter_title" msgid="3343846700214702347">"Mantieni la concentrazione"</string>
<string name="mode_device_effects_title" msgid="5857008332618433744">"Azioni aggiuntive"</string>
- <!-- no translation found for modes_sound_summary_off (6972648204528227879) -->
- <skip />
+ <string name="modes_sound_summary_off" msgid="6972648204528227879">"{count,plural, =0{Off}=1{Off/Può essere attivata automaticamente 1 modalità}other{Off/Possono essere attivate automaticamente # modalità}}"</string>
<string name="mode_display_settings_title" msgid="8132825978346535472">"Impostazioni di visualizzazione"</string>
<string name="mode_display_options_section" msgid="5151597748243866532">"Opzioni di visualizzazione"</string>
<string name="mode_grayscale_title" msgid="6027553257331235461">"Scala di grigi"</string>
@@ -3466,7 +3449,7 @@
<string name="zen_mode_duration_summary_forever" msgid="5551992961329998606">"Fino alla disattivazione"</string>
<string name="zen_mode_duration_summary_time_hours" msgid="2602655749780428308">"{count,plural, =1{1 ora}other{# ore}}"</string>
<string name="zen_mode_duration_summary_time_minutes" msgid="5755536844016835693">"{count,plural, =1{1 minuto}other{# minuti}}"</string>
- <string name="zen_mode_sound_summary_off" msgid="7350437977839985836">"{count,plural, =0{Off}=1{Off/1 pianificazione può attivarsi automaticamente}other{Off/# pianificazioni possono attivarsi automaticamente}}"</string>
+ <string name="zen_mode_sound_summary_off" msgid="7350437977839985836">"{count,plural, =0{Off}=1{Off/Può essere attivata automaticamente 1 programmazione}other{Off/Possono essere attivate automaticamente # programmazioni}}"</string>
<string name="zen_category_behavior" msgid="3214056473947178507">"Possono interrompere la modalità Non disturbare"</string>
<string name="zen_category_people" msgid="8252926021894933047">"Persone"</string>
<string name="zen_category_apps" msgid="1167374545618451925">"App"</string>
@@ -3624,13 +3607,13 @@
<string name="notifications_sent_never" msgid="9081278709126812062">"Mai"</string>
<string name="manage_notification_access_title" msgid="4154723216570646451">"Lettura, risposta e controllo notifiche"</string>
<string name="manage_notification_access_summary" msgid="2907135226478903997">"Controlla quali app e dispositivi possono leggere le notifiche"</string>
- <string name="work_profile_notification_access_blocked_summary" msgid="8643809206612366067">"Accosso bloccato alle notifiche del profilo di lavoro"</string>
+ <string name="work_profile_notification_access_blocked_summary" msgid="8643809206612366067">"Accesso bloccato alle notifiche del profilo di lavoro"</string>
<string name="notification_assistant_title" msgid="5889201903272393099">"Notifiche avanzate"</string>
<string name="notification_assistant_summary" msgid="1957783114840908887">"Ricevi suggerimenti di azioni, risposte e altro"</string>
<string name="no_notification_assistant" msgid="2533323397091834096">"Nessuna"</string>
<string name="no_notification_listeners" msgid="2839354157349636000">"Nessuna delle app installate ha richiesto l\'accesso alle notifiche."</string>
<string name="notification_access_detail_switch" msgid="46386786409608330">"Consenti l\'accesso alle notifiche"</string>
- <string name="notification_assistant_security_warning_summary" msgid="4846559755787348129">"Le notifiche adattive sono state sostituite dalle notifiche avanzate in Android 12. Questa funzionalità mostra risposte e azioni suggerite e organizza le tue notifiche. \n\nLe notifiche avanzate possono accedere ai contenuti delle notifiche, incluse le informazioni personali, come i nomi dei contatti e i messaggi. Questa funzionalità può anche ignorare le notifiche o rispondervi, ad esempio accettando le telefonate, e controllare la modalità Non disturbare."</string>
+ <string name="notification_assistant_security_warning_summary" msgid="4846559755787348129">"Le notifiche adattive Android sono state sostituite dalle notifiche avanzate in Android 12. Questa funzionalità mostra risposte e azioni suggerite e organizza le tue notifiche. \n\nLe notifiche avanzate possono accedere ai contenuti di una notifica, incluse le informazioni personali, come i nomi dei contatti e i messaggi. Questa funzionalità può anche ignorare le notifiche o rispondervi, ad esempio accettando le telefonate, e controllare la modalità Non disturbare."</string>
<string name="notification_listener_security_warning_title" msgid="5791700876622858363">"Consentire a <xliff:g id="SERVICE">%1$s</xliff:g> di accedere alle notifiche?"</string>
<string name="notification_listener_security_warning_summary" msgid="1131986567509818121">"L\'app <xliff:g id="NOTIFICATION_LISTENER_NAME">%1$s</xliff:g> potrà leggere tutte le notifiche, incluse informazioni personali quali nomi dei contatti, foto e il testo dei messaggi ricevuti. Questa app potrà inoltre posticipare o ignorare le notifiche oppure agire sui pulsanti nelle notifiche, ad esempio rispondere alle telefonate. \n\nL\'app potrà anche attivare o disattivare la funzionalità Non disturbare e modificare le relative impostazioni."</string>
<string name="nls_warning_prompt" msgid="1486887096703743841">"L\'app <xliff:g id="NOTIFICATION_LISTENER_NAME">%1$s</xliff:g> potrà:"</string>
@@ -3659,9 +3642,9 @@
<string name="notif_listener_not_migrated" msgid="6265206376374278226">"Questa app non supporta le impostazioni avanzate"</string>
<string name="notif_listener_more_settings" msgid="1348409392307208921">"Altre impostazioni"</string>
<string name="notif_listener_more_settings_desc" msgid="7995492074281663658">"Altre impostazioni sono disponibili all\'interno di quest\'app"</string>
- <string name="notification_polite_title" msgid="4737150709382859870">"Notifiche adattive"</string>
- <string name="notification_polite_main_control_title" msgid="7267191551379543859">"Usa le notifiche adattive"</string>
- <string name="notification_polite_description" msgid="7749280535620291610">"Quando ricevi molte notifiche in un breve periodo di tempo, lo smartphone abbasserà il volume e ridurrà al minimo i popup sullo schermo per un massimo di due minuti. Chiamate, sveglie e conversazioni prioritarie continueranno a essere segnalate con vibrazione, suoneria o verranno mostrate sullo schermo. Tutte le notifiche possono essere trovate facilmente scorrendo verso il basso dalla parte superiore dello schermo."</string>
+ <string name="notification_polite_title" msgid="6121016426991791557">"Attenuazione delle notifiche"</string>
+ <string name="notification_polite_main_control_title" msgid="5812529809151927149">"Usa attenuazione delle notifiche"</string>
+ <string name="notification_polite_description" msgid="5497748284893832854">"Quando ricevi molte notifiche in un breve periodo di tempo, il dispositivo abbasserà il volume e ridurrà al minimo gli avvisi per un massimo di 2 minuti. Non ci sono ripercussioni su chiamate, sveglie e conversazioni prioritarie. \n\nLe notifiche ricevute durante l\'attenuazione possono essere trovare facendo scorrere lo schermo dall\'alto verso il basso."</string>
<string name="notification_polite_work" msgid="8823596456640216391">"Applica ai profili di lavoro"</string>
<string name="notification_polite_work_summary" msgid="5014189280132951378">"Applica alle app del profilo di lavoro"</string>
<string name="vr_listeners_title" msgid="4960357292472540964">"Servizi di supporto VR"</string>
@@ -3818,7 +3801,9 @@
<string name="zen_mode_apps_priority_apps" msgid="7386196048313716076">"App selezionate"</string>
<string name="zen_mode_apps_none_apps" msgid="2493642312793604327">"Nessuna"</string>
<string name="zen_mode_apps_subtext" msgid="1764211974662012877">"{count,plural,offset:2 =0{Nessuna app può interrompere}=1{{app_1} può interrompere}=2{{app_1} e {app_2} possono interrompere}=3{{app_1}, {app_2} e {app_3} possono interrompere}other{{app_1}, {app_2} e altre # possono interrompere}}"</string>
+ <string name="zen_mode_apps_work_app" msgid="8528767938316361588">"<xliff:g id="APP_LABEL">%s</xliff:g> (lavoro)"</string>
<string name="zen_mode_apps_calculating" msgid="5420121396943539286">"Calcolo in corso…"</string>
+ <string name="zen_mode_plus_n_items" msgid="6136713354369243421">"+<xliff:g id="NUMBER">%d</xliff:g>"</string>
<string name="zen_mode_bypassing_apps" msgid="625309443389126481">"Consenti alle app di ignorarla"</string>
<string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"App che possono interrompere"</string>
<string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"Seleziona altre app"</string>
@@ -3836,6 +3821,7 @@
<string name="zen_mode_sounds_none" msgid="6557474361948269420">"Niente può interrompere"</string>
<string name="zen_mode_people_none" msgid="4613147461974255046">"Nessuno può interrompere"</string>
<string name="zen_mode_people_some" msgid="9101872681298810281">"Alcune persone possono interrompere"</string>
+ <string name="zen_mode_people_repeat_callers" msgid="4499084111069828761">"I chiamanti ricorrenti possono interrompere"</string>
<string name="zen_mode_people_all" msgid="311036110283015205">"Tutte le persone possono interrompere"</string>
<string name="zen_mode_repeat_callers" msgid="2270356100287792138">"Chiamate ripetute"</string>
<string name="zen_mode_repeat_callers_title" msgid="8016699240338264781">"Consenti chiamate ripetute"</string>
@@ -3855,14 +3841,30 @@
<string name="zen_mode_summary_alarms_only_by_hour" msgid="7400910210950788163">"{count,plural, =1{Passa alla modalità Solo sveglie per un\'ora, fino alle ore {time}}other{Passa alla modalità Solo sveglie per # ore, fino alle ore {time}}}"</string>
<string name="zen_mode_summary_alarms_only_by_time" msgid="8140619669703968810">"Cambia su Solo sveglie fino alle <xliff:g id="FORMATTEDTIME">%1$s</xliff:g>"</string>
<string name="zen_mode_summary_always" msgid="722093064250082317">"Cambia su Interrompi sempre"</string>
- <!-- no translation found for zen_mode_rename_title (8146882272966214558) -->
- <skip />
- <!-- no translation found for zen_mode_new_custom_title (321750898430776191) -->
- <skip />
- <!-- no translation found for zen_mode_new_custom_default_name (2778307946775085105) -->
- <skip />
- <!-- no translation found for zen_mode_edit_name_hint (4584652062167540536) -->
- <skip />
+ <string name="zen_mode_rename_title" msgid="8146882272966214558">"Modalità di modifica"</string>
+ <string name="zen_mode_new_custom_title" msgid="321750898430776191">"Aggiungi modalità"</string>
+ <string name="zen_mode_new_custom_default_name" msgid="2778307946775085105">"Modalità personalizzata"</string>
+ <string name="zen_mode_edit_name_hint" msgid="4584652062167540536">"Nome della modalità"</string>
+ <string name="zen_mode_trigger_title_schedule_calendar" msgid="9206609438617550331">"Eventi nel calendario"</string>
+ <string name="zen_mode_trigger_title_bedtime" msgid="5086070900588489978">"Programmazione del sonno"</string>
+ <string name="zen_mode_trigger_title_driving" msgid="7890990983453164403">"Durante la guida"</string>
+ <string name="zen_mode_trigger_title_generic" msgid="601273385119550420">"Collegamento all\'app"</string>
+ <string name="zen_mode_trigger_summary_settings_in_app" msgid="4860667191183702601">"Informazioni e impostazioni in <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+ <string name="zen_mode_trigger_summary_managed_by_app" msgid="8631011868193102098">"Funzionalità gestita dall\'app <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+ <string name="zen_mode_confirm_disable_title" msgid="1232297660775719796">"Disattiva modalità"</string>
+ <string name="zen_mode_confirm_disable_message" msgid="7315541221665718491">"Se disattivi questa funzionalità, la modalità non funzionerà più come previsto e le relative impostazioni saranno nascoste."</string>
+ <string name="zen_mode_action_disable" msgid="3552921561331044881">"Disattiva"</string>
+ <string name="zen_mode_confirm_enable_title" msgid="5683371335847448595">"Attiva modalità"</string>
+ <string name="zen_mode_confirm_enable_message" msgid="7017879133260011419">"Se disattivi questa funzionalità, la modalità si attiverà automaticamente in base alla programmazione."</string>
+ <string name="zen_mode_action_enable" msgid="1161480633223176531">"Attiva"</string>
+ <string name="zen_mode_blurb_schedule_time" msgid="8223898702097484009">"Imposta una modalità che segua una programmazione regolare"</string>
+ <string name="zen_mode_blurb_schedule_calendar" msgid="382177907856065945">"Imposta una modalità per sincronizzare gli eventi nel calendario e le risposte agli inviti"</string>
+ <string name="zen_mode_blurb_bedtime" msgid="6155075956151013457">"Progetta una routine del sonno rilassante. Imposta sveglie, diminuisci la luminosità dello schermo e blocca le notifiche."</string>
+ <string name="zen_mode_blurb_driving" msgid="1316054379000667305">"Dai la priorità alla sicurezza sulla strada per una guida concentrata e priva di distrazioni"</string>
+ <string name="zen_mode_blurb_immersive" msgid="5884004861848687869">"Elimina le distrazioni e le interruzioni dal tuo dispositivo per ottenere la concentrazione"</string>
+ <string name="zen_mode_blurb_theater" msgid="2999237960059524225">"Elimina tutte le distrazioni per un ambiente tranquillo"</string>
+ <string name="zen_mode_blurb_managed" msgid="5473921634985032149">"Personalizza le esperienze e le impostazioni sui dispositivi per i vari utenti"</string>
+ <string name="zen_mode_blurb_generic" msgid="3041601339807075625">"Riduci al minimo le interruzioni consentendo solo alle app e alle persone importanti di raggiungerti"</string>
<string name="warning_button_text" msgid="1274234338874005639">"Avviso"</string>
<string name="suggestion_button_close" msgid="6865170855573283759">"Chiudi"</string>
<string name="device_feedback" msgid="5351614458411688608">"Invia feedback sul dispositivo"</string>
@@ -4067,7 +4069,7 @@
<string name="ignore_optimizations_off" msgid="9186557038453586295">"Ottimizza"</string>
<string name="ignore_optimizations_on_desc" msgid="1280043916460939932">"La batteria potrebbe scaricarsi più rapidamente. L\'uso della batteria in background non sarà più impedito all\'app."</string>
<string name="ignore_optimizations_off_desc" msgid="3324571675983286177">"Opzione consigliata per una durata maggiore della batteria"</string>
- <string name="app_list_preference_none" msgid="1635406344616653756">"Nessuno"</string>
+ <string name="app_list_preference_none" msgid="1635406344616653756">"Nessuna"</string>
<string name="work_profile_usage_access_warning" msgid="3477719910927319122">"Se disattivi l\'accesso ai dati di utilizzo di questa app, l\'amministratore potrà comunque monitorare l\'utilizzo dei dati per le app nel tuo profilo di lavoro"</string>
<string name="draw_overlay" msgid="7902083260500573027">"Mostra sopra altre app"</string>
<string name="system_alert_window_settings" msgid="6458633954424862521">"Mostra sopra altre app"</string>
@@ -4207,7 +4209,7 @@
<string name="data_remaining" msgid="6316251496381922837">"Dati rimanenti: <xliff:g id="ID_1">^1</xliff:g>"</string>
<string name="data_usage_chart_brief_content_description" msgid="5548074070258881530">"Grafico che mostra l\'utilizzo dei dati dal giorno <xliff:g id="START_DATE">%1$s</xliff:g> al giorno <xliff:g id="END_DATE">%2$s</xliff:g>."</string>
<string name="data_usage_chart_no_data_content_description" msgid="5481968839079467231">"Non ci sono dati in questo intervallo di date"</string>
- <string name="billing_cycle_days_left" msgid="174337287346866400">"{count,plural, =1{# giorno rimanente}other{# giorni rimanenti}}"</string>
+ <string name="billing_cycle_days_left" msgid="174337287346866400">"{count,plural, =1{Manca # giorno}other{Mancano # giorni}}"</string>
<string name="billing_cycle_none_left" msgid="1694844019159277504">"Tempo scaduto"</string>
<string name="billing_cycle_less_than_one_day_left" msgid="1210202399053992163">"Meno di 1 giorno rimanente"</string>
<string name="carrier_and_update_text" msgid="5363656651921656280">"Aggiornato da <xliff:g id="ID_1">^1</xliff:g> <xliff:g id="ID_2">^2</xliff:g> fa"</string>
@@ -4551,7 +4553,7 @@
<string name="device_theme" msgid="5027604586494772471">"Tema del dispositivo"</string>
<string name="default_theme" msgid="4815428567082263639">"Valore predefinito"</string>
<string name="show_operator_name_title" msgid="3355910331531144028">"Nome della rete"</string>
- <string name="show_operator_name_summary" msgid="5352696579216501773">"Nome della Rete Display nella bara di stato"</string>
+ <string name="show_operator_name_summary" msgid="5352696579216501773">"Mostra nome della rete nella barra di stato"</string>
<string name="install_type_instant" msgid="7685381859060486009">"App istantanea"</string>
<string name="automatic_storage_manager_deactivation_warning" msgid="4905106133215702099">"Disattivare la gestione della memoria?"</string>
<string name="zen_suggestion_title" msgid="4555260320474465668">"Aggiorna modalità Non disturbare"</string>
@@ -4849,9 +4851,8 @@
<string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"Batteria"</string>
<string name="settings_panel_title" msgid="346363079938069215">"Riquadro delle impostazioni"</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>
+ <!-- no translation found for enable_desktop_mode_on_secondary_display (2609567824593768780) -->
+ <skip />
<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>
@@ -4923,7 +4924,7 @@
<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_4k_pages_text" msgid="8284806650260868833">"Hai attivato l\'opzione a 4 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 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>
<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>
@@ -5026,7 +5027,6 @@
<string name="default_active_sim_mobile_data" msgid="6798083892814045301">"dati mobili"</string>
<string name="wifi_scan_notify_message" msgid="1331238142061476869">"Per migliorare l\'esperienza con il dispositivo, le app e i servizi possono continuare a cercare reti Wi-Fi in qualsiasi momento, anche quando la connessione Wi-Fi non è attiva. Questo può essere utile, ad esempio, per migliorare funzionalità e servizi basati sulla posizione geografica. Puoi modificare questa preferenza nelle impostazioni relative alla ricerca di reti Wi-Fi."</string>
<string name="wifi_scan_change" msgid="8438320311511852918">"Modifica"</string>
- <string name="preference_summary_default_combination" msgid="4643585915107796253">"<xliff:g id="STATE">%1$s</xliff:g>/<xliff:g id="NETWORKMODE">%2$s</xliff:g>"</string>
<string name="mobile_data_connection_active" msgid="2422223108911581552">"Connessa"</string>
<string name="mobile_data_temp_connection_active" msgid="3430470299756236413">"Connessa temporaneamente"</string>
<string name="mobile_data_temp_using" msgid="5211002380149434155">"Utilizza temporaneamente <xliff:g id="SUBNAME">%1$s</xliff:g>"</string>
@@ -5172,9 +5172,11 @@
<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="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_enable_freeform_support" msgid="3697462756493543645">"È necessario il riavvio per attivare il supporto delle finestre senza un formato."</string>
+ <!-- no translation found for reboot_dialog_override_desktop_mode (7480950772574354130) -->
+ <skip />
+ <!-- no translation found for reboot_dialog_enable_desktop_mode_on_secondary_display (1153621881052401924) -->
+ <skip />
<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>
@@ -5264,7 +5266,7 @@
<string name="screen_flash_color_cyan" msgid="6878780006173747267">"Ciano"</string>
<string name="screen_flash_color_spring_green" msgid="4466548514738457815">"Verde primavera"</string>
<string name="screen_flash_color_green" msgid="8418019648507964564">"Verde"</string>
- <string name="screen_flash_color_chartreuse_green" msgid="7456381649919010366">"Giallo-verdognolo"</string>
+ <string name="screen_flash_color_chartreuse_green" msgid="7456381649919010366">"Verde acido"</string>
<string name="screen_flash_color_yellow" msgid="7413465411615454556">"Giallo"</string>
<string name="screen_flash_color_orange" msgid="979177126315557656">"Arancione"</string>
<string name="screen_flash_color_red" msgid="8954162219886445491">"Rosso"</string>
@@ -5405,5 +5407,6 @@
<string name="audio_streams_main_page_password_dialog_join_button" msgid="2967747276379153408">"Ascolta lo stream"</string>
<string name="audio_streams_main_page_qr_code_scanner_summary" msgid="5312980105735143360">"Scansiona il codice QR di uno stream audio da ascoltare con <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
<string name="audio_streams_main_page_password_dialog_cannot_edit" msgid="9020898619297520153">"Impossibile modificare la password durante la condivisione. Per modificarla, devi prima disattivare la condivisione audio."</string>
+ <string name="audio_streams_qr_code_scanner_label" msgid="8799703301071378034">"Scanner codici QR"</string>
<string name="homepage_search" msgid="6759334912284663559">"Cerca in Impostazioni"</string>
</resources>
diff --git a/res/values-iw/strings.xml b/res/values-iw/strings.xml
index c529356..5cd0021 100644
--- a/res/values-iw/strings.xml
+++ b/res/values-iw/strings.xml
@@ -41,6 +41,8 @@
<string name="radioInfo_data_suspended" msgid="2001254415431299603">"בהשעיה"</string>
<string name="radioInfo_unknown" msgid="2892562356748600367">"לא ידוע"</string>
<string name="preview_pager_content_description" msgid="3762247188224576303">"תצוגה מקדימה"</string>
+ <!-- no translation found for qr_code_content_description (1852208464419291347) -->
+ <skip />
<string name="font_size_make_smaller_desc" msgid="4978038055549590140">"הקטנה"</string>
<string name="font_size_make_larger_desc" msgid="5583046033381722247">"הגדלה"</string>
<string name="stay_awake_on_fold_title" msgid="6590454679898134221">"תמיד"</string>
@@ -283,7 +285,7 @@
<string name="location_settings_summary_location_off" msgid="4797932754681162262">"כבוי"</string>
<string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{ההגדרה פועלת / לאפליקציה אחת (#) יש גישה למיקום}one{ההגדרה פועלת / ל-# אפליקציות יש גישה למיקום}two{ההגדרה פועלת / ל-# אפליקציות יש גישה למיקום}other{ההגדרה פועלת / ל-# אפליקציות יש גישה למיקום}}"</string>
<string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"בטעינה…"</string>
- <string name="location_settings_footer_general" msgid="1040507068701188821">"אפליקציות עם ההרשאה \'מכשירים בקרבת מקום\' יכולות להעריך את המיקום היחסי של המכשירים המחוברים."</string>
+ <string name="location_settings_footer_general" msgid="3447585552176173502">"אפליקציות עם ההרשאה \'מכשירים בקרבת מקום\' יכולות להקבוע את המיקום היחסי של המכשירים המחוברים."</string>
<string name="location_settings_footer_location_off" msgid="8568995909147566720">"הגישה למיקום מושבתת עבור אפליקציות ושירותים. אם מתקשרים למספר חירום או שולחים אליו הודעת טקסט, ייתכן שפרטי מיקום המכשיר יישלחו לכוחות ההצלה."</string>
<string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"מידע נוסף על הגדרות המיקום"</string>
<string name="location_settings_tooltip_text_for_chrome" msgid="5781821709250544575">"כדי להחליף עוברים אל ההגדרות של ChromeOS > \'פרטיות ואבטחה\' > \'אמצעי בקרה על פרטיות\' > \'גישה למיקום\'"</string>
@@ -381,7 +383,7 @@
<string name="security_settings_fingerprint_v2_enroll_introduction_message_setup" msgid="6255210343107484206">"כשהסמל הזה מופיע, יש להשתמש בטביעת האצבע לצורך אימות במקרים כמו כניסה לאפליקציה או אישור רכישה"</string>
<string name="security_settings_fingerprint_v2_enroll_introduction_footer_title_1" msgid="4360262371633254407">"חשוב לזכור"</string>
<string name="security_settings_fingerprint_v2_enroll_introduction_footer_title_2" msgid="2580899232734177771">"איך זה עובד"</string>
- <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_2" msgid="5909924864816776516">"הפיצ\'ר \'ביטול הנעילה בטביעת אצבע\' יוצר תבנית ייחודית של טביעת האצבע שלך כדי לאמת את זהותך. תהליך היצירה של תבנית לטביעת האצבע כולל צילום תמונות של טביעת האצבע שלך מזוויות שונות."</string>
+ <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_2" msgid="5909924864816776516">"התכונה \'ביטול הנעילה בטביעת אצבע\' יוצרת תבנית ייחודית של טביעת האצבע שלך כדי לאמת את זהותך. תהליך היצירה של תבנית לטביעת האצבע כולל צילום תמונות של טביעת האצבע שלך מזוויות שונות."</string>
<string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_consent_2" msgid="3493356605815124807">"הפיצ\'ר \'ביטול הנעילה בטביעת אצבע\' יוצר תבנית ייחודית של טביעת האצבע של הילד או הילדה כדי לאמת את זהותם. כדי ליצור את התבנית הזו לטביעת האצבע במהלך ההגדרה, יהיה עליהם לצלם תמונות של טביעת האצבע מזוויות שונות."</string>
<string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_6" msgid="5314031490467481499">"לקבלת התוצאות הטובות ביותר, כדאי להשתמש במגן מסך שקיבל אישור Made for Google. יכול להיות שטביעת האצבע שלך לא תעבוד עם מגני מסך אחרים."</string>
<string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_consent_6" msgid="3563942520716110478">"לקבלת התוצאות הטובות ביותר, כדאי להשתמש במגן מסך בעל אישור Made for Google. טביעת האצבע של הילד או הילדה עלולה לא לעבוד עם מגני מסך אחרים."</string>
@@ -530,7 +532,7 @@
<string name="security_settings_fingerprint_enroll_error_generic_dialog_message_setup" msgid="8140162986046783546">"משהו השתבש. אפשר להגדיר את טביעת האצבע מאוחר יותר ב\'הגדרות\'."</string>
<string name="security_settings_fingerprint_enroll_error_timeout_dialog_message" msgid="3534341971920335247">"אפשר להגדיר את טביעת האצבע מאוחר יותר."</string>
<string name="security_settings_fingerprint_enroll_error_generic_dialog_message" msgid="4344665784935791640">"משהו השתבש. אפשר להגדיר את טביעת האצבע מאוחר יותר."</string>
- <string name="fingerprint_enroll_button_add" msgid="6652490687672815760">"עוד אחת"</string>
+ <string name="fingerprint_enroll_button_add" msgid="6652490687672815760">"הוספה של עוד טביעת אבצע"</string>
<string name="fingerprint_enroll_button_next" msgid="1034110123277869532">"הבא"</string>
<string name="security_fingerprint_disclaimer_lockscreen_disabled_1" msgid="294529888220959309">"האפשרות לנעילת המסך מושבתת. האדמין של הארגון יוכל למסור לך פרטים נוספים."</string>
<string name="security_fingerprint_disclaimer_lockscreen_disabled_2" msgid="8070829069640846543">"עדיין אפשר להשתמש בטביעת האצבע שלך כדי לאשר רכישות וגישה לאפליקציות."</string>
@@ -850,7 +852,6 @@
<string name="nfc_reboot_dialog_title" msgid="2033983438635768169">"להפעיל את המכשיר מחדש?"</string>
<string name="nfc_reboot_dialog_message" msgid="4929353168157966992">"הרישום ביומן של פרטי NFC מיועד למטרות פיתוח בלבד. נתוני NFC נוספים נכללים בדוחות על באגים, שעשויים להכיל מידע פרטי. צריך להפעיל מחדש את המכשיר כדי לשנות את ההגדרה."</string>
<string name="nfc_reboot_dialog_confirm" msgid="4769763632008584567">"הפעלה מחדש"</string>
- <string name="keywords_external_display" msgid="4181375057920134909">"שיקוף מסך, מסך חיצוני, מסך מחובר, תצוגת USB, רזולוציה, סיבוב"</string>
<string name="external_display_on" msgid="2560104443500154333">"מצב מופעל"</string>
<string name="external_display_off" msgid="5634413756025351374">"מצב מושבת"</string>
<string name="external_display_settings_title" msgid="6256884595821605779">"מסך חיצוני"</string>
@@ -1918,6 +1919,8 @@
<string name="slow_keys_summary" msgid="1784371292745423292">"שינוי משך הזמן להפעלה של לחיצה על מקש ל-<xliff:g id="SLOW_KEYS_THRESHOLD">%1$d</xliff:g> אלפיות השנייה"</string>
<string name="sticky_keys" msgid="7317317044898161747">"מקשים \"דביקים\""</string>
<string name="sticky_keys_summary" msgid="1844953803625480623">"לוחצים על מקש אחד בכל פעם לקיצורי הדרך במקום ללחוץ על כמה מקשים בו-זמנית"</string>
+ <string name="mouse_keys" msgid="6237254627808525540">"מקשי העכבר"</string>
+ <string name="mouse_keys_summary" msgid="2396247040177734245">"אפשר להשתמש במקלדת הפיזית כדי לשלוט בעכבר."</string>
<string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"מקשי קיצור"</string>
<string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"הצגת רשימה של מקשי הקיצור"</string>
<string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"מקלדות וכלים בפרופיל העבודה"</string>
@@ -1942,14 +1945,10 @@
<string name="pointer_fill_style_yellow_button" msgid="5025969961559379024">"שינוי סגנון המילוי של המצביע לצהוב"</string>
<string name="pointer_fill_style_pink_button" msgid="4106218142489635673">"שינוי סגנון המילוי של המצביע לוורוד"</string>
<string name="pointer_fill_style_blue_button" msgid="5594958078854032785">"שינוי סגנון המילוי של המצביע לכחול"</string>
- <!-- no translation found for pointer_stroke_style (1886986630216050665) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_white (673686194443825383) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_black (4655806167067437330) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_none (8953927511729800247) -->
- <skip />
+ <string name="pointer_stroke_style" msgid="1886986630216050665">"סגנון קו המצביע"</string>
+ <string name="pointer_stroke_style_name_white" msgid="673686194443825383">"לבן"</string>
+ <string name="pointer_stroke_style_name_black" msgid="4655806167067437330">"שחור"</string>
+ <string name="pointer_stroke_style_name_none" msgid="8953927511729800247">"ללא"</string>
<string name="trackpad_touch_gesture" msgid="8641725062131922497">"מידע על התנועות בלוח המגע"</string>
<string name="keywords_touchpad" msgid="8159846254066666032">"משטח-מגע, משטח מגע, עכבר, סמן, גלילה, החלקה, לחיצה ימנית, לחיצה, מצביע"</string>
<string name="keywords_trackpad_bottom_right_tap" msgid="1285062446073929305">"לחיצה ימנית, הקשה"</string>
@@ -2179,8 +2178,6 @@
<string name="accessibility_shortcut_edit_dialog_summary_floating_button" msgid="6266489864614886247">"צריך להקיש על הלחצן הצף"</string>
<string name="accessibility_shortcut_edit_dialog_title_software_by_gesture" msgid="4775049370625630546">"תנועה להפעלת תכונות הנגישות"</string>
<string name="accessibility_shortcut_edit_dialog_summary_software" msgid="8315934725362849788">"צריך להקיש על לחצן הנגישות <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g> בחלק התחתון של המסך. כדי לעבור בין תכונות, צריך ללחוץ לחיצה ארוכה על לחצן הנגישות."</string>
- <string name="accessibility_shortcut_edit_dialog_summary_software_gesture" msgid="8292555254353761635">"יש להחליק כלפי מעלה מתחתית המסך באמצעות שתי אצבעות.\n\nכדי לעבור בין תכונות, יש להחליק כלפי מעלה באמצעות שתי אצבעות ולהחזיק."</string>
- <string name="accessibility_shortcut_edit_dialog_summary_software_gesture_talkback" msgid="84483464524360845">"יש להחליק כלפי מעלה מתחתית המסך באמצעות שלוש אצבעות.\n\nכדי לעבור בין תכונות, יש להחליק כלפי מעלה באמצעות שלוש אצבעות ולהחזיק."</string>
<string name="accessibility_shortcut_edit_dialog_summary_gesture" msgid="2081123009255579884">"{count,plural, =1{מחליקים למעלה מהחלק התחתון של המסך. כדי לעבור בין תכונות, מחליקים למעלה ומחזיקים.}one{מחליקים למעלה עם # אצבעות מהחלק התחתון של המסך. כדי לעבור בין תכונות, מחליקים למעלה עם # אצבעות ומחזיקים.}two{מחליקים למעלה עם # אצבעות מהחלק התחתון של המסך. כדי לעבור בין תכונות, מחליקים למעלה עם # אצבעות ומחזיקים.}other{מחליקים למעלה עם # אצבעות מהחלק התחתון של המסך. כדי לעבור בין תכונות, מחליקים למעלה עם # אצבעות ומחזיקים.}}"</string>
<string name="accessibility_shortcut_edit_dialog_summary_software_floating" msgid="4459254227203203324"><annotation id="link">"אפשרויות נוספות"</annotation></string>
<string name="footer_learn_more_content_description" msgid="8843798273152131341">"מידע נוסף על <xliff:g id="SERVICE">%1$s</xliff:g>"</string>
@@ -2191,16 +2188,12 @@
<string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="844089763968552142">"לחצני עוצמת הקול"</string>
<string name="accessibility_shortcut_hardware_keyword" msgid="2483152542320987022">"לחצני עוצמת הקול"</string>
<string name="accessibility_shortcut_edit_dialog_summary_hardware" msgid="2503134386397991634">"יש ללחוץ לחיצה ארוכה על שני הלחצנים של עוצמת הקול"</string>
- <string name="accessibility_shortcut_edit_dialog_title_two_finger_double_tap" msgid="2271778556854020996">"מקישים הקשה כפולה על המסך עם שתי אצבעות"</string>
<string name="accessibility_shortcut_edit_screen_title_two_finger_double_tap" msgid="8952595692906527694">"הקשה כפולה עם %1$d אצבעות"</string>
<string name="accessibility_shortcut_edit_screen_summary_two_finger_double_tap" msgid="385404127425496362">"מקישים הקשה כפולה במהירות על המסך עם %1$d אצבעות"</string>
<string name="accessibility_shortcut_edit_screen_title_triple_tap" msgid="3314488747597058942">"הקשה משולשת"</string>
<string name="accessibility_shortcut_edit_screen_summary_triple_tap" msgid="4839204951599629871">"מקישים %1$d פעמים במהירות על המסך. זה עלול להאט את פעולת המכשיר."</string>
<string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="6271718715836961167">"הקשה כפולה עם %1$d אצבעות"</string>
- <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"מקישים במהירות על המסך {0,number,integer} פעמים עם שתי אצבעות"</string>
- <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"הקשה על המסך 3 פעמים"</string>
<string name="accessibility_shortcut_triple_tap_keyword" msgid="5359347130888464334">"הקשה משולשת"</string>
- <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"מקישים במהירות על המסך {0,number,integer} פעמים. קיצור הדרך הזה עלול להאט את פעולת המכשיר"</string>
<string name="accessibility_shortcut_edit_dialog_title_advance" msgid="4567868630655591506">"מתקדם"</string>
<string name="accessibility_screen_magnification_navbar_configuration_warning" msgid="266736851606791552">"הלחצן \'נגישות\' מוגדר לשירות <xliff:g id="SERVICE">%1$s</xliff:g>. כדי להשתמש בהגדלה, יש ללחוץ לחיצה ארוכה על לחצן הנגישות ולאחר מכן לבחור בהגדלה."</string>
<string name="accessibility_screen_magnification_gesture_navigation_warning" msgid="991017769735632046">"תנועת הנגישות מוגדרת לשירות <xliff:g id="SERVICE">%1$s</xliff:g>. כדי להשתמש בהגדלה, יש להחליק מעלה מהחלק התחתון של המסך באמצעות שתי אצבעות ולהחזיק. לאחר מכן יש לבחור באפשרות \'הגדלה\'."</string>
@@ -2369,6 +2362,7 @@
<string name="daltonizer_mode_tritanomaly_title" msgid="2278786218762602022">"כחול-צהוב"</string>
<string name="daltonizer_mode_grayscale_title" msgid="152005391387952588">"גווני אפור"</string>
<string name="daltonizer_saturation_title" msgid="2999486412114963068">"עוצמה"</string>
+ <string name="daltonizer_saturation_unavailable_summary" msgid="8319753055567798775">"לא זמין במצב גווני אפור או כשתיקון הצבע מושבת"</string>
<string name="daltonizer_mode_deuteranomaly_summary" msgid="2117727423019598455">"ירוק חלש, דוטרנומליה"</string>
<string name="daltonizer_mode_protanomaly_summary" msgid="4617032854982040748">"אדום חלש, פרוטנומליה"</string>
<string name="daltonizer_mode_tritanomaly_summary" msgid="2428218320118180070">"טריטנומליה"</string>
@@ -2418,15 +2412,8 @@
<string name="color_cyan" msgid="4341758639597035927">"ציאן"</string>
<string name="color_yellow" msgid="5957551912912679058">"צהוב"</string>
<string name="color_magenta" msgid="8943538189219528423">"מגנטה"</string>
- <string name="enable_service_title" msgid="7231533866953706788">"להעניק לשירות \'<xliff:g id="SERVICE">%1$s</xliff:g>\' שליטה מלאה במכשיר?"</string>
<string name="capabilities_list_title" msgid="1225853611983394386">"<xliff:g id="SERVICE">%1$s</xliff:g> צריך אפשרות לבצע:"</string>
<string name="touch_filtered_warning" msgid="4225815157460318241">"יש אפליקציה שמסתירה את בקשת ההרשאה, ולכן להגדרות אין אפשרות לאמת את התשובה."</string>
- <string name="accessibility_service_warning" msgid="6779187188736432618">"השירות <xliff:g id="SERVICE">%1$s</xliff:g> מבקש שליטה מלאה במכשיר זה. השירות יכול לקרוא את המסך ולפעול בשמם של משתמשים בעלי צרכים של נגישות. רמה כזו של שליטה אינה מתאימה לרוב האפליקציות."</string>
- <string name="accessibility_service_warning_description" msgid="6573203795976134751">"האפשרות לשליטה מלאה במכשיר לא מתאימה לרוב האפליקציות, אלא רק לאפליקציות שעוזרות עם צורכי הנגישות שלך."</string>
- <string name="accessibility_service_screen_control_title" msgid="324795030658109870">"הצגת המסך ושליטה בו"</string>
- <string name="accessibility_service_screen_control_description" msgid="8431940515157990426">"אפשרות לקריאת כל התוכן במסך ולהצגת תוכן מעל אפליקציות אחרות."</string>
- <string name="accessibility_service_action_perform_title" msgid="1449360056585337833">"הצגה וביצוע של פעולות"</string>
- <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"אפשרות למעקב אחר האינטראקציה שלך עם אפליקציות או חיישני חומרה, וביצוע אינטראקציה בשמך."</string>
<string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"אישור"</string>
<string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"עדיף שלא"</string>
<string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"השבתה"</string>
@@ -3013,7 +3000,7 @@
<string name="user_summary_not_set_up" msgid="4602868481732886115">"לא מוגדר"</string>
<string name="user_summary_restricted_not_set_up" msgid="1658946988920104613">"לא מוגדר – פרופיל מוגבל"</string>
<string name="user_summary_managed_profile_not_set_up" msgid="5739207307082458746">"לא מוגדר – פרופיל עבודה"</string>
- <string name="user_owner" msgid="2079206733011361994">"בעלים"</string>
+ <string name="user_owner" msgid="2079206733011361994">"בעלי המכשיר"</string>
<string name="user_admin" msgid="4024553191395768119">"אדמין"</string>
<string name="user_you" msgid="3070562015202859996">"את/ה (<xliff:g id="NAME">%s</xliff:g>)"</string>
<string name="user_add_max_count" msgid="3328539978480663740">"לא ניתן להוסיף עוד משתמשים. צריך להסיר משתמש כדי להוסיף משתמש חדש."</string>
@@ -3368,10 +3355,8 @@
<string name="zen_mode_automation_settings_title" msgid="3709324184191870926">"לוחות זמנים"</string>
<string name="zen_mode_delete_automatic_rules" msgid="5020468289267191765">"מחיקת לוחות זמנים"</string>
<string name="zen_mode_schedule_delete" msgid="5383420576833765114">"מחיקה"</string>
- <!-- no translation found for zen_mode_menu_rename_mode (4681802125016390837) -->
- <skip />
- <!-- no translation found for zen_mode_menu_delete_mode (5380084696402157428) -->
- <skip />
+ <string name="zen_mode_menu_rename_mode" msgid="4681802125016390837">"שינוי השם"</string>
+ <string name="zen_mode_menu_delete_mode" msgid="5380084696402157428">"מחיקה"</string>
<string name="zen_mode_delete_mode_confirmation" msgid="7594340592051947392">"למחוק את מצב \'<xliff:g id="MODE">%1$s</xliff:g>\'?"</string>
<string name="zen_mode_rule_name_edit" msgid="1053237022416700481">"עריכה"</string>
<string name="zen_mode_automation_settings_page_title" msgid="6217433860514433311">"לוחות זמנים"</string>
@@ -3395,8 +3380,7 @@
<string name="zen_mode_visual_signals_settings_subtitle" msgid="7433077540895876672">"הפעלת אותות חזותיים"</string>
<string name="mode_interruption_filter_title" msgid="3343846700214702347">"שמירה על ריכוז"</string>
<string name="mode_device_effects_title" msgid="5857008332618433744">"פעולות נוספות"</string>
- <!-- no translation found for modes_sound_summary_off (6972648204528227879) -->
- <skip />
+ <string name="modes_sound_summary_off" msgid="6972648204528227879">"{count,plural, =0{מושבת}=1{מושבת/יכולה להתבצע הפעלה אוטומטית בעקבות מצב אחד}one{מושבת/יכולה להתבצע הפעלה אוטומטית בעקבות # מצבים}two{מושבת/יכולה להתבצע הפעלה אוטומטית בעקבות # מצבים}other{מושבת/יכולה להתבצע הפעלה אוטומטית בעקבות # מצבים}}"</string>
<string name="mode_display_settings_title" msgid="8132825978346535472">"הגדרות תצוגה"</string>
<string name="mode_display_options_section" msgid="5151597748243866532">"אפשרויות תצוגה"</string>
<string name="mode_grayscale_title" msgid="6027553257331235461">"גווני אפור"</string>
@@ -3659,9 +3643,9 @@
<string name="notif_listener_not_migrated" msgid="6265206376374278226">"האפליקציה הזו לא תומכת בהגדרות המשופרות"</string>
<string name="notif_listener_more_settings" msgid="1348409392307208921">"הגדרות נוספות"</string>
<string name="notif_listener_more_settings_desc" msgid="7995492074281663658">"הגדרות נוספות זמינות בתוך האפליקציה הזו"</string>
- <string name="notification_polite_title" msgid="4737150709382859870">"התראות מותאמות"</string>
- <string name="notification_polite_main_control_title" msgid="7267191551379543859">"שימוש בהתראות מותאמות"</string>
- <string name="notification_polite_description" msgid="7749280535620291610">"כשמתקבלות הרבה התראות בפרק זמן קצר, הטלפון ינמיך את עוצמת הקול ויצמצם את כמות החלונות הקופצים על המסך למשך עד שתי דקות. התראות על שיחות, שעונים מעוררים ושיחות בעדיפות גבוהה ימשיכו להפעיל רטט, להשמיע צליל או להופיע על המסך ואפשר יהיה למצוא בקלות את כל ההתראות כשמושכים למטה מהחלק העליון של המסך."</string>
+ <string name="notification_polite_title" msgid="6121016426991791557">"הפוגת התראות"</string>
+ <string name="notification_polite_main_control_title" msgid="5812529809151927149">"שימוש בהפוגת התראות"</string>
+ <string name="notification_polite_description" msgid="5497748284893832854">"כשמתקבלות הרבה התראות בפרק זמן קצר, המכשיר ינמיך את עוצמת הקול ויצמצם את כמות ההתראות למשך עד שתי דקות. שיחות, התראות ושיחות בעדיפות גבוהה לא מושפעות. \n\nניתן למצוא התראות שהתקבלו במהלך ההפוגה על ידי משיכה למטה מהחלק העליון של המסך."</string>
<string name="notification_polite_work" msgid="8823596456640216391">"הפעלה בפרופילי העבודה"</string>
<string name="notification_polite_work_summary" msgid="5014189280132951378">"הפעלה באפליקציות של פרופיל העבודה"</string>
<string name="vr_listeners_title" msgid="4960357292472540964">"שירותי סיוע של VR"</string>
@@ -3818,7 +3802,9 @@
<string name="zen_mode_apps_priority_apps" msgid="7386196048313716076">"אפליקציות שנבחרו"</string>
<string name="zen_mode_apps_none_apps" msgid="2493642312793604327">"אף אחת מהאפשרויות"</string>
<string name="zen_mode_apps_subtext" msgid="1764211974662012877">"{count,plural,offset:2 =0{אף אפליקציה לא יכולה להפריע}=1{האפליקציה {app_1} יכולה להפריע}=2{האפליקציות {app_1} וגם {app_2} יכולות להפריע}=3{האפליקציות {app_1}, {app_2} וגם {app_3} יכולות להפריע}one{האפליקציות {app_1}, {app_2} ועוד # יכולות להפריע}other{האפליקציות {app_1}, {app_2} ועוד # יכולות להפריע}}"</string>
+ <string name="zen_mode_apps_work_app" msgid="8528767938316361588">"<xliff:g id="APP_LABEL">%s</xliff:g> (עבודה)"</string>
<string name="zen_mode_apps_calculating" msgid="5420121396943539286">"מתבצע חישוב…"</string>
+ <string name="zen_mode_plus_n_items" msgid="6136713354369243421">"+<xliff:g id="NUMBER">%d</xliff:g>"</string>
<string name="zen_mode_bypassing_apps" msgid="625309443389126481">"ניתן לאפשר לאפליקציות לבטל הגדרה זו"</string>
<string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"אפליקציות שיכולות להפריע"</string>
<string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"בחירת אפליקציות נוספות"</string>
@@ -3836,6 +3822,7 @@
<string name="zen_mode_sounds_none" msgid="6557474361948269420">"שום דבר לא יכול להפריע"</string>
<string name="zen_mode_people_none" msgid="4613147461974255046">"אף אחד לא יכול להפריע"</string>
<string name="zen_mode_people_some" msgid="9101872681298810281">"אנשים מסוימים יכולים להפריע"</string>
+ <string name="zen_mode_people_repeat_callers" msgid="4499084111069828761">"מתקשרים חוזרים יכולים להפריע"</string>
<string name="zen_mode_people_all" msgid="311036110283015205">"כל אחד יכול להפריע"</string>
<string name="zen_mode_repeat_callers" msgid="2270356100287792138">"מתקשרים חוזרים"</string>
<string name="zen_mode_repeat_callers_title" msgid="8016699240338264781">"שיחות חוזרות מאותו מספר"</string>
@@ -3855,13 +3842,37 @@
<string name="zen_mode_summary_alarms_only_by_hour" msgid="7400910210950788163">"{count,plural, =1{החלפה למצב \'התראות בלבד\' למשך שעה אחת עד {time}}one{החלפה למצב \'התראות בלבד\' למשך # שעות עד {time}}two{החלפה למצב \'התראות בלבד\' למשך שעתיים (#) עד {time}}other{החלפה למצב \'התראות בלבד\' למשך # שעות עד {time}}}"</string>
<string name="zen_mode_summary_alarms_only_by_time" msgid="8140619669703968810">"מעבר למצב \'התראות בלבד\' עד <xliff:g id="FORMATTEDTIME">%1$s</xliff:g>"</string>
<string name="zen_mode_summary_always" msgid="722093064250082317">"שינוי ל\'הפרעות בכל מצב\'"</string>
- <!-- no translation found for zen_mode_rename_title (8146882272966214558) -->
+ <string name="zen_mode_rename_title" msgid="8146882272966214558">"מצב עריכה"</string>
+ <string name="zen_mode_new_custom_title" msgid="321750898430776191">"הוספת מצב"</string>
+ <string name="zen_mode_new_custom_default_name" msgid="2778307946775085105">"מצב מותאם אישית"</string>
+ <string name="zen_mode_edit_name_hint" msgid="4584652062167540536">"שם המצב"</string>
+ <string name="zen_mode_trigger_title_schedule_calendar" msgid="9206609438617550331">"אירועים ביומן"</string>
+ <string name="zen_mode_trigger_title_bedtime" msgid="5086070900588489978">"לוח הזמנים לשינה"</string>
+ <string name="zen_mode_trigger_title_driving" msgid="7890990983453164403">"בזמן נהיגה"</string>
+ <string name="zen_mode_trigger_title_generic" msgid="601273385119550420">"מקושר לאפליקציה"</string>
+ <string name="zen_mode_trigger_summary_settings_in_app" msgid="4860667191183702601">"המידע וההגדרות של <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+ <string name="zen_mode_trigger_summary_managed_by_app" msgid="8631011868193102098">"בניהול של <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+ <string name="zen_mode_confirm_disable_title" msgid="1232297660775719796">"השבתת המצב"</string>
+ <string name="zen_mode_confirm_disable_message" msgid="7315541221665718491">"אם משביתים את התכונה הזו, המצב לא יפעל כמו שצריך וההגדרות שלו יוסתרו."</string>
+ <string name="zen_mode_action_disable" msgid="3552921561331044881">"השבתה"</string>
+ <string name="zen_mode_confirm_enable_title" msgid="5683371335847448595">"הפעלת המצב"</string>
+ <string name="zen_mode_confirm_enable_message" msgid="7017879133260011419">"אם מפעילים את התכונה הזו, המצב יופעל באופן אוטומטי בהתאם ללוח הזמנים שלו."</string>
+ <string name="zen_mode_action_enable" msgid="1161480633223176531">"הפעלה"</string>
+ <!-- no translation found for zen_mode_blurb_schedule_time (8223898702097484009) -->
<skip />
- <!-- no translation found for zen_mode_new_custom_title (321750898430776191) -->
+ <!-- no translation found for zen_mode_blurb_schedule_calendar (382177907856065945) -->
<skip />
- <!-- no translation found for zen_mode_new_custom_default_name (2778307946775085105) -->
+ <!-- no translation found for zen_mode_blurb_bedtime (6155075956151013457) -->
<skip />
- <!-- no translation found for zen_mode_edit_name_hint (4584652062167540536) -->
+ <!-- no translation found for zen_mode_blurb_driving (1316054379000667305) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_immersive (5884004861848687869) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_theater (2999237960059524225) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_managed (5473921634985032149) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_generic (3041601339807075625) -->
<skip />
<string name="warning_button_text" msgid="1274234338874005639">"אזהרה"</string>
<string name="suggestion_button_close" msgid="6865170855573283759">"סגירה"</string>
@@ -4849,9 +4860,8 @@
<string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"סוללה"</string>
<string name="settings_panel_title" msgid="346363079938069215">"חלונית ההגדרות"</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>
+ <!-- no translation found for enable_desktop_mode_on_secondary_display (2609567824593768780) -->
+ <skip />
<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>
@@ -5027,7 +5037,6 @@
<string name="default_active_sim_mobile_data" msgid="6798083892814045301">"חבילת גלישה"</string>
<string name="wifi_scan_notify_message" msgid="1331238142061476869">"כדי לשפר את חוויית השימוש במכשיר, אפליקציות ושירותים יוכלו לחפש רשתות Wi-Fi בכל שלב, גם כאשר ה-Wi-Fi כבוי. ניתן להשתמש בכך, למשל, כדי לשפר תכונות ושירותים מבוססי מיקום. אפשר לשנות את זה בהגדרות של חיפוש נקודות Wi-Fi."</string>
<string name="wifi_scan_change" msgid="8438320311511852918">"שינוי"</string>
- <string name="preference_summary_default_combination" msgid="4643585915107796253">"<xliff:g id="STATE">%1$s</xliff:g> / <xliff:g id="NETWORKMODE">%2$s</xliff:g>"</string>
<string name="mobile_data_connection_active" msgid="2422223108911581552">"מחובר"</string>
<string name="mobile_data_temp_connection_active" msgid="3430470299756236413">"מחובר באופן זמני"</string>
<string name="mobile_data_temp_using" msgid="5211002380149434155">"עושה שימוש זמני ב<xliff:g id="SUBNAME">%1$s</xliff:g>"</string>
@@ -5059,7 +5068,7 @@
<string name="app_pinning_main_switch_title" msgid="5465506660064032876">"שימוש בהצמדת אפליקציה"</string>
<string name="developer_options_main_switch_title" msgid="1720074589554152501">"שימוש באפשרויות למפתחים"</string>
<string name="default_print_service_main_switch_title" msgid="4697133737128324036">"שימוש בשירות הדפסה"</string>
- <string name="multiple_users_main_switch_title" msgid="9158796544835843201">"אישור החלפת המשתמש"</string>
+ <string name="multiple_users_main_switch_title" msgid="9158796544835843201">"אישור למעבר בין משתמשים"</string>
<string name="multiple_users_main_switch_keywords" msgid="4845954458094134356">"אפשר, משתמשים, מרובים, אישור, רבים"</string>
<string name="multiple_users_title_keywords" msgid="2395593167746225172">"ריבוי, רבים, משתמשים, משתמשות, פרופילים, אנשים, אנשי קשר, חשבונות, חשבונות אישיים, החלפה, מעבר, שינוי, הרבה"</string>
<string name="wireless_debugging_main_switch_title" msgid="8463499572781441719">"ניפוי באגים אלחוטי"</string>
@@ -5173,9 +5182,11 @@
<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="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_enable_freeform_support" msgid="3697462756493543645">"צריך להפעיל מחדש כדי להפעיל את התמיכה בשינוי הגודל והמיקום של החלונות."</string>
+ <!-- no translation found for reboot_dialog_override_desktop_mode (7480950772574354130) -->
+ <skip />
+ <!-- no translation found for reboot_dialog_enable_desktop_mode_on_secondary_display (1153621881052401924) -->
+ <skip />
<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>
@@ -5406,5 +5417,6 @@
<string name="audio_streams_main_page_password_dialog_join_button" msgid="2967747276379153408">"האזנה לשידור"</string>
<string name="audio_streams_main_page_qr_code_scanner_summary" msgid="5312980105735143360">"סריקת קוד QR של שידור אודיו כדי להאזין עם <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
<string name="audio_streams_main_page_password_dialog_cannot_edit" msgid="9020898619297520153">"אי אפשר לערוך את הסיסמה בזמן השיתוף. כדי לשנות את הסיסמה, קודם צריך להשבית את שיתוף האודיו."</string>
+ <string name="audio_streams_qr_code_scanner_label" msgid="8799703301071378034">"סורק קודי QR"</string>
<string name="homepage_search" msgid="6759334912284663559">"חיפוש הגדרות"</string>
</resources>
diff --git a/res/values-ja/strings.xml b/res/values-ja/strings.xml
index 02d25c0..51d7e00 100644
--- a/res/values-ja/strings.xml
+++ b/res/values-ja/strings.xml
@@ -41,6 +41,7 @@
<string name="radioInfo_data_suspended" msgid="2001254415431299603">"強制停止"</string>
<string name="radioInfo_unknown" msgid="2892562356748600367">"不明"</string>
<string name="preview_pager_content_description" msgid="3762247188224576303">"プレビュー"</string>
+ <string name="qr_code_content_description" msgid="1852208464419291347">"QR コード"</string>
<string name="font_size_make_smaller_desc" msgid="4978038055549590140">"縮小"</string>
<string name="font_size_make_larger_desc" msgid="5583046033381722247">"拡大"</string>
<string name="stay_awake_on_fold_title" msgid="6590454679898134221">"常時"</string>
@@ -283,7 +284,7 @@
<string name="location_settings_summary_location_off" msgid="4797932754681162262">"OFF"</string>
<string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{ON / # 個のアプリに位置情報へのアクセスを許可}other{ON / # 個のアプリに位置情報へのアクセスを許可}}"</string>
<string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"読み込んでいます…"</string>
- <string name="location_settings_footer_general" msgid="1040507068701188821">"付近のデバイスへのアクセス許可を持つアプリは、接続されたデバイスの相対位置を確認できます。"</string>
+ <string name="location_settings_footer_general" msgid="3447585552176173502">"付近のデバイスへのアクセス許可を持つアプリは、接続されたデバイスの相対位置を確認できます。"</string>
<string name="location_settings_footer_location_off" msgid="8568995909147566720">"アプリとサービスの位置情報へのアクセスは OFF になっています。緊急通報番号に電話をかけたりテキスト メッセージを送信したりした場合は、デバイスの位置情報が緊急サービスに送信されることがあります。"</string>
<string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"位置情報の設定の詳細"</string>
<string name="location_settings_tooltip_text_for_chrome" msgid="5781821709250544575">"変更するには ChromeOS の [設定] > [プライバシーとセキュリティ] > [プライバシー管理] > [位置情報へのアクセス] に移動します"</string>
@@ -850,7 +851,6 @@
<string name="nfc_reboot_dialog_title" msgid="2033983438635768169">"デバイスを再起動しますか?"</string>
<string name="nfc_reboot_dialog_message" msgid="4929353168157966992">"NFC 詳細ログは開発専用に設計されています。バグレポートには、追加の NFC データが含まれます。これには、非公開の情報が含まれることがあります。この設定を変更するには、デバイスを再起動してください。"</string>
<string name="nfc_reboot_dialog_confirm" msgid="4769763632008584567">"再起動"</string>
- <string name="keywords_external_display" msgid="4181375057920134909">"ミラーリング, 外部ディスプレイ, ディスプレイの接続, USB ディスプレイ, 解像度, 回転"</string>
<string name="external_display_on" msgid="2560104443500154333">"ON"</string>
<string name="external_display_off" msgid="5634413756025351374">"OFF"</string>
<string name="external_display_settings_title" msgid="6256884595821605779">"外部ディスプレイ"</string>
@@ -1918,6 +1918,8 @@
<string name="slow_keys_summary" msgid="1784371292745423292">"押されたキーが有効になるまでの時間を <xliff:g id="SLOW_KEYS_THRESHOLD">%1$d</xliff:g> ミリ秒に設定します"</string>
<string name="sticky_keys" msgid="7317317044898161747">"固定キー"</string>
<string name="sticky_keys_summary" msgid="1844953803625480623">"ショートカットで複数のキーを同時に押すのではなく 1 つずつ押します"</string>
+ <string name="mouse_keys" msgid="6237254627808525540">"マウスキー"</string>
+ <string name="mouse_keys_summary" msgid="2396247040177734245">"物理キーボードを使用してマウスを操作します。"</string>
<string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"キーボード ショートカット"</string>
<string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"ショートカットのリストを表示"</string>
<string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"仕事用プロファイルのキーボードとツール"</string>
@@ -1942,14 +1944,10 @@
<string name="pointer_fill_style_yellow_button" msgid="5025969961559379024">"ポインターの塗りつぶしを黄色に変更"</string>
<string name="pointer_fill_style_pink_button" msgid="4106218142489635673">"ポインターの塗りつぶしを桃色に変更"</string>
<string name="pointer_fill_style_blue_button" msgid="5594958078854032785">"ポインターの塗りつぶしを青色に変更"</string>
- <!-- no translation found for pointer_stroke_style (1886986630216050665) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_white (673686194443825383) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_black (4655806167067437330) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_none (8953927511729800247) -->
- <skip />
+ <string name="pointer_stroke_style" msgid="1886986630216050665">"ポインターのストローク スタイル"</string>
+ <string name="pointer_stroke_style_name_white" msgid="673686194443825383">"白"</string>
+ <string name="pointer_stroke_style_name_black" msgid="4655806167067437330">"黒"</string>
+ <string name="pointer_stroke_style_name_none" msgid="8953927511729800247">"なし"</string>
<string name="trackpad_touch_gesture" msgid="8641725062131922497">"タッチパッド操作を見る"</string>
<string name="keywords_touchpad" msgid="8159846254066666032">"トラックパッド, マウス, カーソル, スクロール, スワイプ, 右クリック, クリック, ポインタ"</string>
<string name="keywords_trackpad_bottom_right_tap" msgid="1285062446073929305">"右クリック, タップ"</string>
@@ -2179,8 +2177,6 @@
<string name="accessibility_shortcut_edit_dialog_summary_floating_button" msgid="6266489864614886247">"フローティング ボタンをタップします"</string>
<string name="accessibility_shortcut_edit_dialog_title_software_by_gesture" msgid="4775049370625630546">"ユーザー補助操作"</string>
<string name="accessibility_shortcut_edit_dialog_summary_software" msgid="8315934725362849788">"画面下部にあるユーザー補助機能ボタン <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g> をタップします。機能を切り替えるには、ユーザー補助機能ボタンを長押しします。"</string>
- <string name="accessibility_shortcut_edit_dialog_summary_software_gesture" msgid="8292555254353761635">"2 本の指で画面の下から上にスワイプします。\n\n機能を切り替えるには、2 本指で上にスワイプしたまま長押しします。"</string>
- <string name="accessibility_shortcut_edit_dialog_summary_software_gesture_talkback" msgid="84483464524360845">"3 本の指で画面の下から上にスワイプします。\n\n機能を切り替えるには、3 本指で上にスワイプしたまま長押しします。"</string>
<string name="accessibility_shortcut_edit_dialog_summary_gesture" msgid="2081123009255579884">"{count,plural, =1{画面の下部から上にスワイプします。機能を切り替えるには、上にスワイプしたまま長押しします。}other{# 本の指で画面の下部から上にスワイプします。機能を切り替えるには、# 本の指で上にスワイプしたまま長押しします。}}"</string>
<string name="accessibility_shortcut_edit_dialog_summary_software_floating" msgid="4459254227203203324"><annotation id="link">"その他のオプション"</annotation></string>
<string name="footer_learn_more_content_description" msgid="8843798273152131341">"「<xliff:g id="SERVICE">%1$s</xliff:g>」の詳細"</string>
@@ -2191,16 +2187,12 @@
<string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="844089763968552142">"音量ボタン"</string>
<string name="accessibility_shortcut_hardware_keyword" msgid="2483152542320987022">"音量ボタン"</string>
<string name="accessibility_shortcut_edit_dialog_summary_hardware" msgid="2503134386397991634">"音量大と音量小の両方のボタンを長押しします"</string>
- <string name="accessibility_shortcut_edit_dialog_title_two_finger_double_tap" msgid="2271778556854020996">"2 本の指で画面をダブルタップする"</string>
<string name="accessibility_shortcut_edit_screen_title_two_finger_double_tap" msgid="8952595692906527694">"%1$d 本の指でダブルタップ"</string>
<string name="accessibility_shortcut_edit_screen_summary_two_finger_double_tap" msgid="385404127425496362">"%1$d 本の指で画面をすばやく 2 回タップします"</string>
<string name="accessibility_shortcut_edit_screen_title_triple_tap" msgid="3314488747597058942">"トリプルタップ"</string>
<string name="accessibility_shortcut_edit_screen_summary_triple_tap" msgid="4839204951599629871">"画面をすばやく %1$d 回タップします。デバイスの反応が遅くなる場合があります。"</string>
<string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="6271718715836961167">"%1$d 本の指でダブルタップ"</string>
- <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"2 本の指で画面を {0,number,integer} 回すばやくタップします"</string>
- <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"画面をトリプルタップ"</string>
<string name="accessibility_shortcut_triple_tap_keyword" msgid="5359347130888464334">"トリプルタップ"</string>
- <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"画面をすばやく {0,number,integer} 回タップします。このショートカットを使うと、デバイスの動作が遅くなる場合があります"</string>
<string name="accessibility_shortcut_edit_dialog_title_advance" msgid="4567868630655591506">"詳細設定"</string>
<string name="accessibility_screen_magnification_navbar_configuration_warning" msgid="266736851606791552">"[ユーザー補助機能] ボタンが [<xliff:g id="SERVICE">%1$s</xliff:g>] に設定されています。拡大を使用するには、[ユーザー補助機能] ボタンを押し続けて [拡大] を選択してください。"</string>
<string name="accessibility_screen_magnification_gesture_navigation_warning" msgid="991017769735632046">"ユーザー補助操作は「<xliff:g id="SERVICE">%1$s</xliff:g>」に設定されています。拡大を使用するには、2 本の指で画面の下から上にスワイプして長押しし、拡大を選択してください。"</string>
@@ -2369,6 +2361,7 @@
<string name="daltonizer_mode_tritanomaly_title" msgid="2278786218762602022">"青 / 黄"</string>
<string name="daltonizer_mode_grayscale_title" msgid="152005391387952588">"グレースケール"</string>
<string name="daltonizer_saturation_title" msgid="2999486412114963068">"強さ"</string>
+ <string name="daltonizer_saturation_unavailable_summary" msgid="8319753055567798775">"グレースケール モード選択時、または色補正が無効に設定されているときは使用できません"</string>
<string name="daltonizer_mode_deuteranomaly_summary" msgid="2117727423019598455">"緑色弱、第二色弱"</string>
<string name="daltonizer_mode_protanomaly_summary" msgid="4617032854982040748">"赤色弱、第一色弱"</string>
<string name="daltonizer_mode_tritanomaly_summary" msgid="2428218320118180070">"第三色弱"</string>
@@ -2418,15 +2411,8 @@
<string name="color_cyan" msgid="4341758639597035927">"水色"</string>
<string name="color_yellow" msgid="5957551912912679058">"黄"</string>
<string name="color_magenta" msgid="8943538189219528423">"マゼンタ"</string>
- <string name="enable_service_title" msgid="7231533866953706788">"<xliff:g id="SERVICE">%1$s</xliff:g> にデバイスのフル コントロールを許可しますか?"</string>
<string name="capabilities_list_title" msgid="1225853611983394386">"<xliff:g id="SERVICE">%1$s</xliff:g>では以下が必要です。"</string>
<string name="touch_filtered_warning" msgid="4225815157460318241">"アプリが許可リクエストを隠しているため、設定側でユーザーの応答を確認できません。"</string>
- <string name="accessibility_service_warning" msgid="6779187188736432618">"<xliff:g id="SERVICE">%1$s</xliff:g> はこのデバイスのフル コントロールをリクエストしています。これは、ユーザー補助を必要とするユーザーに代わって画面を読み上げたり操作したりするサービスです。大半のアプリに、このレベルのコントロールは適していません。"</string>
- <string name="accessibility_service_warning_description" msgid="6573203795976134751">"フル コントロールは、ユーザー補助機能に対応しているアプリに最適です。多くのアプリではこの機能に対応していません。"</string>
- <string name="accessibility_service_screen_control_title" msgid="324795030658109870">"画面の表示と操作"</string>
- <string name="accessibility_service_screen_control_description" msgid="8431940515157990426">"画面上のすべてのコンテンツを読み取り、他のアプリの上にコンテンツを重ねて表示することができます。"</string>
- <string name="accessibility_service_action_perform_title" msgid="1449360056585337833">"操作の表示と実行"</string>
- <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"アプリやハードウェア センサーの操作を記録したり、自動的にアプリを操作したりできます。"</string>
<string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"許可"</string>
<string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"許可しない"</string>
<string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"OFF にする"</string>
@@ -3656,9 +3642,9 @@
<string name="notif_listener_not_migrated" msgid="6265206376374278226">"このアプリは拡張設定に対応していません"</string>
<string name="notif_listener_more_settings" msgid="1348409392307208921">"その他の設定"</string>
<string name="notif_listener_more_settings_desc" msgid="7995492074281663658">"このアプリ内でその他の設定を利用できます"</string>
- <string name="notification_polite_title" msgid="4737150709382859870">"通知の自動調整"</string>
- <string name="notification_polite_main_control_title" msgid="7267191551379543859">"通知の自動調整を使用する"</string>
- <string name="notification_polite_description" msgid="7749280535620291610">"短時間に多くの通知が届いた場合に、通知と音の頻度を最小限に抑えます。通話、アラーム、優先度の高い会話については、通常どおり通知が届きます。受け取った通知はすべて、画面を上から下にスワイプして簡単に確認できます。"</string>
+ <string name="notification_polite_title" msgid="6121016426991791557">"通知のクールダウン"</string>
+ <string name="notification_polite_main_control_title" msgid="5812529809151927149">"通知のクールダウンの使用"</string>
+ <string name="notification_polite_description" msgid="5497748284893832854">"短時間の間に通知が多く届いた場合に、最大 2 分間、デバイスが音量を下げて通知を最小限に抑えます。通話、アラーム、優先度の高い会話には影響しません。\n\nクールダウンの間に受信した通知は、画面上部から下にスワイプすると確認できます。"</string>
<string name="notification_polite_work" msgid="8823596456640216391">"仕事用プロファイルに適用する"</string>
<string name="notification_polite_work_summary" msgid="5014189280132951378">"仕事用プロファイルのアプリに適用する"</string>
<string name="vr_listeners_title" msgid="4960357292472540964">"VR ヘルパー サービス"</string>
@@ -3815,7 +3801,9 @@
<string name="zen_mode_apps_priority_apps" msgid="7386196048313716076">"選択したアプリ"</string>
<string name="zen_mode_apps_none_apps" msgid="2493642312793604327">"なし"</string>
<string name="zen_mode_apps_subtext" msgid="1764211974662012877">"{count,plural,offset:2 =0{アプリは割り込み不可}=1{{app_1} が割り込み可能}=2{{app_1} と {app_2} が割り込み可能}=3{{app_1}、{app_2}、{app_3} が割り込み可能}other{{app_1}、{app_2}、他 # 個が割り込み可能}}"</string>
+ <string name="zen_mode_apps_work_app" msgid="8528767938316361588">"<xliff:g id="APP_LABEL">%s</xliff:g>(仕事用)"</string>
<string name="zen_mode_apps_calculating" msgid="5420121396943539286">"計算中…"</string>
+ <string name="zen_mode_plus_n_items" msgid="6136713354369243421">"+<xliff:g id="NUMBER">%d</xliff:g>"</string>
<string name="zen_mode_bypassing_apps" msgid="625309443389126481">"アプリのオーバーライドを許可"</string>
<string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"割り込み可能なアプリ"</string>
<string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"他のアプリを選択"</string>
@@ -3833,6 +3821,7 @@
<string name="zen_mode_sounds_none" msgid="6557474361948269420">"割り込み可能なアラームなどはありません"</string>
<string name="zen_mode_people_none" msgid="4613147461974255046">"割り込み可能なユーザーはいません"</string>
<string name="zen_mode_people_some" msgid="9101872681298810281">"一部のユーザーが割り込み可能"</string>
+ <string name="zen_mode_people_repeat_callers" msgid="4499084111069828761">"同一発信者による再着信は割り込み可能"</string>
<string name="zen_mode_people_all" msgid="311036110283015205">"すべてのユーザーが割り込み可能"</string>
<string name="zen_mode_repeat_callers" msgid="2270356100287792138">"同一番号からの再着信"</string>
<string name="zen_mode_repeat_callers_title" msgid="8016699240338264781">"同一番号からの再着信に割り込みを許可"</string>
@@ -3856,6 +3845,26 @@
<string name="zen_mode_new_custom_title" msgid="321750898430776191">"モードの追加"</string>
<string name="zen_mode_new_custom_default_name" msgid="2778307946775085105">"カスタムモード"</string>
<string name="zen_mode_edit_name_hint" msgid="4584652062167540536">"モード名"</string>
+ <string name="zen_mode_trigger_title_schedule_calendar" msgid="9206609438617550331">"カレンダーの予定"</string>
+ <string name="zen_mode_trigger_title_bedtime" msgid="5086070900588489978">"睡眠のスケジュール"</string>
+ <string name="zen_mode_trigger_title_driving" msgid="7890990983453164403">"車の運転中"</string>
+ <string name="zen_mode_trigger_title_generic" msgid="601273385119550420">"アプリにリンク済み"</string>
+ <string name="zen_mode_trigger_summary_settings_in_app" msgid="4860667191183702601">"<xliff:g id="APP_NAME">%1$s</xliff:g>の情報と設定"</string>
+ <string name="zen_mode_trigger_summary_managed_by_app" msgid="8631011868193102098">"<xliff:g id="APP_NAME">%1$s</xliff:g>によって管理されています"</string>
+ <string name="zen_mode_confirm_disable_title" msgid="1232297660775719796">"モードを無効にする"</string>
+ <string name="zen_mode_confirm_disable_message" msgid="7315541221665718491">"この機能を無効にすると、このモードは正常に機能しなくなり、設定も表示されなくなります。"</string>
+ <string name="zen_mode_action_disable" msgid="3552921561331044881">"無効にする"</string>
+ <string name="zen_mode_confirm_enable_title" msgid="5683371335847448595">"モードを有効にする"</string>
+ <string name="zen_mode_confirm_enable_message" msgid="7017879133260011419">"この機能を有効にすると、このモードはスケジュールに従って自動的に有効になります。"</string>
+ <string name="zen_mode_action_enable" msgid="1161480633223176531">"有効にする"</string>
+ <string name="zen_mode_blurb_schedule_time" msgid="8223898702097484009">"通常のスケジュールに沿うモードを設定します"</string>
+ <string name="zen_mode_blurb_schedule_calendar" msgid="382177907856065945">"カレンダーの予定や招待の返答を同期するモードを設定します"</string>
+ <string name="zen_mode_blurb_bedtime" msgid="6155075956151013457">"心地よい眠りを習慣にできるよう、アラームを設定し、画面を暗くして、通知をブロックします。"</string>
+ <string name="zen_mode_blurb_driving" msgid="1316054379000667305">"運転中の安全を向上させて、運転に集中できるようにします。"</string>
+ <string name="zen_mode_blurb_immersive" msgid="5884004861848687869">"集中の妨げになるものをデバイスからブロックします"</string>
+ <string name="zen_mode_blurb_theater" msgid="2999237960059524225">"気を散らすものを排除して、静かな環境を作ります"</string>
+ <string name="zen_mode_blurb_managed" msgid="5473921634985032149">"デバイスの環境や設定をユーザーごとにカスタマイズします"</string>
+ <string name="zen_mode_blurb_generic" msgid="3041601339807075625">"大切な人やアプリからの通知のみ届くよう設定することで、割り込みを最小限に抑えます"</string>
<string name="warning_button_text" msgid="1274234338874005639">"警告"</string>
<string name="suggestion_button_close" msgid="6865170855573283759">"閉じる"</string>
<string name="device_feedback" msgid="5351614458411688608">"このデバイスについてフィードバックを送信"</string>
@@ -4098,7 +4107,7 @@
<string name="camera_gesture_title" msgid="5559439253128696180">"2回ひねる動作でカメラアプリを開く"</string>
<string name="camera_gesture_desc" msgid="7557645057320805328">"手首を2回ひねる動作でカメラアプリを開きます"</string>
<string name="screen_zoom_title" msgid="6928045302654960559">"表示サイズ"</string>
- <string name="screen_zoom_short_summary" msgid="756254364808639194">"すべてのサイズを変更します"</string>
+ <string name="screen_zoom_short_summary" msgid="756254364808639194">"全てのサイズを変更します"</string>
<string name="screen_zoom_keywords" msgid="5964023524422386592">"表示間隔、画面のズーム、スケール、拡大縮小"</string>
<string name="screen_zoom_preview_title" msgid="5288355628444562735">"プレビュー"</string>
<string name="screen_zoom_make_smaller_desc" msgid="2628662648068995971">"縮小"</string>
@@ -4842,9 +4851,8 @@
<string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"バッテリー"</string>
<string name="settings_panel_title" msgid="346363079938069215">"設定パネル"</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>
+ <!-- no translation found for enable_desktop_mode_on_secondary_display (2609567824593768780) -->
+ <skip />
<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>
@@ -5019,7 +5027,6 @@
<string name="default_active_sim_mobile_data" msgid="6798083892814045301">"モバイルデータ"</string>
<string name="wifi_scan_notify_message" msgid="1331238142061476869">"デバイスの利便性向上のため、アプリやサービスは、Wi-Fi が OFF の場合でもいつでも Wi-Fi ネットワークをスキャンすることができます。これは位置情報を使用する機能やサービスに特に役立ちます。この動作は Wi-Fi スキャンの設定で変更できます。"</string>
<string name="wifi_scan_change" msgid="8438320311511852918">"変更"</string>
- <string name="preference_summary_default_combination" msgid="4643585915107796253">"<xliff:g id="STATE">%1$s</xliff:g> / <xliff:g id="NETWORKMODE">%2$s</xliff:g>"</string>
<string name="mobile_data_connection_active" msgid="2422223108911581552">"接続済み"</string>
<string name="mobile_data_temp_connection_active" msgid="3430470299756236413">"一時的に接続されています"</string>
<string name="mobile_data_temp_using" msgid="5211002380149434155">"一時的に <xliff:g id="SUBNAME">%1$s</xliff:g> を使用しています"</string>
@@ -5165,9 +5172,11 @@
<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="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_enable_freeform_support" msgid="3697462756493543645">"フリーフォーム ウィンドウ サポートを有効にするには、再起動が必要です。"</string>
+ <!-- no translation found for reboot_dialog_override_desktop_mode (7480950772574354130) -->
+ <skip />
+ <!-- no translation found for reboot_dialog_enable_desktop_mode_on_secondary_display (1153621881052401924) -->
+ <skip />
<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>
@@ -5285,10 +5294,8 @@
<string name="show_captions_enabled" msgid="7089043007924626">"ON"</string>
<string name="live_caption_disabled" msgid="3562035026547887366">"OFF"</string>
<string name="live_caption_enabled" msgid="5269360946200718949">"ON"</string>
- <!-- no translation found for audio_seek_bar_state_left_first (8814986910920838972) -->
- <skip />
- <!-- no translation found for audio_seek_bar_state_right_first (1999368979633398876) -->
- <skip />
+ <string name="audio_seek_bar_state_left_first" msgid="8814986910920838972">"音声: 左 %1$d%%、右 %2$d%%"</string>
+ <string name="audio_seek_bar_state_right_first" msgid="1999368979633398876">"音声: 右 %1$d%%、左 %2$d%%"</string>
<string name="about_phone_device_name_warning" msgid="3243226572404472381">"インストールしたアプリにデバイス名が表示されます。また、Bluetooth デバイスや Wi-Fi ネットワークに接続したり、Wi-Fi アクセス ポイントを設定したりすると、他のユーザーにもデバイス名が表示されます。"</string>
<string name="grammatical_gender_title" msgid="8584242850477270828">"文法性"</string>
<string name="grammatical_gender_dialog_title" msgid="8754048592099871587">"文法性の選択"</string>
@@ -5400,5 +5407,6 @@
<string name="audio_streams_main_page_password_dialog_join_button" msgid="2967747276379153408">"ストリームを聴く"</string>
<string name="audio_streams_main_page_qr_code_scanner_summary" msgid="5312980105735143360">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>で聴くには、音声ストリームの QR コードをスキャンします"</string>
<string name="audio_streams_main_page_password_dialog_cannot_edit" msgid="9020898619297520153">"共有中はパスワードを編集できません。パスワードを変更するには、まず音声の共有を OFF にしてください。"</string>
+ <string name="audio_streams_qr_code_scanner_label" msgid="8799703301071378034">"QR コードスキャナ"</string>
<string name="homepage_search" msgid="6759334912284663559">"検索設定"</string>
</resources>
diff --git a/res/values-ka/strings.xml b/res/values-ka/strings.xml
index 5e683c5..de1d14a 100644
--- a/res/values-ka/strings.xml
+++ b/res/values-ka/strings.xml
@@ -41,6 +41,8 @@
<string name="radioInfo_data_suspended" msgid="2001254415431299603">"შეჩერებული"</string>
<string name="radioInfo_unknown" msgid="2892562356748600367">"უცნობია"</string>
<string name="preview_pager_content_description" msgid="3762247188224576303">"გადახედვა"</string>
+ <!-- no translation found for qr_code_content_description (1852208464419291347) -->
+ <skip />
<string name="font_size_make_smaller_desc" msgid="4978038055549590140">"დაპატარავება"</string>
<string name="font_size_make_larger_desc" msgid="5583046033381722247">"გადიდება"</string>
<string name="stay_awake_on_fold_title" msgid="6590454679898134221">"ყოველთვის"</string>
@@ -283,7 +285,7 @@
<string name="location_settings_summary_location_off" msgid="4797932754681162262">"გამორთული"</string>
<string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{ჩართულია — # აპს აქვს მდებარეობაზე წვდომა}other{ჩართულია — # აპს აქვს მდებარეობაზე წვდომა}}"</string>
<string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"მიმდინარეობს ჩატვირთვა…"</string>
- <string name="location_settings_footer_general" msgid="1040507068701188821">"ახლომდებარე მოწყობილობების ნებართვების მქონე აპებს შეუძლია დაკავშირებული მოწყობილობების პოზიციის განსაზღვრა."</string>
+ <string name="location_settings_footer_general" msgid="3447585552176173502">"ახლომდებარე მოწყობილობების ნებართვების მქონე აპებს შეუძლია დაკავშირებული მოწყობილობების პოზიციის განსაზღვრა."</string>
<string name="location_settings_footer_location_off" msgid="8568995909147566720">"აპებისა და სერვისების მდებარეობაზე წვდომა გამორთულია. თქვენი მოწყობილობის მდებარეობა მაინც გაიგზავნება გადაუდებელი დახმარების სამსახურში, როცა გადაუდებელი დახმარების სამსახურის ნომერზე დარეკავთ ან ტექსტურ შეტყობინებას გაგზავნით."</string>
<string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"შეიტყვეთ მეტი მდებარეობის პარამეტრების შესახებ"</string>
<string name="location_settings_tooltip_text_for_chrome" msgid="5781821709250544575">"შესაცვლელად გადადით ChromeOS-ის პარამეტრებში &gt კონფიდენციალურობა და უსაფრთხოება > კონფიდენციალურობის მართვის პარამეტრები > მდებარეობაზე წვდომა"</string>
@@ -850,7 +852,6 @@
<string name="nfc_reboot_dialog_title" msgid="2033983438635768169">"გსურთ მოწყობილობის გადატვირთვა?"</string>
<string name="nfc_reboot_dialog_message" msgid="4929353168157966992">"დეტალური NFC აღრიცხვა გათვალისწინებულია მხოლოდ დეველოპერული მიზნებისთვის. დამატებითი NFC მონაცემები მოყვანილია სისტემის ხარვეზის ანგარიშებში, რომლებიც შეიძლება მოიცავდეს პირად ინფორმაციას. გადატვირთეთ თქვენი მოწყობილობა ამ პარამეტრის შესაცვლელად."</string>
<string name="nfc_reboot_dialog_confirm" msgid="4769763632008584567">"გადატვირთვა"</string>
- <string name="keywords_external_display" msgid="4181375057920134909">"გამოსახულების ასლი, გარე ეკრანი, დაკავშირებული ეკრანი, usb ეკრანი, გარჩევადობა, შეტრიალება"</string>
<string name="external_display_on" msgid="2560104443500154333">"ჩართული"</string>
<string name="external_display_off" msgid="5634413756025351374">"გამორთული"</string>
<string name="external_display_settings_title" msgid="6256884595821605779">"გარე ეკრანი"</string>
@@ -1918,6 +1919,8 @@
<string name="slow_keys_summary" msgid="1784371292745423292">"არეგულირებს დროს, რომელიც სჭირდება კლავიშის დაჭერას <xliff:g id="SLOW_KEYS_THRESHOLD">%1$d</xliff:g> მილიწამამდე აქტივაციისთვის"</string>
<string name="sticky_keys" msgid="7317317044898161747">"კლავიშების ფიქსაცია"</string>
<string name="sticky_keys_summary" msgid="1844953803625480623">"მალსახმობებისთვის დააჭირეთ კლავიშებს ცალ-ცალკე და არა ერთდროულად"</string>
+ <string name="mouse_keys" msgid="6237254627808525540">"მაუსის კლავიშები"</string>
+ <string name="mouse_keys_summary" msgid="2396247040177734245">"მაუსის სამართავად გამოიყენეთ ფიზიკური კლავიატურა"</string>
<string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"კლავიატურის მალსახმობები"</string>
<string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"მალსახმობების სიის ჩვენება"</string>
<string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"სამსახურის პროფილის კლავიატურა და ხელსაწყოები"</string>
@@ -2175,8 +2178,6 @@
<string name="accessibility_shortcut_edit_dialog_summary_floating_button" msgid="6266489864614886247">"შეეხეთ მოლივლივე ღილაკს"</string>
<string name="accessibility_shortcut_edit_dialog_title_software_by_gesture" msgid="4775049370625630546">"მარტივი წვდომის ჟესტი"</string>
<string name="accessibility_shortcut_edit_dialog_summary_software" msgid="8315934725362849788">"თქვენი ეკრანის ქვედა ნაწილში შეეხეთ მარტივი წვდომის ღილაკს: <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g>. ფუნქციების გადასართავად ხანგრძლივად შეეხეთ მარტივი წვდომის ღილაკს."</string>
- <string name="accessibility_shortcut_edit_dialog_summary_software_gesture" msgid="8292555254353761635">"ორი თითით გადაფურცლეთ ეკრანის ქვედა კიდიდან ზემოთ.\n\nფუნქციების გადასართავად, ორი თითით გადაფურცლეთ ზემოთ და დააყოვნეთ."</string>
- <string name="accessibility_shortcut_edit_dialog_summary_software_gesture_talkback" msgid="84483464524360845">"სამი თითით გადაფურცლეთ ეკრანის ქვედა კიდიდან ზემოთ.\n\nფუნქციების გადასართავად, სამი თითით გადაფურცლეთ ზემოთ და დააყოვნეთ."</string>
<string name="accessibility_shortcut_edit_dialog_summary_gesture" msgid="2081123009255579884">"{count,plural, =1{გადაფურცლეთ ზემოთ თქვენი ეკრანის ქვედა ნაწილიდან. ფუნქციებს შორის გადასართავად გადაფურცლეთ ზემოთ და დააყოვნეთ.}other{გადაფურცლეთ # თითით ზემოთ თქვენი ეკრანის ქვედა ნაწილიდან. ფუნქციებს შორის გადასართავად # თითით გადაფურცლეთ ზემოთ და დააყოვნეთ.}}"</string>
<string name="accessibility_shortcut_edit_dialog_summary_software_floating" msgid="4459254227203203324"><annotation id="link">"სხვა ვარიანტები"</annotation></string>
<string name="footer_learn_more_content_description" msgid="8843798273152131341">"შეიტყვეთ მეტი <xliff:g id="SERVICE">%1$s</xliff:g>-ის შესახებ"</string>
@@ -2187,16 +2188,12 @@
<string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="844089763968552142">"ხმის ღილაკები"</string>
<string name="accessibility_shortcut_hardware_keyword" msgid="2483152542320987022">"ხმის ღილაკები"</string>
<string name="accessibility_shortcut_edit_dialog_summary_hardware" msgid="2503134386397991634">"ხანგრძლივად დააჭირეთ ხმის ორივე ღილაკს"</string>
- <string name="accessibility_shortcut_edit_dialog_title_two_finger_double_tap" msgid="2271778556854020996">"ეკრანზე ორი თითით ორმაგი შეხება"</string>
<string name="accessibility_shortcut_edit_screen_title_two_finger_double_tap" msgid="8952595692906527694">"%1$d თითით ორმაგად შეხება"</string>
<string name="accessibility_shortcut_edit_screen_summary_two_finger_double_tap" msgid="385404127425496362">"ორჯერ სწრაფად შეეხეთ ეკრანს %1$d თითით"</string>
<string name="accessibility_shortcut_edit_screen_title_triple_tap" msgid="3314488747597058942">"სამმაგი შეხება"</string>
<string name="accessibility_shortcut_edit_screen_summary_triple_tap" msgid="4839204951599629871">"სწრაფად შეეხეთ ეკრანს %1$d-ჯერ. ამან შესაძლოა თქვენი მოწყობილობა შეანელოს."</string>
<string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="6271718715836961167">"%1$d თითით ორმაგად შეხება"</string>
- <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"სწრაფად შეეხეთ ეკრანს {0,number,integer}-ჯერ ორი თითით"</string>
- <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"სამმაგად შეეხეთ ეკრანს"</string>
<string name="accessibility_shortcut_triple_tap_keyword" msgid="5359347130888464334">"სამმაგი შეხება"</string>
- <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"სწრაფად შეეხეთ ეკრანს {0,number,integer}-ჯერ. ამ მალსახმობმა შეიძლება მოწყობილობა შეანელოს"</string>
<string name="accessibility_shortcut_edit_dialog_title_advance" msgid="4567868630655591506">"გაფართოებ."</string>
<string name="accessibility_screen_magnification_navbar_configuration_warning" msgid="266736851606791552">"მარტივი წვდომის ღილაკად დაყენებულია <xliff:g id="SERVICE">%1$s</xliff:g>. გადიდების გამოსაყენებლად ხანგრძლივად შეეხეთ მარტივი წვდომის ღილაკს, ხოლო შემდეგ აირჩიეთ გადიდება."</string>
<string name="accessibility_screen_magnification_gesture_navigation_warning" msgid="991017769735632046">"მარტივი წვდომის ჟესტი დაყენებულია <xliff:g id="SERVICE">%1$s</xliff:g>-ზე. გადიდების გამოსაყენებლად, გადაფურცლეთ ორი თითით ეკრანის ქვედა კიდიდან ზემოთ და დააყოვნეთ. შემდეგ აირჩიეთ გადიდება."</string>
@@ -2365,6 +2362,7 @@
<string name="daltonizer_mode_tritanomaly_title" msgid="2278786218762602022">"ლურჯი-ყვითელი"</string>
<string name="daltonizer_mode_grayscale_title" msgid="152005391387952588">"ნაცრისფერი ტონები"</string>
<string name="daltonizer_saturation_title" msgid="2999486412114963068">"ინტენსივობა"</string>
+ <string name="daltonizer_saturation_unavailable_summary" msgid="8319753055567798775">"მიუწვდომელია ნაცრისფერი ტონების რეჟიმისთვის ან ფერთა კორექციის გათიშვისას"</string>
<string name="daltonizer_mode_deuteranomaly_summary" msgid="2117727423019598455">"მკრთალი მწვანე, დეიტერანომალია"</string>
<string name="daltonizer_mode_protanomaly_summary" msgid="4617032854982040748">"მკრთალი წითელი, პროტანომალია"</string>
<string name="daltonizer_mode_tritanomaly_summary" msgid="2428218320118180070">"ტრიტანომალია"</string>
@@ -2414,15 +2412,8 @@
<string name="color_cyan" msgid="4341758639597035927">"ცისფერი"</string>
<string name="color_yellow" msgid="5957551912912679058">"ყვითელი"</string>
<string name="color_magenta" msgid="8943538189219528423">"მეწამული"</string>
- <string name="enable_service_title" msgid="7231533866953706788">"დართავთ ნებას <xliff:g id="SERVICE">%1$s</xliff:g>-ს, სრულად მართოს თქვენი მოწყობილობა?"</string>
<string name="capabilities_list_title" msgid="1225853611983394386">"<xliff:g id="SERVICE">%1$s</xliff:g>-ს ესაჭიროება:"</string>
<string name="touch_filtered_warning" msgid="4225815157460318241">"აპის მიერ ნებართვის მოთხოვნის დაფარვის გამო, ვერ ხერხდება თქვენი პასუხის დადასტურება პარამეტრებით."</string>
- <string name="accessibility_service_warning" msgid="6779187188736432618">"<xliff:g id="SERVICE">%1$s</xliff:g> ითხოვს სრულ კონტროლს ამ მოწყობილობაზე. სერვისს შეუძლია ეკრანზე არსებული კონტენტის წაკითხვა და განსაკუთრებული საჭიროების მქონე მომხმარებლების სახელით მოქმედება. ამ დონის კონტროლი არ არის საჭირო აპების უმეტესობისთვის."</string>
- <string name="accessibility_service_warning_description" msgid="6573203795976134751">"სრული კონტროლი გამოსადეგია აპებისთვის, რომლებიც მარტივი წვდომის საჭიროებისას გეხმარებათ, მაგრამ არა აპების უმრავლესობისთვის."</string>
- <string name="accessibility_service_screen_control_title" msgid="324795030658109870">"ეკრანის ნახვა და მართვა"</string>
- <string name="accessibility_service_screen_control_description" msgid="8431940515157990426">"მას შეუძლია წაიკითხოს ეკრანზე არსებული მთელი კონტენტი და აჩვენოს კონტენტი სხვა აპებში."</string>
- <string name="accessibility_service_action_perform_title" msgid="1449360056585337833">"მოქმედებების ნახვა და შესრულება"</string>
- <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"მას შეუძლია თვალი მიადევნოს თქვენს ინტერაქციებს აპის ან აპარატურის სენსორის საშუალებით, ასევე, თქვენი სახელით აწარმოოს აპებთან ინტერაქცია."</string>
<string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"დაშვება"</string>
<string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"უარყოფა"</string>
<string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"გამორთვა"</string>
@@ -3652,9 +3643,9 @@
<string name="notif_listener_not_migrated" msgid="6265206376374278226">"ამ აპს არ აქვს გაძლიერებული პარამეტრების მხარდაჭერა"</string>
<string name="notif_listener_more_settings" msgid="1348409392307208921">"დამატებითი პარამეტრები"</string>
<string name="notif_listener_more_settings_desc" msgid="7995492074281663658">"მეტი პარამეტრი ხელმისაწვდომია ამ აპში"</string>
- <string name="notification_polite_title" msgid="4737150709382859870">"მორგებადი შეტყობინებები"</string>
- <string name="notification_polite_main_control_title" msgid="7267191551379543859">"მორგებადი შეტყობინებების გამოყენება"</string>
- <string name="notification_polite_description" msgid="7749280535620291610">"როცა მცირე დროის განმავლობაში ბევრ შეტყობინებას იღებთ, თქვენი ტელეფონი ხმას დაუწევს და მინიმალურამდე შეამცირებს ეკრანზე ამომხტარ ფანჯრებს ორი წუთის განმავლობაში. ზარები, მაღვიძარები და პრიორიტეტული საუბრები ისევ გამოსცემენ ვიბრაციას, ხმას ან გამოჩნდებიან ეკრანზე და ყველა შეტყობინება მარტივი საპოვნელი იქნება, როცა ჩამოწევთ ეკრანის ზემოდან."</string>
+ <string name="notification_polite_title" msgid="6121016426991791557">"შეტყობინების განტვირთვის პერიოდი"</string>
+ <string name="notification_polite_main_control_title" msgid="5812529809151927149">"შეტყობინების განტვირთვის პერიოდის გამოყენება"</string>
+ <string name="notification_polite_description" msgid="5497748284893832854">"როცა მცირე დროის განმავლობაში ბევრ შეტყობინებას იღებთ, თქვენი მოწყობილობა ხმას დაუწევს და მინიმალურამდე შეამცირებს ეკრანზე ამომხტარ გაფრთხილებებს ორ წუთამდე დროის განმავლობაში. თქვენი მოწყობილობის ხმა და გაფრთხილებები ავტომატურად მცირდება 2 წუთამდე, როცა ძალიან ბევრ შეტყობინებას მიიღებთ ერთდროულად. ზარებზე, მაღვიძარებსა და პრიორიტეტულ საუბრებზე ეს გავლენას არ ახდენს. \n\nგანტვირთვის პერიოდის განმავლობაში მიღებული შეტყობინებების ნახვა შესაძლებელია ეკრანის ზემოდან ქვემოთ ჩამოწევით."</string>
<string name="notification_polite_work" msgid="8823596456640216391">"გამოიყენეთ სამსახურის პროფილზე"</string>
<string name="notification_polite_work_summary" msgid="5014189280132951378">"სამსახურის პროფილის აპებზე გავრცელება"</string>
<string name="vr_listeners_title" msgid="4960357292472540964">"ვირტ. რეალობის დამხმარე სერვისები"</string>
@@ -3811,7 +3802,9 @@
<string name="zen_mode_apps_priority_apps" msgid="7386196048313716076">"არჩეული აპები"</string>
<string name="zen_mode_apps_none_apps" msgid="2493642312793604327">"არცერთი"</string>
<string name="zen_mode_apps_subtext" msgid="1764211974662012877">"{count,plural,offset:2 =0{არცერთ აპს არ შეუძლია შეწყვეტა}=1{{app_1}-ს შეუძლია შეწყვეტა}=2{{app_1}-ს და {app_2}-ს შეუძლია შეწყვეტა}=3{{app_1}-ს, {app_2}-ს და {app_3}-ს შეუძლია შეწყვეტა}other{{app_1}-ს, {app_2}-ს და # სხვას შეუძლია შეწყვეტა}}"</string>
+ <string name="zen_mode_apps_work_app" msgid="8528767938316361588">"<xliff:g id="APP_LABEL">%s</xliff:g> (სამუშაო)"</string>
<string name="zen_mode_apps_calculating" msgid="5420121396943539286">"მიმდინარეობს გამოთვლა…"</string>
+ <string name="zen_mode_plus_n_items" msgid="6136713354369243421">"+<xliff:g id="NUMBER">%d</xliff:g>"</string>
<string name="zen_mode_bypassing_apps" msgid="625309443389126481">"აპებისთვის უგულებელყოფის დაშვება"</string>
<string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"აპები, რომლებსაც შეწყვეტა შეუძლია"</string>
<string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"მეტი აპის არჩევა"</string>
@@ -3829,6 +3822,7 @@
<string name="zen_mode_sounds_none" msgid="6557474361948269420">"შეწყვეტა არაფერს შეუძლია"</string>
<string name="zen_mode_people_none" msgid="4613147461974255046">"შეწყვეტა არავის შეუძლია"</string>
<string name="zen_mode_people_some" msgid="9101872681298810281">"შეწყვეტა შეუძლია ზოგიერთ ადამიანს"</string>
+ <string name="zen_mode_people_repeat_callers" msgid="4499084111069828761">"განმეორებით აბონენტებს შეუძლიათ შეწყვეტა"</string>
<string name="zen_mode_people_all" msgid="311036110283015205">"შეწყვეტა შეუძლია ყველას"</string>
<string name="zen_mode_repeat_callers" msgid="2270356100287792138">"აბონენტების გამეორება"</string>
<string name="zen_mode_repeat_callers_title" msgid="8016699240338264781">"განმეორებითი აბონენტების დაშვება"</string>
@@ -3852,6 +3846,34 @@
<string name="zen_mode_new_custom_title" msgid="321750898430776191">"რეჟიმის დამატება"</string>
<string name="zen_mode_new_custom_default_name" msgid="2778307946775085105">"მორგებული რეჟიმი"</string>
<string name="zen_mode_edit_name_hint" msgid="4584652062167540536">"რეჟიმის სახელი"</string>
+ <string name="zen_mode_trigger_title_schedule_calendar" msgid="9206609438617550331">"კალენდრის მოვლენები"</string>
+ <string name="zen_mode_trigger_title_bedtime" msgid="5086070900588489978">"ძილის განრიგი"</string>
+ <string name="zen_mode_trigger_title_driving" msgid="7890990983453164403">"მანქანის მართვისას"</string>
+ <string name="zen_mode_trigger_title_generic" msgid="601273385119550420">"აპზე მიბმული"</string>
+ <string name="zen_mode_trigger_summary_settings_in_app" msgid="4860667191183702601">"ინფორმაცია და პარამეტრები <xliff:g id="APP_NAME">%1$s</xliff:g>-ში"</string>
+ <string name="zen_mode_trigger_summary_managed_by_app" msgid="8631011868193102098">"მართავს <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+ <string name="zen_mode_confirm_disable_title" msgid="1232297660775719796">"რეჟიმის გათიშვა"</string>
+ <string name="zen_mode_confirm_disable_message" msgid="7315541221665718491">"თუ არ მოგწონთ ეს ფუნქცია, რეჟიმი აღარ იმუშავებს დანიშნულებისამებრ და მისი პარამეტრები დაიმალება."</string>
+ <string name="zen_mode_action_disable" msgid="3552921561331044881">"გათიშვა"</string>
+ <string name="zen_mode_confirm_enable_title" msgid="5683371335847448595">"რეჟიმის ჩართვა"</string>
+ <string name="zen_mode_confirm_enable_message" msgid="7017879133260011419">"ამ ფუნქციის ჩართვით რეჟიმი ავტომატურად გააქტიურდება თავისი განრიგის შესაბამისად."</string>
+ <string name="zen_mode_action_enable" msgid="1161480633223176531">"ჩართვა"</string>
+ <!-- no translation found for zen_mode_blurb_schedule_time (8223898702097484009) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_schedule_calendar (382177907856065945) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_bedtime (6155075956151013457) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_driving (1316054379000667305) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_immersive (5884004861848687869) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_theater (2999237960059524225) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_managed (5473921634985032149) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_generic (3041601339807075625) -->
+ <skip />
<string name="warning_button_text" msgid="1274234338874005639">"შენიშვნა"</string>
<string name="suggestion_button_close" msgid="6865170855573283759">"დახურვა"</string>
<string name="device_feedback" msgid="5351614458411688608">"გამოხმაურება ამ მოწყობილობის შესახებ"</string>
@@ -4838,9 +4860,8 @@
<string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"ბატარეა"</string>
<string name="settings_panel_title" msgid="346363079938069215">"პარამეტრების პანელი"</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>
+ <!-- no translation found for enable_desktop_mode_on_secondary_display (2609567824593768780) -->
+ <skip />
<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>
@@ -5015,7 +5036,6 @@
<string name="default_active_sim_mobile_data" msgid="6798083892814045301">"მობილური ინტერნეტი"</string>
<string name="wifi_scan_notify_message" msgid="1331238142061476869">"მოწყობილობისგან მიღებული გამოცდილების გასაუმჯობესებლად, აპებსა და სერვისებს მაინც შეუძლია სკანირება Wi‑Fi ქსელების აღმოსაჩენად, ნებისმიერ დროს, მაშინაც კი, როცა Wi‑Fi გამორთულია. მაგალითისთვის, ეს შეიძლება გამოიყენებოდეს მდებარეობაზე დაფუძნებული ფუნქციების და სერვისების გასაუმჯობესებლად. ამის შეცვლა Wi-Fi სკანირების პარამეტრებში შეგიძლიათ."</string>
<string name="wifi_scan_change" msgid="8438320311511852918">"შეცვლა"</string>
- <string name="preference_summary_default_combination" msgid="4643585915107796253">"<xliff:g id="STATE">%1$s</xliff:g> / <xliff:g id="NETWORKMODE">%2$s</xliff:g>"</string>
<string name="mobile_data_connection_active" msgid="2422223108911581552">"დაკავშირებული"</string>
<string name="mobile_data_temp_connection_active" msgid="3430470299756236413">"დროებით დაკავშირებული"</string>
<string name="mobile_data_temp_using" msgid="5211002380149434155">"დროებით იყენებს <xliff:g id="SUBNAME">%1$s</xliff:g>-ს"</string>
@@ -5161,9 +5181,11 @@
<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="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_enable_freeform_support" msgid="3697462756493543645">"თავისუფალი ფორმის ფანჯრის მხარდაჭერის ჩასართავად საჭიროა გადატვირთვა."</string>
+ <!-- no translation found for reboot_dialog_override_desktop_mode (7480950772574354130) -->
+ <skip />
+ <!-- no translation found for reboot_dialog_enable_desktop_mode_on_secondary_display (1153621881052401924) -->
+ <skip />
<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>
@@ -5394,5 +5416,6 @@
<string name="audio_streams_main_page_password_dialog_join_button" msgid="2967747276379153408">"ნაკადის მოსმენა"</string>
<string name="audio_streams_main_page_qr_code_scanner_summary" msgid="5312980105735143360">"დაასკანირეთ აუდიო ნაკადის QR კოდი<xliff:g id="DEVICE_NAME">%1$s</xliff:g> მოწყობილობასთან ერთად მოსასმენად"</string>
<string name="audio_streams_main_page_password_dialog_cannot_edit" msgid="9020898619297520153">"გაზიარების დროს შეუძლებელია პაროლის რედაქტირება. პაროლის შესაცვლელად, პირველ რიგში, გამორთეთ აუდიოს გაზიარება."</string>
+ <string name="audio_streams_qr_code_scanner_label" msgid="8799703301071378034">"QR კოდის სკანერი"</string>
<string name="homepage_search" msgid="6759334912284663559">"ძიების პარამეტრები"</string>
</resources>
diff --git a/res/values-kk/arrays.xml b/res/values-kk/arrays.xml
index 9e12fa2..7c17892 100644
--- a/res/values-kk/arrays.xml
+++ b/res/values-kk/arrays.xml
@@ -58,7 +58,7 @@
<item msgid="286164147080824297">"Ажыратуда…"</item>
<item msgid="1628460745311787730">"Ажыратылған"</item>
<item msgid="4013828218541488949">"Сәтсіз"</item>
- <item msgid="5473541238056528086">"Бөгелген"</item>
+ <item msgid="5473541238056528086">"Блокталған"</item>
<item msgid="1114588261171522603">"Нашар байланысты уақытша қолданбау"</item>
</string-array>
<!-- no translation found for wifi_tether_security:0 (6312112980634811065) -->
diff --git a/res/values-kk/strings.xml b/res/values-kk/strings.xml
index ed8f728..452d216 100644
--- a/res/values-kk/strings.xml
+++ b/res/values-kk/strings.xml
@@ -41,6 +41,8 @@
<string name="radioInfo_data_suspended" msgid="2001254415431299603">"Тоқтатылған"</string>
<string name="radioInfo_unknown" msgid="2892562356748600367">"Белгісіз"</string>
<string name="preview_pager_content_description" msgid="3762247188224576303">"Алдын ала көру"</string>
+ <!-- no translation found for qr_code_content_description (1852208464419291347) -->
+ <skip />
<string name="font_size_make_smaller_desc" msgid="4978038055549590140">"Кішірек ету"</string>
<string name="font_size_make_larger_desc" msgid="5583046033381722247">"Үлкенірек ету"</string>
<string name="stay_awake_on_fold_title" msgid="6590454679898134221">"Әрдайым"</string>
@@ -283,7 +285,7 @@
<string name="location_settings_summary_location_off" msgid="4797932754681162262">"Өшірулі"</string>
<string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{Қосулы / # қолданба локацияны пайдалана алады.}other{Қосулы / # қолданба локацияны пайдалана алады.}}"</string>
<string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"Жүктелуде…"</string>
- <string name="location_settings_footer_general" msgid="1040507068701188821">"Маңайдағы құрылғыларды пайдалану рұқсаты бар қолданбалар телефонға жалғанған құрылғылардың тиісті орнын анықтай алады."</string>
+ <string name="location_settings_footer_general" msgid="3447585552176173502">"\"Маңайдағы құрылғылар\" рұқсаты бар қолданбалар жалғанған құрылғылардың тиісті орнын анықтай алады."</string>
<string name="location_settings_footer_location_off" msgid="8568995909147566720">"Қолданбалар мен қызметтер үшін локацияны пайдалану рұқсаты өшірулі. Бірақ құтқару қызметіне қоңырау шалатын немесе хабар жіберетін болсаңыз, құрылғыңыздың локациясы беріледі."</string>
<string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Локация параметрлері туралы толық ақпарат"</string>
<string name="location_settings_tooltip_text_for_chrome" msgid="5781821709250544575">"Өзгерту үшін ChromeOS жүйесінің \"Параметрлер > Құпиялық және қауіпсіздік > Құпиялық параметрлері > Локацияны пайдалану рұқсаты\" бөліміне өтіңіз."</string>
@@ -850,7 +852,6 @@
<string name="nfc_reboot_dialog_title" msgid="2033983438635768169">"Құрылғыны өшіріп қосасыз ба?"</string>
<string name="nfc_reboot_dialog_message" msgid="4929353168157966992">"Толық NFC журналы әзірлеу мақсаттарына ғана арналған. Қосымша NFC деректері қате туралы есептерге қосылған, ал онда құпия ақпарат болуы мүмкін. Бұл параметрді өзгерту үшін құрылғыны өшіріп қосыңыз."</string>
<string name="nfc_reboot_dialog_confirm" msgid="4769763632008584567">"Өшіріп қосу"</string>
- <string name="keywords_external_display" msgid="4181375057920134909">"экран көшірмесі, сыртқы дисплей, қосылған дисплей, USB дисплейі, ажыратымдылық, бұру"</string>
<string name="external_display_on" msgid="2560104443500154333">"Қосулы"</string>
<string name="external_display_off" msgid="5634413756025351374">"Өшірулі"</string>
<string name="external_display_settings_title" msgid="6256884595821605779">"Сыртқы дисплей"</string>
@@ -1918,6 +1919,8 @@
<string name="slow_keys_summary" msgid="1784371292745423292">"Перненің <xliff:g id="SLOW_KEYS_THRESHOLD">%1$d</xliff:g> мс ішінде іске қосылуына қажетті уақытты реттейді."</string>
<string name="sticky_keys" msgid="7317317044898161747">"Бекітілген пернелер"</string>
<string name="sticky_keys_summary" msgid="1844953803625480623">"Жылдам пәрмендерді пайдалану үшін пернелерді бірге баспай-ақ, бір пернені бір рет бассаңыз болады."</string>
+ <string name="mouse_keys" msgid="6237254627808525540">"Тінтуір пернелері"</string>
+ <string name="mouse_keys_summary" msgid="2396247040177734245">"Тінтуірді басқару үшін физикалық пернетақтаны пайдаланыңыз."</string>
<string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"Перне тіркесімдері"</string>
<string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"Перне тіркесімдерінің тізімін көрсету"</string>
<string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"Жұмыс профилі пернетақталары және құралдары"</string>
@@ -1942,14 +1945,10 @@
<string name="pointer_fill_style_yellow_button" msgid="5025969961559379024">"Меңзердің бояу стилін сары түске өзгертеді."</string>
<string name="pointer_fill_style_pink_button" msgid="4106218142489635673">"Меңзердің бояу стилін қызғылт түске өзгертеді."</string>
<string name="pointer_fill_style_blue_button" msgid="5594958078854032785">"Меңзердің бояу стилін көк түске өзгертеді."</string>
- <!-- no translation found for pointer_stroke_style (1886986630216050665) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_white (673686194443825383) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_black (4655806167067437330) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_none (8953927511729800247) -->
- <skip />
+ <string name="pointer_stroke_style" msgid="1886986630216050665">"Меңзер сызығының стилі"</string>
+ <string name="pointer_stroke_style_name_white" msgid="673686194443825383">"Ақ"</string>
+ <string name="pointer_stroke_style_name_black" msgid="4655806167067437330">"Қара"</string>
+ <string name="pointer_stroke_style_name_none" msgid="8953927511729800247">"Жоқ"</string>
<string name="trackpad_touch_gesture" msgid="8641725062131922497">"Сенсорлық тақта қимылдарын үйрену"</string>
<string name="keywords_touchpad" msgid="8159846254066666032">"сенсорлық тақта, тінтуір, курсор, айналдыру, сырғыту, тінтуірдің оң жақ түймесін басу, басу, клик, меңзер"</string>
<string name="keywords_trackpad_bottom_right_tap" msgid="1285062446073929305">"тінтуірдің оң жақ түймесін басу, түрту"</string>
@@ -2179,8 +2178,6 @@
<string name="accessibility_shortcut_edit_dialog_summary_floating_button" msgid="6266489864614886247">"Қалқымалы түймені түртіңіз."</string>
<string name="accessibility_shortcut_edit_dialog_title_software_by_gesture" msgid="4775049370625630546">"Арнайы мүмкіндік қимылы"</string>
<string name="accessibility_shortcut_edit_dialog_summary_software" msgid="8315934725362849788">"Экранның төменгі жағындағы арнайы мүмкіндіктер түймесін (<xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g>) түртіңіз. Бір функциядан екінші функцияға ауысу үшін арнайы мүмкіндіктер түймесін басып тұрыңыз."</string>
- <string name="accessibility_shortcut_edit_dialog_summary_software_gesture" msgid="8292555254353761635">"Экранның төменгі жағынан 2 саусағыңызбен жоғары сырғытыңыз.\n\nБір функциядан екіншісіне ауысу үшін 2 саусақпен жоғары қарай сырғытып, ұстап тұрыңыз."</string>
- <string name="accessibility_shortcut_edit_dialog_summary_software_gesture_talkback" msgid="84483464524360845">"Экранның төменгі жағынан 3 саусағыңызбен жоғарыға сырғытыңыз.\n\nБір функциядан екіншісіне ауысу үшін 3 саусақпен жоғары қарай сырғытып, ұстап тұрыңыз."</string>
<string name="accessibility_shortcut_edit_dialog_summary_gesture" msgid="2081123009255579884">"{count,plural, =1{Экранның төменгі жағынан жоғары қарай сырғытыңыз. Бір функциядан екінші функцияға ауысу үшін жоғары қарай сырғытып, ұстап тұрыңыз.}other{Экранның төменгі жағынан # саусақпен жоғары қарай сырғытыңыз. Бір функциядан екінші функцияға ауысу үшін # саусақпен жоғары қарай сырғытып, ұстап тұрыңыз.}}"</string>
<string name="accessibility_shortcut_edit_dialog_summary_software_floating" msgid="4459254227203203324"><annotation id="link">"Басқа опциялар"</annotation></string>
<string name="footer_learn_more_content_description" msgid="8843798273152131341">"<xliff:g id="SERVICE">%1$s</xliff:g> туралы толығырақ ақпарат"</string>
@@ -2191,16 +2188,12 @@
<string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="844089763968552142">"Дыбыс деңгейі пернелері"</string>
<string name="accessibility_shortcut_hardware_keyword" msgid="2483152542320987022">"дыбыс деңгейі пернелері"</string>
<string name="accessibility_shortcut_edit_dialog_summary_hardware" msgid="2503134386397991634">"Дыбыс деңгейінің екі пернесін бірге басып тұрасыз."</string>
- <string name="accessibility_shortcut_edit_dialog_title_two_finger_double_tap" msgid="2271778556854020996">"Экранды екі саусақпен екі рет түрту"</string>
<string name="accessibility_shortcut_edit_screen_title_two_finger_double_tap" msgid="8952595692906527694">"%1$d саусақпен екі рет түрту"</string>
<string name="accessibility_shortcut_edit_screen_summary_two_finger_double_tap" msgid="385404127425496362">"Экранды %1$d саусақпен екі рет жылдам түртіңіз."</string>
<string name="accessibility_shortcut_edit_screen_title_triple_tap" msgid="3314488747597058942">"Үш рет түрту"</string>
<string name="accessibility_shortcut_edit_screen_summary_triple_tap" msgid="4839204951599629871">"Экранды %1$d рет жылдам түртіңіз. Бұдан құрылғы жұмысы баяулауы мүмкін."</string>
<string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="6271718715836961167">"%1$d саусақпен екі рет түрту"</string>
- <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"Экранды екі саусағыңызбен {0,number,integer} рет жылдам түртіңіз."</string>
- <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"Экранды үш рет түрту"</string>
<string name="accessibility_shortcut_triple_tap_keyword" msgid="5359347130888464334">"үш рет түрту"</string>
- <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"Экранды {0,number,integer} рет жылдам түртіңіз. Бұл жылдам пәрмен құрылғы жұмысын баяулатуы мүмкін."</string>
<string name="accessibility_shortcut_edit_dialog_title_advance" msgid="4567868630655591506">"Қосымша"</string>
<string name="accessibility_screen_magnification_navbar_configuration_warning" msgid="266736851606791552">"Арнайы мүмкіндіктер <xliff:g id="SERVICE">%1$s</xliff:g> қызметіне орнатылды. Ұлғайту функциясын пайдалану үшін арнайы мүмкіндіктер түймесін басып тұрып, ұлғайту пәрменін таңдаңыз."</string>
<string name="accessibility_screen_magnification_gesture_navigation_warning" msgid="991017769735632046">"Арнайы мүмкіндіктер қимылы <xliff:g id="SERVICE">%1$s</xliff:g> қызметіне орнатылған. Үлкейту үшін экранның төменгі жағынан жоғары қарай екі саусақпен сырғытып, ұстап тұрыңыз. Одан кейін үлкейтуді таңдаңыз."</string>
@@ -2369,6 +2362,7 @@
<string name="daltonizer_mode_tritanomaly_title" msgid="2278786218762602022">"Көк – сары"</string>
<string name="daltonizer_mode_grayscale_title" msgid="152005391387952588">"Сұр түстер"</string>
<string name="daltonizer_saturation_title" msgid="2999486412114963068">"Қанықтығы"</string>
+ <string name="daltonizer_saturation_unavailable_summary" msgid="8319753055567798775">"Сұр түстер режимінде не түсті түзету функциясы өшірілгенде қолданылмайды."</string>
<string name="daltonizer_mode_deuteranomaly_summary" msgid="2117727423019598455">"Жасылды көру қабілеті нашар, дейтераномалия"</string>
<string name="daltonizer_mode_protanomaly_summary" msgid="4617032854982040748">"Қызылды көру қабілеті нашар, протаномалия"</string>
<string name="daltonizer_mode_tritanomaly_summary" msgid="2428218320118180070">"Тританомалия"</string>
@@ -2418,15 +2412,8 @@
<string name="color_cyan" msgid="4341758639597035927">"Көгілдір"</string>
<string name="color_yellow" msgid="5957551912912679058">"Сары"</string>
<string name="color_magenta" msgid="8943538189219528423">"Қызылкүрең"</string>
- <string name="enable_service_title" msgid="7231533866953706788">"<xliff:g id="SERVICE">%1$s</xliff:g> қызметіне құрылғыны толық басқаруға рұқсат етілсін бе?"</string>
<string name="capabilities_list_title" msgid="1225853611983394386">"<xliff:g id="SERVICE">%1$s</xliff:g> қызметіне қажет:"</string>
<string name="touch_filtered_warning" msgid="4225815157460318241">"Бағдарлама рұқсат сұрауын жасырып тұрғандықтан, Параметрлер жауабыңызды тексере алмайды."</string>
- <string name="accessibility_service_warning" msgid="6779187188736432618">"<xliff:g id="SERVICE">%1$s</xliff:g> қызметі құрылғыға толық кіру мүмкіндігін сұрауда. Ол экрандағы мәліметтерді оқып, арнайы мүмкіндіктерді талап ететін пайдаланушылар атынан әрекет ете алады. Мұндай басқару деңгейі қолданбалардың көбісіне сәйкес келмейді."</string>
- <string name="accessibility_service_warning_description" msgid="6573203795976134751">"Арнайы мүмкіндіктер бойынша көмектесетін қолданбаларға ғана құрылғыны толық басқару рұқсатын берген дұрыс."</string>
- <string name="accessibility_service_screen_control_title" msgid="324795030658109870">"Экранды көру және басқару"</string>
- <string name="accessibility_service_screen_control_description" msgid="8431940515157990426">"Ол экрандағы контентті толық оқиды және контентті басқа қолданбалардың үстінен көрсете алады."</string>
- <string name="accessibility_service_action_perform_title" msgid="1449360056585337833">"Әрекеттерді көру және орындау"</string>
- <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"Ол қолданбамен немесе жабдық датчигімен істеген тапсырмаларыңызды бақылайды және қолданбаларды сіздің атыңыздан пайдаланады."</string>
<string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Рұқсат ету"</string>
<string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Тыйым салу"</string>
<string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Өшіру"</string>
@@ -3368,10 +3355,8 @@
<string name="zen_mode_automation_settings_title" msgid="3709324184191870926">"Кестелер"</string>
<string name="zen_mode_delete_automatic_rules" msgid="5020468289267191765">"Кестелерді жою"</string>
<string name="zen_mode_schedule_delete" msgid="5383420576833765114">"Жою"</string>
- <!-- no translation found for zen_mode_menu_rename_mode (4681802125016390837) -->
- <skip />
- <!-- no translation found for zen_mode_menu_delete_mode (5380084696402157428) -->
- <skip />
+ <string name="zen_mode_menu_rename_mode" msgid="4681802125016390837">"Атын өзгерту"</string>
+ <string name="zen_mode_menu_delete_mode" msgid="5380084696402157428">"Жою"</string>
<string name="zen_mode_delete_mode_confirmation" msgid="7594340592051947392">"\"<xliff:g id="MODE">%1$s</xliff:g>\" режимі өшірілсін бе?"</string>
<string name="zen_mode_rule_name_edit" msgid="1053237022416700481">"Өзгерту"</string>
<string name="zen_mode_automation_settings_page_title" msgid="6217433860514433311">"Кестелер"</string>
@@ -3395,8 +3380,7 @@
<string name="zen_mode_visual_signals_settings_subtitle" msgid="7433077540895876672">"Визуалды сигналдарды қосу"</string>
<string name="mode_interruption_filter_title" msgid="3343846700214702347">"Жолға қараңыз!"</string>
<string name="mode_device_effects_title" msgid="5857008332618433744">"Қосымша әрекеттер"</string>
- <!-- no translation found for modes_sound_summary_off (6972648204528227879) -->
- <skip />
+ <string name="modes_sound_summary_off" msgid="6972648204528227879">"{count,plural, =0{Өшірулі}=1{Өшірулі / 1 режимді автоматты түрде қосуға болады.}other{Өшірулі / # режимді автоматты түрде қосуға болады.}}"</string>
<string name="mode_display_settings_title" msgid="8132825978346535472">"Дисплей параметрлері"</string>
<string name="mode_display_options_section" msgid="5151597748243866532">"Дисплей опциялары"</string>
<string name="mode_grayscale_title" msgid="6027553257331235461">"Сұр түстер"</string>
@@ -3659,9 +3643,9 @@
<string name="notif_listener_not_migrated" msgid="6265206376374278226">"Бұл қолданбада жақсартылған параметрлерге қолдау көрсетілмейді."</string>
<string name="notif_listener_more_settings" msgid="1348409392307208921">"Қосымша параметрлер"</string>
<string name="notif_listener_more_settings_desc" msgid="7995492074281663658">"Қолданбада қосымша параметрлер қолжетімді."</string>
- <string name="notification_polite_title" msgid="4737150709382859870">"Бейімделетін хабарландырулар"</string>
- <string name="notification_polite_main_control_title" msgid="7267191551379543859">"Бейімделетін хабарландыруларды пайдалану"</string>
- <string name="notification_polite_description" msgid="7749280535620291610">"Қысқа уақыт ішінде көп хабарландыру алған кезде, телефоныңыз дыбыс деңгейін азайтып, екі минутқа дейін экран бетіндегі қалқымалы терезелерді қысқартады. Қоңыраулар, оятқыштар және маңызды әңгімелер әдеттегідей дірілмен беріледі, дыбыс шығарады немесе экран бетінде көрсетіледі. Барлық хабарландыруды экранның жоғарғы жағынан төменге қарай сырғыту арқылы таба аласыз."</string>
+ <string name="notification_polite_title" msgid="6121016426991791557">"Хабарландыру дыбысын бәсеңдету"</string>
+ <string name="notification_polite_main_control_title" msgid="5812529809151927149">"Хабарландыру дыбысын азайту"</string>
+ <string name="notification_polite_description" msgid="5497748284893832854">"Қысқа уақыт ішінде көп хабарландыру алған кезде, құрылғының дыбыс деңгейі азайтылып, хабарландырулар 2 минутқа дейін кідіртіледі. Бұл параметр қоңырауларға, оятқыштарға және маңызды әңгімелерге әсер етпейді. \n\nДыбысын азайту кезінде алынған хабарландыруларды экранның жоғарғы жағынан төмен тарту арқылы табуға болады."</string>
<string name="notification_polite_work" msgid="8823596456640216391">"Жұмыс профильдеріне қолдану"</string>
<string name="notification_polite_work_summary" msgid="5014189280132951378">"Жұмыс профиліндегі қолданбаларға қолдану"</string>
<string name="vr_listeners_title" msgid="4960357292472540964">"Көмекші VR қызметтері"</string>
@@ -3818,7 +3802,9 @@
<string name="zen_mode_apps_priority_apps" msgid="7386196048313716076">"Таңдалған қолданбалар"</string>
<string name="zen_mode_apps_none_apps" msgid="2493642312793604327">"Жоқ"</string>
<string name="zen_mode_apps_subtext" msgid="1764211974662012877">"{count,plural,offset:2 =0{Ешқандай қолданба кедергі келтіре алмайды}=1{{app_1} кедергі келтіре алады}=2{{app_1} және {app_2} кедергі келтіре алады}=3{{app_1}, {app_2} және {app_3} кедергі келтіре алады}other{{app_1}, {app_2} және тағы # қолданба кедергі келтіре алады}}"</string>
+ <string name="zen_mode_apps_work_app" msgid="8528767938316361588">"<xliff:g id="APP_LABEL">%s</xliff:g> (жұмыс)"</string>
<string name="zen_mode_apps_calculating" msgid="5420121396943539286">"Есептеліп жатыр…"</string>
+ <string name="zen_mode_plus_n_items" msgid="6136713354369243421">"+<xliff:g id="NUMBER">%d</xliff:g>"</string>
<string name="zen_mode_bypassing_apps" msgid="625309443389126481">"Қолданбаларға қайта анықтауға рұқсат беру"</string>
<string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"Тоқтата алатын қолданбалар"</string>
<string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"Басқа да қолданбаларды таңдаңыз"</string>
@@ -3836,6 +3822,7 @@
<string name="zen_mode_sounds_none" msgid="6557474361948269420">"Ештеңе тоқтата алмайды"</string>
<string name="zen_mode_people_none" msgid="4613147461974255046">"Ешкім тоқтата алмайды"</string>
<string name="zen_mode_people_some" msgid="9101872681298810281">"Кейбір адамдар тоқтата алады."</string>
+ <string name="zen_mode_people_repeat_callers" msgid="4499084111069828761">"Адамдар қайта қоңырау шалғанда, олардың қоңырауы тоқтатылуы мүмкін."</string>
<string name="zen_mode_people_all" msgid="311036110283015205">"Барлығы тоқтата алады."</string>
<string name="zen_mode_repeat_callers" msgid="2270356100287792138">"Қайта қоңырау шалушылар"</string>
<string name="zen_mode_repeat_callers_title" msgid="8016699240338264781">"Қайта қоңырау шалушыларға рұқсат ету"</string>
@@ -3855,13 +3842,37 @@
<string name="zen_mode_summary_alarms_only_by_hour" msgid="7400910210950788163">"{count,plural, =1{Мына уақытқа дейін оятқышқа бір сағатқа өзгерту: {time}}other{Мына уақытқа дейін оятқышқа # сағатқа өзгерту: {time}}}"</string>
<string name="zen_mode_summary_alarms_only_by_time" msgid="8140619669703968810">"<xliff:g id="FORMATTEDTIME">%1$s</xliff:g> дейін \"дабылдар ғана\" режиміне өзгерту"</string>
<string name="zen_mode_summary_always" msgid="722093064250082317">"Әрқашан тоқтатуға өзгерту"</string>
- <!-- no translation found for zen_mode_rename_title (8146882272966214558) -->
+ <string name="zen_mode_rename_title" msgid="8146882272966214558">"Өзгерту режимі"</string>
+ <string name="zen_mode_new_custom_title" msgid="321750898430776191">"Режим енгізу"</string>
+ <string name="zen_mode_new_custom_default_name" msgid="2778307946775085105">"Пайдаланушы режимі"</string>
+ <string name="zen_mode_edit_name_hint" msgid="4584652062167540536">"Режим аты"</string>
+ <string name="zen_mode_trigger_title_schedule_calendar" msgid="9206609438617550331">"Күнтізбедегі іс-шаралар"</string>
+ <string name="zen_mode_trigger_title_bedtime" msgid="5086070900588489978">"Ұйқы кестесі"</string>
+ <string name="zen_mode_trigger_title_driving" msgid="7890990983453164403">"Көлік жүргізгенде"</string>
+ <string name="zen_mode_trigger_title_generic" msgid="601273385119550420">"Қолданбамен байланыстырылған"</string>
+ <string name="zen_mode_trigger_summary_settings_in_app" msgid="4860667191183702601">"Ақпарат пен параметрлерді қолданбада (<xliff:g id="APP_NAME">%1$s</xliff:g>) көруге болады."</string>
+ <string name="zen_mode_trigger_summary_managed_by_app" msgid="8631011868193102098">"<xliff:g id="APP_NAME">%1$s</xliff:g> басқарады"</string>
+ <string name="zen_mode_confirm_disable_title" msgid="1232297660775719796">"Режимді өшіру"</string>
+ <string name="zen_mode_confirm_disable_message" msgid="7315541221665718491">"Бұл функцияны өшірсеңіз, режим ойдағыдай істемейтін болады және оның параметрлері жасырылады."</string>
+ <string name="zen_mode_action_disable" msgid="3552921561331044881">"Өшіру"</string>
+ <string name="zen_mode_confirm_enable_title" msgid="5683371335847448595">"Режимді қосу"</string>
+ <string name="zen_mode_confirm_enable_message" msgid="7017879133260011419">"Бұл функцияны қоссаңыз, режим оның кестесіне сай автоматты түрде іске қосылады."</string>
+ <string name="zen_mode_action_enable" msgid="1161480633223176531">"Қосу"</string>
+ <!-- no translation found for zen_mode_blurb_schedule_time (8223898702097484009) -->
<skip />
- <!-- no translation found for zen_mode_new_custom_title (321750898430776191) -->
+ <!-- no translation found for zen_mode_blurb_schedule_calendar (382177907856065945) -->
<skip />
- <!-- no translation found for zen_mode_new_custom_default_name (2778307946775085105) -->
+ <!-- no translation found for zen_mode_blurb_bedtime (6155075956151013457) -->
<skip />
- <!-- no translation found for zen_mode_edit_name_hint (4584652062167540536) -->
+ <!-- no translation found for zen_mode_blurb_driving (1316054379000667305) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_immersive (5884004861848687869) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_theater (2999237960059524225) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_managed (5473921634985032149) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_generic (3041601339807075625) -->
<skip />
<string name="warning_button_text" msgid="1274234338874005639">"Ескерту"</string>
<string name="suggestion_button_close" msgid="6865170855573283759">"Жабу"</string>
@@ -4849,9 +4860,8 @@
<string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"Батарея"</string>
<string name="settings_panel_title" msgid="346363079938069215">"Параметрлер панелі"</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>
+ <!-- no translation found for enable_desktop_mode_on_secondary_display (2609567824593768780) -->
+ <skip />
<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>
@@ -5026,7 +5036,6 @@
<string name="default_active_sim_mobile_data" msgid="6798083892814045301">"мобильдік интернет"</string>
<string name="wifi_scan_notify_message" msgid="1331238142061476869">"Құрылғы жұмысын жақсарту үшін қолданбалар мен қызметтер Wi-Fi байланысы өшірулі кезде де Wi-Fi желілерін іздейді. Бұл, мысалы, локацияға негізделген функциялар мен қызметтерді жақсарту үшін пайдаланылуы мүмкін. Оны Wi-Fi іздеу параметрлерінен өзгерте аласыз."</string>
<string name="wifi_scan_change" msgid="8438320311511852918">"Өзгерту"</string>
- <string name="preference_summary_default_combination" msgid="4643585915107796253">"<xliff:g id="STATE">%1$s</xliff:g>/<xliff:g id="NETWORKMODE">%2$s</xliff:g>"</string>
<string name="mobile_data_connection_active" msgid="2422223108911581552">"Жалғанды"</string>
<string name="mobile_data_temp_connection_active" msgid="3430470299756236413">"Уақытша байланыс орнатылды."</string>
<string name="mobile_data_temp_using" msgid="5211002380149434155">"Уақытша <xliff:g id="SUBNAME">%1$s</xliff:g> операторы пайдаланылып жатыр."</string>
@@ -5172,9 +5181,11 @@
<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="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_enable_freeform_support" msgid="3697462756493543645">"Еркін пішінді терезелер мүмкіндігін қосу үшін құрылғыны өшіріп қосу қажет."</string>
+ <!-- no translation found for reboot_dialog_override_desktop_mode (7480950772574354130) -->
+ <skip />
+ <!-- no translation found for reboot_dialog_enable_desktop_mode_on_secondary_display (1153621881052401924) -->
+ <skip />
<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>
@@ -5292,10 +5303,8 @@
<string name="show_captions_enabled" msgid="7089043007924626">"Қосулы"</string>
<string name="live_caption_disabled" msgid="3562035026547887366">"Өшірулі"</string>
<string name="live_caption_enabled" msgid="5269360946200718949">"Қосулы"</string>
- <!-- no translation found for audio_seek_bar_state_left_first (8814986910920838972) -->
- <skip />
- <!-- no translation found for audio_seek_bar_state_right_first (1999368979633398876) -->
- <skip />
+ <string name="audio_seek_bar_state_left_first" msgid="8814986910920838972">"Аудио: сол жақ %1$d%%, оң жақ %2$d%%"</string>
+ <string name="audio_seek_bar_state_right_first" msgid="1999368979633398876">"Аудио: сол жақ %1$d%%, оң жақ %2$d%%"</string>
<string name="about_phone_device_name_warning" msgid="3243226572404472381">"Құрылғыңыздың аты орнатылған қолданбаларға көрінеді. Bluetooth құрылғыларына, Wi-Fi желісіне қосылғанда немесе Wi-Fi хотспотын орнатқанда, басқа адамдарға да көрінуі мүмкін."</string>
<string name="grammatical_gender_title" msgid="8584242850477270828">"Грамматикалық тек"</string>
<string name="grammatical_gender_dialog_title" msgid="8754048592099871587">"Грамматикалық текті таңдаңыз"</string>
@@ -5407,5 +5416,6 @@
<string name="audio_streams_main_page_password_dialog_join_button" msgid="2967747276379153408">"Трансляцияны тыңдау"</string>
<string name="audio_streams_main_page_qr_code_scanner_summary" msgid="5312980105735143360">"Аудио трансляцияның QR кодын сканерлеп, құрылғымен (<xliff:g id="DEVICE_NAME">%1$s</xliff:g>) тыңдаңыз."</string>
<string name="audio_streams_main_page_password_dialog_cannot_edit" msgid="9020898619297520153">"Бөлісу кезінде құпия сөзді өзгертуге болмайды. Өзгерту үшін алдымен аудио бөлісу функциясын өшіріңіз."</string>
+ <string name="audio_streams_qr_code_scanner_label" msgid="8799703301071378034">"QR кодының сканері"</string>
<string name="homepage_search" msgid="6759334912284663559">"Іздеу параметрлері"</string>
</resources>
diff --git a/res/values-km/strings.xml b/res/values-km/strings.xml
index 6a9569c..f99eb32 100644
--- a/res/values-km/strings.xml
+++ b/res/values-km/strings.xml
@@ -41,6 +41,8 @@
<string name="radioInfo_data_suspended" msgid="2001254415431299603">"បានផ្អាក"</string>
<string name="radioInfo_unknown" msgid="2892562356748600367">"មិនស្គាល់"</string>
<string name="preview_pager_content_description" msgid="3762247188224576303">"មើលសាកល្បង"</string>
+ <!-- no translation found for qr_code_content_description (1852208464419291347) -->
+ <skip />
<string name="font_size_make_smaller_desc" msgid="4978038055549590140">"កំណត់ឲ្យតូចជាងមុន"</string>
<string name="font_size_make_larger_desc" msgid="5583046033381722247">"កំណត់ឲ្យធំជាងមុន"</string>
<string name="stay_awake_on_fold_title" msgid="6590454679898134221">"ជានិច្ច"</string>
@@ -283,7 +285,7 @@
<string name="location_settings_summary_location_off" msgid="4797932754681162262">"បិទ"</string>
<string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{បើក / កម្មវិធី # មានសិទ្ធិចូលប្រើទីតាំង}other{បើក / កម្មវិធី # មានសិទ្ធិចូលប្រើទីតាំង}}"</string>
<string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"កំពុងផ្ទុក…"</string>
- <string name="location_settings_footer_general" msgid="1040507068701188821">"កម្មវិធីដែលមានការអនុញ្ញាតឱ្យប្រើឧបករណ៍នៅជិតអាចកំណត់ចម្ងាយពាក់ព័ន្ធនៃឧបករណ៍ដែលបានភ្ជាប់។"</string>
+ <string name="location_settings_footer_general" msgid="3447585552176173502">"កម្មវិធីដែលមានការអនុញ្ញាតឧបករណ៍នៅជិតអាចកំណត់ទីតាំងដែលពាក់ព័ន្ធនៃឧបករណ៍ដែលបានភ្ជាប់។"</string>
<string name="location_settings_footer_location_off" msgid="8568995909147566720">"ការចូលប្រើទីតាំងត្រូវបានបិទសម្រាប់កម្មវិធី និងសេវាកម្ម។ ទីតាំងឧបករណ៍របស់អ្នកនៅតែអាចត្រូវបានផ្ញើទៅអ្នកសង្គ្រោះបន្ទាន់ដដែល នៅពេលដែលអ្នកហៅទូរសព្ទ ឬផ្ញើសារជាអក្សរទៅលេខសង្គ្រោះបន្ទាន់។"</string>
<string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"ស្វែងយល់បន្ថែមអំពីការកំណត់ទីតាំង"</string>
<string name="location_settings_tooltip_text_for_chrome" msgid="5781821709250544575">"ដើម្បីផ្លាស់ប្ដូរ សូមចូលទៅកាន់ការកំណត់ ChromeOS > ឯកជនភាព និងសុវត្ថិភាព > ការគ្រប់គ្រងឯកជនភាព > ការចូលប្រើទីតាំង"</string>
@@ -850,7 +852,6 @@
<string name="nfc_reboot_dialog_title" msgid="2033983438635768169">"ចាប់ផ្តើមឧបករណ៍ឡើងវិញឬ?"</string>
<string name="nfc_reboot_dialog_message" msgid="4929353168157966992">"ការកត់ត្រា NFC លម្អិតគឺសម្រាប់តែការអភិវឌ្ឍប៉ុណ្ណោះ។ ទិន្នន័យ NFC បន្ថែមត្រូវបានរួមបញ្ចូលក្នុងរបាយការណ៍អំពីបញ្ហាដែលអាចមានព័ត៌មានឯកជន។ ចាប់ផ្ដើមឧបករណ៍របស់អ្នកឡើងវិញ ដើម្បីប្ដូរការកំណត់នេះ។"</string>
<string name="nfc_reboot_dialog_confirm" msgid="4769763632008584567">"ចាប់ផ្ដើមឡើងវិញ"</string>
- <string name="keywords_external_display" msgid="4181375057920134909">"បញ្ចាំង, ផ្ទាំងអេក្រង់ខាងក្រៅ, ផ្ទាំងអេក្រង់ដែលបានភ្ជាប់, ផ្ទាំងអេក្រង់ usb, កម្រិតគុណភាព, ការបង្វិល"</string>
<string name="external_display_on" msgid="2560104443500154333">"បើក"</string>
<string name="external_display_off" msgid="5634413756025351374">"បិទ"</string>
<string name="external_display_settings_title" msgid="6256884595821605779">"ផ្ទាំងអេក្រង់ខាងក្រៅ"</string>
@@ -1918,6 +1919,8 @@
<string name="slow_keys_summary" msgid="1784371292745423292">"កែតម្រូវរយៈពេលនៃការចុចគ្រាប់ចុចដើម្បីបើកដំណើរការទៅ <xliff:g id="SLOW_KEYS_THRESHOLD">%1$d</xliff:g> មិល្លីវិនាទី"</string>
<string name="sticky_keys" msgid="7317317044898161747">"គ្រាប់ចុចស្អិត"</string>
<string name="sticky_keys_summary" msgid="1844953803625480623">"ចុចគ្រាប់ចុចមួយក្នុងមួយលើកសម្រាប់ផ្លូវកាត់ជំនួសឱ្យការចុចគ្រាប់ចុចឱ្យជាប់រួមគ្នា"</string>
+ <string name="mouse_keys" msgid="6237254627808525540">"គ្រាប់ចុចម៉ៅស៍"</string>
+ <string name="mouse_keys_summary" msgid="2396247040177734245">"ប្រើក្ដារចុចរូបវន្ត ដើម្បីគ្រប់គ្រងម៉ៅស៍។"</string>
<string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"ផ្លូវកាត់ក្តារចុច"</string>
<string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"បង្ហាញបញ្ជីផ្លូវកាត់"</string>
<string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"ឧបករណ៍ និងក្ដារចុចកម្រងព័ត៌មានការងារ"</string>
@@ -1942,14 +1945,10 @@
<string name="pointer_fill_style_yellow_button" msgid="5025969961559379024">"ប្ដូរស្តាយល៍បំពេញរបស់ព្រួញទៅលឿង"</string>
<string name="pointer_fill_style_pink_button" msgid="4106218142489635673">"ប្ដូរស្តាយល៍បំពេញរបស់ព្រួញទៅផ្កាឈូក"</string>
<string name="pointer_fill_style_blue_button" msgid="5594958078854032785">"ប្ដូរស្តាយល៍បំពេញរបស់ព្រួញទៅខៀវ"</string>
- <!-- no translation found for pointer_stroke_style (1886986630216050665) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_white (673686194443825383) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_black (4655806167067437330) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_none (8953927511729800247) -->
- <skip />
+ <string name="pointer_stroke_style" msgid="1886986630216050665">"រចនាប័ទ្មគំនូសសញ្ញាព្រួញ"</string>
+ <string name="pointer_stroke_style_name_white" msgid="673686194443825383">"ស"</string>
+ <string name="pointer_stroke_style_name_black" msgid="4655806167067437330">"ខ្មៅ"</string>
+ <string name="pointer_stroke_style_name_none" msgid="8953927511729800247">"គ្មាន"</string>
<string name="trackpad_touch_gesture" msgid="8641725062131922497">"ស្វែងយល់អំពីចលនាផ្ទាំងប៉ះ"</string>
<string name="keywords_touchpad" msgid="8159846254066666032">"ផ្ទាំងប៉ះ, ផ្ទាំងសម្រាប់ប៉ះ, ម៉ៅស៍, ទស្សន៍ទ្រនិច, រំកិល, អូស, ចុចម៉ៅស៍ខាងស្ដាំ, ចុច, ទ្រនិចរំកិល"</string>
<string name="keywords_trackpad_bottom_right_tap" msgid="1285062446073929305">"ចុចម៉ៅស៍ខាងស្ដាំ, ចុច"</string>
@@ -2179,8 +2178,6 @@
<string name="accessibility_shortcut_edit_dialog_summary_floating_button" msgid="6266489864614886247">"ចុចប៊ូតុងអណ្ដែត"</string>
<string name="accessibility_shortcut_edit_dialog_title_software_by_gesture" msgid="4775049370625630546">"ចលនាភាពងាយស្រួល"</string>
<string name="accessibility_shortcut_edit_dialog_summary_software" msgid="8315934725362849788">"ចុចប៊ូតុងភាពងាយស្រួល <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g> នៅផ្នែកខាងក្រោមនៃអេក្រង់របស់អ្នក។ ដើម្បីប្ដូររវាងមុខងារផ្សេងៗ សូមចុចប៊ូតុងភាពងាយស្រួលឱ្យជាប់។"</string>
- <string name="accessibility_shortcut_edit_dialog_summary_software_gesture" msgid="8292555254353761635">"អូសឡើងលើពីផ្នែកខាងក្រោមនៃអេក្រង់ ដោយប្រើម្រាមដៃ 2។\n\nដើម្បីប្ដូររវាងមុខងារផ្សេងៗ សូមអូសឡើងលើ ដោយប្រើម្រាមដៃ 2 រួចសង្កត់ឱ្យជាប់។"</string>
- <string name="accessibility_shortcut_edit_dialog_summary_software_gesture_talkback" msgid="84483464524360845">"អូសឡើងលើពីផ្នែកខាងក្រោមនៃអេក្រង់ ដោយប្រើម្រាមដៃ 3។\n\nដើម្បីប្ដូររវាងមុខងារផ្សេងៗ សូមអូសឡើងលើ ដោយប្រើម្រាមដៃ 3 រួចសង្កត់ឱ្យជាប់។"</string>
<string name="accessibility_shortcut_edit_dialog_summary_gesture" msgid="2081123009255579884">"{count,plural, =1{អូសពីផ្នែកខាងក្រោមនៃអេក្រង់របស់អ្នកឡើងលើ។ ដើម្បីប្ដូររវាងមុខងារផ្សេងៗ សូមអូសឡើងលើ ហើយសង្កត់ឱ្យជាប់។}other{អូសពីផ្នែកខាងក្រោមនៃអេក្រង់របស់អ្នកឡើងលើដោយប្រើម្រាមដៃ #។ ដើម្បីប្ដូររវាងមុខងារផ្សេងៗ សូមអូសឡើងលើដោយប្រើម្រាមដៃ # ហើយសង្កត់ឱ្យជាប់។}}"</string>
<string name="accessibility_shortcut_edit_dialog_summary_software_floating" msgid="4459254227203203324"><annotation id="link">"ជម្រើសច្រើនទៀត"</annotation></string>
<string name="footer_learn_more_content_description" msgid="8843798273152131341">"ស្វែងយល់បន្ថែមអំពី \"<xliff:g id="SERVICE">%1$s</xliff:g>\""</string>
@@ -2191,16 +2188,12 @@
<string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="844089763968552142">"គ្រាប់ចុចកម្រិតសំឡេង"</string>
<string name="accessibility_shortcut_hardware_keyword" msgid="2483152542320987022">"គ្រាប់ចុចកម្រិតសំឡេង"</string>
<string name="accessibility_shortcut_edit_dialog_summary_hardware" msgid="2503134386397991634">"ចុចគ្រាប់ចុចកម្រិតសំឡេងទាំងពីរឱ្យជាប់"</string>
- <string name="accessibility_shortcut_edit_dialog_title_two_finger_double_tap" msgid="2271778556854020996">"ចុចអេក្រង់ពីរដងដោយប្រើម្រាមដៃពីរ"</string>
<string name="accessibility_shortcut_edit_screen_title_two_finger_double_tap" msgid="8952595692906527694">"ចុចពីរដងដោយប្រើម្រាមដៃ %1$d"</string>
<string name="accessibility_shortcut_edit_screen_summary_two_finger_double_tap" msgid="385404127425496362">"ចុចឱ្យលឿនលើអេក្រង់ពីរដងដោយប្រើម្រាមដៃ %1$d"</string>
<string name="accessibility_shortcut_edit_screen_title_triple_tap" msgid="3314488747597058942">"ចុចបីដង"</string>
<string name="accessibility_shortcut_edit_screen_summary_triple_tap" msgid="4839204951599629871">"ចុចឱ្យលឿនលើអេក្រង់ %1$d ដង។ ការធ្វើបែបនេះអាចបន្ថយល្បឿនឧបករណ៍របស់អ្នក។"</string>
<string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="6271718715836961167">"ចុចពីរដងដោយប្រើម្រាមដៃ %1$d"</string>
- <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"ចុចអេក្រង់ {0,number,integer} ដងឱ្យរហ័សដោយប្រើម្រាមដៃពីរ"</string>
- <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"ចុចអេក្រង់បីដង"</string>
<string name="accessibility_shortcut_triple_tap_keyword" msgid="5359347130888464334">"ចុចបីដង"</string>
- <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"ចុចអេក្រង់ {0,number,integer} ដងឱ្យរហ័ស។ ផ្លូវកាត់នេះអាចធ្វើឱ្យឧបករណ៍របស់អ្នកដើរយឺត"</string>
<string name="accessibility_shortcut_edit_dialog_title_advance" msgid="4567868630655591506">"កម្រិតខ្ពស់"</string>
<string name="accessibility_screen_magnification_navbar_configuration_warning" msgid="266736851606791552">"ប៊ូតុងភាពងាយស្រួលត្រូវបានកំណត់ទៅ <xliff:g id="SERVICE">%1$s</xliff:g>។ ដើម្បីប្រើការពង្រីក សូមចុចប៊ូតុងភាពងាយស្រួលឲ្យជាប់ បន្ទាប់មកជ្រើសរើសការពង្រីក។"</string>
<string name="accessibility_screen_magnification_gesture_navigation_warning" msgid="991017769735632046">"ចលនាភាពងាយស្រួលត្រូវបានកំណត់ទៅ <xliff:g id="SERVICE">%1$s</xliff:g> ។ ដើម្បីប្រើការពង្រីក សូមអូសឡើងលើដោយប្រើម្រាមដៃពីរ ពីផ្នែកខាងក្រោមនៃអេក្រង់ ហើយសង្កត់ឱ្យជាប់។ បន្ទាប់មក ជ្រើសរើសការពង្រីក។"</string>
@@ -2369,6 +2362,7 @@
<string name="daltonizer_mode_tritanomaly_title" msgid="2278786218762602022">"ខៀវ-លឿង"</string>
<string name="daltonizer_mode_grayscale_title" msgid="152005391387952588">"មាត្រដ្ឋានពណ៌ប្រផេះ"</string>
<string name="daltonizer_saturation_title" msgid="2999486412114963068">"កម្រិត"</string>
+ <string name="daltonizer_saturation_unavailable_summary" msgid="8319753055567798775">"មិនមានសម្រាប់មុខងារមាត្រដ្ឋានពណ៌ប្រផេះ ឬនៅពេលការកែតម្រូវពណ៌ត្រូវបានបិទ"</string>
<string name="daltonizer_mode_deuteranomaly_summary" msgid="2117727423019598455">"ខ្សោយពណ៌បៃតង (ខ្វាក់ពណ៌បៃតង)"</string>
<string name="daltonizer_mode_protanomaly_summary" msgid="4617032854982040748">"ខ្សោយពណ៌ក្រហម (ខ្វាក់ពណ៌ក្រហម)"</string>
<string name="daltonizer_mode_tritanomaly_summary" msgid="2428218320118180070">"ខ្វាក់ពណ៌ខៀវ"</string>
@@ -2418,15 +2412,8 @@
<string name="color_cyan" msgid="4341758639597035927">"ពណ៌កាប់ស្តាំង"</string>
<string name="color_yellow" msgid="5957551912912679058">"ពណ៌លឿង"</string>
<string name="color_magenta" msgid="8943538189219528423">"ពណ៌ក្រហមស្វាយ"</string>
- <string name="enable_service_title" msgid="7231533866953706788">"អនុញ្ញាតឱ្យ <xliff:g id="SERVICE">%1$s</xliff:g> គ្រប់គ្រងឧបករណ៍របស់អ្នកទាំងស្រុង?"</string>
<string name="capabilities_list_title" msgid="1225853611983394386">"<xliff:g id="SERVICE">%1$s</xliff:g> ត្រូវការ៖"</string>
<string name="touch_filtered_warning" msgid="4225815157460318241">"ដោយសារកម្មវិធីមួយកំពុងធ្វើឲ្យសំណើរអនុញ្ញាតមានភាពមិនច្បាស់ ការកំណត់នេះមិនអាចផ្ទៀងផ្ទាត់ការឆ្លើយតបរបស់អ្នកបានទេ។"</string>
- <string name="accessibility_service_warning" msgid="6779187188736432618">"<xliff:g id="SERVICE">%1$s</xliff:g> កំពុងស្នើសុំគ្រប់គ្រងឧបករណ៍នេះទាំងស្រុង។ សេវាកម្មនេះអាចអានអេក្រង់ និងធ្វើសកម្មភាពជំនួសឱ្យអ្នកប្រើប្រាស់ដែលត្រូវការមុខងារភាពងាយស្រួល។ កម្រិតនៃការគ្រប់គ្រងនេះមិនស័ក្តិសមសម្រាប់កម្មវិធីភាគច្រើនទេ។"</string>
- <string name="accessibility_service_warning_description" msgid="6573203795976134751">"ការគ្រប់គ្រងទាំងស្រុងមានលក្ខណៈសមស្របសម្រាប់កម្មវិធី ដែលជួយអ្នកទាក់ទងនឹងការប្រើមុខងារភាពងាយស្រួល ប៉ុន្តែមិនសមស្របសម្រាប់កម្មវិធីភាគច្រើនទេ។"</string>
- <string name="accessibility_service_screen_control_title" msgid="324795030658109870">"មើល និងគ្រប់គ្រងអេក្រង់"</string>
- <string name="accessibility_service_screen_control_description" msgid="8431940515157990426">"វាអាចអានខ្លឹមសារទាំងអស់នៅលើអេក្រង់ និងបង្ហាញខ្លឹមសារលើកម្មវិធីផ្សេងទៀត។"</string>
- <string name="accessibility_service_action_perform_title" msgid="1449360056585337833">"មើល និងធ្វើសកម្មភាព"</string>
- <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"វាអាចតាមដានអន្តរកម្មរបស់អ្នកជាមួយនឹងកម្មវិធី ឬសេនស័រហាតវែរ និងធ្វើអន្តរកម្មជាមួយកម្មវិធីនានាជំនួសឱ្យអ្នក។"</string>
<string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"អនុញ្ញាត"</string>
<string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"បដិសេធ"</string>
<string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"បិទ"</string>
@@ -3656,9 +3643,9 @@
<string name="notif_listener_not_migrated" msgid="6265206376374278226">"កម្មវិធីនេះមិនស្គាល់ការកំណត់ដែលប្រសើរឡើងទេ"</string>
<string name="notif_listener_more_settings" msgid="1348409392307208921">"ការកំណត់ច្រើនទៀត"</string>
<string name="notif_listener_more_settings_desc" msgid="7995492074281663658">"អាចប្រើការកំណត់បានច្រើនទៀតនៅក្នុងកម្មវិធីនេះ"</string>
- <string name="notification_polite_title" msgid="4737150709382859870">"ការជូនដំណឹងបត់បែន"</string>
- <string name="notification_polite_main_control_title" msgid="7267191551379543859">"ប្រើការជូនដំណឹងបត់បែន"</string>
- <string name="notification_polite_description" msgid="7749280535620291610">"នៅពេលអ្នកទទួលបានការជូនដំណឹងច្រើនក្នុងរយៈពេលខ្លីមួយ ទូរសព្ទរបស់អ្នកនឹងបន្ថយកម្រិតសំឡេង និងបង្រួមផ្ទាំងលោតឡើងលើអេក្រង់រយៈពេលរហូតដល់ពីរនាទី។ ការហៅទូរសព្ទ ម៉ោងរោទ៍ និងការសន្ទនាអាទិភាពនៅតែញ័រ បន្លឺសំឡេង ឬបង្ហាញឡើងលើអេក្រង់ ហើយងាយស្រួលរកឃើញការជូនដំណឹងទាំងអស់ ពេលអ្នកទាញចុះពីផ្នែកខាងលើនៃអេក្រង់។"</string>
+ <string name="notification_polite_title" msgid="6121016426991791557">"ការបន្ថយសំឡេងការជូនដំណឹង"</string>
+ <string name="notification_polite_main_control_title" msgid="5812529809151927149">"ប្រើការបន្ថយសំឡេងការជូនដំណឹង"</string>
+ <string name="notification_polite_description" msgid="5497748284893832854">"នៅពេលអ្នកទទួលបានការជូនដំណឹងច្រើនក្នុងរយៈពេលខ្លីមួយ ឧបករណ៍របស់អ្នកនឹងបន្ថយកម្រិតសំឡេង និងការជូនដំណឹងរហូតដល់ 2 នាទី។ ការហៅទូរសព្ទ សំឡេងរោទិ៍ និងការសន្ទនាអាទិភាពមិនរងប៉ះពាល់ទេ។ \n\nអ្នកអាចស្វែងរកការជូនដំណឹងដែលបានទទួលក្នុងអំឡុងពេលបន្ថយសំឡេង ដោយទាញពីផ្នែកខាងលើនៃអេក្រង់ចុះក្រោម។"</string>
<string name="notification_polite_work" msgid="8823596456640216391">"ដាក់ប្រើលើកម្រងព័ត៌មានការងារ"</string>
<string name="notification_polite_work_summary" msgid="5014189280132951378">"ដាក់ប្រើលើកម្មវិធីកម្រងព័ត៌មានការងារ"</string>
<string name="vr_listeners_title" msgid="4960357292472540964">"សេវាកម្មជំនួយ VR"</string>
@@ -3815,7 +3802,9 @@
<string name="zen_mode_apps_priority_apps" msgid="7386196048313716076">"កម្មវិធីដែលបានជ្រើសរើស"</string>
<string name="zen_mode_apps_none_apps" msgid="2493642312793604327">"គ្មាន"</string>
<string name="zen_mode_apps_subtext" msgid="1764211974662012877">"{count,plural,offset:2 =0{គ្មានកម្មវិធីដែលអាចផ្អាកបានទេ}=1{{app_1} អាចផ្អាកបាន}=2{{app_1} និង {app_2} អាចផ្អាកបាន}=3{{app_1}, {app_2} និង {app_3} អាចផ្អាកបាន}other{{app_1}, {app_2} និង # ទៀតអាចផ្អាកបាន}}"</string>
+ <string name="zen_mode_apps_work_app" msgid="8528767938316361588">"<xliff:g id="APP_LABEL">%s</xliff:g> (ការងារ)"</string>
<string name="zen_mode_apps_calculating" msgid="5420121396943539286">"កំពុងគណនា…"</string>
+ <string name="zen_mode_plus_n_items" msgid="6136713354369243421">"+<xliff:g id="NUMBER">%d</xliff:g>"</string>
<string name="zen_mode_bypassing_apps" msgid="625309443389126481">"អនុញ្ញាតឱ្យកម្មវិធីលុបពីលើ"</string>
<string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"កម្មវិធីដែលអាចផ្អាកបាន"</string>
<string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"ជ្រើសរើសកម្មវិធីច្រើនទៀត"</string>
@@ -3833,6 +3822,7 @@
<string name="zen_mode_sounds_none" msgid="6557474361948269420">"គ្មានអ្វីមួយអាចផ្អាកបានទេ"</string>
<string name="zen_mode_people_none" msgid="4613147461974255046">"គ្មាននរណាអាចផ្អាកបានទេ"</string>
<string name="zen_mode_people_some" msgid="9101872681298810281">"មនុស្សមួយចំនួនអាចផ្អាកបាន"</string>
+ <string name="zen_mode_people_repeat_callers" msgid="4499084111069828761">"អ្នកហៅទូរសព្ទដដែលៗអាចផ្អាកបាន"</string>
<string name="zen_mode_people_all" msgid="311036110283015205">"នរណាក៏អាចផ្អាកបានដែរ"</string>
<string name="zen_mode_repeat_callers" msgid="2270356100287792138">"អ្នកហៅចូលសាជាថ្មី"</string>
<string name="zen_mode_repeat_callers_title" msgid="8016699240338264781">"អនុញ្ញាតអ្នកហៅដដែលៗ"</string>
@@ -3856,6 +3846,34 @@
<string name="zen_mode_new_custom_title" msgid="321750898430776191">"មុខងារបញ្ចូល"</string>
<string name="zen_mode_new_custom_default_name" msgid="2778307946775085105">"មុខងារផ្ទាល់ខ្លួន"</string>
<string name="zen_mode_edit_name_hint" msgid="4584652062167540536">"ឈ្មោះមុខងារ"</string>
+ <string name="zen_mode_trigger_title_schedule_calendar" msgid="9206609438617550331">"ព្រឹត្តិការណ៍ក្នុងប្រតិទិន"</string>
+ <string name="zen_mode_trigger_title_bedtime" msgid="5086070900588489978">"កាលវិភាគគេង"</string>
+ <string name="zen_mode_trigger_title_driving" msgid="7890990983453164403">"ពេលកំពុងបើកបរ"</string>
+ <string name="zen_mode_trigger_title_generic" msgid="601273385119550420">"បានភ្ជាប់ទៅកម្មវិធី"</string>
+ <string name="zen_mode_trigger_summary_settings_in_app" msgid="4860667191183702601">"ព័ត៌មាន និងការកំណត់នៅក្នុង <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+ <string name="zen_mode_trigger_summary_managed_by_app" msgid="8631011868193102098">"គ្រប់គ្រងដោយ <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+ <string name="zen_mode_confirm_disable_title" msgid="1232297660775719796">"បិទមុខងារ"</string>
+ <string name="zen_mode_confirm_disable_message" msgid="7315541221665718491">"ប្រសិនបើអ្នកបិទមុខងារនេះ មុខងារនេះនឹងលែងដំណើរការតាមការចង់បាន ហើយការកំណត់របស់វានឹងត្រូវបានលាក់។"</string>
+ <string name="zen_mode_action_disable" msgid="3552921561331044881">"បិទ"</string>
+ <string name="zen_mode_confirm_enable_title" msgid="5683371335847448595">"បើកមុខងារ"</string>
+ <string name="zen_mode_confirm_enable_message" msgid="7017879133260011419">"ប្រសិនបើអ្នកបើកមុខងារនេះ មុខងារនេះនឹងបើកដំណើរការដោយស្វ័យប្រវត្តិតាមកាលវិភាគរបស់វា។"</string>
+ <string name="zen_mode_action_enable" msgid="1161480633223176531">"បើក"</string>
+ <!-- no translation found for zen_mode_blurb_schedule_time (8223898702097484009) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_schedule_calendar (382177907856065945) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_bedtime (6155075956151013457) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_driving (1316054379000667305) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_immersive (5884004861848687869) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_theater (2999237960059524225) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_managed (5473921634985032149) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_generic (3041601339807075625) -->
+ <skip />
<string name="warning_button_text" msgid="1274234338874005639">"ការព្រមាន"</string>
<string name="suggestion_button_close" msgid="6865170855573283759">"បិទ"</string>
<string name="device_feedback" msgid="5351614458411688608">"ផ្ដល់មតិកែលម្អអំពីឧបករណ៍នេះ"</string>
@@ -4842,9 +4860,8 @@
<string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"ថ្ម"</string>
<string name="settings_panel_title" msgid="346363079938069215">"ផ្ទាំងការកំណត់"</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>
+ <!-- no translation found for enable_desktop_mode_on_secondary_display (2609567824593768780) -->
+ <skip />
<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>
@@ -5019,7 +5036,6 @@
<string name="default_active_sim_mobile_data" msgid="6798083892814045301">"ទិន្នន័យទូរសព្ទចល័ត"</string>
<string name="wifi_scan_notify_message" msgid="1331238142061476869">"ដើម្បីកែលម្អបទពិសោធប្រើប្រាស់ឧបករណ៍ កម្មវិធី និងសេវាកម្មនៅតែអាចស្កេនរកបណ្តាញ Wi-Fi បានគ្រប់ពេល ទោះបីជានៅពេលបិទ Wi-Fi ក៏ដោយ។ សកម្មភាពនេះអាចត្រូវបានប្រើដើម្បីកែលម្អមុខងារ និងសេវាកម្មដែលផ្អែកលើទីតាំងជាដើម។ អ្នកអាចប្ដូរវាបាននៅក្នុងការកំណត់ការស្កេន Wi‑Fi។"</string>
<string name="wifi_scan_change" msgid="8438320311511852918">"ផ្លាស់ប្ដូរ"</string>
- <string name="preference_summary_default_combination" msgid="4643585915107796253">"<xliff:g id="STATE">%1$s</xliff:g> / <xliff:g id="NETWORKMODE">%2$s</xliff:g>"</string>
<string name="mobile_data_connection_active" msgid="2422223108911581552">"បានភ្ជាប់"</string>
<string name="mobile_data_temp_connection_active" msgid="3430470299756236413">"បានភ្ជាប់ជាបណ្ដោះអាសន្ន"</string>
<string name="mobile_data_temp_using" msgid="5211002380149434155">"ប្រើ <xliff:g id="SUBNAME">%1$s</xliff:g> ជាបណ្ដោះអាសន្ន"</string>
@@ -5165,9 +5181,11 @@
<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="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_enable_freeform_support" msgid="3697462756493543645">"តម្រូវឱ្យចាប់ផ្ដើមឡើងវិញ ដើម្បីបើកជំនួយវិនដូទម្រង់សេរី។"</string>
+ <!-- no translation found for reboot_dialog_override_desktop_mode (7480950772574354130) -->
+ <skip />
+ <!-- no translation found for reboot_dialog_enable_desktop_mode_on_secondary_display (1153621881052401924) -->
+ <skip />
<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>
@@ -5285,10 +5303,8 @@
<string name="show_captions_enabled" msgid="7089043007924626">"បើក"</string>
<string name="live_caption_disabled" msgid="3562035026547887366">"បិទ"</string>
<string name="live_caption_enabled" msgid="5269360946200718949">"បើក"</string>
- <!-- no translation found for audio_seek_bar_state_left_first (8814986910920838972) -->
- <skip />
- <!-- no translation found for audio_seek_bar_state_right_first (1999368979633398876) -->
- <skip />
+ <string name="audio_seek_bar_state_left_first" msgid="8814986910920838972">"សំឡេងខាងឆ្វេង %1$d%% ខាងស្ដាំ %2$d%%"</string>
+ <string name="audio_seek_bar_state_right_first" msgid="1999368979633398876">"សំឡេងខាងស្ដាំ %1$d%% ខាងឆ្វេង %2$d%%"</string>
<string name="about_phone_device_name_warning" msgid="3243226572404472381">"កម្មវិធីដែលអ្នកបានដំឡើងអាចមើលឃើញឈ្មោះឧបករណ៍របស់អ្នក។ មនុស្សផ្សេងទៀតក៏អាចមើលឃើញឈ្មោះឧបករណ៍នេះផងដែរ នៅពេលអ្នកភ្ជាប់ទៅឧបករណ៍ប៊្លូធូស ភ្ជាប់ទៅបណ្ដាញ Wi-Fi ឬរៀបចំហតស្ប៉ត Wi-Fi។"</string>
<string name="grammatical_gender_title" msgid="8584242850477270828">"យេនឌ័រតាមវេយ្យាករណ៍"</string>
<string name="grammatical_gender_dialog_title" msgid="8754048592099871587">"ជ្រើសរើសយេនឌ័រតាមវេយ្យាករណ៍"</string>
@@ -5400,5 +5416,6 @@
<string name="audio_streams_main_page_password_dialog_join_button" msgid="2967747276379153408">"ស្ដាប់ការចាក់"</string>
<string name="audio_streams_main_page_qr_code_scanner_summary" msgid="5312980105735143360">"ស្កេនកូដ QR ការចាក់សំឡេងលើអ៊ីនធឺណិត ដើម្បីស្ដាប់ជាមួយ <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
<string name="audio_streams_main_page_password_dialog_cannot_edit" msgid="9020898619297520153">"មិនអាចកែពាក្យសម្ងាត់ពេលកំពុងស្ដាប់រួមគ្នាបានទេ។ ដើម្បីផ្លាស់ប្ដូរពាក្យសម្ងាត់ សូមបិទការស្ដាប់សំឡេងរួមគ្នាជាមុនសិន។"</string>
+ <string name="audio_streams_qr_code_scanner_label" msgid="8799703301071378034">"កម្មវិធីស្កេនកូដ QR"</string>
<string name="homepage_search" msgid="6759334912284663559">"ស្វែងរកការកំណត់"</string>
</resources>
diff --git a/res/values-kn/strings.xml b/res/values-kn/strings.xml
index 0edac87..7afbfba 100644
--- a/res/values-kn/strings.xml
+++ b/res/values-kn/strings.xml
@@ -41,6 +41,8 @@
<string name="radioInfo_data_suspended" msgid="2001254415431299603">"ತಡೆಹಿಡಿಯಲಾಗಿದೆ"</string>
<string name="radioInfo_unknown" msgid="2892562356748600367">"ಅಪರಿಚಿತ"</string>
<string name="preview_pager_content_description" msgid="3762247188224576303">"ಪೂರ್ವವೀಕ್ಷಣೆ"</string>
+ <!-- no translation found for qr_code_content_description (1852208464419291347) -->
+ <skip />
<string name="font_size_make_smaller_desc" msgid="4978038055549590140">"ಚಿಕ್ಕದಾಗಿಸು"</string>
<string name="font_size_make_larger_desc" msgid="5583046033381722247">"ದೊಡ್ಡದಾಗಿಸು"</string>
<string name="stay_awake_on_fold_title" msgid="6590454679898134221">"ಯಾವಾಗಲೂ"</string>
@@ -283,7 +285,7 @@
<string name="location_settings_summary_location_off" msgid="4797932754681162262">"ಆಫ್"</string>
<string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{ಆನ್ ಆಗಿದೆ / # ಆ್ಯಪ್ ಸ್ಥಳಕ್ಕೆ ಆ್ಯಕ್ಸೆಸ್ ಅನ್ನು ಹೊಂದಿದೆ}one{ಆನ್ ಆಗಿದೆ / # ಆ್ಯಪ್ಗಳು ಸ್ಥಳಕ್ಕೆ ಆ್ಯಕ್ಸೆಸ್ ಅನ್ನು ಹೊಂದಿವೆ}other{ಆನ್ ಆಗಿದೆ / # ಆ್ಯಪ್ಗಳು ಸ್ಥಳಕ್ಕೆ ಆ್ಯಕ್ಸೆಸ್ ಅನ್ನು ಹೊಂದಿವೆ}}"</string>
<string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"ಲೋಡ್ ಆಗುತ್ತಿದೆ…"</string>
- <string name="location_settings_footer_general" msgid="1040507068701188821">"ಸಮೀಪದಲ್ಲಿರುವ ಸಾಧನಗಳ ಅನುಮತಿ ಹೊಂದಿರುವ ಆ್ಯಪ್ಗಳು ಕನೆಕ್ಟ್ ಮಾಡಿರುವ ಸಾಧನಗಳ ಸಂಬಂಧಿತ ಸ್ಥಾನವನ್ನು ನಿರ್ಧರಿಸಬಹುದು."</string>
+ <string name="location_settings_footer_general" msgid="3447585552176173502">"ಸಮೀಪದ ಸಾಧನಗಳ ಅನುಮತಿ ಹೊಂದಿರುವ ಆ್ಯಪ್ಗಳು ಕನೆಕ್ಟ್ ಮಾಡಿರುವ ಸಾಧನಗಳ ಸಂಬಂಧಿತ ಸ್ಥಾನವನ್ನು ನಿರ್ಧರಿಸಬಹುದು."</string>
<string name="location_settings_footer_location_off" msgid="8568995909147566720">"ಆ್ಯಪ್ಗಳು ಮತ್ತು ಸೇವೆಗಳಿಗೆ ಸ್ಥಳ ಪ್ರವೇಶಪಡೆಯುವಿಕೆ ಆಫ್ ಆಗಿದೆ. ನೀವು ತುರ್ತು ಸಂಖ್ಯೆಗೆ ಕರೆ ಮಾಡಿದಾಗ ಅಥವಾ ಪಠ್ಯ ಕಳುಹಿಸಿದಾಗ ನಿಮ್ಮ ಸಾಧನದ ಸ್ಥಳವನ್ನು ತುರ್ತಾಗಿ ಪ್ರತಿಕ್ರಿಯಿಸುವವರಿಗೆ ಕಳುಹಿಸಬಹುದು."</string>
<string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"ಸ್ಥಳ ಸೆಟ್ಟಿಂಗ್ಗಳ ಕುರಿತು ಇನ್ನಷ್ಟು ತಿಳಿಯಿರಿ"</string>
<string name="location_settings_tooltip_text_for_chrome" msgid="5781821709250544575">"ಬದಲಾಯಿಸಲು, ChromeOS ಸೆಟ್ಟಿಂಗ್ಗಳು > ಗೌಪ್ಯತೆ ಮತ್ತು ಭದ್ರತೆ > ಗೌಪ್ಯತೆ ನಿಯಂತ್ರಣಗಳು > ಸ್ಥಳ ಆ್ಯಕ್ಸೆಸ್ ಎಂಬಲ್ಲಿಗೆ ಹೋಗಿ"</string>
@@ -559,7 +561,7 @@
<string name="private_space_fingerprint_unlock_title" msgid="3614016453395789051">"ಪ್ರೈವೆಟ್ ಸ್ಪೇಸ್ನ ಫಿಂಗರ್ಪ್ರಿಂಟ್ ಅನ್ಲಾಕ್"</string>
<string name="private_space_face_unlock_title" msgid="462248384776453613">"ಪ್ರೈವೆಟ್ ಸ್ಪೇಸ್ನ ಫೇಸ್ ಅನ್ಲಾಕ್"</string>
<string name="private_space_biometric_unlock_title" msgid="1978145237698659673">"ಪ್ರೈವೆಟ್ ಸ್ಪೇಸ್ಗೆ ಫೇಸ್ ಮತ್ತು ಫಿಂಗರ್ಪ್ರಿಂಟ್ ಅನ್ಲಾಕ್"</string>
- <string name="private_space_fingerprint_enroll_introduction_title" msgid="5187730641333680942">"ಪ್ರೈವೆಟ್ ಸ್ಪೇಸ್ಗೆ ಫಿಂಗರ್ಪ್ರಿಂಟ್ ಅನ್ಲಾಕ್ ಅನ್ನು ಸೆಟಪ್ ಮಾಡಿ"</string>
+ <string name="private_space_fingerprint_enroll_introduction_title" msgid="5187730641333680942">"ಪ್ರೈವೆಟ್ ಸ್ಪೇಸ್ಗೆ ಫಿಂಗರ್ಪ್ರಿಂಟ್ ಅನ್ಲಾಕ್ ಸೆಟಪ್ ಮಾಡಿ"</string>
<string name="private_space_fingerprint_enroll_introduction_message" msgid="9092068873421435300">"ನೀವು ಆ್ಯಪ್ಗಳಿಗೆ ಸೈನ್ ಇನ್ ಮಾಡುವಂತೆ ಅಥವಾ ಖರೀದಿಯನ್ನು ಅನುಮೋದಿಸುವಂತೆಯೇ, ನಿಮ್ಮ ಪ್ರೈವೆಟ್ ಸ್ಪೇಸ್ ಅನ್ನು ಅನ್ಲಾಕ್ ಮಾಡಲು ಅಥವಾ ನಿಮ್ಮ ಗುರುತನ್ನು ದೃಢೀಕರಿಸಲು ನಿಮ್ಮ ಫಿಂಗರ್ ಪ್ರಿಂಟ್ ಅನ್ನು ಬಳಸಿ"</string>
<string name="private_space_fingerprint_enroll_introduction_footer_message" msgid="7125255484447984854">"ನಿಮ್ಮ ಪ್ರೈವೆಟ್ ಸ್ಪೇಸ್ ಅನ್ನು ನೀವು ಅನ್ಲಾಕ್ ಮಾಡಲು ಬಯಸದಿದ್ದರೂ ಸಹ, ನಿಮ್ಮ ಫೋನ್ ಅನ್ನು ನಿಮ್ಮ ಬೆರಳಿಗೆ ಟಚ್ ಮಾಡುವ ಮೂಲಕ ಯಾರಾದರೂ ಅದನ್ನು ಅನ್ಲಾಕ್ ಮಾಡಬಹುದು."</string>
<string name="private_space_fingerprint_enroll_finish_message" msgid="4754797926493316965">"ನಿಮ್ಮ ಪ್ರೈವೆಟ್ ಸ್ಪೇಸ್ ಅನ್ನು ಅನ್ಲಾಕ್ ಮಾಡಲು ಅಥವಾ ಖರೀದಿಗಳನ್ನು ಅನುಮೋದಿಸಲು ನಿಮ್ಮ ಫಿಂಗರ್ ಪ್ರಿಂಟ್ ಅನ್ನು ಬಳಸಿ"</string>
@@ -850,7 +852,6 @@
<string name="nfc_reboot_dialog_title" msgid="2033983438635768169">"ಸಾಧನವನ್ನು ಮರುಪ್ರಾರಂಭಿಸಬೇಕೆ?"</string>
<string name="nfc_reboot_dialog_message" msgid="4929353168157966992">"ವಿವರವಾದ NFC ಲಾಗಿಂಗ್ ಅನ್ನು ಅಭಿವೃದ್ಧಿ ಉದ್ದೇಶಗಳಿಗಾಗಿ ಮಾತ್ರ ಉದ್ದೇಶಿಸಲಾಗಿದೆ. ದೋಷ ವರದಿಗಳು ಹೆಚ್ಚುವರಿ NFC ಡೇಟಾವನ್ನು ಒಳಗೊಂಡಿರುತ್ತವೆ, ಅದು ಖಾಸಗಿ ಮಾಹಿತಿಯನ್ನು ಹೊಂದಿರಬಹುದು. ಈ ಸೆಟ್ಟಿಂಗ್ ಅನ್ನು ಬದಲಾಯಿಸಲು, ನಿಮ್ಮ ಸಾಧನವನ್ನು ಮರುಪ್ರಾರಂಭಿಸಿ."</string>
<string name="nfc_reboot_dialog_confirm" msgid="4769763632008584567">"ಮರುಪ್ರಾರಂಭಿಸಿ"</string>
- <string name="keywords_external_display" msgid="4181375057920134909">"ಪ್ರತಿಬಿಂಬಿಸುವಿಕೆ, ಬಾಹ್ಯ ಡಿಸ್ಪ್ಲೇ, ಕನೆಕ್ಟೆಡ್ ಡಿಸ್ಪ್ಲೇ, usb ಡಿಸ್ಪ್ಲೇ, ರೆಸಲ್ಯೂಶನ್, ತಿರುಗುವಿಕೆ"</string>
<string name="external_display_on" msgid="2560104443500154333">"ಆನ್ ಆಗಿದೆ"</string>
<string name="external_display_off" msgid="5634413756025351374">"ಆಫ್ ಆಗಿದೆ"</string>
<string name="external_display_settings_title" msgid="6256884595821605779">"ಬಾಹ್ಯ ಡಿಸ್ಪ್ಲೇ"</string>
@@ -1918,6 +1919,8 @@
<string name="slow_keys_summary" msgid="1784371292745423292">"<xliff:g id="SLOW_KEYS_THRESHOLD">%1$d</xliff:g> ಮಿ.ಸೆ. ಗೆ ಸಕ್ರಿಯಗೊಳಿಸಲು ಕೀ ಒತ್ತುವಿಕೆಗೆ ಇದು ತೆಗೆದುಕೊಳ್ಳುವ ಸಮಯವನ್ನು ಹೊಂದಿಸುತ್ತದೆ"</string>
<string name="sticky_keys" msgid="7317317044898161747">"ಸ್ಟಿಕಿ ಕೀಗಳು"</string>
<string name="sticky_keys_summary" msgid="1844953803625480623">"ಕೀಗಳನ್ನು ಜೊತೆಯಾಗಿ ಕೆಳಗೆ ಹಿಡಿದಿಟ್ಟುಕೊಳ್ಳುವ ಬದಲಾಗಿ ಶಾರ್ಟ್ಕಟ್ಗಳಿಗಾಗಿ ಒಂದು ಬಾರಿ ಒಂದು ಕೀ ಅನ್ನು ಒತ್ತಿ"</string>
+ <string name="mouse_keys" msgid="6237254627808525540">"ಮೌಸ್ ಕೀಗಳು"</string>
+ <string name="mouse_keys_summary" msgid="2396247040177734245">"ಮೌಸ್ ಅನ್ನು ನಿಯಂತ್ರಿಸಲು ಭೌತಿಕ ಕೀಬೋರ್ಡ್ ಬಳಸಿ."</string>
<string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"ಕೀಬೋರ್ಡ್ ಶಾರ್ಟ್ಕಟ್ಗಳು"</string>
<string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"ಶಾರ್ಟ್ಕಟ್ಗಳ ಪಟ್ಟಿಯನ್ನು ತೋರಿಸಿ"</string>
<string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"ಉದ್ಯೋಗ ಪ್ರೊಫೈಲ್ ಕೀಬೋರ್ಡ್ಗಳು ಮತ್ತು ಉಪಕರಣಗಳು"</string>
@@ -2175,8 +2178,6 @@
<string name="accessibility_shortcut_edit_dialog_summary_floating_button" msgid="6266489864614886247">"ಫ್ಲೋಟಿಂಗ್ ಬಟನ್ ಅನ್ನು ಟ್ಯಾಪ್ ಮಾಡಿ"</string>
<string name="accessibility_shortcut_edit_dialog_title_software_by_gesture" msgid="4775049370625630546">"ಆ್ಯಕ್ಸೆಸಿಬಿಲಿಟಿ ಗೆಸ್ಚರ್"</string>
<string name="accessibility_shortcut_edit_dialog_summary_software" msgid="8315934725362849788">"ನಿಮ್ಮ ಸ್ಕ್ರೀನ್ನ ಕೆಳಭಾಗದಲ್ಲಿರುವ <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g> ಆ್ಯಕ್ಸೆಸಿಬಿಲಿಟಿ ಬಟನ್ ಅನ್ನು ಟ್ಯಾಪ್ ಮಾಡಿ. ಫೀಚರ್ಗಳ ನಡುವೆ ಬದಲಿಸಲು, ಆ್ಯಕ್ಸೆಸಿಬಿಲಿಟಿ ಬಟನ್ ಅನ್ನು ಸ್ಪರ್ಶಿಸಿ ಮತ್ತು ಹೋಲ್ಡ್ ಮಾಡಿ."</string>
- <string name="accessibility_shortcut_edit_dialog_summary_software_gesture" msgid="8292555254353761635">"2 ಬೆರಳುಗಳನ್ನು ಬಳಸಿ ಸ್ಕ್ರೀನ್ನ ಕೆಳಭಾಗದಿಂದ ಮೇಲಕ್ಕೆ ಸ್ವೈಪ್ ಮಾಡಿ.\n\nಒಂದು ಫೀಚರ್ನಿಂದ ಇನ್ನೊಂದಕ್ಕೆ ಹೋಗಲು, 2 ಬೆರಳುಗಳನ್ನು ಬಳಸಿ ಮೇಲಕ್ಕೆ ಸ್ವೈಪ್ ಮಾಡಿ ಮತ್ತು ಹೋಲ್ಡ್ ಮಾಡಿ."</string>
- <string name="accessibility_shortcut_edit_dialog_summary_software_gesture_talkback" msgid="84483464524360845">"3 ಬೆರಳುಗಳನ್ನು ಬಳಸಿ ಸ್ಕ್ರೀನ್ ಕೆಳಭಾಗದಿಂದ ಮೇಲಕ್ಕೆ ಸ್ವೈಪ್ ಮಾಡಿ.\n\nವೈಶಿಷ್ಟ್ಯಗಳ ನಡುವೆ ಬದಲಿಸಲು, 3 ಬೆರಳುಗಳನ್ನು ಬಳಸಿ ಮೇಲಕ್ಕೆ ಸ್ವೈಪ್ ಮಾಡಿ ಮತ್ತು ಹೋಲ್ಡ್ ಮಾಡಿ."</string>
<string name="accessibility_shortcut_edit_dialog_summary_gesture" msgid="2081123009255579884">"{count,plural, =1{ನಿಮ್ಮ ಸ್ಕ್ರೀನ್ನ ಕೆಳಗಿನಿಂದ ಮೇಲಕ್ಕೆ ಸ್ವೈಪ್ ಮಾಡಿ. ಫೀಚರ್ಗಳ ನಡುವೆ ಬದಲಿಸಲು, ಮೇಲಕ್ಕೆ ಸ್ವೈಪ್ ಮಾಡಿ ಮತ್ತು ಹೋಲ್ಡ್ ಮಾಡಿ.}one{ನಿಮ್ಮ ಸ್ಕ್ರೀನ್ನ ಕೆಳಗಿನಿಂದ # ಬೆರಳುಗಳಿಂದ ಮೇಲಕ್ಕೆ ಸ್ವೈಪ್ ಮಾಡಿ. ಫೀಚರ್ಗಳ ನಡುವೆ ಬದಲಿಸಲು, # ಬೆರಳುಗಳನ್ನು ಬಳಸಿ ಮೇಲಕ್ಕೆ ಸ್ವೈಪ್ ಮಾಡಿ ಮತ್ತು ಹೋಲ್ಡ್ ಮಾಡಿ.}other{ನಿಮ್ಮ ಸ್ಕ್ರೀನ್ನ ಕೆಳಗಿನಿಂದ # ಬೆರಳುಗಳಿಂದ ಮೇಲಕ್ಕೆ ಸ್ವೈಪ್ ಮಾಡಿ. ಫೀಚರ್ಗಳ ನಡುವೆ ಬದಲಿಸಲು, # ಬೆರಳುಗಳನ್ನು ಬಳಸಿ ಮೇಲಕ್ಕೆ ಸ್ವೈಪ್ ಮಾಡಿ ಮತ್ತು ಹೋಲ್ಡ್ ಮಾಡಿ.}}"</string>
<string name="accessibility_shortcut_edit_dialog_summary_software_floating" msgid="4459254227203203324"><annotation id="link">"ಇನ್ನಷ್ಟು ಆಯ್ಕೆಗಳು"</annotation></string>
<string name="footer_learn_more_content_description" msgid="8843798273152131341">"<xliff:g id="SERVICE">%1$s</xliff:g> ಕುರಿತು ಇನ್ನಷ್ಟು ತಿಳಿಯಿರಿ"</string>
@@ -2187,16 +2188,12 @@
<string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="844089763968552142">"ವಾಲ್ಯೂಮ್ ಕೀಗಳು"</string>
<string name="accessibility_shortcut_hardware_keyword" msgid="2483152542320987022">"ವಾಲ್ಯೂಮ್ ಕೀಗಳು"</string>
<string name="accessibility_shortcut_edit_dialog_summary_hardware" msgid="2503134386397991634">"ಎರಡೂ ವಾಲ್ಯೂಮ್ ಕೀಗಳನ್ನು ಒತ್ತಿ ಹಿಡಿದುಕೊಳ್ಳಿ"</string>
- <string name="accessibility_shortcut_edit_dialog_title_two_finger_double_tap" msgid="2271778556854020996">"ಎರಡು ಬೆರಳಿನ ಡಬಲ್-ಟ್ಯಾಪ್ ಸ್ಕ್ರೀನ್"</string>
<string name="accessibility_shortcut_edit_screen_title_two_finger_double_tap" msgid="8952595692906527694">"%1$d-ಬೆರಳಿನ ಡಬಲ್ ಟ್ಯಾಪ್"</string>
<string name="accessibility_shortcut_edit_screen_summary_two_finger_double_tap" msgid="385404127425496362">"%1$d ಬೆರಳುಗಳಿಂದ ಪರದೆಯನ್ನು ಎರಡು ಬಾರಿ ತ್ವರಿತವಾಗಿ ಟ್ಯಾಪ್ ಮಾಡಿ"</string>
<string name="accessibility_shortcut_edit_screen_title_triple_tap" msgid="3314488747597058942">"ಟ್ರಿಪಲ್ ಟ್ಯಾಪ್ ಮಾಡಿ"</string>
<string name="accessibility_shortcut_edit_screen_summary_triple_tap" msgid="4839204951599629871">"ಪರದೆಯನ್ನು %1$d ಬಾರಿ ತ್ವರಿತವಾಗಿ ಟ್ಯಾಪ್ ಮಾಡಿ. ಇದು ನಿಮ್ಮ ಸಾಧನವನ್ನು ನಿಧಾನಗೊಳಿಸಬಹುದು."</string>
<string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="6271718715836961167">"%1$d-ಬೆರಳಿನ ಡಬಲ್ ಟ್ಯಾಪ್"</string>
- <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"ಎರಡು ಬೆರಳುಗಳಿಂದ ಸ್ಕ್ರೀನ್ ಅನ್ನು {0,number,integer} ಬಾರಿ ತ್ವರಿತವಾಗಿ ಟ್ಯಾಪ್ ಮಾಡಿ"</string>
- <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"ಸ್ಕ್ರೀನ್ ಮೇಲೆ ಮೂರು ಬಾರಿ ಟ್ಯಾಪ್ ಮಾಡಿ"</string>
<string name="accessibility_shortcut_triple_tap_keyword" msgid="5359347130888464334">"ಟ್ರಿಪಲ್ ಟ್ಯಾಪ್ ಮಾಡಿ"</string>
- <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"ಸ್ಕ್ರೀನ್ನ ಮೇಲೆ {0,number,integer} ಸಲ ತ್ವರಿತವಾಗಿ ಟ್ಯಾಪ್ ಮಾಡಿ. ಈ ಶಾರ್ಟ್ಕಟ್, ನಿಮ್ಮ ಸಾಧನವನ್ನು ನಿಧಾನಗೊಳಿಸಬಹುದು"</string>
<string name="accessibility_shortcut_edit_dialog_title_advance" msgid="4567868630655591506">"ಸುಧಾರಿತ"</string>
<string name="accessibility_screen_magnification_navbar_configuration_warning" msgid="266736851606791552">"ಆ್ಯಕ್ಸೆಸಿಬಿಲಿಟಿ ಬಟನ್ ಅನ್ನು <xliff:g id="SERVICE">%1$s</xliff:g> ಗೆ ಹೊಂದಿಸಲಾಗಿದೆ. ಹಿಗ್ಗಿಸುವಿಕೆ ವೈಶಿಷ್ಟ್ಯವನ್ನು ಬಳಸಲು, ಆ್ಯಕ್ಸೆಸಿಬಿಲಿಟಿ ಬಟನ್ ಅನ್ನು ಸ್ಪರ್ಶಿಸಿ, ಒತ್ತಿಹಿಡಿಯಿರಿ; ನಂತರ, ಹಿಗ್ಗಿಸುವಿಕೆಯನ್ನು ಆಯ್ಕೆ ಮಾಡಿ."</string>
<string name="accessibility_screen_magnification_gesture_navigation_warning" msgid="991017769735632046">"ಆ್ಯಕ್ಸೆಸಿಬಿಲಿಟಿ ಗೆಸ್ಚರ್ ಅನ್ನು <xliff:g id="SERVICE">%1$s</xliff:g> ಗೆ ಹೊಂದಿಸಲಾಗಿದೆ. ವರ್ಧನೆಯನ್ನು ಬಳಸಲು, ಪರದೆಯ ಕೆಳಗಿನಿಂದ ಎರಡು ಬೆರಳುಗಳಲ್ಲಿ ಸ್ವೈಪ್ ಮಾಡಿ ಮತ್ತು ಹಿಡಿದುಕೊಳ್ಳಿ. ನಂತರ ವರ್ಧನೆಯನ್ನು ಆಯ್ಕೆಮಾಡಿ."</string>
@@ -2365,6 +2362,7 @@
<string name="daltonizer_mode_tritanomaly_title" msgid="2278786218762602022">"ನೀಲಿ-ಹಳದಿ"</string>
<string name="daltonizer_mode_grayscale_title" msgid="152005391387952588">"ಗ್ರೇಸ್ಕೇಲ್"</string>
<string name="daltonizer_saturation_title" msgid="2999486412114963068">"ತೀವ್ರತೆ"</string>
+ <string name="daltonizer_saturation_unavailable_summary" msgid="8319753055567798775">"ಗ್ರೇಸ್ಕೇಲ್ ಮೋಡ್ಗೆ ಅಥವಾ ಬಣ್ಣದ ತಿದ್ದುಪಡಿಯನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಿರುವಾಗ ಲಭ್ಯವಿರುವುದಿಲ್ಲ"</string>
<string name="daltonizer_mode_deuteranomaly_summary" msgid="2117727423019598455">"ಹಸಿರು ಬಣ್ಣದ ದೃಷ್ಟಿಹೀನತೆ, ಡ್ಯುಟೆರೊನೊಮಲಿ"</string>
<string name="daltonizer_mode_protanomaly_summary" msgid="4617032854982040748">"ಕೆಂಪು ಬಣ್ಣದ ದೃಷ್ಟಿಹೀನತೆ, ಪ್ರೊಟಾನಾಮಲಿ"</string>
<string name="daltonizer_mode_tritanomaly_summary" msgid="2428218320118180070">"ಟ್ರೈಟನೊಮಾಲಿ"</string>
@@ -2414,15 +2412,8 @@
<string name="color_cyan" msgid="4341758639597035927">"ಹಸಿರುನೀಲಿ"</string>
<string name="color_yellow" msgid="5957551912912679058">"ಹಳದಿ"</string>
<string name="color_magenta" msgid="8943538189219528423">"ಕೆನ್ನೇರಿಳೆ"</string>
- <string name="enable_service_title" msgid="7231533866953706788">"ನಿಮ್ಮ ಸಾಧನದ ಸಂಪೂರ್ಣ ನಿಯಂತ್ರಣವನ್ನು ಹೊಂದಲು <xliff:g id="SERVICE">%1$s</xliff:g> ಗೆ ಅನುಮತಿಸಬೇಕೇ?"</string>
<string name="capabilities_list_title" msgid="1225853611983394386">"<xliff:g id="SERVICE">%1$s</xliff:g> ಈ ಕೆಳಗಿನವುಗಳನ್ನು ಮಾಡುತ್ತದೆ:"</string>
<string name="touch_filtered_warning" msgid="4225815157460318241">"ಅನುಮತಿ ವಿನಂತಿಯನ್ನು ಅಪ್ಲಿಕೇಶನ್ ಮರೆಮಾಚುತ್ತಿರುವ ಕಾರಣ, ಸೆಟ್ಟಿಂಗ್ಗಳಿಗೆ ನಿಮ್ಮ ಪ್ರತಿಕ್ರಿಯೆಯನ್ನು ಪರಿಶೀಲಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ."</string>
- <string name="accessibility_service_warning" msgid="6779187188736432618">"ಈ ಸಾಧನದ ಪೂರ್ಣ ನಿಯಂತ್ರಣವನ್ನು <xliff:g id="SERVICE">%1$s</xliff:g>ವಿನಂತಿಸುತ್ತಿದೆ. ಸೇವೆಯು ಸ್ಕ್ರೀನ್ ಅನ್ನು ಓದಬಹುದು ಮತ್ತು ಪ್ರವೇಶ ಅಗತ್ಯಗಳೊಂದಿಗೆ ಬಳಕೆದಾರರ ಪರವಾಗಿ ಕಾರ್ಯನಿರವಹಿಸುತ್ತದೆ. ಹೆಚ್ಚಿನ ಆ್ಯಪ್ಗಳಿಗೆ ಈ ಮಟ್ಟದ ನಿಯಂತ್ರಣ ಸೂಕ್ತವಲ್ಲ."</string>
- <string name="accessibility_service_warning_description" msgid="6573203795976134751">"ಆ್ಯಕ್ಸೆಸಿಬಿಲಿಟಿ ಅವಶ್ಯಕತೆಗಳ ಕುರಿತು ನಿಮಗೆ ಸಹಾಯ ಮಾಡುವ ಆ್ಯಪ್ಗಳಿಗೆ ಸಂಪೂರ್ಣ ನಿಯಂತ್ರಣ ನೀಡುವುದು ಸೂಕ್ತವಾಗಿರುತ್ತದೆ, ಆದರೆ ಬಹುತೇಕ ಆ್ಯಪ್ಗಳಿಗೆ ಇದು ಸೂಕ್ತವಲ್ಲ."</string>
- <string name="accessibility_service_screen_control_title" msgid="324795030658109870">"ಸ್ಕ್ರೀನ್ ವೀಕ್ಷಿಸಿ ಮತ್ತು ನಿಯಂತ್ರಿಸಿ"</string>
- <string name="accessibility_service_screen_control_description" msgid="8431940515157990426">"ಇದು ಪರದೆಯ ಮೇಲಿನ ಎಲ್ಲಾ ಕಂಟೆಂಟ್ ಅನ್ನು ಓದಬಹುದು ಮತ್ತು ಇತರ ಆ್ಯಪ್ಗಳ ಮೇಲೆ ಕಂಟೆಂಟ್ ಅನ್ನು ಪ್ರದರ್ಶಿಸಬಹುದು."</string>
- <string name="accessibility_service_action_perform_title" msgid="1449360056585337833">"ಕ್ರಿಯೆಗಳನ್ನು ವೀಕ್ಷಿಸಿ ಮತ್ತು ನಿರ್ವಹಿಸಿ"</string>
- <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"ಇದು ಆ್ಯಪ್ ಅಥವಾ ಹಾರ್ಡ್ವೇರ್ ಸೆನ್ಸರ್ನ ಜೊತೆಗಿನ ನಿಮ್ಮ ಸಂವಹನಗಳನ್ನು ಟ್ರ್ಯಾಕ್ ಮಾಡಬಹುದು, ಮತ್ತು ನಿಮ್ಮ ಪರವಾಗಿ ಆ್ಯಪ್ಗಳ ಜೊತೆ ಸಂವಹನ ನಡೆಸಬಹುದು."</string>
<string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"ಅನುಮತಿಸಿ"</string>
<string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"ನಿರಾಕರಿಸಿ"</string>
<string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"ಆಫ್ ಮಾಡಿ"</string>
@@ -3652,9 +3643,9 @@
<string name="notif_listener_not_migrated" msgid="6265206376374278226">"ವರ್ಧಿತ ಸೆಟ್ಟಿಂಗ್ಗಳಿಗೆ ಈ ಆ್ಯಪ್ ಬೆಂಬಲಿಸುವುದಿಲ್ಲ"</string>
<string name="notif_listener_more_settings" msgid="1348409392307208921">"ಇನ್ನಷ್ಟು ಸೆಟ್ಟಿಂಗ್ಗಳು"</string>
<string name="notif_listener_more_settings_desc" msgid="7995492074281663658">"ಇನ್ನಷ್ಟು ಸೆಟ್ಟಿಂಗ್ಗಳು ಈ ಆ್ಯಪ್ನ ಒಳಗೆ ಲಭ್ಯವಿವೆ"</string>
- <string name="notification_polite_title" msgid="4737150709382859870">"ಅಡಾಪ್ಟಿವ್ ನೋಟಿಫಿಕೇಶನ್ಗಳು"</string>
- <string name="notification_polite_main_control_title" msgid="7267191551379543859">"ಅಡಾಪ್ಟಿವ್ ನೋಟಿಫಿಕೇಶನ್ಗಳನ್ನು ಬಳಸಿ"</string>
- <string name="notification_polite_description" msgid="7749280535620291610">"ನೀವು ಕಡಿಮೆ ಸಮಯದಲ್ಲಿ ಹೆಚ್ಚಿನ ನೋಟಿಫಿಕೇಶನ್ಗಳನ್ನು ಸ್ವೀಕರಿಸಿದಾಗ, ನಿಮ್ಮ ಫೋನ್ ವಾಲ್ಯೂಮ್ ಅನ್ನು ಕಡಿಮೆ ಮಾಡುತ್ತದೆ ಮತ್ತು ಎರಡು ನಿಮಿಷಗಳವರೆಗೆ ಸ್ಕ್ರೀನ್ ಮೇಲಿನ ಪಾಪ್-ಅಪ್ಗಳನ್ನು ಕಡಿಮೆ ಮಾಡುತ್ತದೆ. ಕರೆಗಳು, ಅಲಾರಂಗಳು ಮತ್ತು ಆದ್ಯತೆಯ ಸಂಭಾಷಣೆಗಳು ಇನ್ನೂ ವೈಬ್ರೇಟ್ ಆಗುತ್ತವೆ, ಶಬ್ದ ಮಾಡುತ್ತವೆ ಅಥವಾ ಸ್ಕ್ರೀನ್ ಮೇಲೆ ಕಾಣಿಸುತ್ತವೆ ಮತ್ತು ನೀವು ಸ್ಕ್ರೀನ್ ಅನ್ನು ಮೇಲಿನಿಂದ ಕೆಳಕ್ಕೆ ಎಳೆದಾಗ ಎಲ್ಲಾ ನೋಟಿಫಿಕೇಶನ್ಗಳನ್ನು ಹುಡುಕುವುದು ಸುಲಭ."</string>
+ <string name="notification_polite_title" msgid="6121016426991791557">"ನೋಟಿಫಿಕೇಶನ್ ಕೂಲ್ಡೌನ್"</string>
+ <string name="notification_polite_main_control_title" msgid="5812529809151927149">"ನೋಟಿಫಿಕೇಶನ್ ಕೂಲ್ಡೌನ್ ಅನ್ನು ಬಳಸಿ"</string>
+ <string name="notification_polite_description" msgid="5497748284893832854">"ನೀವು ಕಡಿಮೆ ಸಮಯದಲ್ಲಿ ಹೆಚ್ಚು ನೋಟಿಫಿಕೇಶನ್ಗಳನ್ನು ಸ್ವೀಕರಿಸಿದಾಗ, ನಿಮ್ಮ ಸಾಧನವು 2 ನಿಮಿಷಗಳವರೆಗೆ ತನ್ನ ವಾಲ್ಯೂಮ್ ಅನ್ನು ತಗ್ಗಿಸುತ್ತದೆ ಮತ್ತು ಅಲರ್ಟ್ಗಳನ್ನು ಕಡಿಮೆ ಮಾಡುತ್ತದೆ. ಕರೆಗಳು, ಅಲಾರಂಗಳು ಮತ್ತು ಆದ್ಯತೆಯ ಸಂಭಾಷಣೆಗಳು ಪ್ರಭಾವಿತವಾಗುವುದಿಲ್ಲ. \n\nಕೂಲ್ಡೌನ್ ಸಮಯದಲ್ಲಿ ಸ್ವೀಕರಿಸಿದ ನೋಟಿಫಿಕೇಶನ್ಗಳನ್ನು ಸ್ಕ್ರೀನ್ನ ಮೇಲಿನಿಂದ ಕೆಳಕ್ಕೆ ಎಳೆಯುವ ಮೂಲಕ ಕಾಣಬಹುದಾಗಿದೆ."</string>
<string name="notification_polite_work" msgid="8823596456640216391">"ಉದ್ಯೋಗದ ಪ್ರೊಫೈಲ್ಗಳಿಗೆ ಅನ್ವಯಿಸಿ"</string>
<string name="notification_polite_work_summary" msgid="5014189280132951378">"ಉದ್ಯೋಗ ಪ್ರೊಫೈಲ್ ಆ್ಯಪ್ಗಳಿಗೆ ಅನ್ವಯಿಸಿ"</string>
<string name="vr_listeners_title" msgid="4960357292472540964">"VR ಸಹಾಯ ಸೇವೆಗಳು"</string>
@@ -3811,7 +3802,9 @@
<string name="zen_mode_apps_priority_apps" msgid="7386196048313716076">"ಆಯ್ಕೆ ಮಾಡಿದ ಆ್ಯಪ್ಗಳು"</string>
<string name="zen_mode_apps_none_apps" msgid="2493642312793604327">"ಯಾವುದೂ ಅಲ್ಲ"</string>
<string name="zen_mode_apps_subtext" msgid="1764211974662012877">"{count,plural,offset:2 =0{ಯಾವುದೇ ಆ್ಯಪ್ಗಳು ಅಡಚಣೆ ಮಾಡಲು ಸಾಧ್ಯವಿಲ್ಲ}=1{{app_1} ಅಡಚಣೆ ಮಾಡಬಹುದು}=2{{app_1} ಮತ್ತು {app_2} ಅಡಚಣೆ ಮಾಡಬಹುದು}=3{{app_1}, {app_2} ಮತ್ತು {app_3} ಅಡಚಣೆ ಮಾಡಬಹುದು}one{{app_1}, {app_2} ಮತ್ತು # ಇನ್ನಷ್ಟು ಅಡಚಣೆ ಮಾಡಬಹುದು}other{{app_1}, {app_2} ಮತ್ತು # ಇನ್ನಷ್ಟು ಅಡಚಣೆ ಮಾಡಬಹುದು}}"</string>
+ <string name="zen_mode_apps_work_app" msgid="8528767938316361588">"<xliff:g id="APP_LABEL">%s</xliff:g> (ಕೆಲಸ)"</string>
<string name="zen_mode_apps_calculating" msgid="5420121396943539286">"ಲೆಕ್ಕ ಮಾಡಲಾಗುತ್ತಿದೆ…"</string>
+ <string name="zen_mode_plus_n_items" msgid="6136713354369243421">"+<xliff:g id="NUMBER">%d</xliff:g>"</string>
<string name="zen_mode_bypassing_apps" msgid="625309443389126481">"ಅತಿಕ್ರಮಿಸಲು ಆ್ಯಪ್ಗಳಿಗೆ ಅನುಮತಿಸಿ"</string>
<string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"ಅಡಚಣೆ ಉಂಟುಮಾಡಬಹುದಾದ ಆ್ಯಪ್ಗಳು"</string>
<string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"ಇನ್ನಷ್ಟು ಆ್ಯಪ್ಗಳನ್ನು ಆಯ್ಕೆಮಾಡಿ"</string>
@@ -3829,6 +3822,7 @@
<string name="zen_mode_sounds_none" msgid="6557474361948269420">"ಯಾವುದೂ ಅಡಚಣೆ ಮಾಡಲು ಸಾಧ್ಯವಿಲ್ಲ"</string>
<string name="zen_mode_people_none" msgid="4613147461974255046">"ಯಾರೂ ಅಡಚಣೆ ಮಾಡಲು ಸಾಧ್ಯವಿಲ್ಲ"</string>
<string name="zen_mode_people_some" msgid="9101872681298810281">"ಕೆಲವು ಜನರು ಅಡಚಣೆ ಮಾಡಬಹುದು"</string>
+ <string name="zen_mode_people_repeat_callers" msgid="4499084111069828761">"ಪುನರಾವರ್ತಿತ ಕರೆ ಮಾಡುವವರು ಅಡಚಣೆ ಮಾಡಬಹುದು"</string>
<string name="zen_mode_people_all" msgid="311036110283015205">"ಎಲ್ಲಾ ಜನರು ಅಡಚಣೆ ಮಾಡಬಹುದು"</string>
<string name="zen_mode_repeat_callers" msgid="2270356100287792138">"ಪುನರಾವರ್ತಿತ ಕರೆದಾರರು"</string>
<string name="zen_mode_repeat_callers_title" msgid="8016699240338264781">"ಪುನರಾವರ್ತಿತ ಕರೆದಾರರಿಗೆ ಅನುಮತಿಸಿ"</string>
@@ -3852,6 +3846,34 @@
<string name="zen_mode_new_custom_title" msgid="321750898430776191">"ಮೋಡ್ ಅನ್ನು ಸೇರಿಸಿ"</string>
<string name="zen_mode_new_custom_default_name" msgid="2778307946775085105">"ಕಸ್ಟಮ್ ಮೋಡ್"</string>
<string name="zen_mode_edit_name_hint" msgid="4584652062167540536">"ಮೋಡ್ ಹೆಸರು"</string>
+ <string name="zen_mode_trigger_title_schedule_calendar" msgid="9206609438617550331">"ಕ್ಯಾಲೆಂಡರ್ ಈವೆಂಟ್ಗಳು"</string>
+ <string name="zen_mode_trigger_title_bedtime" msgid="5086070900588489978">"ಮಲಗುವ ವೇಳಾಪಟ್ಟಿ"</string>
+ <string name="zen_mode_trigger_title_driving" msgid="7890990983453164403">"ಡ್ರೈವಿಂಗ್ ಮಾಡುವಾಗ"</string>
+ <string name="zen_mode_trigger_title_generic" msgid="601273385119550420">"ಆ್ಯಪ್ಗೆ ಲಿಂಕ್ ಮಾಡಲಾಗಿದೆ"</string>
+ <string name="zen_mode_trigger_summary_settings_in_app" msgid="4860667191183702601">"<xliff:g id="APP_NAME">%1$s</xliff:g> ನಲ್ಲಿನ ಮಾಹಿತಿ ಮತ್ತು ಸೆಟ್ಟಿಂಗ್ಗಳು"</string>
+ <string name="zen_mode_trigger_summary_managed_by_app" msgid="8631011868193102098">"<xliff:g id="APP_NAME">%1$s</xliff:g> ಮೂಲಕ ನಿರ್ವಹಿಸಲಾಗಿದೆ"</string>
+ <string name="zen_mode_confirm_disable_title" msgid="1232297660775719796">"ಮೋಡ್ ಅನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಿ"</string>
+ <string name="zen_mode_confirm_disable_message" msgid="7315541221665718491">"ನೀವು ಈ ಫೀಚರ್ ಅನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಿದರೆ, ಈ ಮೋಡ್ ಇನ್ನು ಮುಂದೆ ಉದ್ದೇಶಿಸಿದಂತೆ ಕೆಲಸ ಮಾಡುವುದಿಲ್ಲ ಮತ್ತು ಇದರ ಸೆಟ್ಟಿಂಗ್ಗಳನ್ನು ಮರೆಮಾಡಲಾಗುತ್ತದೆ."</string>
+ <string name="zen_mode_action_disable" msgid="3552921561331044881">"ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಿ"</string>
+ <string name="zen_mode_confirm_enable_title" msgid="5683371335847448595">"ಮೋಡ್ ಅನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಿ"</string>
+ <string name="zen_mode_confirm_enable_message" msgid="7017879133260011419">"ನೀವು ಈ ಫೀಚರ್ ಅನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಿದರೆ, ಈ ಮೋಡ್ ತನ್ನ ವೇಳಾಪಟ್ಟಿಗೆ ಅನುಗುಣವಾಗಿ ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಸಕ್ರಿಯಗೊಳ್ಳುತ್ತದೆ."</string>
+ <string name="zen_mode_action_enable" msgid="1161480633223176531">"ಸಕ್ರಿಯಗೊಳಿಸಿ"</string>
+ <!-- no translation found for zen_mode_blurb_schedule_time (8223898702097484009) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_schedule_calendar (382177907856065945) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_bedtime (6155075956151013457) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_driving (1316054379000667305) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_immersive (5884004861848687869) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_theater (2999237960059524225) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_managed (5473921634985032149) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_generic (3041601339807075625) -->
+ <skip />
<string name="warning_button_text" msgid="1274234338874005639">"ಎಚ್ಚರಿಕೆ"</string>
<string name="suggestion_button_close" msgid="6865170855573283759">"ಮುಚ್ಚಿರಿ"</string>
<string name="device_feedback" msgid="5351614458411688608">"ಈ ಸಾಧನದ ಕುರಿತು ಪ್ರತಿಕ್ರಿಯೆಯನ್ನು ಕಳುಹಿಸಿ"</string>
@@ -4838,9 +4860,8 @@
<string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"ಬ್ಯಾಟರಿ"</string>
<string name="settings_panel_title" msgid="346363079938069215">"ಸೆಟ್ಟಿಂಗ್ಗಳ ಪ್ಯಾನಲ್"</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>
+ <!-- no translation found for enable_desktop_mode_on_secondary_display (2609567824593768780) -->
+ <skip />
<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>
@@ -5015,7 +5036,6 @@
<string name="default_active_sim_mobile_data" msgid="6798083892814045301">"ಮೊಬೈಲ್ ಡೇಟಾ"</string>
<string name="wifi_scan_notify_message" msgid="1331238142061476869">"ವೈ-ಫೈ ಆಫ್ ಇದ್ದಾಗಲೂ ಸಹ, ಸಾಧನದ ಅನುಭವವನ್ನು ಸುಧಾರಿಸಲು, ಆ್ಯಪ್ಗಳು ಮತ್ತು ಸೇವೆಗಳು ಯಾವಾಗ ಬೇಕಾದರೂ ಸಹ ವೈ-ಫೈ ನೆಟ್ವರ್ಕ್ಗಳಿಗಾಗಿ ಸ್ಕ್ಯಾನ್ ಮಾಡಬಹುದು. ಉದಾಹರಣೆಗೆ, ಸ್ಥಳ ಆಧಾರಿತ ವೈಶಿಷ್ಟ್ಯಗಳು ಮತ್ತು ಸೇವೆಗಳನ್ನು ಸುಧಾರಿಸಲು ಇದನ್ನು ಬಳಸಬಹುದು. ನೀವು ಇದನ್ನು ವೈ-ಫೈ ಸ್ಕ್ಯಾನಿಂಗ್ ಸೆಟ್ಟಿಂಗ್ಗಳಲ್ಲಿ ಬದಲಾಯಿಸಬಹುದು."</string>
<string name="wifi_scan_change" msgid="8438320311511852918">"ಬದಲಿಸಿ"</string>
- <string name="preference_summary_default_combination" msgid="4643585915107796253">"<xliff:g id="STATE">%1$s</xliff:g> / <xliff:g id="NETWORKMODE">%2$s</xliff:g>"</string>
<string name="mobile_data_connection_active" msgid="2422223108911581552">"ಕನೆಕ್ಟ್ ಆಗಿದೆ"</string>
<string name="mobile_data_temp_connection_active" msgid="3430470299756236413">"ತಾತ್ಕಾಲಿಕವಾಗಿ ಕನೆಕ್ಟ್ ಮಾಡಲಾಗಿದೆ"</string>
<string name="mobile_data_temp_using" msgid="5211002380149434155">"<xliff:g id="SUBNAME">%1$s</xliff:g> ಅನ್ನು ತಾತ್ಕಾಲಿಕವಾಗಿ ಬಳಸಲಾಗುತ್ತಿದೆ"</string>
@@ -5047,7 +5067,7 @@
<string name="app_pinning_main_switch_title" msgid="5465506660064032876">"ಆ್ಯಪ್ ಪಿನ್ನಿಂಗ್ ಬಳಸಿ"</string>
<string name="developer_options_main_switch_title" msgid="1720074589554152501">"ಡೆವಲಪರ್ ಆಯ್ಕೆಗಳನ್ನು ಬಳಸಿ"</string>
<string name="default_print_service_main_switch_title" msgid="4697133737128324036">"ಪ್ರಿಂಟ್ ಸೇವೆಯನ್ನು ಬಳಸಿ"</string>
- <string name="multiple_users_main_switch_title" msgid="9158796544835843201">"ಬಳಕೆದಾರರ ಸ್ವಿಚ್ ಅನುಮತಿಸಿ"</string>
+ <string name="multiple_users_main_switch_title" msgid="9158796544835843201">"ಬಳಕೆದಾರರ ಬದಲಾಯಿಸುವಿಕೆಯನ್ನು ಅನುಮತಿಸಿ"</string>
<string name="multiple_users_main_switch_keywords" msgid="4845954458094134356">"ಅನುಮತಿಸಿ, ಬಹು, ಬಳಕೆದಾರರು, ಪರವಾನಗಿ, ಹಲವು"</string>
<string name="multiple_users_title_keywords" msgid="2395593167746225172">"ಅನೇಕ, ಬಳಕೆದಾರರು, ಪ್ರೊಫೈಲ್ಗಳು, ಜನರು, ಖಾತೆಗಳು, ಸ್ವಿಚ್, ಹಲವು"</string>
<string name="wireless_debugging_main_switch_title" msgid="8463499572781441719">"ವೈರ್ಲೆಸ್ ಡೀಬಗಿಂಗ್ ಅನ್ನು ಬಳಸಿ"</string>
@@ -5161,9 +5181,11 @@
<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="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_enable_freeform_support" msgid="3697462756493543645">"ಫ್ರೀಫಾರ್ಮ್ ವಿಂಡೋ ಬೆಂಬಲವನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಲು ರೀಬೂಟ್ ಮಾಡುವ ಅಗತ್ಯವಿದೆ."</string>
+ <!-- no translation found for reboot_dialog_override_desktop_mode (7480950772574354130) -->
+ <skip />
+ <!-- no translation found for reboot_dialog_enable_desktop_mode_on_secondary_display (1153621881052401924) -->
+ <skip />
<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>
@@ -5394,5 +5416,6 @@
<string name="audio_streams_main_page_password_dialog_join_button" msgid="2967747276379153408">"ಸ್ಟ್ರೀಮ್ ಅನ್ನು ಆಲಿಸಿ"</string>
<string name="audio_streams_main_page_qr_code_scanner_summary" msgid="5312980105735143360">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> ಜೊತೆ ಕೇಳಲು ಆಡಿಯೋ ಸ್ಟ್ರೀಮ್ QR ಕೋಡ್ ಅನ್ನು ಸ್ಕ್ಯಾನ್ ಮಾಡಿ"</string>
<string name="audio_streams_main_page_password_dialog_cannot_edit" msgid="9020898619297520153">"ಹಂಚಿಕೊಳ್ಳುವಾಗ ಪಾಸ್ವರ್ಡ್ ಅನ್ನು ಎಡಿಟ್ ಮಾಡಲು ಸಾಧ್ಯವಿಲ್ಲ. ಪಾಸ್ವರ್ಡ್ ಬದಲಾಯಿಸಲು, ಮೊದಲು ಆಡಿಯೋ ಹಂಚಿಕೊಳ್ಳುವಿಕೆಯನ್ನು ಆಫ್ ಮಾಡಿ."</string>
+ <string name="audio_streams_qr_code_scanner_label" msgid="8799703301071378034">"QR ಕೋಡ್ ಸ್ಕ್ಯಾನರ್"</string>
<string name="homepage_search" msgid="6759334912284663559">"ಹುಡುಕಾಟ ಸೆಟ್ಟಿಂಗ್ಗಳು"</string>
</resources>
diff --git a/res/values-ko/strings.xml b/res/values-ko/strings.xml
index b370af1..66756d0 100644
--- a/res/values-ko/strings.xml
+++ b/res/values-ko/strings.xml
@@ -41,6 +41,8 @@
<string name="radioInfo_data_suspended" msgid="2001254415431299603">"일시 정지됨"</string>
<string name="radioInfo_unknown" msgid="2892562356748600367">"알 수 없음"</string>
<string name="preview_pager_content_description" msgid="3762247188224576303">"미리보기"</string>
+ <!-- no translation found for qr_code_content_description (1852208464419291347) -->
+ <skip />
<string name="font_size_make_smaller_desc" msgid="4978038055549590140">"축소"</string>
<string name="font_size_make_larger_desc" msgid="5583046033381722247">"확대"</string>
<string name="stay_awake_on_fold_title" msgid="6590454679898134221">"항상"</string>
@@ -283,7 +285,7 @@
<string name="location_settings_summary_location_off" msgid="4797932754681162262">"사용 안함"</string>
<string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{사용 - 앱 #개가 위치 정보에 액세스할 수 있음}other{사용 - 앱 #개가 위치 정보에 액세스할 수 있음}}"</string>
<string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"로드 중…"</string>
- <string name="location_settings_footer_general" msgid="1040507068701188821">"근처 기기 액세스 권한이 있는 앱은 연결된 기기 간의 상대적인 위치를 파악할 수 있습니다."</string>
+ <string name="location_settings_footer_general" msgid="3447585552176173502">"근처 기기 권한이 있는 앱이 연결된 기기의 상대적인 위치를 파악할 수 있습니다."</string>
<string name="location_settings_footer_location_off" msgid="8568995909147566720">"앱 및 서비스에 대한 위치 정보 액세스가 사용 중지되어 있습니다. 그래도 긴급 전화번호로 전화를 걸거나 문자 메시지를 보내면 기기의 위치 정보가 긴급 구조원에게 전달될 수 있습니다."</string>
<string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"위치 설정에 대해 자세히 알아보기"</string>
<string name="location_settings_tooltip_text_for_chrome" msgid="5781821709250544575">"변경하려면 ChromeOS 설정 > 개인 정보 보호 및 보안 > 개인 정보 보호 설정 > 위치 액세스로 이동하세요."</string>
@@ -850,7 +852,6 @@
<string name="nfc_reboot_dialog_title" msgid="2033983438635768169">"기기를 다시 시작하시겠습니까?"</string>
<string name="nfc_reboot_dialog_message" msgid="4929353168157966992">"세부 NFC 로깅은 개발용으로만 사용됩니다. 추가 NFC 데이터는 버그 신고에 포함되며, 여기에는 개인 정보가 포함될 수 있습니다. 이 설정을 변경하려면 기기를 다시 시작하세요."</string>
<string name="nfc_reboot_dialog_confirm" msgid="4769763632008584567">"다시 시작"</string>
- <string name="keywords_external_display" msgid="4181375057920134909">"미러링, 외부 디스플레이, 연결된 디스플레이, USB 디스플레이, 해상도, 회전"</string>
<string name="external_display_on" msgid="2560104443500154333">"사용"</string>
<string name="external_display_off" msgid="5634413756025351374">"사용 안함"</string>
<string name="external_display_settings_title" msgid="6256884595821605779">"외부 디스플레이"</string>
@@ -1918,6 +1919,8 @@
<string name="slow_keys_summary" msgid="1784371292745423292">"키를 누를 때 활성화하기까지 걸리는 시간을 <xliff:g id="SLOW_KEYS_THRESHOLD">%1$d</xliff:g>밀리초로 조정합니다."</string>
<string name="sticky_keys" msgid="7317317044898161747">"고정키"</string>
<string name="sticky_keys_summary" msgid="1844953803625480623">"단축키를 사용할 때 키를 함께 누르지 않고 한 번에 하나씩 누릅니다"</string>
+ <string name="mouse_keys" msgid="6237254627808525540">"마우스 키"</string>
+ <string name="mouse_keys_summary" msgid="2396247040177734245">"실제 키보드를 사용해서 마우스를 제어합니다."</string>
<string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"단축키"</string>
<string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"단축키 목록 표시"</string>
<string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"직장 프로필 키보드 및 도구"</string>
@@ -1942,14 +1945,10 @@
<string name="pointer_fill_style_yellow_button" msgid="5025969961559379024">"포인터 채움 스타일을 노란색으로 변경"</string>
<string name="pointer_fill_style_pink_button" msgid="4106218142489635673">"포인터 채움 스타일을 분홍색으로 변경"</string>
<string name="pointer_fill_style_blue_button" msgid="5594958078854032785">"포인터 채움 스타일을 파란색으로 변경"</string>
- <!-- no translation found for pointer_stroke_style (1886986630216050665) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_white (673686194443825383) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_black (4655806167067437330) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_none (8953927511729800247) -->
- <skip />
+ <string name="pointer_stroke_style" msgid="1886986630216050665">"포인터 획 스타일"</string>
+ <string name="pointer_stroke_style_name_white" msgid="673686194443825383">"흰색"</string>
+ <string name="pointer_stroke_style_name_black" msgid="4655806167067437330">"검은색"</string>
+ <string name="pointer_stroke_style_name_none" msgid="8953927511729800247">"없음"</string>
<string name="trackpad_touch_gesture" msgid="8641725062131922497">"터치패드 동작 알아보기"</string>
<string name="keywords_touchpad" msgid="8159846254066666032">"트랙패드, 트랙 패드, 마우스, 커서, 스크롤, 스와이프, 마우스 오른쪽 버튼으로 클릭, 클릭, 포인터"</string>
<string name="keywords_trackpad_bottom_right_tap" msgid="1285062446073929305">"마우스 오른쪽 버튼으로 클릭, 탭"</string>
@@ -2179,8 +2178,6 @@
<string name="accessibility_shortcut_edit_dialog_summary_floating_button" msgid="6266489864614886247">"플로팅 버튼을 탭합니다."</string>
<string name="accessibility_shortcut_edit_dialog_title_software_by_gesture" msgid="4775049370625630546">"접근성 동작"</string>
<string name="accessibility_shortcut_edit_dialog_summary_software" msgid="8315934725362849788">"화면 하단의 접근성 버튼 <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g>을 탭합니다. 기능 간에 전환하려면 접근성 버튼을 길게 터치합니다."</string>
- <string name="accessibility_shortcut_edit_dialog_summary_software_gesture" msgid="8292555254353761635">"두 손가락을 사용하여 화면 하단에서 위로 스와이프하세요.\n\n기능 간에 전환하려면 두 손가락을 사용하여 위로 스와이프한 후 잠시 기다립니다."</string>
- <string name="accessibility_shortcut_edit_dialog_summary_software_gesture_talkback" msgid="84483464524360845">"세 손가락을 사용하여 화면 하단에서 위로 스와이프하세요.\n\n기능 간에 전환하려면 세 손가락을 사용하여 위로 스와이프한 후 잠시 기다립니다."</string>
<string name="accessibility_shortcut_edit_dialog_summary_gesture" msgid="2081123009255579884">"{count,plural, =1{화면 하단에서 위로 스와이프합니다. 기능 간에 전환하려면 위로 스와이프한 후 잠시 기다립니다.}other{화면 하단에서 손가락 #개를 사용하여 위로 스와이프합니다. 기능 간에 전환하려면 손가락 #개를 사용하여 위로 스와이프한 다음 잠시 기다립니다.}}"</string>
<string name="accessibility_shortcut_edit_dialog_summary_software_floating" msgid="4459254227203203324"><annotation id="link">"옵션 더보기"</annotation></string>
<string name="footer_learn_more_content_description" msgid="8843798273152131341">"<xliff:g id="SERVICE">%1$s</xliff:g> 자세히 알아보기"</string>
@@ -2191,16 +2188,12 @@
<string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="844089763968552142">"볼륨 키"</string>
<string name="accessibility_shortcut_hardware_keyword" msgid="2483152542320987022">"볼륨 키"</string>
<string name="accessibility_shortcut_edit_dialog_summary_hardware" msgid="2503134386397991634">"볼륨 키 2개를 길게 누릅니다."</string>
- <string name="accessibility_shortcut_edit_dialog_title_two_finger_double_tap" msgid="2271778556854020996">"두 손가락으로 화면을 두 번 탭하기"</string>
<string name="accessibility_shortcut_edit_screen_title_two_finger_double_tap" msgid="8952595692906527694">"손가락 %1$d개를 사용하여 두 번 탭"</string>
<string name="accessibility_shortcut_edit_screen_summary_two_finger_double_tap" msgid="385404127425496362">"손가락 %1$d개를 사용하여 화면을 빠르게 두 번 탭합니다."</string>
<string name="accessibility_shortcut_edit_screen_title_triple_tap" msgid="3314488747597058942">"세 번 탭"</string>
<string name="accessibility_shortcut_edit_screen_summary_triple_tap" msgid="4839204951599629871">"화면을 빠르게 %1$d번 탭합니다. 이렇게 하면 기기가 느려질 수 있습니다."</string>
<string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="6271718715836961167">"손가락 %1$d개를 사용하여 두 번 탭"</string>
- <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"두 손가락으로 화면을 {0, 숫자, 정수}번 빠르게 탭하세요."</string>
- <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"세 번 탭하기"</string>
<string name="accessibility_shortcut_triple_tap_keyword" msgid="5359347130888464334">"세 번 탭"</string>
- <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"화면을 {0,number,integer}번 빠르게 탭합니다. 이 바로가기를 사용하면 기기가 느려질 수 있습니다."</string>
<string name="accessibility_shortcut_edit_dialog_title_advance" msgid="4567868630655591506">"고급"</string>
<string name="accessibility_screen_magnification_navbar_configuration_warning" msgid="266736851606791552">"접근성 버튼이 <xliff:g id="SERVICE">%1$s</xliff:g>(으)로 설정되어 있습니다. 확대를 사용하려면 접근성 버튼을 길게 터치한 다음 확대를 선택하세요."</string>
<string name="accessibility_screen_magnification_gesture_navigation_warning" msgid="991017769735632046">"접근성 동작이 <xliff:g id="SERVICE">%1$s</xliff:g>(으)로 설정되어 있습니다. 확대 기능을 사용하려면 두 손가락을 사용하여 화면 하단에서 위로 스와이프한 다음 잠시 기다리세요. 그런 다음 확대를 선택합니다."</string>
@@ -2369,6 +2362,7 @@
<string name="daltonizer_mode_tritanomaly_title" msgid="2278786218762602022">"파란색과 노란색"</string>
<string name="daltonizer_mode_grayscale_title" msgid="152005391387952588">"그레이 스케일"</string>
<string name="daltonizer_saturation_title" msgid="2999486412114963068">"강도"</string>
+ <string name="daltonizer_saturation_unavailable_summary" msgid="8319753055567798775">"그레이 스케일 모드에서나 색상 보정이 사용 중지된 경우 사용할 수 없습니다"</string>
<string name="daltonizer_mode_deuteranomaly_summary" msgid="2117727423019598455">"녹색약"</string>
<string name="daltonizer_mode_protanomaly_summary" msgid="4617032854982040748">"적색약"</string>
<string name="daltonizer_mode_tritanomaly_summary" msgid="2428218320118180070">"청색약"</string>
@@ -2418,15 +2412,8 @@
<string name="color_cyan" msgid="4341758639597035927">"청록색"</string>
<string name="color_yellow" msgid="5957551912912679058">"노란색"</string>
<string name="color_magenta" msgid="8943538189219528423">"자홍색"</string>
- <string name="enable_service_title" msgid="7231533866953706788">"<xliff:g id="SERVICE">%1$s</xliff:g>에서 기기를 완전히 제어하도록 허용하시겠습니까?"</string>
<string name="capabilities_list_title" msgid="1225853611983394386">"<xliff:g id="SERVICE">%1$s</xliff:g>에 필요한 기능:"</string>
<string name="touch_filtered_warning" msgid="4225815157460318241">"권한 요청을 보이지 않게 하는 앱이 있어서 설정에서 내 응답을 확인할 수 없습니다."</string>
- <string name="accessibility_service_warning" msgid="6779187188736432618">"<xliff:g id="SERVICE">%1$s</xliff:g>이(가) 기기의 전체 제어 권한을 요청합니다. 서비스가 화면을 읽고 거동이 불편한 사용자를 대신하여 작업을 실행할 수 있습니다. 대부분의 앱에는 이러한 제어 수준이 적절하지 않습니다."</string>
- <string name="accessibility_service_warning_description" msgid="6573203795976134751">"접근성 관련 지원을 제공하는 앱에는 완벽한 제어권을 부여하는 것이 좋으나, 대부분의 앱에는 적합하지 않습니다."</string>
- <string name="accessibility_service_screen_control_title" msgid="324795030658109870">"화면 확인 및 제어"</string>
- <string name="accessibility_service_screen_control_description" msgid="8431940515157990426">"화면에 표시된 모든 콘텐츠를 읽고 다른 앱 위에 콘텐츠를 표시할 수 있습니다."</string>
- <string name="accessibility_service_action_perform_title" msgid="1449360056585337833">"작업 확인 및 실행"</string>
- <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"앱 또는 하드웨어 센서와의 상호작용을 추적할 수 있으며 나를 대신해 앱과 상호작용할 수 있습니다."</string>
<string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"허용"</string>
<string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"거부"</string>
<string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"사용 중지"</string>
@@ -3038,7 +3025,7 @@
<string name="user_category_title" msgid="4368580529662699083">"사용자"</string>
<string name="other_user_category_title" msgid="7089976887307643217">"다른 사용자"</string>
<string name="remove_guest_on_exit" msgid="8202972371459611066">"게스트 활동 삭제"</string>
- <string name="remove_guest_on_exit_summary" msgid="3969962695703280353">"게스트 모드 종료 시 모든 게스트 앱 및 데이터 삭제"</string>
+ <string name="remove_guest_on_exit_summary" msgid="3969962695703280353">"게스트 모드 종료 시 모든 게스트 앱 및 데이터를 삭제합니다."</string>
<string name="remove_guest_on_exit_dialog_title" msgid="2310442892536079416">"게스트 활동을 삭제하시겠습니까?"</string>
<string name="remove_guest_on_exit_dialog_message" msgid="8112409834021851883">"현재 게스트 세션의 앱과 데이터가 지금 삭제되고 이후 모든 게스트 활동은 게스트 모드를 종료할 때마다 삭제됩니다."</string>
<string name="remove_guest_on_exit_keywords" msgid="4961310523576166193">"삭제, 게스트, 활동, 제거, 데이터, 방문자, 지우기"</string>
@@ -3368,10 +3355,8 @@
<string name="zen_mode_automation_settings_title" msgid="3709324184191870926">"예약"</string>
<string name="zen_mode_delete_automatic_rules" msgid="5020468289267191765">"예약 삭제"</string>
<string name="zen_mode_schedule_delete" msgid="5383420576833765114">"삭제"</string>
- <!-- no translation found for zen_mode_menu_rename_mode (4681802125016390837) -->
- <skip />
- <!-- no translation found for zen_mode_menu_delete_mode (5380084696402157428) -->
- <skip />
+ <string name="zen_mode_menu_rename_mode" msgid="4681802125016390837">"이름 변경"</string>
+ <string name="zen_mode_menu_delete_mode" msgid="5380084696402157428">"삭제"</string>
<string name="zen_mode_delete_mode_confirmation" msgid="7594340592051947392">"\'<xliff:g id="MODE">%1$s</xliff:g>\' 모드를 삭제하시겠습니까?"</string>
<string name="zen_mode_rule_name_edit" msgid="1053237022416700481">"수정"</string>
<string name="zen_mode_automation_settings_page_title" msgid="6217433860514433311">"예약"</string>
@@ -3395,8 +3380,7 @@
<string name="zen_mode_visual_signals_settings_subtitle" msgid="7433077540895876672">"시각적 신호 허용"</string>
<string name="mode_interruption_filter_title" msgid="3343846700214702347">"집중"</string>
<string name="mode_device_effects_title" msgid="5857008332618433744">"추가 작업"</string>
- <!-- no translation found for modes_sound_summary_off (6972648204528227879) -->
- <skip />
+ <string name="modes_sound_summary_off" msgid="6972648204528227879">"{count,plural, =0{꺼짐}=1{꺼짐/모드 1개가 자동으로 사용 설정될 수 있음}other{꺼짐/모드 #개가 자동으로 사용 설정될 수 있음}}"</string>
<string name="mode_display_settings_title" msgid="8132825978346535472">"디스플레이 설정"</string>
<string name="mode_display_options_section" msgid="5151597748243866532">"디스플레이 옵션"</string>
<string name="mode_grayscale_title" msgid="6027553257331235461">"그레이 스케일"</string>
@@ -3619,7 +3603,7 @@
<string name="notification_channel_summary_high" msgid="3411637309360617621">"기기가 잠금 해제되어 있을 때 화면 상단에 알림 배너 표시"</string>
<string name="notification_switch_label" msgid="8029371325967501557">"모든 ‘<xliff:g id="APP_NAME">%1$s</xliff:g>’ 알림"</string>
<string name="notification_app_switch_label" msgid="4422902423925084193">"모든 <xliff:g id="APP_NAME">%1$s</xliff:g> 알림"</string>
- <string name="notifications_sent_daily" msgid="10274479224185437">"{count,plural, =1{매일 알림 약 #개}other{매일 알림 약 #개}}"</string>
+ <string name="notifications_sent_daily" msgid="10274479224185437">"{count,plural, =1{하루에 약 #개의 알림 수신}other{하루에 약 #개의 알림 수신}}"</string>
<string name="notifications_sent_weekly" msgid="7895656213187555346">"{count,plural, =1{매주 알림 약 #개}other{매주 알림 약 #개}}"</string>
<string name="notifications_sent_never" msgid="9081278709126812062">"전송하지 않음"</string>
<string name="manage_notification_access_title" msgid="4154723216570646451">"알림 읽기, 답장하기, 관리하기"</string>
@@ -3659,9 +3643,9 @@
<string name="notif_listener_not_migrated" msgid="6265206376374278226">"이 앱은 향상된 설정을 지원하지 않습니다."</string>
<string name="notif_listener_more_settings" msgid="1348409392307208921">"기타 설정"</string>
<string name="notif_listener_more_settings_desc" msgid="7995492074281663658">"앱 안에서 추가 설정을 볼 수 있음"</string>
- <string name="notification_polite_title" msgid="4737150709382859870">"적응형 알림"</string>
- <string name="notification_polite_main_control_title" msgid="7267191551379543859">"적응형 알림 사용"</string>
- <string name="notification_polite_description" msgid="7749280535620291610">"짧은 시간 내에 많은 알림을 받으면 휴대전화에서 볼륨을 낮추고 최대 2분간 화면에 표시되는 팝업을 최소화합니다. 통화, 알람, 우선순위 대화의 경우 여전히 진동 또는 소리가 울리거나 화면에 표시되며 화면 상단을 아래로 당기면 모든 알림을 간편하게 확인할 수 있습니다."</string>
+ <string name="notification_polite_title" msgid="6121016426991791557">"알림 쿨다운"</string>
+ <string name="notification_polite_main_control_title" msgid="5812529809151927149">"알림 쿨다운 사용하기"</string>
+ <string name="notification_polite_description" msgid="5497748284893832854">"짧은 시간 내에 많은 알림을 받으면 최대 2분간 기기에서 볼륨을 낮추고 알림을 최소화합니다. 통화, 알람, 우선순위 대화는 영향을 받지 않습니다. \n\n쿨다운 중에 받은 알림은 화면 상단에서 아래로 당겨서 확인할 수 있습니다."</string>
<string name="notification_polite_work" msgid="8823596456640216391">"직장 프로필에 적용"</string>
<string name="notification_polite_work_summary" msgid="5014189280132951378">"직장 프로필 앱에 적용"</string>
<string name="vr_listeners_title" msgid="4960357292472540964">"VR 도우미 서비스"</string>
@@ -3818,7 +3802,9 @@
<string name="zen_mode_apps_priority_apps" msgid="7386196048313716076">"선택한 앱"</string>
<string name="zen_mode_apps_none_apps" msgid="2493642312793604327">"없음"</string>
<string name="zen_mode_apps_subtext" msgid="1764211974662012877">"{count,plural,offset:2 =0{예외 앱 없음}=1{{app_1} 예외}=2{{app_1} 및 {app_2} 예외}=3{{app_1}, {app_2}, {app_3} 예외}other{{app_1}, {app_2} 외 #가지 예외}}"</string>
+ <string name="zen_mode_apps_work_app" msgid="8528767938316361588">"<xliff:g id="APP_LABEL">%s</xliff:g>(직장용)"</string>
<string name="zen_mode_apps_calculating" msgid="5420121396943539286">"계산 중…"</string>
+ <string name="zen_mode_plus_n_items" msgid="6136713354369243421">"+<xliff:g id="NUMBER">%d</xliff:g>"</string>
<string name="zen_mode_bypassing_apps" msgid="625309443389126481">"앱에서 무시하도록 허용"</string>
<string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"예외 앱"</string>
<string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"앱 추가 선택"</string>
@@ -3836,6 +3822,7 @@
<string name="zen_mode_sounds_none" msgid="6557474361948269420">"예외 소리 없음"</string>
<string name="zen_mode_people_none" msgid="4613147461974255046">"예외 사용자 없음"</string>
<string name="zen_mode_people_some" msgid="9101872681298810281">"일부 사람만 예외"</string>
+ <string name="zen_mode_people_repeat_callers" msgid="4499084111069828761">"반복 발신자의 방해 허용"</string>
<string name="zen_mode_people_all" msgid="311036110283015205">"모든 사람 예외"</string>
<string name="zen_mode_repeat_callers" msgid="2270356100287792138">"반복 발신자"</string>
<string name="zen_mode_repeat_callers_title" msgid="8016699240338264781">"반복 발신자 허용"</string>
@@ -3855,13 +3842,37 @@
<string name="zen_mode_summary_alarms_only_by_hour" msgid="7400910210950788163">"{count,plural, =1{{time}까지 1시간 동안 알람만 허용으로 변경}other{{time}까지 #시간 동안 알람만 허용으로 변경}}"</string>
<string name="zen_mode_summary_alarms_only_by_time" msgid="8140619669703968810">"<xliff:g id="FORMATTEDTIME">%1$s</xliff:g>까지 알람만 수신 모드로 변경"</string>
<string name="zen_mode_summary_always" msgid="722093064250082317">"항상 알림 모드로 변경"</string>
- <!-- no translation found for zen_mode_rename_title (8146882272966214558) -->
+ <string name="zen_mode_rename_title" msgid="8146882272966214558">"수정 모드"</string>
+ <string name="zen_mode_new_custom_title" msgid="321750898430776191">"추가 모드"</string>
+ <string name="zen_mode_new_custom_default_name" msgid="2778307946775085105">"커스텀 모드"</string>
+ <string name="zen_mode_edit_name_hint" msgid="4584652062167540536">"모드 이름"</string>
+ <string name="zen_mode_trigger_title_schedule_calendar" msgid="9206609438617550331">"캘린더 일정"</string>
+ <string name="zen_mode_trigger_title_bedtime" msgid="5086070900588489978">"수면 일정"</string>
+ <string name="zen_mode_trigger_title_driving" msgid="7890990983453164403">"운전 중"</string>
+ <string name="zen_mode_trigger_title_generic" msgid="601273385119550420">"앱에 연결됨"</string>
+ <string name="zen_mode_trigger_summary_settings_in_app" msgid="4860667191183702601">"<xliff:g id="APP_NAME">%1$s</xliff:g>의 정보 및 설정"</string>
+ <string name="zen_mode_trigger_summary_managed_by_app" msgid="8631011868193102098">"관리자: <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+ <string name="zen_mode_confirm_disable_title" msgid="1232297660775719796">"모드 사용 중지"</string>
+ <string name="zen_mode_confirm_disable_message" msgid="7315541221665718491">"이 기능을 사용 중지하면 모드가 더 이상 의도한 대로 작동하지 않으며 해당 설정이 숨겨집니다."</string>
+ <string name="zen_mode_action_disable" msgid="3552921561331044881">"사용 중지"</string>
+ <string name="zen_mode_confirm_enable_title" msgid="5683371335847448595">"모드 사용"</string>
+ <string name="zen_mode_confirm_enable_message" msgid="7017879133260011419">"이 기능을 사용 설정하면 해당 모드가 일정에 따라 자동으로 활성화됩니다."</string>
+ <string name="zen_mode_action_enable" msgid="1161480633223176531">"사용"</string>
+ <!-- no translation found for zen_mode_blurb_schedule_time (8223898702097484009) -->
<skip />
- <!-- no translation found for zen_mode_new_custom_title (321750898430776191) -->
+ <!-- no translation found for zen_mode_blurb_schedule_calendar (382177907856065945) -->
<skip />
- <!-- no translation found for zen_mode_new_custom_default_name (2778307946775085105) -->
+ <!-- no translation found for zen_mode_blurb_bedtime (6155075956151013457) -->
<skip />
- <!-- no translation found for zen_mode_edit_name_hint (4584652062167540536) -->
+ <!-- no translation found for zen_mode_blurb_driving (1316054379000667305) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_immersive (5884004861848687869) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_theater (2999237960059524225) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_managed (5473921634985032149) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_generic (3041601339807075625) -->
<skip />
<string name="warning_button_text" msgid="1274234338874005639">"주의"</string>
<string name="suggestion_button_close" msgid="6865170855573283759">"닫기"</string>
@@ -4849,9 +4860,8 @@
<string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"배터리"</string>
<string name="settings_panel_title" msgid="346363079938069215">"설정 패널"</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>
+ <!-- no translation found for enable_desktop_mode_on_secondary_display (2609567824593768780) -->
+ <skip />
<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>
@@ -5026,7 +5036,6 @@
<string name="default_active_sim_mobile_data" msgid="6798083892814045301">"모바일 데이터"</string>
<string name="wifi_scan_notify_message" msgid="1331238142061476869">"기기 환경을 개선하기 위해 Wi‑Fi가 꺼져 있을 때도 앱과 서비스에서 Wi‑Fi 네트워크를 검색할 수 있습니다. 예를 들면 위치 기반 기능 및 서비스를 개선하는 데 이 기능이 사용되기도 합니다. 이 설정은 Wi‑Fi 검색 설정에서 변경할 수 있습니다."</string>
<string name="wifi_scan_change" msgid="8438320311511852918">"변경"</string>
- <string name="preference_summary_default_combination" msgid="4643585915107796253">"<xliff:g id="STATE">%1$s</xliff:g>/<xliff:g id="NETWORKMODE">%2$s</xliff:g>"</string>
<string name="mobile_data_connection_active" msgid="2422223108911581552">"연결됨"</string>
<string name="mobile_data_temp_connection_active" msgid="3430470299756236413">"일시적으로 연결됨"</string>
<string name="mobile_data_temp_using" msgid="5211002380149434155">"일시적으로 <xliff:g id="SUBNAME">%1$s</xliff:g> 사용"</string>
@@ -5172,9 +5181,11 @@
<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="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_enable_freeform_support" msgid="3697462756493543645">"자유 형식 창 지원을 사용 설정하려면 재부팅해야 합니다."</string>
+ <!-- no translation found for reboot_dialog_override_desktop_mode (7480950772574354130) -->
+ <skip />
+ <!-- no translation found for reboot_dialog_enable_desktop_mode_on_secondary_display (1153621881052401924) -->
+ <skip />
<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>
@@ -5292,10 +5303,8 @@
<string name="show_captions_enabled" msgid="7089043007924626">"사용"</string>
<string name="live_caption_disabled" msgid="3562035026547887366">"사용 안함"</string>
<string name="live_caption_enabled" msgid="5269360946200718949">"사용"</string>
- <!-- no translation found for audio_seek_bar_state_left_first (8814986910920838972) -->
- <skip />
- <!-- no translation found for audio_seek_bar_state_right_first (1999368979633398876) -->
- <skip />
+ <string name="audio_seek_bar_state_left_first" msgid="8814986910920838972">"오디오 %1$d%% 왼쪽, %2$d%% 오른쪽"</string>
+ <string name="audio_seek_bar_state_right_first" msgid="1999368979633398876">"오디오 %1$d%% 오른쪽, %2$d%% 왼쪽"</string>
<string name="about_phone_device_name_warning" msgid="3243226572404472381">"기기 이름이 설치한 앱에 표시됩니다. 블루투스 기기 및 Wi-Fi 네트워크에 연결하거나 Wi-Fi 핫스팟을 설정할 때도 기기 이름이 다른 사용자에게 표시될 수 있습니다."</string>
<string name="grammatical_gender_title" msgid="8584242850477270828">"문법적 성별"</string>
<string name="grammatical_gender_dialog_title" msgid="8754048592099871587">"문법적 성별 선택"</string>
@@ -5407,5 +5416,6 @@
<string name="audio_streams_main_page_password_dialog_join_button" msgid="2967747276379153408">"스트림 듣기"</string>
<string name="audio_streams_main_page_qr_code_scanner_summary" msgid="5312980105735143360">"오디오 스트림 QR 코드를 스캔하여 <xliff:g id="DEVICE_NAME">%1$s</xliff:g> 기기로 들으세요."</string>
<string name="audio_streams_main_page_password_dialog_cannot_edit" msgid="9020898619297520153">"공유 중에는 비밀번호를 수정할 수 없습니다. 비밀번호를 변경하려면 먼저 오디오 공유를 사용 중지하세요."</string>
+ <string name="audio_streams_qr_code_scanner_label" msgid="8799703301071378034">"QR 코드 스캐너"</string>
<string name="homepage_search" msgid="6759334912284663559">"검색 설정"</string>
</resources>
diff --git a/res/values-ky/strings.xml b/res/values-ky/strings.xml
index dbce581..bbe2a33 100644
--- a/res/values-ky/strings.xml
+++ b/res/values-ky/strings.xml
@@ -41,6 +41,8 @@
<string name="radioInfo_data_suspended" msgid="2001254415431299603">"Убактылуу токтотулду"</string>
<string name="radioInfo_unknown" msgid="2892562356748600367">"Белгисиз"</string>
<string name="preview_pager_content_description" msgid="3762247188224576303">"Алдын ала көрүү"</string>
+ <!-- no translation found for qr_code_content_description (1852208464419291347) -->
+ <skip />
<string name="font_size_make_smaller_desc" msgid="4978038055549590140">"Кичирээк кылуу"</string>
<string name="font_size_make_larger_desc" msgid="5583046033381722247">"Чоңураак кылуу"</string>
<string name="stay_awake_on_fold_title" msgid="6590454679898134221">"Ар дайым"</string>
@@ -283,7 +285,7 @@
<string name="location_settings_summary_location_off" msgid="4797932754681162262">"Өчүк"</string>
<string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{Күйүк / # колдонмо жайгашкан жерди көрө алат}other{Күйүк / # колдонмо жайгашкан жерди көрө алат}}"</string>
<string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"Жүктөлүүдө…"</string>
- <string name="location_settings_footer_general" msgid="1040507068701188821">"Жакын жердеги түзмөктөрдү көрө алган колдонмолор туташкан түзмөктөрдүн абалын аныкташы мүмкүн."</string>
+ <string name="location_settings_footer_general" msgid="3447585552176173502">"Жакын жердеги түзмөктөрдү көрүүгө уруксаты бар колдонмолор туташкан түзмөктөрдүн абалын көрө алышат."</string>
<string name="location_settings_footer_location_off" msgid="8568995909147566720">"Колдонмолор менен кызматтар түзмөктүн жайгашкан жерин көрө алышпайт. Кырсыктаганда жардамга келчү кызматка чалып же билдирүү жөнөтүп жатканыңызда, ага түзмөгүңүздүн жайгашкан жери көрүнөт."</string>
<string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Жайгашкан жерди аныктоо параметрлери жөнүндө кеңири маалымат"</string>
<string name="location_settings_tooltip_text_for_chrome" msgid="5781821709250544575">"Өзгөртүү үчүн ChromeOS параметрлери > Купуялык жана коопсуздук > Купуялыкты көзөмөлдөө параметрлери > Жайгашкан жерди аныктоо бөлүмүнө өтүңүз"</string>
@@ -850,7 +852,6 @@
<string name="nfc_reboot_dialog_title" msgid="2033983438635768169">"Түзмөк өчүп күйсүнбү?"</string>
<string name="nfc_reboot_dialog_message" msgid="4929353168157966992">"NFC\'нин толук таржымалы иштеп чыгуу максатында гана колдонулат. NFC тууралуу кошумча маалыматта мүчүлүштүктөр тууралуу кабарлар жана купуя маалымат камтылышы мүмкүн. Бул параметрди өзгөртүү үчүн түзмөгүңүздү өчүрүп күйгүзүңүз."</string>
<string name="nfc_reboot_dialog_confirm" msgid="4769763632008584567">"Өчүрүп күйгүзүү"</string>
- <string name="keywords_external_display" msgid="4181375057920134909">"башка экранга чыгаруу, тышкы экран, туташкан экран, usb экраны, дааналык, буруу"</string>
<string name="external_display_on" msgid="2560104443500154333">"Күйүк"</string>
<string name="external_display_off" msgid="5634413756025351374">"Өчүк"</string>
<string name="external_display_settings_title" msgid="6256884595821605779">"Тышкы экран"</string>
@@ -1918,6 +1919,8 @@
<string name="slow_keys_summary" msgid="1784371292745423292">"<xliff:g id="SLOW_KEYS_THRESHOLD">%1$d</xliff:g> мсек. өткөндөн кийин басылган баскыч эске алынат"</string>
<string name="sticky_keys" msgid="7317317044898161747">"Жабышма баскычтар"</string>
<string name="sticky_keys_summary" msgid="1844953803625480623">"Ыкчам баскычтарды чогуу басып туруунун ордуна бирден басасыз"</string>
+ <string name="mouse_keys" msgid="6237254627808525540">"Чычкандын баскычтары"</string>
+ <string name="mouse_keys_summary" msgid="2396247040177734245">"Чычканды аппараттык баскычтоп аркылуу көзөмөлдөңүз."</string>
<string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"Ыкчам баскычтар"</string>
<string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"Ыкчам баскычтардын тизмеси көрүнөт"</string>
<string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"Жумуш профилинин баскычтоптору жана куралдары"</string>
@@ -1942,14 +1945,10 @@
<string name="pointer_fill_style_yellow_button" msgid="5025969961559379024">"Толтуруу стилин сарыга өзгөртүү"</string>
<string name="pointer_fill_style_pink_button" msgid="4106218142489635673">"Толтуруу стилин күлгүнгө өзгөртүү"</string>
<string name="pointer_fill_style_blue_button" msgid="5594958078854032785">"Толтуруу стилин көккө өзгөртүү"</string>
- <!-- no translation found for pointer_stroke_style (1886986630216050665) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_white (673686194443825383) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_black (4655806167067437330) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_none (8953927511729800247) -->
- <skip />
+ <string name="pointer_stroke_style" msgid="1886986630216050665">"Көрсөткүчтүн стили"</string>
+ <string name="pointer_stroke_style_name_white" msgid="673686194443825383">"Ак"</string>
+ <string name="pointer_stroke_style_name_black" msgid="4655806167067437330">"Кара"</string>
+ <string name="pointer_stroke_style_name_none" msgid="8953927511729800247">"Жок"</string>
<string name="trackpad_touch_gesture" msgid="8641725062131922497">"Сенсордук тактанын жаңсоолорун үйрөнүү"</string>
<string name="keywords_touchpad" msgid="8159846254066666032">"трекпад, трекпад, чычкан, курсор, сыдыруу, сүрүү, оң баскычын чыкылдатуу, чыкылдатуу, көрсөткүч"</string>
<string name="keywords_trackpad_bottom_right_tap" msgid="1285062446073929305">"оң баскычын чыкылдатуу, таптап коюу"</string>
@@ -2179,8 +2178,6 @@
<string name="accessibility_shortcut_edit_dialog_summary_floating_button" msgid="6266489864614886247">"Калкыма баскычты таптап коюңуз"</string>
<string name="accessibility_shortcut_edit_dialog_title_software_by_gesture" msgid="4775049370625630546">"Атайын мүмкүнчүлүктөр жаңсоосу"</string>
<string name="accessibility_shortcut_edit_dialog_summary_software" msgid="8315934725362849788">"Экрандын төмөн жагында жайгашкан <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g> атайын мүмкүнчүлүктөр баскычын басыңыз. Функцияларды которуштуруу үчүн Атайын мүмкүнчүлүктөр баскычын басып, кармап туруңуз."</string>
- <string name="accessibility_shortcut_edit_dialog_summary_software_gesture" msgid="8292555254353761635">"Экранды 2 манжаңыз менен ылдый жагынан өйдө сүрүңүз.\n\nБашка функцияга өтүү үчүн 2 манжаңыз менен өйдө сүрүп, кармап туруңуз."</string>
- <string name="accessibility_shortcut_edit_dialog_summary_software_gesture_talkback" msgid="84483464524360845">"Экранды 3 манжаңыз менен ылдый жагынан өйдө сүрүңүз.\n\nБашка функцияга өтүү үчүн 3 манжаңыз менен өйдө сүрүп, кармап туруңуз."</string>
<string name="accessibility_shortcut_edit_dialog_summary_gesture" msgid="2081123009255579884">"{count,plural, =1{Экранды төмөндөн жогору карай сүрүңүз. Функцияларды которуштуруу үчүн өйдө сүрүп, кармап туруңуз.}other{Экранды # манжаңыз менен төмөндөн жогору карай сүрүңүз. Функцияларды которуштуруу үчүн # манжаңыз менен өйдө сүрүп, кармап туруңуз.}}"</string>
<string name="accessibility_shortcut_edit_dialog_summary_software_floating" msgid="4459254227203203324"><annotation id="link">"Дагы параметрлер"</annotation></string>
<string name="footer_learn_more_content_description" msgid="8843798273152131341">"<xliff:g id="SERVICE">%1$s</xliff:g> жөнүндө кеңири маалымат"</string>
@@ -2191,16 +2188,12 @@
<string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="844089763968552142">"Үн баскычтары"</string>
<string name="accessibility_shortcut_hardware_keyword" msgid="2483152542320987022">"үн баскычтары"</string>
<string name="accessibility_shortcut_edit_dialog_summary_hardware" msgid="2503134386397991634">"Үндү катуулатуу/акырындатуу баскычтарын коё бербей басып туруңуз"</string>
- <string name="accessibility_shortcut_edit_dialog_title_two_finger_double_tap" msgid="2271778556854020996">"Экранды эки манжа менен эки жолу таптоо"</string>
<string name="accessibility_shortcut_edit_screen_title_two_finger_double_tap" msgid="8952595692906527694">"%1$d манжа менен эки жолу таптоо"</string>
<string name="accessibility_shortcut_edit_screen_summary_two_finger_double_tap" msgid="385404127425496362">"Экранды %1$d манжаңыз менен эки жолу тез таптаңыз"</string>
<string name="accessibility_shortcut_edit_screen_title_triple_tap" msgid="3314488747597058942">"Үч жолу таптап коюу"</string>
<string name="accessibility_shortcut_edit_screen_summary_triple_tap" msgid="4839204951599629871">"Экранды %1$d жолу тез таптаңыз. Түзмөгүңүз жайыраак иштеп калышы мүмкүн."</string>
<string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="6271718715836961167">"%1$d манжа менен эки жолу таптоо"</string>
- <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"Экранды эки манжаңыз менен {0,number,integer} жолу тез таптаңыз"</string>
- <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"Экранды үч жолу басуу"</string>
<string name="accessibility_shortcut_triple_tap_keyword" msgid="5359347130888464334">"үч жолу таптап коюу"</string>
- <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"Экранды {0,number,integer} жолу тез басыңыз. Бул ыкчам баскыч түзмөгүңүздү жайлатышы мүмкүн"</string>
<string name="accessibility_shortcut_edit_dialog_title_advance" msgid="4567868630655591506">"Өркүндөтүлгөн"</string>
<string name="accessibility_screen_magnification_navbar_configuration_warning" msgid="266736851606791552">"Атайын мүмкүнчүлүктөр баскычы <xliff:g id="SERVICE">%1$s</xliff:g> кызматы үчүн коюлган. Чоңойтуу функциясын колдонуу үчүн Атайын мүмкүнчүлүктөр баскычын басып, кармап туруңуз да, чоңойтуу функциясын тандаңыз."</string>
<string name="accessibility_screen_magnification_gesture_navigation_warning" msgid="991017769735632046">"Атайын мүмкүнчүлүктөр жаңсоосу <xliff:g id="SERVICE">%1$s</xliff:g> функциясына коюлду. Масштабын чоңойтуу үчүн эки манжаңыз менен экранды ылдыйдан өйдө сүрүп, кармап туруңуз. Андан соң чоңойтууну тандаңыз."</string>
@@ -2369,6 +2362,7 @@
<string name="daltonizer_mode_tritanomaly_title" msgid="2278786218762602022">"Көк-сары"</string>
<string name="daltonizer_mode_grayscale_title" msgid="152005391387952588">"Боз"</string>
<string name="daltonizer_saturation_title" msgid="2999486412114963068">"Интенсивдүүлүк"</string>
+ <string name="daltonizer_saturation_unavailable_summary" msgid="8319753055567798775">"Боз режимде же түстөрдү тууралоо өчүрүлгөндө жеткиликсиз"</string>
<string name="daltonizer_mode_deuteranomaly_summary" msgid="2117727423019598455">"Дейтераномалия (жашыл түстү көрө албайт)"</string>
<string name="daltonizer_mode_protanomaly_summary" msgid="4617032854982040748">"Протаномалия (кызыл түстү көрө албайт)"</string>
<string name="daltonizer_mode_tritanomaly_summary" msgid="2428218320118180070">"Тританомалия"</string>
@@ -2418,15 +2412,8 @@
<string name="color_cyan" msgid="4341758639597035927">"Көгүш"</string>
<string name="color_yellow" msgid="5957551912912679058">"Сары"</string>
<string name="color_magenta" msgid="8943538189219528423">"Кочкул"</string>
- <string name="enable_service_title" msgid="7231533866953706788">"<xliff:g id="SERVICE">%1$s</xliff:g> кызматына түзмөгүңүздү толугу менен көзөмөлдөөгө уруксат бересизби?"</string>
<string name="capabilities_list_title" msgid="1225853611983394386">"<xliff:g id="SERVICE">%1$s</xliff:g>:"</string>
<string name="touch_filtered_warning" msgid="4225815157460318241">"Колдонмо уруксат суроо-талабын түшүнбөй жаткандыктан, Параметрлер жообуңузду текшере албайт."</string>
- <string name="accessibility_service_warning" msgid="6779187188736432618">"<xliff:g id="SERVICE">%1$s</xliff:g> бул түзмөктү толук көзөмөлдөөнү талап кылууда. Бул кызмат экранды окуп, атайын мүмкүнчүлүктөрдү пайдаланган колдонуучулардын атынан аракеттерди жасай алат. Көзөмөлдүн деңгээли колдонмолордун көбүнө ылайыксыз."</string>
- <string name="accessibility_service_warning_description" msgid="6573203795976134751">"Толук көзөмөл атайын мүмкүнчүлүктөрдү иштеткен колдонмолорго керек болуп, калган көптөгөн колдонмолорго кереги деле жок."</string>
- <string name="accessibility_service_screen_control_title" msgid="324795030658109870">"Экранды көрүп, көзөмөлдөө"</string>
- <string name="accessibility_service_screen_control_description" msgid="8431940515157990426">"Кызмат экрандагы нерселерди окуп, аларды башка колдонмолордун үстүнөн көрсөтөт."</string>
- <string name="accessibility_service_action_perform_title" msgid="1449360056585337833">"Аракеттерди көрүп, аткаруу"</string>
- <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"Кызмат колдонмодо жасаган аракеттериңизге же түзмөктүн сенсорлоруна көз салып, сиздин атыңыздан буйруктарды берет."</string>
<string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Ооба"</string>
<string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Жок"</string>
<string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Өчүрүү"</string>
@@ -3656,9 +3643,9 @@
<string name="notif_listener_not_migrated" msgid="6265206376374278226">"Бул колдонмодо кеңири жөндөөлөр колдоого алынбайт"</string>
<string name="notif_listener_more_settings" msgid="1348409392307208921">"Дагы параметрлер"</string>
<string name="notif_listener_more_settings_desc" msgid="7995492074281663658">"Бул колдонмодо кошумча параметрлер бар"</string>
- <string name="notification_polite_title" msgid="4737150709382859870">"Ыңгайлаштырылуучу билдирмелер"</string>
- <string name="notification_polite_main_control_title" msgid="7267191551379543859">"Ыңгайлаштырылуучу билдирмелерди колдонуу"</string>
- <string name="notification_polite_description" msgid="7749280535620291610">"Кыска убакыттын ичинде көп сандагы билдирмелерди алганыңызда, телефонуңуз үнүн акырындатып, экрандагы калкыма терезелерди эки мүнөткө чейин азайтат. Чалуулар, ойготкучтар жана маанилүү жазышуулар дирилдеп, үн чыгарып же экранда көрүнө берет. Бардык билдирмелерди экранды өйдө жагынан ылдый сүрүп, оңой таап алууга болот."</string>
+ <string name="notification_polite_title" msgid="6121016426991791557">"Билдирмелердин үнүн басаңдатуу"</string>
+ <string name="notification_polite_main_control_title" msgid="5812529809151927149">"Билдирмелердин үнүн басаңдатуу"</string>
+ <string name="notification_polite_description" msgid="5497748284893832854">"Кыска убакыттын ичинде көп сандагы билдирмелер келгенде, түзмөгүңүз үнүн акырындатып, эскертүүлөрдү 2 мүнөткө чейин азайтат. Мунун чалууларга, ойготкучтарга жана маанилүү жазышууларга таасири тийбейт. \n\nБилдирмелердин үнүн басаңдатуу учурунда келген билдирмелерди экранды өйдө жагынан ылдый сүрүп көрүүгө болот."</string>
<string name="notification_polite_work" msgid="8823596456640216391">"Жумуш профилдерине колдонуу"</string>
<string name="notification_polite_work_summary" msgid="5014189280132951378">"Жумуш профилинин колдонмолоруна карата пайдаланыңыз"</string>
<string name="vr_listeners_title" msgid="4960357292472540964">"VR көмөкчү кызматтары"</string>
@@ -3815,7 +3802,9 @@
<string name="zen_mode_apps_priority_apps" msgid="7386196048313716076">"Тандалган колдонмолор"</string>
<string name="zen_mode_apps_none_apps" msgid="2493642312793604327">"Жок"</string>
<string name="zen_mode_apps_subtext" msgid="1764211974662012877">"{count,plural,offset:2 =0{Бир да колдонмо үзгүлтүккө учурата албайт}=1{{app_1} үзгүлтүккө учурата алат}=2{{app_1} жана {app_2} үзгүлтүккө учурата алат}=3{{app_1}, {app_2} жана {app_3} үзгүлтүккө учурата алат}other{{app_1}, {app_2} жана дагы # үзгүлтүккө учурата алат}}"</string>
+ <string name="zen_mode_apps_work_app" msgid="8528767938316361588">"<xliff:g id="APP_LABEL">%s</xliff:g> (жумуш)"</string>
<string name="zen_mode_apps_calculating" msgid="5420121396943539286">"Эсептелүүдө…"</string>
+ <string name="zen_mode_plus_n_items" msgid="6136713354369243421">"+<xliff:g id="NUMBER">%d</xliff:g>"</string>
<string name="zen_mode_bypassing_apps" msgid="625309443389126481">"Колдонмолорго өзгөртүп коюуга уруксат берүү"</string>
<string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"\"Тынчымды алба\" режими таасир этпеген колдонмолор"</string>
<string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"Дагы колдонмолорду тандаңыз"</string>
@@ -3833,6 +3822,7 @@
<string name="zen_mode_sounds_none" msgid="6557474361948269420">"Эч нерсе үзгүлтүккө учурата албайт"</string>
<string name="zen_mode_people_none" msgid="4613147461974255046">"Эч ким үзгүлтүккө учурата албайт"</string>
<string name="zen_mode_people_some" msgid="9101872681298810281">"Айрым байланыштар үзгүлтүккө учуратышы мүмкүн"</string>
+ <string name="zen_mode_people_repeat_callers" msgid="4499084111069828761">"Кайра чалуучулар үзгүлтүккө учурайт"</string>
<string name="zen_mode_people_all" msgid="311036110283015205">"Бардык байланыштар үзгүлтүккө учуратышы мүмкүн"</string>
<string name="zen_mode_repeat_callers" msgid="2270356100287792138">"Кайра чалуучулар"</string>
<string name="zen_mode_repeat_callers_title" msgid="8016699240338264781">"Кайра чалып жаткан абоненттерге уруксат берүү"</string>
@@ -3856,6 +3846,34 @@
<string name="zen_mode_new_custom_title" msgid="321750898430776191">"Режимди кошуу"</string>
<string name="zen_mode_new_custom_default_name" msgid="2778307946775085105">"Жеке режим"</string>
<string name="zen_mode_edit_name_hint" msgid="4584652062167540536">"Режимдин аталышы"</string>
+ <string name="zen_mode_trigger_title_schedule_calendar" msgid="9206609438617550331">"Жылнаамадагы иш-чаралар"</string>
+ <string name="zen_mode_trigger_title_bedtime" msgid="5086070900588489978">"Уйку режиминин ырааттамасы"</string>
+ <string name="zen_mode_trigger_title_driving" msgid="7890990983453164403">"Айдап бара жатканда"</string>
+ <string name="zen_mode_trigger_title_generic" msgid="601273385119550420">"Колдонмо менен байланышкан"</string>
+ <string name="zen_mode_trigger_summary_settings_in_app" msgid="4860667191183702601">"<xliff:g id="APP_NAME">%1$s</xliff:g> колдонмосундагы маалымат жана параметрлер"</string>
+ <string name="zen_mode_trigger_summary_managed_by_app" msgid="8631011868193102098">"<xliff:g id="APP_NAME">%1$s</xliff:g> башкарат"</string>
+ <string name="zen_mode_confirm_disable_title" msgid="1232297660775719796">"Режимди өчүрүү"</string>
+ <string name="zen_mode_confirm_disable_message" msgid="7315541221665718491">"Эгер бул функцияны өчүрсөңүз, режим ойдогудай иштебей, параметрлери жашырылат."</string>
+ <string name="zen_mode_action_disable" msgid="3552921561331044881">"Өчүрүү"</string>
+ <string name="zen_mode_confirm_enable_title" msgid="5683371335847448595">"Режимди иштетүү"</string>
+ <string name="zen_mode_confirm_enable_message" msgid="7017879133260011419">"Эгер бул функцияны иштетсеңиз, режим график боюнча автоматтык түрдө иштеп баштайт."</string>
+ <string name="zen_mode_action_enable" msgid="1161480633223176531">"Иштетүү"</string>
+ <!-- no translation found for zen_mode_blurb_schedule_time (8223898702097484009) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_schedule_calendar (382177907856065945) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_bedtime (6155075956151013457) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_driving (1316054379000667305) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_immersive (5884004861848687869) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_theater (2999237960059524225) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_managed (5473921634985032149) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_generic (3041601339807075625) -->
+ <skip />
<string name="warning_button_text" msgid="1274234338874005639">"Эскертүү"</string>
<string name="suggestion_button_close" msgid="6865170855573283759">"Жабуу"</string>
<string name="device_feedback" msgid="5351614458411688608">"Түзмөк тууралуу пикир билдирүү"</string>
@@ -4842,9 +4860,8 @@
<string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"Батарея"</string>
<string name="settings_panel_title" msgid="346363079938069215">"Параметрлер панели"</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>
+ <!-- no translation found for enable_desktop_mode_on_secondary_display (2609567824593768780) -->
+ <skip />
<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>
@@ -5019,7 +5036,6 @@
<string name="default_active_sim_mobile_data" msgid="6798083892814045301">"мобилдик трафик"</string>
<string name="wifi_scan_notify_message" msgid="1331238142061476869">"Түзмөктүн иштешин жакшыртуу (мисалы, турган жериңизди тагыраак аныктоо) үчүн колдонмолор менен кызматтар Wi‑Fi өчүп турса да зымсыз тармактарды издей беришет. Издебесин десеңиз, Wi-Fi тармактарын издөө дегенди өчүрүп коюңуз."</string>
<string name="wifi_scan_change" msgid="8438320311511852918">"Өзгөртүү"</string>
- <string name="preference_summary_default_combination" msgid="4643585915107796253">"<xliff:g id="STATE">%1$s</xliff:g>/<xliff:g id="NETWORKMODE">%2$s</xliff:g>"</string>
<string name="mobile_data_connection_active" msgid="2422223108911581552">"Туташты"</string>
<string name="mobile_data_temp_connection_active" msgid="3430470299756236413">"Убактылуу туташып турат"</string>
<string name="mobile_data_temp_using" msgid="5211002380149434155">"<xliff:g id="SUBNAME">%1$s</xliff:g> убактылуу колдонулууда"</string>
@@ -5051,7 +5067,7 @@
<string name="app_pinning_main_switch_title" msgid="5465506660064032876">"Колдонмону кадап коюу функциясын иштетүү"</string>
<string name="developer_options_main_switch_title" msgid="1720074589554152501">"Иштеп чыгуучулардын параметрлерин колдонуу"</string>
<string name="default_print_service_main_switch_title" msgid="4697133737128324036">"Басып чыгаруу кызматын колдонуу"</string>
- <string name="multiple_users_main_switch_title" msgid="9158796544835843201">"Колдонуучуну которууга уруксат берүү"</string>
+ <string name="multiple_users_main_switch_title" msgid="9158796544835843201">"Башка колдонуучуга которулууга уруксат берүү"</string>
<string name="multiple_users_main_switch_keywords" msgid="4845954458094134356">"уруксат берүү, бир нече, колдонуучу, уруксат, көп"</string>
<string name="multiple_users_title_keywords" msgid="2395593167746225172">"бир нече, колдонуучулар, профилдер, адамдар, аккаунттар, которуштуруу, көп"</string>
<string name="wireless_debugging_main_switch_title" msgid="8463499572781441719">"Мүчүлүштүктөрдү Wi-Fi аркылуу оңдоону колдонуу"</string>
@@ -5165,9 +5181,11 @@
<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="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_enable_freeform_support" msgid="3697462756493543645">"Эркин формадагы терезелерди түзүү үчүн өчүрүп-күйгүзүү керек."</string>
+ <!-- no translation found for reboot_dialog_override_desktop_mode (7480950772574354130) -->
+ <skip />
+ <!-- no translation found for reboot_dialog_enable_desktop_mode_on_secondary_display (1153621881052401924) -->
+ <skip />
<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>
@@ -5285,10 +5303,8 @@
<string name="show_captions_enabled" msgid="7089043007924626">"Күйүк"</string>
<string name="live_caption_disabled" msgid="3562035026547887366">"Өчүк"</string>
<string name="live_caption_enabled" msgid="5269360946200718949">"Күйүк"</string>
- <!-- no translation found for audio_seek_bar_state_left_first (8814986910920838972) -->
- <skip />
- <!-- no translation found for audio_seek_bar_state_right_first (1999368979633398876) -->
- <skip />
+ <string name="audio_seek_bar_state_left_first" msgid="8814986910920838972">"Аудио: %1$d%% (сол), %2$d%% (оң)"</string>
+ <string name="audio_seek_bar_state_right_first" msgid="1999368979633398876">"Аудио: %1$d%% (оң), %2$d%% (сол)"</string>
<string name="about_phone_device_name_warning" msgid="3243226572404472381">"Түзмөгүңүздүн аталышы орнотулган колдонмолорго көрүнүп турат. Ошондой эле, Bluetooth түзмөктөрүнө, Wi‑Fi тармагына туташып же Wi‑Fi байланыш түйүнүн тууралаганыңызда башка адамдарга көрүнүшү мүмкүн."</string>
<string name="grammatical_gender_title" msgid="8584242850477270828">"Грамматикалык жак"</string>
<string name="grammatical_gender_dialog_title" msgid="8754048592099871587">"Грамматикалык жакты тандаңыз"</string>
@@ -5400,5 +5416,6 @@
<string name="audio_streams_main_page_password_dialog_join_button" msgid="2967747276379153408">"Агымды угуу"</string>
<string name="audio_streams_main_page_qr_code_scanner_summary" msgid="5312980105735143360">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> түзмөгүндө угуу үчүн аудио агымдын QR кодун скандаңыз"</string>
<string name="audio_streams_main_page_password_dialog_cannot_edit" msgid="9020898619297520153">"Чогуу угуп жатканда сырсөздү түзөтүүгө болбойт. Сырсөздү өзгөртүү үчүн, адегенде чогуу угууну өчүрүңүз."</string>
+ <string name="audio_streams_qr_code_scanner_label" msgid="8799703301071378034">"QR кодунун сканери"</string>
<string name="homepage_search" msgid="6759334912284663559">"Издөө параметрлери"</string>
</resources>
diff --git a/res/values-lo/strings.xml b/res/values-lo/strings.xml
index 025946c..a7a5201 100644
--- a/res/values-lo/strings.xml
+++ b/res/values-lo/strings.xml
@@ -41,6 +41,8 @@
<string name="radioInfo_data_suspended" msgid="2001254415431299603">"ຖືກລະງັບແລ້ວ"</string>
<string name="radioInfo_unknown" msgid="2892562356748600367">"ບໍ່ຮູ້ຈັກ"</string>
<string name="preview_pager_content_description" msgid="3762247188224576303">"ສະແດງຕົວຢ່າງ"</string>
+ <!-- no translation found for qr_code_content_description (1852208464419291347) -->
+ <skip />
<string name="font_size_make_smaller_desc" msgid="4978038055549590140">"ເຮັດໃຫ້ນ້ອຍລົງ"</string>
<string name="font_size_make_larger_desc" msgid="5583046033381722247">"ເຮັດໃຫ້ໃຫຍ່ຂຶ້ນ"</string>
<string name="stay_awake_on_fold_title" msgid="6590454679898134221">"ທຸກເທື່ອ"</string>
@@ -283,7 +285,7 @@
<string name="location_settings_summary_location_off" msgid="4797932754681162262">"ປິດ"</string>
<string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{ເປີດຢູ່ / # ແອັບມີສິດເຂົ້າເຖິງສະຖານທີ່}other{ເປີດຢູ່ / # ແອັບມີສິດເຂົ້າເຖິງສະຖານທີ່}}"</string>
<string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"ກຳລັງໂຫລດ…"</string>
- <string name="location_settings_footer_general" msgid="1040507068701188821">"ແອັບທີ່ມີການອະນຸຍາດອຸປະກອນທີ່ຢູ່ໃກ້ຄຽງສາມາດລະບຸສະຖານທີ່ທີ່ກ່ຽວຂ້ອງກັນຂອງອຸປະກອນທີ່ເຊື່ອມຕໍ່ໄດ້."</string>
+ <string name="location_settings_footer_general" msgid="3447585552176173502">"ແອັບທີ່ມີການອະນຸຍາດອຸປະກອນທີ່ຢູ່ໃກ້ຄຽງສາມາດລະບຸຕຳແໜ່ງທີ່ສຳພັນກັນຂອງອຸປະກອນທີ່ເຊື່ອມຕໍ່ແລ້ວໄດ້."</string>
<string name="location_settings_footer_location_off" msgid="8568995909147566720">"ການເຂົ້າເຖິງສະຖານທີ່ຖືກປິດໄວ້ສຳລັບແອັບ ແລະ ບໍລິການຕ່າງໆ. ສະຖານທີ່ອຸປະກອນອາດຍັງຄົງຖືກສົ່ງໄປຫາທີມກູ້ໄພເມື່ອທ່ານໂທ ຫຼື ສົ່ງຂໍ້ຄວາມຫາເບີໂທສຸກເສີນ."</string>
<string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"ສຶກສາເພີ່ມເຕີມກ່ຽວກັບການຕັ້ງຄ່າສະຖານທີ່"</string>
<string name="location_settings_tooltip_text_for_chrome" msgid="5781821709250544575">"ເພື່ອປ່ຽນ ໃຫ້ເຂົ້າໄປການຕັ້ງຄ່າ ChromeOS > ຄວາມເປັນສ່ວນຕົວ ແລະ ຄວາມປອດໄພ > ການຄວບຄຸມຄວາມເປັນສ່ວນຕົວ > ສິດເຂົ້າເຖິງສະຖານທີ່"</string>
@@ -850,7 +852,6 @@
<string name="nfc_reboot_dialog_title" msgid="2033983438635768169">"ຣີສະຕາດອຸປະກອນບໍ?"</string>
<string name="nfc_reboot_dialog_message" msgid="4929353168157966992">"ການບັນທຶກລາຍລະອຽດຂອງ NFC ແມ່ນສຳລັບຈຸດປະສົງການພັດທະນາເທົ່ານັ້ນ. ຂໍ້ມູນເພີ່ມເຕີມຂອງ NFC ຈະຮວມຢູ່ໃນລາຍງານຂໍ້ຜິດພາດ, ເຊິ່ງອາດມີຂໍ້ມູນສ່ວນຕົວ. ຣີສະຕາດອປະກອນເພື່ອປ່ຽນການຕັ້ງຄ່ານີ້."</string>
<string name="nfc_reboot_dialog_confirm" msgid="4769763632008584567">"ຣີສະຕາດ"</string>
- <string name="keywords_external_display" msgid="4181375057920134909">"ສະທ້ອນ, ຈໍສະແດງຜົນພາຍນອກ, ຈໍສະແດງຜົນທີ່ເຊື່ອມຕໍ່, ຈໍສະແດງຜົນ USB, ຄວາມລະອຽດ, ການໝຸນ"</string>
<string name="external_display_on" msgid="2560104443500154333">"ເປີດ"</string>
<string name="external_display_off" msgid="5634413756025351374">"ປິດ"</string>
<string name="external_display_settings_title" msgid="6256884595821605779">"ຈໍສະແດງຜົນພາຍນອກ"</string>
@@ -1918,6 +1919,8 @@
<string name="slow_keys_summary" msgid="1784371292745423292">"ປັບເວລາທີ່ມັນໃຊ້ສໍາລັບການກົດປຸ່ມເພື່ອເປີດໃຊ້ເປັນ <xliff:g id="SLOW_KEYS_THRESHOLD">%1$d</xliff:g> ms"</string>
<string name="sticky_keys" msgid="7317317044898161747">"ປຸ່ມກົດຄ້າງ"</string>
<string name="sticky_keys_summary" msgid="1844953803625480623">"ກົດເທື່ອລະປຸ່ມເພື່ອໃຊ້ທາງລັດແທນການກົດປຸ່ມຄ້າງໄວ້ຮ່ວມກັນ"</string>
+ <string name="mouse_keys" msgid="6237254627808525540">"ແປ້ນເມົ້າ"</string>
+ <string name="mouse_keys_summary" msgid="2396247040177734245">"ໃຊ້ແປ້ນພິມພາຍນອກເພື່ອຄວບຄຸມເມົ້າ."</string>
<string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"ປຸ່ມລັດແປ້ນພິມ"</string>
<string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"ສະແດງລາຍຊື່ຂອງທາງລັດ"</string>
<string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"ແປ້ນພິມໂປຣໄຟລ໌ວຽກ ແລະ ເຄື່ອງມື"</string>
@@ -1942,14 +1945,10 @@
<string name="pointer_fill_style_yellow_button" msgid="5025969961559379024">"ຮູບແບບການຕື່ມຕົວຊີ້ເປັນສີເຫຼືອງ"</string>
<string name="pointer_fill_style_pink_button" msgid="4106218142489635673">"ຮູບແບບການຕື່ມຕົວຊີ້ເປັນສີບົວ"</string>
<string name="pointer_fill_style_blue_button" msgid="5594958078854032785">"ຮູບແບບການຕື່ມຕົວຊີ້ເປັນສີຟ້າ"</string>
- <!-- no translation found for pointer_stroke_style (1886986630216050665) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_white (673686194443825383) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_black (4655806167067437330) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_none (8953927511729800247) -->
- <skip />
+ <string name="pointer_stroke_style" msgid="1886986630216050665">"ຮູບແບບລາຍເສັ້ນຂອງຕົວຊີ້"</string>
+ <string name="pointer_stroke_style_name_white" msgid="673686194443825383">"ສີຂາວ"</string>
+ <string name="pointer_stroke_style_name_black" msgid="4655806167067437330">"ສີດຳ"</string>
+ <string name="pointer_stroke_style_name_none" msgid="8953927511729800247">"ບໍ່ມີ"</string>
<string name="trackpad_touch_gesture" msgid="8641725062131922497">"ສຶກສາທ່າທາງຂອງແຜ່ນສຳຜັດ"</string>
<string name="keywords_touchpad" msgid="8159846254066666032">"ແທຣັກແຜດ, ແທຣັກ ແຜດ, ເມົ້າ, ເຄີເຊີ, ເລື່ອນ, ປັດ, ຄລິກຂວາ, ຄລິກ, ຕົວຊີ້"</string>
<string name="keywords_trackpad_bottom_right_tap" msgid="1285062446073929305">"ຄລິກຂວາ, ແຕະ"</string>
@@ -2179,8 +2178,6 @@
<string name="accessibility_shortcut_edit_dialog_summary_floating_button" msgid="6266489864614886247">"ແຕະປຸ່ມແບບລອຍ"</string>
<string name="accessibility_shortcut_edit_dialog_title_software_by_gesture" msgid="4775049370625630546">"ທ່າທາງການຊ່ວຍເຂົ້າເຖິງ"</string>
<string name="accessibility_shortcut_edit_dialog_summary_software" msgid="8315934725362849788">"ແຕະປຸ່ມການຊ່ວຍເຂົ້າເຖິງ <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g> ຢູ່ລຸ່ມສຸດຂອງໜ້າຈໍຂອງທ່ານ. ເພື່ອສະຫຼັບໄປມາລະຫວ່າງຄຸນສົມບັດຕ່າງໆ, ໃຫ້ແຕະປຸ່ມການຊ່ວຍເຂົ້າເຖິງຄ້າງໄວ້."</string>
- <string name="accessibility_shortcut_edit_dialog_summary_software_gesture" msgid="8292555254353761635">"ປັດຂຶ້ນຈາກລຸ່ມສຸດຂອງໜ້າຈໍດ້ວຍ 2 ນິ້ວ.\n\nເພື່ອສະຫຼັບລະຫວ່າງຄຸນສົມບັດຕ່າງໆ, ໃຫ້ປັດຂຶ້ນດ້ວຍ 2 ນິ້ວແລ້ວຄ້າງໄວ້."</string>
- <string name="accessibility_shortcut_edit_dialog_summary_software_gesture_talkback" msgid="84483464524360845">"ປັດຂຶ້ນຈາກລຸ່ມສຸດຂອງໜ້າຈໍດ້ວຍ 3 ນິ້ວ.\n\nເພື່ອສະຫຼັບລະຫວ່າງຄຸນສົມບັດຕ່າງໆ, ໃຫ້ປັດຂຶ້ນດ້ວຍ 3 ນິ້ວແລ້ວຄ້າງໄວ້."</string>
<string name="accessibility_shortcut_edit_dialog_summary_gesture" msgid="2081123009255579884">"{count,plural, =1{ປັດຂຶ້ນຈາກລຸ່ມສຸດຂອງໜ້າຈໍຂອງທ່ານ. ເພື່ອສະຫຼັບໄປມາລະຫວ່າງຄຸນສົມບັດຕ່າງໆ, ໃຫ້ປັດຂຶ້ນ ແລ້ວກົດຄ້າງໄວ້.}other{ໃຊ້ # ນິ້ວປັດຂຶ້ນຈາກລຸ່ມສຸດຂອງໜ້າຈໍຂອງທ່ານ. ເພື່ອສະຫຼັບໄປມາລະຫວ່າງຄຸນສົມບັດຕ່າງໆ, ໃຫ້ໃຊ້ # ນິ້ວປັດຂຶ້ນ ແລ້ວກົດຄ້າງໄວ້.}}"</string>
<string name="accessibility_shortcut_edit_dialog_summary_software_floating" msgid="4459254227203203324"><annotation id="link">"ຕົວເລືອກເພີ່ມເຕີມ"</annotation></string>
<string name="footer_learn_more_content_description" msgid="8843798273152131341">"ສຶກສາເພີ່ມເຕີມກ່ຽວກັບ <xliff:g id="SERVICE">%1$s</xliff:g>"</string>
@@ -2191,16 +2188,12 @@
<string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="844089763968552142">"ປຸ່ມລະດັບສຽງ"</string>
<string name="accessibility_shortcut_hardware_keyword" msgid="2483152542320987022">"ປຸ່ມລະດັບສຽງ"</string>
<string name="accessibility_shortcut_edit_dialog_summary_hardware" msgid="2503134386397991634">"ກົດປຸ່ມລະດັບສຽງທັງສອງຄ້າງໄວ້"</string>
- <string name="accessibility_shortcut_edit_dialog_title_two_finger_double_tap" msgid="2271778556854020996">"ໃຊ້ສອງນິ້ວແຕະໜ້າຈໍສອງເທື່ອ"</string>
<string name="accessibility_shortcut_edit_screen_title_two_finger_double_tap" msgid="8952595692906527694">"ໃຊ້ %1$d ນິ້ວແຕະສອງເທື່ອ"</string>
<string name="accessibility_shortcut_edit_screen_summary_two_finger_double_tap" msgid="385404127425496362">"ໃຊ້ %1$d ນິ້ວແຕະໜ້າຈໍສອງເທື່ອຢ່າງວ່ອງໄວ"</string>
<string name="accessibility_shortcut_edit_screen_title_triple_tap" msgid="3314488747597058942">"ແຕະສາມເທື່ອ"</string>
<string name="accessibility_shortcut_edit_screen_summary_triple_tap" msgid="4839204951599629871">"ແຕະໜ້າຈໍ %1$d ເທື່ອຢ່າງວ່ອງໄວ. ການດຳເນີນການນີ້ອາດເຮັດໃຫ້ອຸປະກອນຂອງທ່ານຊ້າລົງ."</string>
<string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="6271718715836961167">"ໃຊ້ %1$d ນິ້ວແຕະສອງເທື່ອ"</string>
- <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"ໃຊ້ສອງນິ້ວແຕະໜ້າຈໍ {0,number,integer} ເທື່ອແບບໄວໆ"</string>
- <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"ແຕະໃສ່ໜ້າຈໍສາມເທື່ອ"</string>
<string name="accessibility_shortcut_triple_tap_keyword" msgid="5359347130888464334">"ແຕະສາມເທື່ອ"</string>
- <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"ແຕະໜ້າຈໍໄວໆ {0,number,integer} ເທື່ອ. ທາງລັດນີ້ອາດເຮັດໃຫ້ອຸປະກອນຂອງທ່ານຊ້າລົງ"</string>
<string name="accessibility_shortcut_edit_dialog_title_advance" msgid="4567868630655591506">"ຂັ້ນສູງ"</string>
<string name="accessibility_screen_magnification_navbar_configuration_warning" msgid="266736851606791552">"ປຸ່ມການຊ່ວຍເຂົ້າເຖິງຖືກຕັ້ງເປັນ <xliff:g id="SERVICE">%1$s</xliff:g> ແລ້ວ. ເພື່ອໃຊ້ການຂະຫຍາຍ, ໃຫ້ແຕະປຸ່ມການຊ່ວຍເຂົ້າເຖິງຄ້າງໄວ້, ຈາກນັ້ນເລືອກການຂະຫຍາຍ."</string>
<string name="accessibility_screen_magnification_gesture_navigation_warning" msgid="991017769735632046">"ຕັ້ງທ່າທາງການຊ່ວຍເຫຼືອເປັນ <xliff:g id="SERVICE">%1$s</xliff:g> ແລ້ວ. ເພື່ອໃຊ້ການຂະຫຍາຍ, ໃຫ້ປັດຂຶ້ນດ້ວຍສອງນິ້ວຈາກລຸ່ມສຸດຂອງໜ້າຈໍຄ້າງໄວ້. ຈາກນັ້ນເລືອກການຂະຫຍາຍ."</string>
@@ -2369,6 +2362,7 @@
<string name="daltonizer_mode_tritanomaly_title" msgid="2278786218762602022">"ສີຟ້າ-ເຫຼືອງ"</string>
<string name="daltonizer_mode_grayscale_title" msgid="152005391387952588">"ຂາວດຳ"</string>
<string name="daltonizer_saturation_title" msgid="2999486412114963068">"ຄວາມເຂັ້ມ"</string>
+ <string name="daltonizer_saturation_unavailable_summary" msgid="8319753055567798775">"ບໍ່ສາມາດໃຊ້ໄດ້ສຳລັບໂໝດຂາວດຳ ຫຼື ເມື່ອການແກ້ໄຂສີຖືກປິດການນຳໃຊ້"</string>
<string name="daltonizer_mode_deuteranomaly_summary" msgid="2117727423019598455">"ເຫັນສີຂຽວໄດ້ໜ້ອຍ, ຕາບອດສີຂຽວ"</string>
<string name="daltonizer_mode_protanomaly_summary" msgid="4617032854982040748">"ເຫັນສີແດງໄດ້ໜ້ອຍ, ຕາບອດສີແດງ"</string>
<string name="daltonizer_mode_tritanomaly_summary" msgid="2428218320118180070">"ຕາບອດຈາງສີຟ້າ"</string>
@@ -2418,15 +2412,8 @@
<string name="color_cyan" msgid="4341758639597035927">"ຟ້າຂຽວ"</string>
<string name="color_yellow" msgid="5957551912912679058">"ເຫຼືອງ"</string>
<string name="color_magenta" msgid="8943538189219528423">"ແດງມ່ວງ"</string>
- <string name="enable_service_title" msgid="7231533866953706788">"ອະນຸຍາດໃຫ້ <xliff:g id="SERVICE">%1$s</xliff:g> ຄວບຄຸມອຸປະກອນທ່ານໄດ້ເຕັມຮູບແບບບໍ?"</string>
<string name="capabilities_list_title" msgid="1225853611983394386">"<xliff:g id="SERVICE">%1$s</xliff:g> ຕ້ອງການ:"</string>
<string name="touch_filtered_warning" msgid="4225815157460318241">"ເພາະວ່າແອັບຯກຳລັງຂັດຂວາງການຂໍອະນຸຍາດ, ການຕັ້ງຄ່າບໍ່ສາມາດກວດສອບການຕອບຮັບຂອງທ່ານໄດ້."</string>
- <string name="accessibility_service_warning" msgid="6779187188736432618">"<xliff:g id="SERVICE">%1$s</xliff:g> ກຳລັງຮ້ອງຂໍການຄວບຄຸມອຸປະກອນນີ້ຢ່າງເຕັມຮູບແບບ. ບໍລິການຈະສາມາດອ່ານໜ້າຈໍ ແລະ ດຳເນີນການໃນນາມຜູ້ໃຊ້ທີ່ມີຄວາມຕ້ອງການຊ່ວຍເຂົ້າເຖິງໄດ້. ການຄວບຄຸມລະດັບນີ້ບໍ່ເໝາະສົມສຳລັບແອັບສ່ວນໃຫຍ່."</string>
- <string name="accessibility_service_warning_description" msgid="6573203795976134751">"ການຄວບຄຸມແບບເຕັມຮູບແບບແມ່ນເໝາະສົມສຳລັບແອັບທີ່ຊ່ວຍທ່ານໃນດ້ານການຊ່ວຍເຂົ້າເຖິງ, ແຕ່ບໍ່ເໝາະສຳລັບທຸກແອັບ."</string>
- <string name="accessibility_service_screen_control_title" msgid="324795030658109870">"ເບິ່ງ ແລະ ຄວບຄຸມໜ້າຈໍ"</string>
- <string name="accessibility_service_screen_control_description" msgid="8431940515157990426">"ມັນສາມາດອ່ານເນື້ອຫາທັງໝົດຢູ່ໜ້າຈໍ ແລະ ສະແດງເນື້ອຫາບັງແອັບອື່ນໄດ້."</string>
- <string name="accessibility_service_action_perform_title" msgid="1449360056585337833">"ເບິ່ງ ແລະ ດຳເນີນການ"</string>
- <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"ມັນສາມາດຕິດຕາມການໂຕ້ຕອບຂອງທ່ານກັບແອັບ ຫຼື ເຊັນເຊີຮາດແວໃດໜຶ່ງ ແລະ ໂຕ້ຕອບກັບແອັບໃນນາມຂອງທ່ານໄດ້."</string>
<string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"ອະນຸຍາດ"</string>
<string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"ປະຕິເສດ"</string>
<string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"ປິດ"</string>
@@ -3656,9 +3643,9 @@
<string name="notif_listener_not_migrated" msgid="6265206376374278226">"ແອັບນີ້ບໍ່ຮອງຮັບການຕັ້ງຄ່າທີ່ປັບປຸງໃຫ້ດີຂຶ້ນ"</string>
<string name="notif_listener_more_settings" msgid="1348409392307208921">"ການຕັ້ງຄ່າເພີ່ມເຕີມ"</string>
<string name="notif_listener_more_settings_desc" msgid="7995492074281663658">"ການຕັ້ງຄ່າເພີ່ມເຕີມແມ່ນມີໃຫ້ຢູ່ພາຍໃນແອັບ"</string>
- <string name="notification_polite_title" msgid="4737150709382859870">"ການແຈ້ງເຕືອນແບບປັບອັດຕະໂນມັດ"</string>
- <string name="notification_polite_main_control_title" msgid="7267191551379543859">"ໃຊ້ການແຈ້ງເຕືອນແບບປັບອັດຕະໂນມັດ"</string>
- <string name="notification_polite_description" msgid="7749280535620291610">"ເມື່ອທ່ານໄດ້ຮັບການແຈ້ງເຕືອນຈຳນວນຫຼາຍພາຍໃນເວລາສັ້ນໆ, ໂທລະສັບຂອງທ່ານຈະຫຼຸດສຽງລົບກວນ ແລະ ຫຼຸດຈຳນວນປັອບອັບຢູ່ໜ້າຈໍເປັນເວລາສູງສຸດ 2 ນາທີ. ໂດຍການໂທ, ການປຸກ ແລະ ການສົນທະນາສຳຄັນຈະຍັງຄົງສັ່ນເຕືອນ, ເປີດສຽງ ຫຼື ສະແດງຢູ່ໜ້າຈໍ ແລະ ຍັງສາມາດຊອກຫາການແຈ້ງເຕືອນທັງໝົດໄດ້ຢ່າງງ່າຍດາຍເມື່ອທ່ານເລື່ອນລົງຈາກເທິງສຸດຂອງໜ້າຈໍ."</string>
+ <string name="notification_polite_title" msgid="6121016426991791557">"ຄູດາວການແຈ້ງເຕືອນ"</string>
+ <string name="notification_polite_main_control_title" msgid="5812529809151927149">"ໃຊ້ຄູດາວການແຈ້ງເຕືອນ"</string>
+ <string name="notification_polite_description" msgid="5497748284893832854">"ເມື່ອທ່ານໄດ້ຮັບການແຈ້ງເຕືອນຈຳນວນຫຼາຍພາຍໃນໄລຍະເວລາສັ້ນໆ, ອຸປະກອນຂອງທ່ານຈະຫຼຸດລະດັບສຽງ ແລະ ຫຼຸດຈຳນວນແຈ້ງເຕືອນລົງເປັນເວລາສູງສຸດ 2 ນາທີ. ໂດຍທີ່ການໂທ, ໂມງປຸກ ແລະ ການສົນທະນາສຳຄັນຈະບໍ່ໄດ້ຮັບຜົນກະທົບ. \n\nການແຈ້ງເຕືອນທີ່ໄດ້ຮັບໃນລະຫວ່າງຄູດາວສາມາດເບິ່ງໄດ້ໂດຍການດຶງລົງຈາກທາງເທິງຂອງໜ້າຈໍ."</string>
<string name="notification_polite_work" msgid="8823596456640216391">"ນຳໃຊ້ກັບໂປຣໄຟລ໌ບ່ອນເຮັດວຽກ"</string>
<string name="notification_polite_work_summary" msgid="5014189280132951378">"ໃຊ້ກັບແອັບໃນໂປຣໄຟລ໌ບ່ອນເຮັດວຽກ"</string>
<string name="vr_listeners_title" msgid="4960357292472540964">"ບໍລິການຕົວຊ່ວຍ VR"</string>
@@ -3815,7 +3802,9 @@
<string name="zen_mode_apps_priority_apps" msgid="7386196048313716076">"ແອັບທີ່ເລືອກແລ້ວ"</string>
<string name="zen_mode_apps_none_apps" msgid="2493642312793604327">"ບໍ່ມີ"</string>
<string name="zen_mode_apps_subtext" msgid="1764211974662012877">"{count,plural,offset:2 =0{ບໍ່ໃຫ້ແອັບໃດລົບກວນໄດ້ເລີຍ}=1{{app_1} ສາມາດລົບກວນໄດ້}=2{{app_1} ແລະ {app_2} ສາມາດລົບກວນໄດ້}=3{{app_1}, {app_2} ແລະ {app_3} ສາມາດລົບກວນໄດ້}other{{app_1}, {app_2} ແລະ ອີກ # ແອັບສາມາດລົບກວນໄດ້}}"</string>
+ <string name="zen_mode_apps_work_app" msgid="8528767938316361588">"<xliff:g id="APP_LABEL">%s</xliff:g> (ວຽກ)"</string>
<string name="zen_mode_apps_calculating" msgid="5420121396943539286">"ກຳລັງຄຳນວນ…"</string>
+ <string name="zen_mode_plus_n_items" msgid="6136713354369243421">"+<xliff:g id="NUMBER">%d</xliff:g>"</string>
<string name="zen_mode_bypassing_apps" msgid="625309443389126481">"ອະນຸຍາດໃຫ້ແອັບຍົກເລີກໄດ້"</string>
<string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"ແອັບທີ່ສາມາດລົບກວນໄດ້"</string>
<string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"ເລືອກແອັບເພີ່ມເຕີມ"</string>
@@ -3833,6 +3822,7 @@
<string name="zen_mode_sounds_none" msgid="6557474361948269420">"ບໍ່ມີຫຍັງທີ່ສາມາດລົບກວນໄດ້"</string>
<string name="zen_mode_people_none" msgid="4613147461974255046">"ບໍ່ມີໃຜສາມາດລົບກວນໄດ້"</string>
<string name="zen_mode_people_some" msgid="9101872681298810281">"ບາງຄົນສາມາດລົບກວນໄດ້"</string>
+ <string name="zen_mode_people_repeat_callers" msgid="4499084111069828761">"ຜູ້ໂທຊ້ຳສາມາດລົບກວນໄດ້"</string>
<string name="zen_mode_people_all" msgid="311036110283015205">"ທຸກຄົນສາມາດລົບກວນໄດ້"</string>
<string name="zen_mode_repeat_callers" msgid="2270356100287792138">"ຜູ້ໂທຊ້ຳໆ"</string>
<string name="zen_mode_repeat_callers_title" msgid="8016699240338264781">"ອະນຸຍາດຜູ້ໂທທີ່ໂທຊ້ຳ"</string>
@@ -3856,6 +3846,34 @@
<string name="zen_mode_new_custom_title" msgid="321750898430776191">"ໂໝດເພີ່ມ"</string>
<string name="zen_mode_new_custom_default_name" msgid="2778307946775085105">"ໂໝດທີ່ກຳນົດເອງ"</string>
<string name="zen_mode_edit_name_hint" msgid="4584652062167540536">"ຊື່ໂໝດ"</string>
+ <string name="zen_mode_trigger_title_schedule_calendar" msgid="9206609438617550331">"ນັດໝາຍປະຕິທິນ"</string>
+ <string name="zen_mode_trigger_title_bedtime" msgid="5086070900588489978">"ກຳນົດເວລານອນ"</string>
+ <string name="zen_mode_trigger_title_driving" msgid="7890990983453164403">"ໃນຂະນະຂັບລົດ"</string>
+ <string name="zen_mode_trigger_title_generic" msgid="601273385119550420">"ລິ້ງກັບແອັບ"</string>
+ <string name="zen_mode_trigger_summary_settings_in_app" msgid="4860667191183702601">"ຂໍ້ມູນ ແລະ ການຕັ້ງຄ່າໃນ <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+ <string name="zen_mode_trigger_summary_managed_by_app" msgid="8631011868193102098">"ຈັດການໂດຍ <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+ <string name="zen_mode_confirm_disable_title" msgid="1232297660775719796">"ປິດການນຳໃຊ້ໂໝດ"</string>
+ <string name="zen_mode_confirm_disable_message" msgid="7315541221665718491">"ຫາກທ່ານປິດການນຳໃຊ້ຄຸນສົມບັດນີ້, ໂໝດນີ້ຈະບໍ່ເຮັດວຽກຕາມທີ່ຕັ້ງໃຈໄວ້ອີກຕໍ່ໄປ ແລະ ການຕັ້ງຄ່າຂອງໂໝດຈະຖືກເຊື່ອງໄວ້."</string>
+ <string name="zen_mode_action_disable" msgid="3552921561331044881">"ປິດການນຳໃຊ້"</string>
+ <string name="zen_mode_confirm_enable_title" msgid="5683371335847448595">"ເປີດການນຳໃຊ້ໂໝດ"</string>
+ <string name="zen_mode_confirm_enable_message" msgid="7017879133260011419">"ຫາກທ່ານເປີດການນຳໃຊ້ຄຸນສົມບັດນີ້, ໂໝດນີ້ຈະເປີດນຳໃຊ້ໂດຍອັດຕະໂນມັດຕາມກຳນົດເວລາ."</string>
+ <string name="zen_mode_action_enable" msgid="1161480633223176531">"ເປີດການນຳໃຊ້"</string>
+ <!-- no translation found for zen_mode_blurb_schedule_time (8223898702097484009) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_schedule_calendar (382177907856065945) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_bedtime (6155075956151013457) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_driving (1316054379000667305) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_immersive (5884004861848687869) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_theater (2999237960059524225) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_managed (5473921634985032149) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_generic (3041601339807075625) -->
+ <skip />
<string name="warning_button_text" msgid="1274234338874005639">"ຄໍາເຕືອນ"</string>
<string name="suggestion_button_close" msgid="6865170855573283759">"ປິດ"</string>
<string name="device_feedback" msgid="5351614458411688608">"ສົ່ງຄຳຕິຊົມກ່ຽວກັບອຸປະກອນນີ້"</string>
@@ -4842,9 +4860,8 @@
<string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"ແບັດເຕີຣີ"</string>
<string name="settings_panel_title" msgid="346363079938069215">"ແຜງການຕັ້ງຄ່າ"</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>
+ <!-- no translation found for enable_desktop_mode_on_secondary_display (2609567824593768780) -->
+ <skip />
<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>
@@ -5019,7 +5036,6 @@
<string name="default_active_sim_mobile_data" msgid="6798083892814045301">"ອິນເຕີເນັດມືຖື"</string>
<string name="wifi_scan_notify_message" msgid="1331238142061476869">"ເພື່ອປັບປຸງປະສົບການອຸປະກອນ, ແອັບ ແລະ ບໍລິການຍັງຄົງສາມາດສະແກນຫາເຄືອຂ່າຍ Wi‑Fi ຕອນໃດກໍໄດ້, ເຖິງແມ່ນວ່າຈະປິດ Wi‑Fi ໄວ້ກໍຕາມ. ສິ່ງນີ້ສາມາດໃຊ້ເພື່ອປັບປຸງຄຸນສົມບັດ ແລະ ບໍລິການທີ່ອ້າງອີງສະຖານທີ່ໄດ້. ທ່ານສາມາດປ່ຽນສິ່ງນີ້ໄດ້ໃນການຕັ້ງຄ່າການສະແກນ Wi‑Fi."</string>
<string name="wifi_scan_change" msgid="8438320311511852918">"ປ່ຽນ"</string>
- <string name="preference_summary_default_combination" msgid="4643585915107796253">"<xliff:g id="STATE">%1$s</xliff:g> / <xliff:g id="NETWORKMODE">%2$s</xliff:g>"</string>
<string name="mobile_data_connection_active" msgid="2422223108911581552">"ເຊື່ອມຕໍ່ແລ້ວ"</string>
<string name="mobile_data_temp_connection_active" msgid="3430470299756236413">"ເຊື່ອມຕໍ່ແລ້ວຊົ່ວຄາວ"</string>
<string name="mobile_data_temp_using" msgid="5211002380149434155">"ກຳລັງໃຊ້ <xliff:g id="SUBNAME">%1$s</xliff:g> ຊົ່ວຄາວ"</string>
@@ -5165,9 +5181,11 @@
<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="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_enable_freeform_support" msgid="3697462756493543645">"ຕ້ອງປິດເປີດໃໝ່ເພື່ອເປີດການນຳໃຊ້ການຊ່ວຍເຫຼືອໜ້າຈໍຮູບແບບອິດສະລະ."</string>
+ <!-- no translation found for reboot_dialog_override_desktop_mode (7480950772574354130) -->
+ <skip />
+ <!-- no translation found for reboot_dialog_enable_desktop_mode_on_secondary_display (1153621881052401924) -->
+ <skip />
<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>
@@ -5285,10 +5303,8 @@
<string name="show_captions_enabled" msgid="7089043007924626">"ເປີດ"</string>
<string name="live_caption_disabled" msgid="3562035026547887366">"ປິດ"</string>
<string name="live_caption_enabled" msgid="5269360946200718949">"ເປີດ"</string>
- <!-- no translation found for audio_seek_bar_state_left_first (8814986910920838972) -->
- <skip />
- <!-- no translation found for audio_seek_bar_state_right_first (1999368979633398876) -->
- <skip />
+ <string name="audio_seek_bar_state_left_first" msgid="8814986910920838972">"ສຽງ %1$d%% ຊ້າຍ, %2$d%% ຂວາ"</string>
+ <string name="audio_seek_bar_state_right_first" msgid="1999368979633398876">"ສຽງ %1$d%% ຂວາ, %2$d%% ຊ້າຍ"</string>
<string name="about_phone_device_name_warning" msgid="3243226572404472381">"ຊື່ອຸປະກອນຂອງທ່ານຈະສະແດງໃຫ້ແອັບທີ່ທ່ານຕິດຕັ້ງໄວ້ເຫັນ. ມັນອາດຖືກສະແດງໃຫ້ຄົນອື່ນເຫັນໃນເວລາທີ່ທ່ານເຊື່ອມຕໍ່ຫາອຸປະກອນ Bluetooth, ເຊື່ອມຕໍ່ຫາເຄືອຂ່າຍ Wi-Fi ຫຼື ຕັ້ງຄ່າຮັອດສະປອດ Wi-Fi ນຳ."</string>
<string name="grammatical_gender_title" msgid="8584242850477270828">"ເພດທາງໄວຍາກອນ"</string>
<string name="grammatical_gender_dialog_title" msgid="8754048592099871587">"ເລືອກເພດທາງໄວຍາກອນ"</string>
@@ -5400,5 +5416,6 @@
<string name="audio_streams_main_page_password_dialog_join_button" msgid="2967747276379153408">"ຟັງສະຕຣີມ"</string>
<string name="audio_streams_main_page_qr_code_scanner_summary" msgid="5312980105735143360">"ສະແກນລະຫັດ QR ການສະຕຣີມສຽງເພື່ອຟັງກັບ <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
<string name="audio_streams_main_page_password_dialog_cannot_edit" msgid="9020898619297520153">"ບໍ່ສາມາດແກ້ໄຂລະຫັດຜ່ານໃນລະຫວ່າງທີ່ແບ່ງປັນໄດ້. ເພື່ອປ່ຽນລະຫັດຜ່ານ, ທຳອິດໃຫ້ປິດການແບ່ງປັນສຽງ."</string>
+ <string name="audio_streams_qr_code_scanner_label" msgid="8799703301071378034">"ຕົວສະແກນລະຫັດ QR"</string>
<string name="homepage_search" msgid="6759334912284663559">"ຊອກຫາໃນການຕັ້ງຄ່າ"</string>
</resources>
diff --git a/res/values-lt/strings.xml b/res/values-lt/strings.xml
index 0718f0f..f9f607c 100644
--- a/res/values-lt/strings.xml
+++ b/res/values-lt/strings.xml
@@ -41,6 +41,8 @@
<string name="radioInfo_data_suspended" msgid="2001254415431299603">"Pristabdyta"</string>
<string name="radioInfo_unknown" msgid="2892562356748600367">"Nežinoma"</string>
<string name="preview_pager_content_description" msgid="3762247188224576303">"Peržiūra"</string>
+ <!-- no translation found for qr_code_content_description (1852208464419291347) -->
+ <skip />
<string name="font_size_make_smaller_desc" msgid="4978038055549590140">"Padaryti mažesnius"</string>
<string name="font_size_make_larger_desc" msgid="5583046033381722247">"Padaryti didesnius"</string>
<string name="stay_awake_on_fold_title" msgid="6590454679898134221">"Visada"</string>
@@ -283,7 +285,7 @@
<string name="location_settings_summary_location_off" msgid="4797932754681162262">"Išjungti"</string>
<string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{Įjungta / # programa gali pasiekti vietovę}one{Įjungta / # programa gali pasiekti vietovę}few{Įjungta / # programos gali pasiekti vietovę}many{Įjungta / # programos gali pasiekti vietovę}other{Įjungta / # programų gali pasiekti vietovę}}"</string>
<string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"Įkeliama…"</string>
- <string name="location_settings_footer_general" msgid="1040507068701188821">"Programos, turinčios netoliese esančių įrenginių leidimą, gali nustatyti apytikslį atstumą iki prijungtų įrenginių."</string>
+ <string name="location_settings_footer_general" msgid="3447585552176173502">"Programos, turinčios netoliese esančių įrenginių leidimą, gali nustatyti apytikslę prijungtų įrenginių poziciją."</string>
<string name="location_settings_footer_location_off" msgid="8568995909147566720">"Programų ir paslaugų prieiga prie vietovės išjungta. Įrenginio vietovės informacija vis tiek gali būti siunčiama pagalbos tarnyboms skambinant ar siunčiant teksto pranešimą pagalbos numeriu."</string>
<string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Sužinokite daugiau apie vietovės nustatymus."</string>
<string name="location_settings_tooltip_text_for_chrome" msgid="5781821709250544575">"Jei norite pakeisti, eikite į „ChromeOS“ nustatymus > „Privatumas ir sauga“ > „Privatumo valdikliai“ > „Prieiga prie vietovės“"</string>
@@ -850,7 +852,6 @@
<string name="nfc_reboot_dialog_title" msgid="2033983438635768169">"Paleisti įrenginį iš naujo?"</string>
<string name="nfc_reboot_dialog_message" msgid="4929353168157966992">"Išsamių NFC duomenų įrašymas gali būti naudojamas tik kuriant produktą. Į pranešimus apie riktus įtraukiama papildomų NFC duomenų, kuriuose gali būti privačios informacijos. Jei norite pakeisti šį nustatymą, paleiskite įrenginį iš naujo."</string>
<string name="nfc_reboot_dialog_confirm" msgid="4769763632008584567">"Paleisti iš naujo"</string>
- <string name="keywords_external_display" msgid="4181375057920134909">"ekrano vaizdo bendrinimas, išorinis vaizdo įrenginys, prijungtas vaizdo įrenginys, usb vaizdo įrenginys, skyra, pasukimas"</string>
<string name="external_display_on" msgid="2560104443500154333">"Įjungta"</string>
<string name="external_display_off" msgid="5634413756025351374">"Išjungta"</string>
<string name="external_display_settings_title" msgid="6256884595821605779">"Išorinis vaizdo įrenginys"</string>
@@ -1918,6 +1919,8 @@
<string name="slow_keys_summary" msgid="1784371292745423292">"Laikas, per kurį aktyvinamas klavišo paspaudimas, koreguojamas į <xliff:g id="SLOW_KEYS_THRESHOLD">%1$d</xliff:g> milisek."</string>
<string name="sticky_keys" msgid="7317317044898161747">"Atmenieji klavišai"</string>
<string name="sticky_keys_summary" msgid="1844953803625480623">"Norėdami naudoti spartųjį klavišą, vienu metu paspauskite vieną klavišą, užuot laikę nuspaudę kelis klavišus"</string>
+ <string name="mouse_keys" msgid="6237254627808525540">"Pelės klavišai"</string>
+ <string name="mouse_keys_summary" msgid="2396247040177734245">"Naudokite fizinę klaviatūrą, kad galėtumėte valdyti pelę."</string>
<string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"Spartieji klavišai"</string>
<string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"Rodyti sparčiųjų klavišų sąrašą"</string>
<string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"Darbo profilio klaviatūros ir įrankiai"</string>
@@ -1942,14 +1945,10 @@
<string name="pointer_fill_style_yellow_button" msgid="5025969961559379024">"Keisti rodyklės užpildymo stilių į geltoną"</string>
<string name="pointer_fill_style_pink_button" msgid="4106218142489635673">"Keisti rodyklės užpildymo stilių į rožinį"</string>
<string name="pointer_fill_style_blue_button" msgid="5594958078854032785">"Keisti rodyklės užpildymo stilių į mėlyną"</string>
- <!-- no translation found for pointer_stroke_style (1886986630216050665) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_white (673686194443825383) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_black (4655806167067437330) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_none (8953927511729800247) -->
- <skip />
+ <string name="pointer_stroke_style" msgid="1886986630216050665">"Rodyklės brūkšnio stilius"</string>
+ <string name="pointer_stroke_style_name_white" msgid="673686194443825383">"Balta"</string>
+ <string name="pointer_stroke_style_name_black" msgid="4655806167067437330">"Juoda"</string>
+ <string name="pointer_stroke_style_name_none" msgid="8953927511729800247">"Nėra"</string>
<string name="trackpad_touch_gesture" msgid="8641725062131922497">"Sužinokite jutiklinės dalies gestus"</string>
<string name="keywords_touchpad" msgid="8159846254066666032">"jutiklinė dalis, pelė, žymeklis, slinkti, perbraukti, spustelėti dešiniuoju klavišu, spustelėti"</string>
<string name="keywords_trackpad_bottom_right_tap" msgid="1285062446073929305">"spustelėti dešiniuoju klavišu, paliesti"</string>
@@ -2179,8 +2178,6 @@
<string name="accessibility_shortcut_edit_dialog_summary_floating_button" msgid="6266489864614886247">"Palieskite dengiamąjį mygtuką"</string>
<string name="accessibility_shortcut_edit_dialog_title_software_by_gesture" msgid="4775049370625630546">"Pritaikomumo gestas"</string>
<string name="accessibility_shortcut_edit_dialog_summary_software" msgid="8315934725362849788">"Palieskite pritaikomumo mygtuką <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g> ekrano apačioje. Norėdami perjungti funkcijas, palieskite ir palaikykite pritaikomumo mygtuką."</string>
- <string name="accessibility_shortcut_edit_dialog_summary_software_gesture" msgid="8292555254353761635">"Perbraukite aukštyn dviem pirštais nuo ekrano apačios.\n\nJei norite perjungti funkcijas, perbraukite aukštyn dviem pirštais ir palaikykite."</string>
- <string name="accessibility_shortcut_edit_dialog_summary_software_gesture_talkback" msgid="84483464524360845">"Perbraukite aukštyn trimis pirštais nuo ekrano apačios.\n\nJei norite perjungti funkcijas, perbraukite aukštyn trimis pirštais ir palaikykite."</string>
<string name="accessibility_shortcut_edit_dialog_summary_gesture" msgid="2081123009255579884">"{count,plural, =1{Perbraukite aukštyn nuo ekrano apačios. Norėdami perjungti funkcijas, perbraukite aukštyn ir palaikykite.}one{Perbraukite # pirštu aukštyn nuo ekrano apačios. Norėdami perjungti funkcijas, perbraukite # pirštu aukštyn ir palaikykite.}few{Perbraukite # pirštais aukštyn nuo ekrano apačios. Norėdami perjungti funkcijas, perbraukite # pirštais aukštyn ir palaikykite.}many{Perbraukite # piršto aukštyn nuo ekrano apačios. Norėdami perjungti funkcijas, perbraukite # piršto aukštyn ir palaikykite.}other{Perbraukite # pirštų aukštyn nuo ekrano apačios. Norėdami perjungti funkcijas, perbraukite # pirštų aukštyn ir palaikykite.}}"</string>
<string name="accessibility_shortcut_edit_dialog_summary_software_floating" msgid="4459254227203203324"><annotation id="link">"Daugiau parinkčių"</annotation></string>
<string name="footer_learn_more_content_description" msgid="8843798273152131341">"Sužinokite daugiau apie paslaugą „<xliff:g id="SERVICE">%1$s</xliff:g>“"</string>
@@ -2191,16 +2188,12 @@
<string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="844089763968552142">"Garsumo klavišai"</string>
<string name="accessibility_shortcut_hardware_keyword" msgid="2483152542320987022">"garsumo klavišai"</string>
<string name="accessibility_shortcut_edit_dialog_summary_hardware" msgid="2503134386397991634">"Paspauskite ir palaikykite abu garsumo klavišus"</string>
- <string name="accessibility_shortcut_edit_dialog_title_two_finger_double_tap" msgid="2271778556854020996">"Dukart palieskite ekraną dviem pirštais"</string>
<string name="accessibility_shortcut_edit_screen_title_two_finger_double_tap" msgid="8952595692906527694">"Palietimas du kartus tiek pirštų: %1$d"</string>
<string name="accessibility_shortcut_edit_screen_summary_two_finger_double_tap" msgid="385404127425496362">"Greitai du kartus palieskite ekraną tiek pirštų: %1$d"</string>
<string name="accessibility_shortcut_edit_screen_title_triple_tap" msgid="3314488747597058942">"Palietimas tris kartus"</string>
<string name="accessibility_shortcut_edit_screen_summary_triple_tap" msgid="4839204951599629871">"Greitai palieskite ekraną %1$d k. Įrenginys gali veikti lėčiau."</string>
<string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="6271718715836961167">"Palietimas du kartus tiek pirštų: %1$d"</string>
- <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"Greitai palieskite ekraną {0,number,integer} k. dviem pirštais"</string>
- <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"Ekrano palietimas tris kartus"</string>
<string name="accessibility_shortcut_triple_tap_keyword" msgid="5359347130888464334">"palietimas tris kartus"</string>
- <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"Sparčiai palieskite ekraną {0,number,integer} k. Dėl šio sparčiojo klavišo įrenginys gali veikti lėčiau"</string>
<string name="accessibility_shortcut_edit_dialog_title_advance" msgid="4567868630655591506">"Išplėstin."</string>
<string name="accessibility_screen_magnification_navbar_configuration_warning" msgid="266736851606791552">"Pritaikymo mobiliesiems mygtukas nustatytas į „<xliff:g id="SERVICE">%1$s</xliff:g>“. Jei norite naudoti didinimo funkciją, palieskite ir palaikykite pritaikymo neįgaliesiems mygtuką, tada pasirinkite didinimo funkciją."</string>
<string name="accessibility_screen_magnification_gesture_navigation_warning" msgid="991017769735632046">"Pritaikomumo gestas nustatytas į „<xliff:g id="SERVICE">%1$s</xliff:g>“. Norėdami naudoti didinimą, perbraukite dviem pirštais iš ekrano apačios ir palaikykite. Tada pasirinkite didinimą."</string>
@@ -2369,6 +2362,7 @@
<string name="daltonizer_mode_tritanomaly_title" msgid="2278786218762602022">"Mėlyna, geltona"</string>
<string name="daltonizer_mode_grayscale_title" msgid="152005391387952588">"Pilkumo tonas"</string>
<string name="daltonizer_saturation_title" msgid="2999486412114963068">"Intensyvumas"</string>
+ <string name="daltonizer_saturation_unavailable_summary" msgid="8319753055567798775">"Nepasiekiama naudojant pilkumo tono režimą arba kai spalvų taisymas yra išjungtas"</string>
<string name="daltonizer_mode_deuteranomaly_summary" msgid="2117727423019598455">"Silpna žalia (deuteranomalija)"</string>
<string name="daltonizer_mode_protanomaly_summary" msgid="4617032854982040748">"Silpna raudona (protanomalija)"</string>
<string name="daltonizer_mode_tritanomaly_summary" msgid="2428218320118180070">"Tritanomalija"</string>
@@ -2418,15 +2412,8 @@
<string name="color_cyan" msgid="4341758639597035927">"Žalsvai mėlyna"</string>
<string name="color_yellow" msgid="5957551912912679058">"Geltona"</string>
<string name="color_magenta" msgid="8943538189219528423">"Purpurinė"</string>
- <string name="enable_service_title" msgid="7231533866953706788">"Leisti „<xliff:g id="SERVICE">%1$s</xliff:g>“ valdyti visas įrenginio funkcijas?"</string>
<string name="capabilities_list_title" msgid="1225853611983394386">"„<xliff:g id="SERVICE">%1$s</xliff:g>“ reikia:"</string>
<string name="touch_filtered_warning" msgid="4225815157460318241">"Kadangi programa užstoja leidimo užklausą, nustatymuose negalima patvirtinti jūsų atsakymo."</string>
- <string name="accessibility_service_warning" msgid="6779187188736432618">"„<xliff:g id="SERVICE">%1$s</xliff:g>“ nori valdyti visas šio įrenginio funkcijas. Paslauga gali skaityti ekraną ir veikti specialiųjų poreikių turinčių naudotojų vardu. Šis valdymo lygis nėra tinkamas daugumai programų."</string>
- <string name="accessibility_service_warning_description" msgid="6573203795976134751">"Galimybę valdyti visas funkcijas patariama suteikti programoms, kurios padeda specialiųjų poreikių turintiems asmenims, bet ne daugumai programų."</string>
- <string name="accessibility_service_screen_control_title" msgid="324795030658109870">"Ekrano peržiūra ir valdymas"</string>
- <string name="accessibility_service_screen_control_description" msgid="8431940515157990426">"Naudojant šį ekrano valdiklį galima skaityti visą ekrane rodomą turinį ir rodyti turinį virš kitų programų."</string>
- <string name="accessibility_service_action_perform_title" msgid="1449360056585337833">"Veiksmų peržiūra ir atlikimas"</string>
- <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"Naudojant šią funkciją galima stebėti jūsų sąveiką su programa ar aparatinės įrangos jutikliu ir sąveikauti su programomis jūsų vardu."</string>
<string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Leisti"</string>
<string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Atmesti"</string>
<string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Išjungti"</string>
@@ -3368,10 +3355,8 @@
<string name="zen_mode_automation_settings_title" msgid="3709324184191870926">"Tvarkaraščiai"</string>
<string name="zen_mode_delete_automatic_rules" msgid="5020468289267191765">"Tvarkaraščių trynimas"</string>
<string name="zen_mode_schedule_delete" msgid="5383420576833765114">"Ištrinti"</string>
- <!-- no translation found for zen_mode_menu_rename_mode (4681802125016390837) -->
- <skip />
- <!-- no translation found for zen_mode_menu_delete_mode (5380084696402157428) -->
- <skip />
+ <string name="zen_mode_menu_rename_mode" msgid="4681802125016390837">"Pervardyti"</string>
+ <string name="zen_mode_menu_delete_mode" msgid="5380084696402157428">"Ištrinti"</string>
<string name="zen_mode_delete_mode_confirmation" msgid="7594340592051947392">"Ištrinti režimą „<xliff:g id="MODE">%1$s</xliff:g>“?"</string>
<string name="zen_mode_rule_name_edit" msgid="1053237022416700481">"Redaguoti"</string>
<string name="zen_mode_automation_settings_page_title" msgid="6217433860514433311">"Tvarkaraščiai"</string>
@@ -3395,8 +3380,7 @@
<string name="zen_mode_visual_signals_settings_subtitle" msgid="7433077540895876672">"Leisti vaizdinius signalus"</string>
<string name="mode_interruption_filter_title" msgid="3343846700214702347">"Susikaupkite"</string>
<string name="mode_device_effects_title" msgid="5857008332618433744">"Papildomi veiksmai"</string>
- <!-- no translation found for modes_sound_summary_off (6972648204528227879) -->
- <skip />
+ <string name="modes_sound_summary_off" msgid="6972648204528227879">"{count,plural, =0{Išjungta}=1{Išjungta / vienas režimas gali įsijungti automatiškai}one{Išjungta / # režimas gali įsijungti automatiškai}few{Išjungta / # režimai gali įsijungti automatiškai}many{Išjungta / # režimo gali įsijungti automatiškai}other{Išjungta / # režimų gali įsijungti automatiškai}}"</string>
<string name="mode_display_settings_title" msgid="8132825978346535472">"Vaizdo nustatymai"</string>
<string name="mode_display_options_section" msgid="5151597748243866532">"Pateikties parinktys"</string>
<string name="mode_grayscale_title" msgid="6027553257331235461">"Pilkumo tonas"</string>
@@ -3659,9 +3643,9 @@
<string name="notif_listener_not_migrated" msgid="6265206376374278226">"Ši programa nepalaiko išplėstinių nustatymų"</string>
<string name="notif_listener_more_settings" msgid="1348409392307208921">"Daugiau nustatymų"</string>
<string name="notif_listener_more_settings_desc" msgid="7995492074281663658">"Daugiau nustatymų pasiekiama šioje programoje"</string>
- <string name="notification_polite_title" msgid="4737150709382859870">"Adaptyvieji pranešimai"</string>
- <string name="notification_polite_main_control_title" msgid="7267191551379543859">"Naudokite adaptyviuosius pranešimus"</string>
- <string name="notification_polite_description" msgid="7749280535620291610">"Kai per trumpą laiką gaunate daug pranešimų, telefonas sumažina garsumą ir iššokančiųjų langų skaičių ekrane ne daugiau nei dviem minutėms. Apie skambučius, signalus ir prioritetinius pokalbius bus pranešama vibravimu, garso signalu arba jie bus pateikiami ekrane, o visus pranešimus lengva rasti perbraukus žemyn nuo ekrano viršaus."</string>
+ <string name="notification_polite_title" msgid="6121016426991791557">"Pranešimų neaktyvumo laikotarpis"</string>
+ <string name="notification_polite_main_control_title" msgid="5812529809151927149">"Naudoti pranešimų neaktyvumo laikotarpį"</string>
+ <string name="notification_polite_description" msgid="5497748284893832854">"Kai per trumpą laiką gaunate daug pranešimų, įrenginys sumažina garsumą ir įspėjimų skaičių ekrane ne daugiau nei dviem minutėms. Skambučiai, signalai ir prioritetiniai pokalbiai nepaveikiami. \n\nNeaktyvumo laikotarpiu gautus pranešimus galima rasti perbraukus žemyn iš ekrano viršaus."</string>
<string name="notification_polite_work" msgid="8823596456640216391">"Taikyti darbo profiliams"</string>
<string name="notification_polite_work_summary" msgid="5014189280132951378">"Taikyti darbo profilio programoms"</string>
<string name="vr_listeners_title" msgid="4960357292472540964">"Pagalbinės virtualiosios realybės paslaugos"</string>
@@ -3818,7 +3802,9 @@
<string name="zen_mode_apps_priority_apps" msgid="7386196048313716076">"Pasirinktos programos"</string>
<string name="zen_mode_apps_none_apps" msgid="2493642312793604327">"Netaikoma"</string>
<string name="zen_mode_apps_subtext" msgid="1764211974662012877">"{count,plural,offset:2 =0{Jokios programos negali trukdyti}=1{„{app_1}“ gali trukdyti}=2{„{app_1}“ ir „{app_2}“ gali trukdyti}=3{„{app_1}“, „{app_2}“ ir „{app_3}“ gali trukdyti}one{„{app_1}“, „{app_2}“ ir dar # programa gali trukdyti}few{„{app_1}“, „{app_2}“ ir dar # programos gali trukdyti}many{„{app_1}“, „{app_2}“ ir dar # programos gali trukdyti}other{„{app_1}“, „{app_2}“ ir dar # programų gali trukdyti}}"</string>
+ <string name="zen_mode_apps_work_app" msgid="8528767938316361588">"„<xliff:g id="APP_LABEL">%s</xliff:g>“ (darbas)"</string>
<string name="zen_mode_apps_calculating" msgid="5420121396943539286">"Skaičiuojama…"</string>
+ <string name="zen_mode_plus_n_items" msgid="6136713354369243421">"Dar <xliff:g id="NUMBER">%d</xliff:g>"</string>
<string name="zen_mode_bypassing_apps" msgid="625309443389126481">"Leisti programoms nepaisyti"</string>
<string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"Programos, kurios gali trikdyti"</string>
<string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"Pasirinkti daugiau programų"</string>
@@ -3836,6 +3822,7 @@
<string name="zen_mode_sounds_none" msgid="6557474361948269420">"Niekas negali trikdyti"</string>
<string name="zen_mode_people_none" msgid="4613147461974255046">"Niekas negali trikdyti"</string>
<string name="zen_mode_people_some" msgid="9101872681298810281">"Kai kurie žmonės gali trikdyti"</string>
+ <string name="zen_mode_people_repeat_callers" msgid="4499084111069828761">"Pakartotinai skambinantys žmonės gali trukdyti"</string>
<string name="zen_mode_people_all" msgid="311036110283015205">"Visi žmonės gali trikdyti"</string>
<string name="zen_mode_repeat_callers" msgid="2270356100287792138">"Pakartotinai skambinantys"</string>
<string name="zen_mode_repeat_callers_title" msgid="8016699240338264781">"Leisti pakartotinai skambinančius žm."</string>
@@ -3855,13 +3842,37 @@
<string name="zen_mode_summary_alarms_only_by_hour" msgid="7400910210950788163">"{count,plural, =1{Pakeisti į signalus tik vienai valandai iki {time}}one{Pakeisti į signalus tik # valandai iki {time}}few{Pakeisti į signalus tik # valandoms iki {time}}many{Pakeisti į signalus tik # valandos iki {time}}other{Pakeisti į signalus tik # valandų iki {time}}}"</string>
<string name="zen_mode_summary_alarms_only_by_time" msgid="8140619669703968810">"Pakeisti tik į signalus iki <xliff:g id="FORMATTEDTIME">%1$s</xliff:g>"</string>
<string name="zen_mode_summary_always" msgid="722093064250082317">"Pakeisti į pertraukimo nustatymą visam laikui"</string>
- <!-- no translation found for zen_mode_rename_title (8146882272966214558) -->
+ <string name="zen_mode_rename_title" msgid="8146882272966214558">"Redagavimo režimas"</string>
+ <string name="zen_mode_new_custom_title" msgid="321750898430776191">"Pridėti režimą"</string>
+ <string name="zen_mode_new_custom_default_name" msgid="2778307946775085105">"Tinkintas režimas"</string>
+ <string name="zen_mode_edit_name_hint" msgid="4584652062167540536">"Režimo pavadinimas"</string>
+ <string name="zen_mode_trigger_title_schedule_calendar" msgid="9206609438617550331">"Kalendoriaus įvykiai"</string>
+ <string name="zen_mode_trigger_title_bedtime" msgid="5086070900588489978">"Miego tvarkaraštis"</string>
+ <string name="zen_mode_trigger_title_driving" msgid="7890990983453164403">"Vairuojant"</string>
+ <string name="zen_mode_trigger_title_generic" msgid="601273385119550420">"Susieta su programa"</string>
+ <string name="zen_mode_trigger_summary_settings_in_app" msgid="4860667191183702601">"Informacija ir nustatymai programoje „<xliff:g id="APP_NAME">%1$s</xliff:g>“"</string>
+ <string name="zen_mode_trigger_summary_managed_by_app" msgid="8631011868193102098">"Tvarko „<xliff:g id="APP_NAME">%1$s</xliff:g>“"</string>
+ <string name="zen_mode_confirm_disable_title" msgid="1232297660775719796">"Išjungti režimą"</string>
+ <string name="zen_mode_confirm_disable_message" msgid="7315541221665718491">"Jei išjungsite šią funkciją, režimas nebeveiks, kaip numatyta, ir nustatymai bus paslėpti."</string>
+ <string name="zen_mode_action_disable" msgid="3552921561331044881">"Išjungti"</string>
+ <string name="zen_mode_confirm_enable_title" msgid="5683371335847448595">"Įgalinti režimą"</string>
+ <string name="zen_mode_confirm_enable_message" msgid="7017879133260011419">"Jei įgalinsite šią funkciją, režimas bus suaktyvintas automatiškai pagal tvarkaraštį."</string>
+ <string name="zen_mode_action_enable" msgid="1161480633223176531">"Įgalinti"</string>
+ <!-- no translation found for zen_mode_blurb_schedule_time (8223898702097484009) -->
<skip />
- <!-- no translation found for zen_mode_new_custom_title (321750898430776191) -->
+ <!-- no translation found for zen_mode_blurb_schedule_calendar (382177907856065945) -->
<skip />
- <!-- no translation found for zen_mode_new_custom_default_name (2778307946775085105) -->
+ <!-- no translation found for zen_mode_blurb_bedtime (6155075956151013457) -->
<skip />
- <!-- no translation found for zen_mode_edit_name_hint (4584652062167540536) -->
+ <!-- no translation found for zen_mode_blurb_driving (1316054379000667305) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_immersive (5884004861848687869) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_theater (2999237960059524225) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_managed (5473921634985032149) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_generic (3041601339807075625) -->
<skip />
<string name="warning_button_text" msgid="1274234338874005639">"Perspėjimas"</string>
<string name="suggestion_button_close" msgid="6865170855573283759">"Uždaryti"</string>
@@ -4849,9 +4860,8 @@
<string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"Akumuliatorius"</string>
<string name="settings_panel_title" msgid="346363079938069215">"Nustatymų skydelis"</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>
+ <!-- no translation found for enable_desktop_mode_on_secondary_display (2609567824593768780) -->
+ <skip />
<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>
@@ -5028,7 +5038,6 @@
<string name="default_active_sim_mobile_data" msgid="6798083892814045301">"mobiliojo ryšio duomenims"</string>
<string name="wifi_scan_notify_message" msgid="1331238142061476869">"Kad pagerintų įrenginio funkcijas, programos ir paslaugos vis tiek gali bet kada nuskaityti ieškodamos „Wi‑Fi“ tinklų, net jei „Wi‑Fi“ išjungtas. Tai gali būti naudojama siekiant pagerinti pagal vietovę teikiamas funkcijas ir paslaugas. Tai galite pakeisti „Wi-Fi“ nuskaitymo nustatymuose."</string>
<string name="wifi_scan_change" msgid="8438320311511852918">"Pakeisti"</string>
- <string name="preference_summary_default_combination" msgid="4643585915107796253">"<xliff:g id="STATE">%1$s</xliff:g> / <xliff:g id="NETWORKMODE">%2$s</xliff:g>"</string>
<string name="mobile_data_connection_active" msgid="2422223108911581552">"Prisijungta"</string>
<string name="mobile_data_temp_connection_active" msgid="3430470299756236413">"Laikinai prijungta"</string>
<string name="mobile_data_temp_using" msgid="5211002380149434155">"Laikinai naudojama „<xliff:g id="SUBNAME">%1$s</xliff:g>“"</string>
@@ -5174,9 +5183,11 @@
<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="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_enable_freeform_support" msgid="3697462756493543645">"Norint įgalinti laisvos formos langų palaikymą, būtina paleisti iš naujo."</string>
+ <!-- no translation found for reboot_dialog_override_desktop_mode (7480950772574354130) -->
+ <skip />
+ <!-- no translation found for reboot_dialog_enable_desktop_mode_on_secondary_display (1153621881052401924) -->
+ <skip />
<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>
@@ -5294,10 +5305,8 @@
<string name="show_captions_enabled" msgid="7089043007924626">"Įjungta"</string>
<string name="live_caption_disabled" msgid="3562035026547887366">"Išjungta"</string>
<string name="live_caption_enabled" msgid="5269360946200718949">"Įjungta"</string>
- <!-- no translation found for audio_seek_bar_state_left_first (8814986910920838972) -->
- <skip />
- <!-- no translation found for audio_seek_bar_state_right_first (1999368979633398876) -->
- <skip />
+ <string name="audio_seek_bar_state_left_first" msgid="8814986910920838972">"Garsas %1$d%% kairėje, %2$d%% dešinėje"</string>
+ <string name="audio_seek_bar_state_right_first" msgid="1999368979633398876">"Garsas %1$d%% dešinėje, %2$d%% kairėje"</string>
<string name="about_phone_device_name_warning" msgid="3243226572404472381">"Įrenginio pavadinimas matomas jūsų įdiegtoms programoms. Kai prisijungiate prie „Bluetooth“ įrenginių ar „Wi-FI“ tinklo arba nustatote „Wi-Fi“ viešosios interneto prieigos tašką, jį taip pat gali matyti kiti žmonės."</string>
<string name="grammatical_gender_title" msgid="8584242850477270828">"Gramatinė giminė"</string>
<string name="grammatical_gender_dialog_title" msgid="8754048592099871587">"Pasirinkite gramatinę giminę"</string>
@@ -5409,5 +5418,6 @@
<string name="audio_streams_main_page_password_dialog_join_button" msgid="2967747276379153408">"Klausyti srauto"</string>
<string name="audio_streams_main_page_qr_code_scanner_summary" msgid="5312980105735143360">"Nuskaitykite garso srauto QR kodą, kad galėtumėte klausyti naudodami „<xliff:g id="DEVICE_NAME">%1$s</xliff:g>“"</string>
<string name="audio_streams_main_page_password_dialog_cannot_edit" msgid="9020898619297520153">"Bendrinant negalima redaguoti slaptažodžio. Jei norite pakeisti slaptažodį, pirmiausia išjunkite garso įrašų bendrinimą."</string>
+ <string name="audio_streams_qr_code_scanner_label" msgid="8799703301071378034">"QR kodų skaitytuvas"</string>
<string name="homepage_search" msgid="6759334912284663559">"Nustatymų paieška"</string>
</resources>
diff --git a/res/values-lv/strings.xml b/res/values-lv/strings.xml
index 63a5961..6b11d8b 100644
--- a/res/values-lv/strings.xml
+++ b/res/values-lv/strings.xml
@@ -41,6 +41,8 @@
<string name="radioInfo_data_suspended" msgid="2001254415431299603">"Atlikts"</string>
<string name="radioInfo_unknown" msgid="2892562356748600367">"Nezināms"</string>
<string name="preview_pager_content_description" msgid="3762247188224576303">"Priekšskatījums"</string>
+ <!-- no translation found for qr_code_content_description (1852208464419291347) -->
+ <skip />
<string name="font_size_make_smaller_desc" msgid="4978038055549590140">"Samazināt"</string>
<string name="font_size_make_larger_desc" msgid="5583046033381722247">"Palielināt"</string>
<string name="stay_awake_on_fold_title" msgid="6590454679898134221">"Vienmēr"</string>
@@ -283,7 +285,7 @@
<string name="location_settings_summary_location_off" msgid="4797932754681162262">"Izslēgta"</string>
<string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{Ieslēgta/# lietotnei ir piekļuve atrašanās vietai.}zero{Ieslēgta/# lietotnēm ir piekļuve atrašanās vietai.}one{Ieslēgta/# lietotnei ir piekļuve atrašanās vietai.}other{Ieslēgta/# lietotnēm ir piekļuve atrašanās vietai.}}"</string>
<string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"Notiek ielāde…"</string>
- <string name="location_settings_footer_general" msgid="1040507068701188821">"Lietotnes, kurām ir atļauja noteikt tuvumā esošās ierīces, var noteikt pievienoto ierīču relatīvo pozīciju."</string>
+ <string name="location_settings_footer_general" msgid="3447585552176173502">"Lietotnes, kurām ir atļauja noteikt tuvumā esošās ierīces, var noteikt pievienoto ierīču relatīvo pozīciju."</string>
<string name="location_settings_footer_location_off" msgid="8568995909147566720">"Lietotnēm un pakalpojumiem nav atļaujas piekļūt atrašanās vietai. Jūsu ierīces atrašanās vietas datus joprojām var nosūtīt ārkārtas dienestiem, ja zvanīsiet vai sūtīsiet īsziņu uz ārkārtas numuru."</string>
<string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Uzzināt vairāk par atrašanās vietas iestatījumiem"</string>
<string name="location_settings_tooltip_text_for_chrome" msgid="5781821709250544575">"Lai to mainītu, dodieties uz ChromeOS sadaļu Iestatījumi > Drošība un konfidencialitāte > Konfidencialitātes vadīklas > Piekļuve atrašanās vietai"</string>
@@ -850,7 +852,6 @@
<string name="nfc_reboot_dialog_title" msgid="2033983438635768169">"Vai restartēt ierīci?"</string>
<string name="nfc_reboot_dialog_message" msgid="4929353168157966992">"Detalizētu NFC datu reģistrēšana ir paredzēta tikai ar izstrādi saistītiem nolūkiem. Papildu NFC dati tiek iekļauti kļūdu pārskatos, un tajos var būt ietverta privāta informācija. Lai mainītu šo iestatījumu, restartējiet ierīci."</string>
<string name="nfc_reboot_dialog_confirm" msgid="4769763632008584567">"Restartēt"</string>
- <string name="keywords_external_display" msgid="4181375057920134909">"spoguļot, ārējais displejs, izšķirtspēja"</string>
<string name="external_display_on" msgid="2560104443500154333">"Ieslēgts"</string>
<string name="external_display_off" msgid="5634413756025351374">"Izslēgts"</string>
<string name="external_display_settings_title" msgid="6256884595821605779">"Ārējais displejs"</string>
@@ -1918,6 +1919,8 @@
<string name="slow_keys_summary" msgid="1784371292745423292">"Laiks, kas nepieciešams, lai aktivizētu nospiestu taustiņu, tiek pielāgots uz <xliff:g id="SLOW_KEYS_THRESHOLD">%1$d</xliff:g> ms."</string>
<string name="sticky_keys" msgid="7317317044898161747">"Taustiņu ķēde"</string>
<string name="sticky_keys_summary" msgid="1844953803625480623">"Izmantojot īsinājumtaustiņus, vienlaikus nospiediet tikai vienu taustiņu, nevis turiet nospiestus vairākus taustiņus."</string>
+ <string name="mouse_keys" msgid="6237254627808525540">"Peles taustiņi"</string>
+ <string name="mouse_keys_summary" msgid="2396247040177734245">"Izmantojiet fizisko tastatūru, lai kontrolētu peli."</string>
<string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"Īsinājumtaustiņi"</string>
<string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"Rādīt īsinājumtaustiņu sarakstu"</string>
<string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"Tastatūras un rīki darba profilā"</string>
@@ -1942,14 +1945,10 @@
<string name="pointer_fill_style_yellow_button" msgid="5025969961559379024">"Mainīt aizpildījumu uz dzeltenu"</string>
<string name="pointer_fill_style_pink_button" msgid="4106218142489635673">"Mainīt aizpildījuma stilu uz rozā"</string>
<string name="pointer_fill_style_blue_button" msgid="5594958078854032785">"Mainīt aizpildījuma stilu uz zilu"</string>
- <!-- no translation found for pointer_stroke_style (1886986630216050665) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_white (673686194443825383) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_black (4655806167067437330) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_none (8953927511729800247) -->
- <skip />
+ <string name="pointer_stroke_style" msgid="1886986630216050665">"Rādītāja vilkuma stils"</string>
+ <string name="pointer_stroke_style_name_white" msgid="673686194443825383">"Balts"</string>
+ <string name="pointer_stroke_style_name_black" msgid="4655806167067437330">"Melns"</string>
+ <string name="pointer_stroke_style_name_none" msgid="8953927511729800247">"Nav"</string>
<string name="trackpad_touch_gesture" msgid="8641725062131922497">"Apgūt skārienpaliktņa žestus"</string>
<string name="keywords_touchpad" msgid="8159846254066666032">"skārienpaliktnis, pele, kursors, ritināt, vilkt, noklikšķināt ar peles labo pogu, noklikšķināt, rādītājs"</string>
<string name="keywords_trackpad_bottom_right_tap" msgid="1285062446073929305">"noklikšķināt ar peles labo pogu, pieskarties"</string>
@@ -2179,8 +2178,6 @@
<string name="accessibility_shortcut_edit_dialog_summary_floating_button" msgid="6266489864614886247">"Pieskarieties peldošajai pogai"</string>
<string name="accessibility_shortcut_edit_dialog_title_software_by_gesture" msgid="4775049370625630546">"Pieejamības žests"</string>
<string name="accessibility_shortcut_edit_dialog_summary_software" msgid="8315934725362849788">"Ekrāna apakšdaļā pieskarieties pieejamības pogai <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g>. Lai pārslēgtu funkcijas, pieskarieties pieejamības pogai un turiet to."</string>
- <string name="accessibility_shortcut_edit_dialog_summary_software_gesture" msgid="8292555254353761635">"Velciet ar 2 pirkstiem augšup no ekrāna apakšdaļas.\n\nLai pārslēgtu funkcijas, velciet ar 2 pirkstiem augšup un turiet."</string>
- <string name="accessibility_shortcut_edit_dialog_summary_software_gesture_talkback" msgid="84483464524360845">"Velciet ar 3 pirkstiem augšup no ekrāna apakšdaļas.\n\nLai pārslēgtu funkcijas, velciet ar 3 pirkstiem augšup un turiet."</string>
<string name="accessibility_shortcut_edit_dialog_summary_gesture" msgid="2081123009255579884">"{count,plural, =1{Velciet augšup no ekrāna apakšdaļas. Lai pārslēgtu funkcijas, velciet augšup un turiet.}zero{Velciet augšup ar # pirkstiem no ekrāna apakšdaļas. Lai pārslēgtu funkcijas, velciet augšup ar # pirkstiem un turiet.}one{Velciet augšup ar # pirkstu no ekrāna apakšdaļas. Lai pārslēgtu funkcijas, velciet augšup ar # pirkstu un turiet.}other{Velciet augšup ar # pirkstiem no ekrāna apakšdaļas. Lai pārslēgtu funkcijas, velciet augšup ar # pirkstiem un turiet.}}"</string>
<string name="accessibility_shortcut_edit_dialog_summary_software_floating" msgid="4459254227203203324"><annotation id="link">"Citas opcijas"</annotation></string>
<string name="footer_learn_more_content_description" msgid="8843798273152131341">"Plašāka informācija par: <xliff:g id="SERVICE">%1$s</xliff:g>"</string>
@@ -2191,16 +2188,12 @@
<string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="844089763968552142">"Skaļuma pogas"</string>
<string name="accessibility_shortcut_hardware_keyword" msgid="2483152542320987022">"skaļuma pogas"</string>
<string name="accessibility_shortcut_edit_dialog_summary_hardware" msgid="2503134386397991634">"Nospiediet un turiet abas skaļuma pogas"</string>
- <string name="accessibility_shortcut_edit_dialog_title_two_finger_double_tap" msgid="2271778556854020996">"Dubultskāriens ekrānam ar diviem pirkstiem"</string>
<string name="accessibility_shortcut_edit_screen_title_two_finger_double_tap" msgid="8952595692906527694">"Dubultskāriens ar %1$d pirkstiem"</string>
<string name="accessibility_shortcut_edit_screen_summary_two_finger_double_tap" msgid="385404127425496362">"Ātri pieskarieties ekrānam divas reizes ar %1$d pirkstiem."</string>
<string name="accessibility_shortcut_edit_screen_title_triple_tap" msgid="3314488747597058942">"Trīskāršais skāriens"</string>
<string name="accessibility_shortcut_edit_screen_summary_triple_tap" msgid="4839204951599629871">"Ātri pieskarieties ekrānam %1$d reizes. Var tikt palēnināta ierīces darbība."</string>
<string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="6271718715836961167">"Dubultskāriens ar %1$d pirkstiem"</string>
- <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"Ar diviem pirkstiem {0,number,integer} reizes ātri pieskarieties ekrānam."</string>
- <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"Pieskaršanās ekrānam 3 reizes"</string>
<string name="accessibility_shortcut_triple_tap_keyword" msgid="5359347130888464334">"trīskāršais skāriens"</string>
- <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"Ātri pieskarieties ekrānam {0,number,integer} reizes. Šī saīsne var palēnināt ierīces darbību."</string>
<string name="accessibility_shortcut_edit_dialog_title_advance" msgid="4567868630655591506">"Papildu"</string>
<string name="accessibility_screen_magnification_navbar_configuration_warning" msgid="266736851606791552">"Pieejamības pogai ir iestatīts pakalpojums <xliff:g id="SERVICE">%1$s</xliff:g>. Lai izmantotu palielināšanu, pieskarieties pieejamības pogai un pēc tam atlasiet palielināšanu."</string>
<string name="accessibility_screen_magnification_gesture_navigation_warning" msgid="991017769735632046">"Pieejamības žestam ir iestatīts <xliff:g id="SERVICE">%1$s</xliff:g>. Lai izmantotu palielinājumu, velciet ar diviem pirkstiem no ekrāna apakšdaļas un turiet. Pēc tam atlasiet palielinājumu."</string>
@@ -2369,6 +2362,7 @@
<string name="daltonizer_mode_tritanomaly_title" msgid="2278786218762602022">"Zila/dzeltena krāsa"</string>
<string name="daltonizer_mode_grayscale_title" msgid="152005391387952588">"Pelēktoņu iestatījums"</string>
<string name="daltonizer_saturation_title" msgid="2999486412114963068">"Intensitāte"</string>
+ <string name="daltonizer_saturation_unavailable_summary" msgid="8319753055567798775">"Nav pieejams pelēktoņu režīmā vai tad, ja ir atspējota krāsu korekcija."</string>
<string name="daltonizer_mode_deuteranomaly_summary" msgid="2117727423019598455">"Vāja jutība pret zaļo krāsu, deiteranomālija"</string>
<string name="daltonizer_mode_protanomaly_summary" msgid="4617032854982040748">"Vāja jutība pret sarkano krāsu, protanomālija"</string>
<string name="daltonizer_mode_tritanomaly_summary" msgid="2428218320118180070">"Tritanomālija"</string>
@@ -2418,15 +2412,8 @@
<string name="color_cyan" msgid="4341758639597035927">"Ciānzila"</string>
<string name="color_yellow" msgid="5957551912912679058">"Dzeltena"</string>
<string name="color_magenta" msgid="8943538189219528423">"Fuksīnsarkana"</string>
- <string name="enable_service_title" msgid="7231533866953706788">"Vai atļaut pakalpojumam <xliff:g id="SERVICE">%1$s</xliff:g> pilnībā kontrolēt jūsu ierīci?"</string>
<string name="capabilities_list_title" msgid="1225853611983394386">"Pakalpojumam <xliff:g id="SERVICE">%1$s</xliff:g> nepieciešams:"</string>
<string name="touch_filtered_warning" msgid="4225815157460318241">"Lietotne Iestatījumi nevar verificēt jūsu atbildi, jo cita lietotne aizsedz atļaujas pieprasījumu."</string>
- <string name="accessibility_service_warning" msgid="6779187188736432618">"Pakalpojums <xliff:g id="SERVICE">%1$s</xliff:g> pieprasa pilnīgu šīs ierīces kontroli. Pakalpojums var piekļūt ekrānā redzamajai informācijai un veikt darbības to lietotāju vārdā, kuriem ir īpašas vajadzības. Šāda līmeņa kontrole vairākumam lietotņu nav nepieciešama."</string>
- <string name="accessibility_service_warning_description" msgid="6573203795976134751">"Pilnīga kontrole ir piemērota lietotnēm, kas nepieciešamas lietotājiem ar īpašām vajadzībām, taču ne lielākajai daļai lietotņu."</string>
- <string name="accessibility_service_screen_control_title" msgid="324795030658109870">"Ekrāna skatīšana un pārvaldīšana"</string>
- <string name="accessibility_service_screen_control_description" msgid="8431940515157990426">"Tā var nolasīt visu ekrānā esošo saturu un attēlot saturu citām lietotnēm."</string>
- <string name="accessibility_service_action_perform_title" msgid="1449360056585337833">"Darbību skatīšana un veikšana"</string>
- <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"Tā var izsekot jūsu mijiedarbību ar lietotni vai aparatūras sensoru un mijiedarboties ar lietotnēm jūsu vārdā."</string>
<string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Atļaut"</string>
<string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Neatļaut"</string>
<string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Izslēgt"</string>
@@ -3368,10 +3355,8 @@
<string name="zen_mode_automation_settings_title" msgid="3709324184191870926">"Grafiki"</string>
<string name="zen_mode_delete_automatic_rules" msgid="5020468289267191765">"Grafiku dzēšana"</string>
<string name="zen_mode_schedule_delete" msgid="5383420576833765114">"Dzēst"</string>
- <!-- no translation found for zen_mode_menu_rename_mode (4681802125016390837) -->
- <skip />
- <!-- no translation found for zen_mode_menu_delete_mode (5380084696402157428) -->
- <skip />
+ <string name="zen_mode_menu_rename_mode" msgid="4681802125016390837">"Pārdēvēt"</string>
+ <string name="zen_mode_menu_delete_mode" msgid="5380084696402157428">"Dzēst"</string>
<string name="zen_mode_delete_mode_confirmation" msgid="7594340592051947392">"Vai dzēst režīmu “<xliff:g id="MODE">%1$s</xliff:g>”?"</string>
<string name="zen_mode_rule_name_edit" msgid="1053237022416700481">"Rediģēt"</string>
<string name="zen_mode_automation_settings_page_title" msgid="6217433860514433311">"Grafiki"</string>
@@ -3395,8 +3380,7 @@
<string name="zen_mode_visual_signals_settings_subtitle" msgid="7433077540895876672">"Vizuālu signālu atļaušana"</string>
<string name="mode_interruption_filter_title" msgid="3343846700214702347">"Ilglaicīga koncentrēšanās"</string>
<string name="mode_device_effects_title" msgid="5857008332618433744">"Papildu darbības"</string>
- <!-- no translation found for modes_sound_summary_off (6972648204528227879) -->
- <skip />
+ <string name="modes_sound_summary_off" msgid="6972648204528227879">"{count,plural, =0{Izslēgts}=1{Izslēgts; viens režīms var tikt ieslēgts automātiski}zero{Izslēgts; # režīmi var tikt ieslēgti automātiski}one{Izslēgts; # režīms var tikt ieslēgts automātiski}other{Izslēgts; # režīmi var tikt ieslēgti automātiski}}"</string>
<string name="mode_display_settings_title" msgid="8132825978346535472">"Attēlojuma iestatījumi"</string>
<string name="mode_display_options_section" msgid="5151597748243866532">"Attēlojuma iespējas"</string>
<string name="mode_grayscale_title" msgid="6027553257331235461">"Pelēktoņu iestatījums"</string>
@@ -3659,9 +3643,9 @@
<string name="notif_listener_not_migrated" msgid="6265206376374278226">"Šajā lietotnē netiek atbalstīti izvērsti iestatījumi."</string>
<string name="notif_listener_more_settings" msgid="1348409392307208921">"Citi iestatījumi"</string>
<string name="notif_listener_more_settings_desc" msgid="7995492074281663658">"Lietotnē ir pieejami citi iestatījumi"</string>
- <string name="notification_polite_title" msgid="4737150709382859870">"Adaptīvie paziņojumi"</string>
- <string name="notification_polite_main_control_title" msgid="7267191551379543859">"Izmantot adaptīvos paziņojumus"</string>
- <string name="notification_polite_description" msgid="7749280535620291610">"Ja īsā laika posmā saņemsiet daudz paziņojumu, tālrunis samazinās skaļumu un uznirstošo elementu rādīšanu ekrānā līdz pat divām minūtēm. Saņemot zvanus, signālus un prioritārās sarunas, tālrunī joprojām tiks aktivizēta vibrācija, atskaņots signāls vai ekrānā parādīts paziņojums. Visus paziņojumus ir viegli atrast, pavelkot lejup no ekrāna augšdaļas."</string>
+ <string name="notification_polite_title" msgid="6121016426991791557">"Nogaidīšanas periods paziņojumiem"</string>
+ <string name="notification_polite_main_control_title" msgid="5812529809151927149">"Izmantot nogaidīšanas periodu paziņojumiem"</string>
+ <string name="notification_polite_description" msgid="5497748284893832854">"Ja īsā laika posmā saņemsiet daudz paziņojumu, ierīce samazinās skaļumu un brīdinājumu rādīšanu līdz pat divām minūtēm. Tas neattiecas uz zvaniem, signāliem un prioritārām sarunām. \n\nNogaidīšanas perioda laikā saņemtos paziņojumus var atrast, pavelkot lejup no ekrāna augšdaļas."</string>
<string name="notification_polite_work" msgid="8823596456640216391">"Lietot darba profiliem"</string>
<string name="notification_polite_work_summary" msgid="5014189280132951378">"Lietot darba profila lietotnēm"</string>
<string name="vr_listeners_title" msgid="4960357292472540964">"VR palīga pakalpojumi"</string>
@@ -3818,7 +3802,9 @@
<string name="zen_mode_apps_priority_apps" msgid="7386196048313716076">"Atlasītās lietotnes"</string>
<string name="zen_mode_apps_none_apps" msgid="2493642312793604327">"Neviena"</string>
<string name="zen_mode_apps_subtext" msgid="1764211974662012877">"{count,plural,offset:2 =0{Nevienai lietotnei nav atļauts pārtraukt}=1{Lietotnei {app_1} ir atļauts pārtraukt}=2{Lietotnēm {app_1} un {app_2} ir atļauts pārtraukt}=3{Lietotnēm {app_1}, {app_2} un {app_3} ir atļauts pārtraukt}zero{Lietotnēm {app_1} un {app_2}, kā arī vēl # lietotnēm ir atļauts pārtraukt}one{Lietotnēm {app_1} un {app_2}, kā arī vēl # lietotnei ir atļauts pārtraukt}other{Lietotnēm {app_1} un {app_2}, kā arī vēl # lietotnēm ir atļauts pārtraukt}}"</string>
+ <string name="zen_mode_apps_work_app" msgid="8528767938316361588">"<xliff:g id="APP_LABEL">%s</xliff:g> (darbam)"</string>
<string name="zen_mode_apps_calculating" msgid="5420121396943539286">"Notiek aprēķināšana…"</string>
+ <string name="zen_mode_plus_n_items" msgid="6136713354369243421">"+<xliff:g id="NUMBER">%d</xliff:g>"</string>
<string name="zen_mode_bypassing_apps" msgid="625309443389126481">"Atļaut lietotnēm ignorēt režīmu “Netraucēt”"</string>
<string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"Lietotnes, kas var pārtraukt"</string>
<string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"Citu lietotņu atlase"</string>
@@ -3836,6 +3822,7 @@
<string name="zen_mode_sounds_none" msgid="6557474361948269420">"Nekam nav atļauts pārtraukt"</string>
<string name="zen_mode_people_none" msgid="4613147461974255046">"Nevienai personai nav atļauts pārtraukt"</string>
<string name="zen_mode_people_some" msgid="9101872681298810281">"Dažām personām ir atļauts pārtraukt"</string>
+ <string name="zen_mode_people_repeat_callers" msgid="4499084111069828761">"Atkārtotiem zvanītājiem ir atļauts pārtraukt"</string>
<string name="zen_mode_people_all" msgid="311036110283015205">"Visām personām ir atļauts pārtraukt"</string>
<string name="zen_mode_repeat_callers" msgid="2270356100287792138">"Atkārtoti zvani"</string>
<string name="zen_mode_repeat_callers_title" msgid="8016699240338264781">"Atkārtotu zvanu atļaušana"</string>
@@ -3855,20 +3842,44 @@
<string name="zen_mode_summary_alarms_only_by_hour" msgid="7400910210950788163">"{count,plural, =1{Vienu stundu pāriet uz režīmu “Tikai signāli” (līdz: {time})}zero{# stundas pāriet uz režīmu “Tikai signāli” (līdz: {time})}one{# stundu pāriet uz režīmu “Tikai signāli” (līdz: {time})}other{# stundas pāriet uz režīmu “Tikai signāli” (līdz: {time})}}"</string>
<string name="zen_mode_summary_alarms_only_by_time" msgid="8140619669703968810">"Pāriet uz režīmu “Tikai signāli” līdz plkst. <xliff:g id="FORMATTEDTIME">%1$s</xliff:g>"</string>
<string name="zen_mode_summary_always" msgid="722093064250082317">"Pāriet uz “Vienmēr pārtraukt”"</string>
- <!-- no translation found for zen_mode_rename_title (8146882272966214558) -->
+ <string name="zen_mode_rename_title" msgid="8146882272966214558">"Režīma rediģēšana"</string>
+ <string name="zen_mode_new_custom_title" msgid="321750898430776191">"Režīma pievienošana"</string>
+ <string name="zen_mode_new_custom_default_name" msgid="2778307946775085105">"Pielāgots režīms"</string>
+ <string name="zen_mode_edit_name_hint" msgid="4584652062167540536">"Režīma nosaukums"</string>
+ <string name="zen_mode_trigger_title_schedule_calendar" msgid="9206609438617550331">"Kalendāra pasākumi"</string>
+ <string name="zen_mode_trigger_title_bedtime" msgid="5086070900588489978">"Miega grafiks"</string>
+ <string name="zen_mode_trigger_title_driving" msgid="7890990983453164403">"Braukšanas laikā"</string>
+ <string name="zen_mode_trigger_title_generic" msgid="601273385119550420">"Saistīti ar lietotni"</string>
+ <string name="zen_mode_trigger_summary_settings_in_app" msgid="4860667191183702601">"Informācija un iestatījumi lietotnē <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+ <string name="zen_mode_trigger_summary_managed_by_app" msgid="8631011868193102098">"Pārvalda <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+ <string name="zen_mode_confirm_disable_title" msgid="1232297660775719796">"Režīma atspējošana"</string>
+ <string name="zen_mode_confirm_disable_message" msgid="7315541221665718491">"Ja atspējosiet šo funkciju, režīms vairs nedarbosies, kā paredzēts, un tā iestatījumi tiks paslēpti."</string>
+ <string name="zen_mode_action_disable" msgid="3552921561331044881">"Atspējot"</string>
+ <string name="zen_mode_confirm_enable_title" msgid="5683371335847448595">"Režīma iespējošana"</string>
+ <string name="zen_mode_confirm_enable_message" msgid="7017879133260011419">"Ja iespējosiet šo funkciju, režīms tiks aktivizēts automātiski atbilstoši tā grafikam."</string>
+ <string name="zen_mode_action_enable" msgid="1161480633223176531">"Iespējot"</string>
+ <!-- no translation found for zen_mode_blurb_schedule_time (8223898702097484009) -->
<skip />
- <!-- no translation found for zen_mode_new_custom_title (321750898430776191) -->
+ <!-- no translation found for zen_mode_blurb_schedule_calendar (382177907856065945) -->
<skip />
- <!-- no translation found for zen_mode_new_custom_default_name (2778307946775085105) -->
+ <!-- no translation found for zen_mode_blurb_bedtime (6155075956151013457) -->
<skip />
- <!-- no translation found for zen_mode_edit_name_hint (4584652062167540536) -->
+ <!-- no translation found for zen_mode_blurb_driving (1316054379000667305) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_immersive (5884004861848687869) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_theater (2999237960059524225) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_managed (5473921634985032149) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_generic (3041601339807075625) -->
<skip />
<string name="warning_button_text" msgid="1274234338874005639">"Brīdinājums"</string>
<string name="suggestion_button_close" msgid="6865170855573283759">"Aizvērt"</string>
<string name="device_feedback" msgid="5351614458411688608">"Sūtīt atsauksmes par šo ierīci"</string>
<string name="restr_pin_enter_admin_pin" msgid="4435410646541671918">"Ievadiet administratora PIN"</string>
<string name="switch_on_text" msgid="5664542327776075105">"Ieslēgts"</string>
- <string name="switch_off_text" msgid="1315547447393646667">"Izslēgts"</string>
+ <string name="switch_off_text" msgid="1315547447393646667">"Izslēgta"</string>
<string name="nfc_setting_on" msgid="7701896496026725772">"Ieslēgti"</string>
<string name="nfc_setting_off" msgid="7142103438532732309">"Izslēgti"</string>
<string name="screen_pinning_switch_on_text" msgid="6971386830247542552">"Ieslēgta"</string>
@@ -4849,9 +4860,8 @@
<string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"Akumulators"</string>
<string name="settings_panel_title" msgid="346363079938069215">"Iestatījumu panelis"</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>
+ <!-- no translation found for enable_desktop_mode_on_secondary_display (2609567824593768780) -->
+ <skip />
<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>
@@ -5027,7 +5037,6 @@
<string name="default_active_sim_mobile_data" msgid="6798083892814045301">"mobilie dati"</string>
<string name="wifi_scan_notify_message" msgid="1331238142061476869">"Lai uzlabotu ierīces lietošanas iespējas, lietotnes un pakalpojumi joprojām varēs meklēt Wi-Fi tīklus jebkurā laikā, pat ja Wi-Fi būs izslēgts. Šo iestatījumu var izmantot, piemēram, lai uzlabotu ar atrašanās vietu saistītas funkcijas un pakalpojumus. Varat to mainīt Wi-Fi meklēšanas iestatījumos."</string>
<string name="wifi_scan_change" msgid="8438320311511852918">"Mainīt"</string>
- <string name="preference_summary_default_combination" msgid="4643585915107796253">"<xliff:g id="STATE">%1$s</xliff:g>/<xliff:g id="NETWORKMODE">%2$s</xliff:g>"</string>
<string name="mobile_data_connection_active" msgid="2422223108911581552">"Ir izveidots savienojums"</string>
<string name="mobile_data_temp_connection_active" msgid="3430470299756236413">"Īslaicīgi izveidots savienojums"</string>
<string name="mobile_data_temp_using" msgid="5211002380149434155">"Īslaicīgi tiek izmantots pakalpojums <xliff:g id="SUBNAME">%1$s</xliff:g>"</string>
@@ -5173,9 +5182,11 @@
<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="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_enable_freeform_support" msgid="3697462756493543645">"Lai iespējotu brīvās formas logu atbalstu, nepieciešama atkārtota palaišana."</string>
+ <!-- no translation found for reboot_dialog_override_desktop_mode (7480950772574354130) -->
+ <skip />
+ <!-- no translation found for reboot_dialog_enable_desktop_mode_on_secondary_display (1153621881052401924) -->
+ <skip />
<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>
@@ -5293,10 +5304,8 @@
<string name="show_captions_enabled" msgid="7089043007924626">"Ieslēgti"</string>
<string name="live_caption_disabled" msgid="3562035026547887366">"Izslēgti"</string>
<string name="live_caption_enabled" msgid="5269360946200718949">"Ieslēgti"</string>
- <!-- no translation found for audio_seek_bar_state_left_first (8814986910920838972) -->
- <skip />
- <!-- no translation found for audio_seek_bar_state_right_first (1999368979633398876) -->
- <skip />
+ <string name="audio_seek_bar_state_left_first" msgid="8814986910920838972">"Audio: %1$d%% — pa kreisi, %2$d%% — pa labi"</string>
+ <string name="audio_seek_bar_state_right_first" msgid="1999368979633398876">"Audio: %1$d%% — pa labi, %2$d%% — pa kreisi"</string>
<string name="about_phone_device_name_warning" msgid="3243226572404472381">"Jūsu ierīces nosaukums ir redzams jūsu instalētajām lietotnēm. Tas var būt redzams arī citām personām, ja izveidosiet savienojumu ar Bluetooth ierīcēm, Wi-Fi tīklu vai iestatīsiet Wi-Fi tīklāju."</string>
<string name="grammatical_gender_title" msgid="8584242850477270828">"Gramatiskā dzimte"</string>
<string name="grammatical_gender_dialog_title" msgid="8754048592099871587">"Atlasiet gramatisko dzimti"</string>
@@ -5408,5 +5417,6 @@
<string name="audio_streams_main_page_password_dialog_join_button" msgid="2967747276379153408">"Klausīties straumi"</string>
<string name="audio_streams_main_page_qr_code_scanner_summary" msgid="5312980105735143360">"Skenējiet audio straumes kvadrātkodu, lai to klausītos ierīcē <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
<string name="audio_streams_main_page_password_dialog_cannot_edit" msgid="9020898619297520153">"Kopīgošanas laikā paroli nevar rediģēt. Lai mainītu paroli, vispirms izslēdziet audio kopīgošanu."</string>
+ <string name="audio_streams_qr_code_scanner_label" msgid="8799703301071378034">"Kvadrātkoda skeneris"</string>
<string name="homepage_search" msgid="6759334912284663559">"Meklēšanas iestatījumi"</string>
</resources>
diff --git a/res/values-mk/strings.xml b/res/values-mk/strings.xml
index a897155..8084881 100644
--- a/res/values-mk/strings.xml
+++ b/res/values-mk/strings.xml
@@ -41,6 +41,8 @@
<string name="radioInfo_data_suspended" msgid="2001254415431299603">"Суспендирани"</string>
<string name="radioInfo_unknown" msgid="2892562356748600367">"Непознато"</string>
<string name="preview_pager_content_description" msgid="3762247188224576303">"Преглед"</string>
+ <!-- no translation found for qr_code_content_description (1852208464419291347) -->
+ <skip />
<string name="font_size_make_smaller_desc" msgid="4978038055549590140">"Намали"</string>
<string name="font_size_make_larger_desc" msgid="5583046033381722247">"Зголеми"</string>
<string name="stay_awake_on_fold_title" msgid="6590454679898134221">"Секогаш"</string>
@@ -283,7 +285,7 @@
<string name="location_settings_summary_location_off" msgid="4797932754681162262">"Исклучено"</string>
<string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{Вклучено/# апликација има пристап до локацијата}one{Вклучено/# апликација имаат пристап до локацијата}other{Вклучено/# апликации имаат пристап до локацијата}}"</string>
<string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"Се вчитува…"</string>
- <string name="location_settings_footer_general" msgid="1040507068701188821">"Апликациите со дозвола за пристап до уредите во близина може да ја утврдуваат релативната положба на поврзаните уреди."</string>
+ <string name="location_settings_footer_general" msgid="3447585552176173502">"Апликациите со дозвола за уреди во близина може да ја одредат релативната положба на поврзаните уреди."</string>
<string name="location_settings_footer_location_off" msgid="8568995909147566720">"Пристапот до локацијата е исклучен за апликации и услуги. Сепак, можно е локацијата на уредот да се испрати до службите за спасување во итни случаи кога ќе ги повикате или кога ќе испратите порака на број за итни случаи."</string>
<string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Дознајте повеќе за „Поставките за локација“"</string>
<string name="location_settings_tooltip_text_for_chrome" msgid="5781821709250544575">"За да промените, одете во „Поставките за ChromeOS > Приватност и безбедност > Контроли на приватноста > Пристап до локацијата“"</string>
@@ -850,7 +852,6 @@
<string name="nfc_reboot_dialog_title" msgid="2033983438635768169">"Да се рестартира уредот?"</string>
<string name="nfc_reboot_dialog_message" msgid="4929353168157966992">"Деталното евидентирање на NFC е наменето само за развојни цели. Дополнителни податоци од NFC се вклучени во извештаите за грешки, коишто може да содржат приватни податоци. Рестартирајте го уредов за да ја промените оваа поставка."</string>
<string name="nfc_reboot_dialog_confirm" msgid="4769763632008584567">"Рестартирај"</string>
- <string name="keywords_external_display" msgid="4181375057920134909">"отсликува, надворешен екран, поврзан екран, USB за екран, резолуција, ротација"</string>
<string name="external_display_on" msgid="2560104443500154333">"Вклучено"</string>
<string name="external_display_off" msgid="5634413756025351374">"Исклучено"</string>
<string name="external_display_settings_title" msgid="6256884595821605779">"Надворешен екран"</string>
@@ -1918,6 +1919,8 @@
<string name="slow_keys_summary" msgid="1784371292745423292">"Времето за активирање по притискање копче го приспособува на <xliff:g id="SLOW_KEYS_THRESHOLD">%1$d</xliff:g> ms"</string>
<string name="sticky_keys" msgid="7317317044898161747">"Лепливи копчиња"</string>
<string name="sticky_keys_summary" msgid="1844953803625480623">"Притискајте ги копчињата за кратенки едно по едно наместо да ги држите копчињата притиснати заедно"</string>
+ <string name="mouse_keys" msgid="6237254627808525540">"Копчиња на глувчето"</string>
+ <string name="mouse_keys_summary" msgid="2396247040177734245">"Користете ја физичката тастатура за да го контролирате глувчето."</string>
<string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"Кратенки на тастатурата"</string>
<string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"Прикажи список со кратенки"</string>
<string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"Тастатури и алатки за работниот профил"</string>
@@ -1942,14 +1945,10 @@
<string name="pointer_fill_style_yellow_button" msgid="5025969961559379024">"Промена на стил. на покаж. во жолт"</string>
<string name="pointer_fill_style_pink_button" msgid="4106218142489635673">"Промена на стил. на покаж. во розов"</string>
<string name="pointer_fill_style_blue_button" msgid="5594958078854032785">"Промена на стил. на покаж. во син"</string>
- <!-- no translation found for pointer_stroke_style (1886986630216050665) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_white (673686194443825383) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_black (4655806167067437330) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_none (8953927511729800247) -->
- <skip />
+ <string name="pointer_stroke_style" msgid="1886986630216050665">"Стил на потег со покажувачот"</string>
+ <string name="pointer_stroke_style_name_white" msgid="673686194443825383">"Бела"</string>
+ <string name="pointer_stroke_style_name_black" msgid="4655806167067437330">"Црна"</string>
+ <string name="pointer_stroke_style_name_none" msgid="8953927511729800247">"Нема"</string>
<string name="trackpad_touch_gesture" msgid="8641725062131922497">"Научете движења за подлога за допир"</string>
<string name="keywords_touchpad" msgid="8159846254066666032">"подлога на допир, допирна подлога, глувче, курсор, лизгање, повлекување, кликнување со десното копче, клик, покажувач"</string>
<string name="keywords_trackpad_bottom_right_tap" msgid="1285062446073929305">"кликнување со десното копче, допир"</string>
@@ -2127,7 +2126,7 @@
<string name="accessibility_screen_magnification_state_navbar_gesture" msgid="8067042663897802231">"Зголемете со кратенка и троен допир"</string>
<string name="accessibility_introduction_title" msgid="8834950581512452348">"За <xliff:g id="SERVICE">%1$s</xliff:g>"</string>
<string name="accessibility_text_reading_options_title" msgid="3224648909213325563">"Големина на приказ и текст"</string>
- <string name="accessibility_text_reading_options_suggestion_title" msgid="2492155642665312733">"Променете како да се прикажува текстот"</string>
+ <string name="accessibility_text_reading_options_suggestion_title" msgid="2492155642665312733">"Променете како се прикажува текстот"</string>
<string name="accessibility_text_reading_preview_mail_subject" msgid="4597374768612733616">"Предмет: дизајни на балони на топол воздух"</string>
<string name="accessibility_text_reading_preview_mail_from" msgid="1797499780365288020">"Од: Бил"</string>
<string name="accessibility_text_reading_preview_mail_content" msgid="8078152365771951802">"Добро утро!\n\nСамо сакав да проверам како оди со дизајните. Дали ќе бидат готови пред да почнеме да ги правиме новите балони?"</string>
@@ -2179,8 +2178,6 @@
<string name="accessibility_shortcut_edit_dialog_summary_floating_button" msgid="6266489864614886247">"Допрете го лебдечкото копче"</string>
<string name="accessibility_shortcut_edit_dialog_title_software_by_gesture" msgid="4775049370625630546">"Движење за пристапност"</string>
<string name="accessibility_shortcut_edit_dialog_summary_software" msgid="8315934725362849788">"Допрете го копчето за пристапност <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g> во долниот дел на екранот. За префрлање меѓу функциите, допрете и задржете го копчето за пристапност."</string>
- <string name="accessibility_shortcut_edit_dialog_summary_software_gesture" msgid="8292555254353761635">"Повлечете нагоре од дното на екранот со два прста.\n\nЗа да се префрлите на друга функција, повлечете нагоре со два прста и задржете."</string>
- <string name="accessibility_shortcut_edit_dialog_summary_software_gesture_talkback" msgid="84483464524360845">"Повлечете нагоре од дното на екранот со три прста.\n\nЗа префрлање помеѓу функциите, повлечете нагоре со три прста и задржете."</string>
<string name="accessibility_shortcut_edit_dialog_summary_gesture" msgid="2081123009255579884">"{count,plural, =1{Повлечете нагоре од долниот дел на екранот. За префрлање меѓу функциите, повлечете нагоре и задржете.}one{Повлечете нагоре со # прст од долниот дел на екранот. За префрлање меѓу функциите, повлечете нагоре со # прст и задржете.}other{Повлечете нагоре со # прста од долниот дел на екранот. За префрлање меѓу функциите, повлечете нагоре со # прста и задржете.}}"</string>
<string name="accessibility_shortcut_edit_dialog_summary_software_floating" msgid="4459254227203203324"><annotation id="link">"Повеќе опции"</annotation></string>
<string name="footer_learn_more_content_description" msgid="8843798273152131341">"Дознајте повеќе за <xliff:g id="SERVICE">%1$s</xliff:g>"</string>
@@ -2191,16 +2188,12 @@
<string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="844089763968552142">"Копчиња за јачина на звук"</string>
<string name="accessibility_shortcut_hardware_keyword" msgid="2483152542320987022">"копчиња за јачина на звук"</string>
<string name="accessibility_shortcut_edit_dialog_summary_hardware" msgid="2503134386397991634">"Притиснете и задржете ги двете копчиња за јачина на звук"</string>
- <string name="accessibility_shortcut_edit_dialog_title_two_finger_double_tap" msgid="2271778556854020996">"Допрете го екранот двапати со два прста"</string>
<string name="accessibility_shortcut_edit_screen_title_two_finger_double_tap" msgid="8952595692906527694">"Двоен допир со %1$d прста"</string>
<string name="accessibility_shortcut_edit_screen_summary_two_finger_double_tap" msgid="385404127425496362">"Брзо допрете го екранот двапати со %1$d прста"</string>
<string name="accessibility_shortcut_edit_screen_title_triple_tap" msgid="3314488747597058942">"Троен допир"</string>
<string name="accessibility_shortcut_edit_screen_summary_triple_tap" msgid="4839204951599629871">"Брзо допрете го екранот %1$d пати. Со ова може да се забави уредот."</string>
<string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="6271718715836961167">"Двоен допир со %1$d прста"</string>
- <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"Брзо допрете го екранот {0,number,integer} пати со два прста"</string>
- <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"Троен допир на екранот"</string>
<string name="accessibility_shortcut_triple_tap_keyword" msgid="5359347130888464334">"троен допир"</string>
- <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"Брзо допрете го екранот {0,number,integer} пати Оваа кратенка може да го забави уредот"</string>
<string name="accessibility_shortcut_edit_dialog_title_advance" msgid="4567868630655591506">"Напредно"</string>
<string name="accessibility_screen_magnification_navbar_configuration_warning" msgid="266736851606791552">"Копчето за „Пристапност“ е поставено на <xliff:g id="SERVICE">%1$s</xliff:g>. За да користите зголемување, допрете го и задржете го копчето за „Пристапност“, а потоа изберете „Зголемување“."</string>
<string name="accessibility_screen_magnification_gesture_navigation_warning" msgid="991017769735632046">"Ова движење за пристапност е поставено за <xliff:g id="SERVICE">%1$s</xliff:g>. За да користите зголемување, повлечете нагоре со два прста од дното на екранот и задржете. Потоа изберете зголемување."</string>
@@ -2369,6 +2362,7 @@
<string name="daltonizer_mode_tritanomaly_title" msgid="2278786218762602022">"Сина и жолта"</string>
<string name="daltonizer_mode_grayscale_title" msgid="152005391387952588">"Сиви тонови"</string>
<string name="daltonizer_saturation_title" msgid="2999486412114963068">"Интензитет"</string>
+ <string name="daltonizer_saturation_unavailable_summary" msgid="8319753055567798775">"Недостапно за режимот на „Сиви тонови“ или кога е оневозможена „Корекција на боите“"</string>
<string name="daltonizer_mode_deuteranomaly_summary" msgid="2117727423019598455">"Слаба зелена, девтераномалија"</string>
<string name="daltonizer_mode_protanomaly_summary" msgid="4617032854982040748">"Слаба црвена, протаномалија"</string>
<string name="daltonizer_mode_tritanomaly_summary" msgid="2428218320118180070">"Тританомалија"</string>
@@ -2418,15 +2412,8 @@
<string name="color_cyan" msgid="4341758639597035927">"Тиркизна"</string>
<string name="color_yellow" msgid="5957551912912679058">"Жолта"</string>
<string name="color_magenta" msgid="8943538189219528423">"Магента"</string>
- <string name="enable_service_title" msgid="7231533866953706788">"Да се дозволи <xliff:g id="SERVICE">%1$s</xliff:g> да има целосна контрола врз вашиот уред?"</string>
<string name="capabilities_list_title" msgid="1225853611983394386">"<xliff:g id="SERVICE">%1$s</xliff:g> треба да:"</string>
<string name="touch_filtered_warning" msgid="4225815157460318241">"Бидејќи апликацијата го прикрива барањето за дозвола, Поставките не може да го потврдат вашиот одговор."</string>
- <string name="accessibility_service_warning" msgid="6779187188736432618">"<xliff:g id="SERVICE">%1$s</xliff:g> бара целосна контрола на уредов. Услугава може да го чита екранот и да делува во име на корисниците со потреба за пристапност. Ова ниво на контрола не е соодветно за повеќето апликации."</string>
- <string name="accessibility_service_warning_description" msgid="6573203795976134751">"Целосната контрола е соодветна за апликации што ви помагаат со потребите за пристапност, но не и за повеќето апликации."</string>
- <string name="accessibility_service_screen_control_title" msgid="324795030658109870">"Преглед и контрола на екранот"</string>
- <string name="accessibility_service_screen_control_description" msgid="8431940515157990426">"Може да ги чита сите содржини на екранот и да прикажува содржини врз другите апликации."</string>
- <string name="accessibility_service_action_perform_title" msgid="1449360056585337833">"Преглед и вршење дејства"</string>
- <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"Може да ја следи вашата интеракција со апликациите или со хардверските сензори и да врши интеракција со апликациите во ваше име."</string>
<string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Дозволи"</string>
<string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Одбиј"</string>
<string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Исклучи"</string>
@@ -3368,10 +3355,8 @@
<string name="zen_mode_automation_settings_title" msgid="3709324184191870926">"Распореди"</string>
<string name="zen_mode_delete_automatic_rules" msgid="5020468289267191765">"Избришете ги распоредите"</string>
<string name="zen_mode_schedule_delete" msgid="5383420576833765114">"Избриши"</string>
- <!-- no translation found for zen_mode_menu_rename_mode (4681802125016390837) -->
- <skip />
- <!-- no translation found for zen_mode_menu_delete_mode (5380084696402157428) -->
- <skip />
+ <string name="zen_mode_menu_rename_mode" msgid="4681802125016390837">"Преименувај"</string>
+ <string name="zen_mode_menu_delete_mode" msgid="5380084696402157428">"Избриши"</string>
<string name="zen_mode_delete_mode_confirmation" msgid="7594340592051947392">"Да се избрише режимот „<xliff:g id="MODE">%1$s</xliff:g>“?"</string>
<string name="zen_mode_rule_name_edit" msgid="1053237022416700481">"Измени"</string>
<string name="zen_mode_automation_settings_page_title" msgid="6217433860514433311">"Распореди"</string>
@@ -3395,8 +3380,7 @@
<string name="zen_mode_visual_signals_settings_subtitle" msgid="7433077540895876672">"Дозволи визуелни сигнали"</string>
<string name="mode_interruption_filter_title" msgid="3343846700214702347">"Останете фокусирани"</string>
<string name="mode_device_effects_title" msgid="5857008332618433744">"Дополнителни дејства"</string>
- <!-- no translation found for modes_sound_summary_off (6972648204528227879) -->
- <skip />
+ <string name="modes_sound_summary_off" msgid="6972648204528227879">"{count,plural, =0{Исклучено}=1{Исклучено/1 режим може да се вклучи автоматски}one{Исклучено/# режим може да се вклучат автоматски}other{Исклучено/# режими може да се вклучат автоматски}}"</string>
<string name="mode_display_settings_title" msgid="8132825978346535472">"Поставки за екранот"</string>
<string name="mode_display_options_section" msgid="5151597748243866532">"Опции за екранот"</string>
<string name="mode_grayscale_title" msgid="6027553257331235461">"Сиви тонови"</string>
@@ -3659,9 +3643,9 @@
<string name="notif_listener_not_migrated" msgid="6265206376374278226">"Апликацијава не поддржува подобрени поставки"</string>
<string name="notif_listener_more_settings" msgid="1348409392307208921">"Повеќе поставки"</string>
<string name="notif_listener_more_settings_desc" msgid="7995492074281663658">"Повеќе поставки се достапни во апликацијава"</string>
- <string name="notification_polite_title" msgid="4737150709382859870">"Адаптивни известувања"</string>
- <string name="notification_polite_main_control_title" msgid="7267191551379543859">"Користи „Адаптивни известувања“"</string>
- <string name="notification_polite_description" msgid="7749280535620291610">"Кога ќе добиете многу известувања во краток временски период, вашиот телефон ќе го намали звукот и ќе ги минимизира скокачките прозорци на екранот во период до две минути. Известувањата за повиците, алармите и приоритетните разговори сè уште вибрираат, испуштаат звук или се појавуваат на екранот, а сите известувања може да се најдат лесно кога ќе повлечете одозгора надолу на екранот."</string>
+ <string name="notification_polite_title" msgid="6121016426991791557">"Намалување на известувањата"</string>
+ <string name="notification_polite_main_control_title" msgid="5812529809151927149">"Користете „Подискретни известувања“"</string>
+ <string name="notification_polite_description" msgid="5497748284893832854">"Кога ќе добиете многу известувања во краток временски период, уредот ќе го намали звукот и ќе ги минимизира известувањата до 2 минути. Ова не влијае на повиците, алармите и приоритетните разговори. \n\nИзвестувањата добиени додека била вклучена „Подискретни известувања“ може да се најдат со повлекување надолу од горниот дел на екранот."</string>
<string name="notification_polite_work" msgid="8823596456640216391">"Примени на работни профили"</string>
<string name="notification_polite_work_summary" msgid="5014189280132951378">"Применете на апликациите во работниот профил"</string>
<string name="vr_listeners_title" msgid="4960357292472540964">"Помошни услуги за VR"</string>
@@ -3818,7 +3802,9 @@
<string name="zen_mode_apps_priority_apps" msgid="7386196048313716076">"Избрани апликации"</string>
<string name="zen_mode_apps_none_apps" msgid="2493642312793604327">"Нема"</string>
<string name="zen_mode_apps_subtext" msgid="1764211974662012877">"{count,plural,offset:2 =0{Ниедна апликација не може да го прекинува}=1{{app_1} може да го прекинува}=2{{app_1} и {app_2} може да го прекинуваат}=3{{app_1}, {app_2} и{app_3} може да го прекинуваат}one{{app_1}, {app_2} и уште # може да го прекинуваат}other{{app_1}, {app_2} и уште # може да го прекинуваат}}"</string>
+ <string name="zen_mode_apps_work_app" msgid="8528767938316361588">"<xliff:g id="APP_LABEL">%s</xliff:g> (работа)"</string>
<string name="zen_mode_apps_calculating" msgid="5420121396943539286">"Се пресметува…"</string>
+ <string name="zen_mode_plus_n_items" msgid="6136713354369243421">"+ <xliff:g id="NUMBER">%d</xliff:g>"</string>
<string name="zen_mode_bypassing_apps" msgid="625309443389126481">"Дозволете апликациите да занемаруваат"</string>
<string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"Апликации што може да го прекинуваат режимот"</string>
<string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"Изберете уште апликации"</string>
@@ -3836,6 +3822,7 @@
<string name="zen_mode_sounds_none" msgid="6557474361948269420">"Ништо не може да го прекинува"</string>
<string name="zen_mode_people_none" msgid="4613147461974255046">"Никој не може да го прекинува"</string>
<string name="zen_mode_people_some" msgid="9101872681298810281">"Некои луѓе може да го прекинуваат"</string>
+ <string name="zen_mode_people_repeat_callers" msgid="4499084111069828761">"Повторните повикувачи може да го прекинат"</string>
<string name="zen_mode_people_all" msgid="311036110283015205">"Сите луѓе може да го прекинуваат"</string>
<string name="zen_mode_repeat_callers" msgid="2270356100287792138">"Редовни повикувачи"</string>
<string name="zen_mode_repeat_callers_title" msgid="8016699240338264781">"Дозволи повторни повикувачи"</string>
@@ -3855,13 +3842,37 @@
<string name="zen_mode_summary_alarms_only_by_hour" msgid="7400910210950788163">"{count,plural, =1{Смени само на аларми во траење од еден час до {time}}one{Смени само на аларми во траење од # час до {time}}other{Смени само на аларми во траење од # часа до {time}}}"</string>
<string name="zen_mode_summary_alarms_only_by_time" msgid="8140619669703968810">"Промена на аларми само до <xliff:g id="FORMATTEDTIME">%1$s</xliff:g>"</string>
<string name="zen_mode_summary_always" msgid="722093064250082317">"Промени секогаш да се прекине"</string>
- <!-- no translation found for zen_mode_rename_title (8146882272966214558) -->
+ <string name="zen_mode_rename_title" msgid="8146882272966214558">"Изменете режим"</string>
+ <string name="zen_mode_new_custom_title" msgid="321750898430776191">"Додајте режим"</string>
+ <string name="zen_mode_new_custom_default_name" msgid="2778307946775085105">"Приспособете го режимот"</string>
+ <string name="zen_mode_edit_name_hint" msgid="4584652062167540536">"Име на режимот"</string>
+ <string name="zen_mode_trigger_title_schedule_calendar" msgid="9206609438617550331">"Настани во календарот"</string>
+ <string name="zen_mode_trigger_title_bedtime" msgid="5086070900588489978">"Распоред за спиење"</string>
+ <string name="zen_mode_trigger_title_driving" msgid="7890990983453164403">"При возење"</string>
+ <string name="zen_mode_trigger_title_generic" msgid="601273385119550420">"Поврзано со апликација"</string>
+ <string name="zen_mode_trigger_summary_settings_in_app" msgid="4860667191183702601">"Податоци и поставки во <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+ <string name="zen_mode_trigger_summary_managed_by_app" msgid="8631011868193102098">"Управувано од <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+ <string name="zen_mode_confirm_disable_title" msgid="1232297660775719796">"Оневозможете го режимот"</string>
+ <string name="zen_mode_confirm_disable_message" msgid="7315541221665718491">"Ако ја оневозможите функцијава, режимот веќе нема да функционира според очекувањата, а поставките ќе бидат скриени."</string>
+ <string name="zen_mode_action_disable" msgid="3552921561331044881">"Оневозможи"</string>
+ <string name="zen_mode_confirm_enable_title" msgid="5683371335847448595">"Овозможете го режимот"</string>
+ <string name="zen_mode_confirm_enable_message" msgid="7017879133260011419">"Ако ја овозможите функцијава, режимот ќе се активира автоматски согласно со неговиот распоред."</string>
+ <string name="zen_mode_action_enable" msgid="1161480633223176531">"Овозможи"</string>
+ <!-- no translation found for zen_mode_blurb_schedule_time (8223898702097484009) -->
<skip />
- <!-- no translation found for zen_mode_new_custom_title (321750898430776191) -->
+ <!-- no translation found for zen_mode_blurb_schedule_calendar (382177907856065945) -->
<skip />
- <!-- no translation found for zen_mode_new_custom_default_name (2778307946775085105) -->
+ <!-- no translation found for zen_mode_blurb_bedtime (6155075956151013457) -->
<skip />
- <!-- no translation found for zen_mode_edit_name_hint (4584652062167540536) -->
+ <!-- no translation found for zen_mode_blurb_driving (1316054379000667305) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_immersive (5884004861848687869) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_theater (2999237960059524225) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_managed (5473921634985032149) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_generic (3041601339807075625) -->
<skip />
<string name="warning_button_text" msgid="1274234338874005639">"Опомена"</string>
<string name="suggestion_button_close" msgid="6865170855573283759">"Затвори"</string>
@@ -4849,9 +4860,8 @@
<string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"Батерија"</string>
<string name="settings_panel_title" msgid="346363079938069215">"Табла за поставки"</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>
+ <!-- no translation found for enable_desktop_mode_on_secondary_display (2609567824593768780) -->
+ <skip />
<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>
@@ -5026,7 +5036,6 @@
<string name="default_active_sim_mobile_data" msgid="6798083892814045301">"мобилен интернет"</string>
<string name="wifi_scan_notify_message" msgid="1331238142061476869">"За да се подобри доживувањето на уредот, апликациите и услугите може сѐ уште да скенираат за Wi‑Fi мрежи во секое време, дури и кога Wi‑Fi е исклучено. Ова може да се користи, на пример, за подобрување на функциите и услугите според локацијата. Може да го промените ова во поставките за „Скенирање за Wi-Fi“."</string>
<string name="wifi_scan_change" msgid="8438320311511852918">"Измени"</string>
- <string name="preference_summary_default_combination" msgid="4643585915107796253">"<xliff:g id="STATE">%1$s</xliff:g>/<xliff:g id="NETWORKMODE">%2$s</xliff:g>"</string>
<string name="mobile_data_connection_active" msgid="2422223108911581552">"Поврзано"</string>
<string name="mobile_data_temp_connection_active" msgid="3430470299756236413">"Привремено поврзано"</string>
<string name="mobile_data_temp_using" msgid="5211002380149434155">"Привремено преку <xliff:g id="SUBNAME">%1$s</xliff:g>"</string>
@@ -5172,9 +5181,11 @@
<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="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_enable_freeform_support" msgid="3697462756493543645">"Потребно е рестартирање за да се овозможи поддршка за прозорци со менлива големина."</string>
+ <!-- no translation found for reboot_dialog_override_desktop_mode (7480950772574354130) -->
+ <skip />
+ <!-- no translation found for reboot_dialog_enable_desktop_mode_on_secondary_display (1153621881052401924) -->
+ <skip />
<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>
@@ -5292,10 +5303,8 @@
<string name="show_captions_enabled" msgid="7089043007924626">"Вклучено"</string>
<string name="live_caption_disabled" msgid="3562035026547887366">"Исклучено"</string>
<string name="live_caption_enabled" msgid="5269360946200718949">"Вклучено"</string>
- <!-- no translation found for audio_seek_bar_state_left_first (8814986910920838972) -->
- <skip />
- <!-- no translation found for audio_seek_bar_state_right_first (1999368979633398876) -->
- <skip />
+ <string name="audio_seek_bar_state_left_first" msgid="8814986910920838972">"Аудио: %1$d%% одлево, %2$d%% оддесно"</string>
+ <string name="audio_seek_bar_state_right_first" msgid="1999368979633398876">"Аудио: %1$d%% оддесно, %2$d%% одлево"</string>
<string name="about_phone_device_name_warning" msgid="3243226572404472381">"Името на уредот е видливо за апликациите што сте ги инсталирале. Може да го видат и други луѓе кога ќе се поврзете со уреди со Bluetooth, на Wi-Fi мрежа или кога ќе поставите точка на пристап за Wi-Fi."</string>
<string name="grammatical_gender_title" msgid="8584242850477270828">"Граматички род"</string>
<string name="grammatical_gender_dialog_title" msgid="8754048592099871587">"Изберете граматички род"</string>
@@ -5407,5 +5416,6 @@
<string name="audio_streams_main_page_password_dialog_join_button" msgid="2967747276379153408">"Слушнете го стримот"</string>
<string name="audio_streams_main_page_qr_code_scanner_summary" msgid="5312980105735143360">"Скенирајте го QR-кодот на аудиостримот за да слушате со <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
<string name="audio_streams_main_page_password_dialog_cannot_edit" msgid="9020898619297520153">"Лозинката не може да се измени додека се споделува. За промена на лозинката, прво исклучете го споделувањето аудио."</string>
+ <string name="audio_streams_qr_code_scanner_label" msgid="8799703301071378034">"Скенер на QR-кодови"</string>
<string name="homepage_search" msgid="6759334912284663559">"Пребарувајте низ поставките"</string>
</resources>
diff --git a/res/values-ml/strings.xml b/res/values-ml/strings.xml
index bf727b3..89f76ee 100644
--- a/res/values-ml/strings.xml
+++ b/res/values-ml/strings.xml
@@ -41,6 +41,8 @@
<string name="radioInfo_data_suspended" msgid="2001254415431299603">"താൽക്കാലികമായി നിർത്തി"</string>
<string name="radioInfo_unknown" msgid="2892562356748600367">"അജ്ഞാതം"</string>
<string name="preview_pager_content_description" msgid="3762247188224576303">"പ്രിവ്യൂ ചെയ്യുക"</string>
+ <!-- no translation found for qr_code_content_description (1852208464419291347) -->
+ <skip />
<string name="font_size_make_smaller_desc" msgid="4978038055549590140">"ചെറുതാക്കുക"</string>
<string name="font_size_make_larger_desc" msgid="5583046033381722247">"വലുതാക്കുക"</string>
<string name="stay_awake_on_fold_title" msgid="6590454679898134221">"എപ്പോഴും"</string>
@@ -283,7 +285,7 @@
<string name="location_settings_summary_location_off" msgid="4797932754681162262">"ഓഫാക്കുക"</string>
<string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{ഓണാണ് / # ആപ്പിന് ലൊക്കേഷനിലേക്ക് ആക്സസ് ഉണ്ട്}other{ഓണാണ് / # ആപ്പുകൾക്ക് ലൊക്കേഷനിലേക്ക് ആക്സസ് ഉണ്ട്}}"</string>
<string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"ലോഡ് ചെയ്യുന്നു…"</string>
- <string name="location_settings_footer_general" msgid="1040507068701188821">"സമീപമുള്ള ഉപകരണങ്ങളുടെ അനുമതിയുള്ള ആപ്പുകൾക്ക്, കണക്റ്റ് ചെയ്തിരിക്കുന്ന ഉപകരണങ്ങളുടെ ആപേക്ഷിക സ്ഥാനം നിർണ്ണയിക്കാനാകും."</string>
+ <string name="location_settings_footer_general" msgid="3447585552176173502">"സമീപമുള്ള ഉപകരണങ്ങളുടെ അനുമതിയുള്ള ആപ്പുകൾക്ക്, കണക്റ്റ് ചെയ്തിരിക്കുന്ന ഉപകരണങ്ങളുടെ ഏകദേശ സ്ഥാനം നിർണ്ണയിക്കാനാകും."</string>
<string name="location_settings_footer_location_off" msgid="8568995909147566720">"ആപ്പുകൾക്കും സേവനങ്ങൾക്കും ലൊക്കേഷൻ ആക്സസ് ഓഫാണ്. നിങ്ങൾ അടിയന്തര നമ്പറിലേക്ക് കോൾ ചെയ്യുമ്പോഴോ ടെക്സ്റ്റ് ചെയ്യുമ്പോഴോ നിങ്ങളുടെ ഉപകരണ ലൊക്കേഷൻ, അടിയന്തര സാഹചര്യത്തിൽ പ്രതികരിക്കുന്നവർക്ക് തുടർന്നും അയച്ചേക്കാം."</string>
<string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"ലൊക്കേഷൻ ക്രമീകരണത്തെക്കുറിച്ച് കൂടുതലറിയുക"</string>
<string name="location_settings_tooltip_text_for_chrome" msgid="5781821709250544575">"മാറ്റാൻ, ChromeOS ക്രമീകരണം > സ്വകാര്യതയും സുരക്ഷയും > സ്വകാര്യതാ നിയന്ത്രണങ്ങൾ > ലൊക്കേഷൻ ആക്സസ് എന്നിങ്ങനെ പോകുക"</string>
@@ -850,7 +852,6 @@
<string name="nfc_reboot_dialog_title" msgid="2033983438635768169">"ഉപകരണം റീസ്റ്റാർട്ട് ചെയ്യണോ?"</string>
<string name="nfc_reboot_dialog_message" msgid="4929353168157966992">"ഡെവലപ്പ്മെന്റ് ആവശ്യങ്ങൾക്ക് മാത്രം ഉദ്ദേശിച്ചുള്ളതാണ് വിശദമായ NFC ലോഗ് ചെയ്യൽ. ബഗ് റിപ്പോർട്ടുകളിൽ അധിക NFC ഡാറ്റ ഉൾപ്പെടുത്തിയിരിക്കുന്നു, അവയിൽ സ്വകാര്യ വിവരങ്ങൾ അടങ്ങിയിരിക്കാം. ഈ ക്രമീകരണം മാറ്റാൻ നിങ്ങളുടെ ഉപകരണം റീസ്റ്റാർട്ട് ചെയ്യുക."</string>
<string name="nfc_reboot_dialog_confirm" msgid="4769763632008584567">"റീസ്റ്റാർട്ട് ചെയ്യൂ"</string>
- <string name="keywords_external_display" msgid="4181375057920134909">"മിറർ ചെയ്യുക, ബാഹ്യ ഡിസ്പ്ലേ, കണക്റ്റ് ചെയ്ത ഡിസ്പ്ലേ, USB ഡിസ്പ്ലേ, റെസല്യൂഷൻ, റൊട്ടേഷൻ"</string>
<string name="external_display_on" msgid="2560104443500154333">"ഓണാണ്"</string>
<string name="external_display_off" msgid="5634413756025351374">"ഓഫാണ്"</string>
<string name="external_display_settings_title" msgid="6256884595821605779">"ബാഹ്യ ഡിസ്പ്ലേ"</string>
@@ -1918,6 +1919,8 @@
<string name="slow_keys_summary" msgid="1784371292745423292">"കീ പ്രസ്സ് പ്രവർത്തിക്കാൻ എടുക്കുന്ന സമയം <xliff:g id="SLOW_KEYS_THRESHOLD">%1$d</xliff:g> മില്ലിസെക്കൻഡ് ആയി ക്രമീകരിക്കും"</string>
<string name="sticky_keys" msgid="7317317044898161747">"സ്റ്റിക്കി കീകൾ"</string>
<string name="sticky_keys_summary" msgid="1844953803625480623">"കുറുക്കുവഴികൾക്കായി, കീകൾ ഒരുമിച്ച് അമർത്തിപ്പിടിക്കുന്നതിന് പകരം ഒരു സമയം ഒരു കീ അമർത്തുക"</string>
+ <string name="mouse_keys" msgid="6237254627808525540">"മൗസ് കീകൾ"</string>
+ <string name="mouse_keys_summary" msgid="2396247040177734245">"മൗസ് നിയന്ത്രിക്കാൻ, ഫിസിക്കൽ കീബോർഡ് ഉപയോഗിക്കുക."</string>
<string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"കീബോഡ് കുറുക്കുവഴികൾ"</string>
<string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"കുറുക്കുവഴികളുടെ ലിസ്റ്റ് കാണിക്കുക"</string>
<string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"ഔദ്യോഗിക പ്രൊഫൈൽ കീബോർഡുകളും ടൂളുകളും"</string>
@@ -1942,14 +1945,10 @@
<string name="pointer_fill_style_yellow_button" msgid="5025969961559379024">"പോയിന്റർ ഫിൽ സ്റ്റൈൽ മഞ്ഞയാക്കൂ"</string>
<string name="pointer_fill_style_pink_button" msgid="4106218142489635673">"പോയിന്റർ ഫിൽ സ്റ്റൈൽ പിങ്ക് ആക്കൂ"</string>
<string name="pointer_fill_style_blue_button" msgid="5594958078854032785">"പോയിന്റർ ഫിൽ സ്റ്റൈൽ നീലയാക്കൂ"</string>
- <!-- no translation found for pointer_stroke_style (1886986630216050665) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_white (673686194443825383) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_black (4655806167067437330) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_none (8953927511729800247) -->
- <skip />
+ <string name="pointer_stroke_style" msgid="1886986630216050665">"പോയിന്റർ സ്ട്രോക്ക് സ്റ്റൈൽ"</string>
+ <string name="pointer_stroke_style_name_white" msgid="673686194443825383">"വെള്ള"</string>
+ <string name="pointer_stroke_style_name_black" msgid="4655806167067437330">"കറുപ്പ്"</string>
+ <string name="pointer_stroke_style_name_none" msgid="8953927511729800247">"ഒന്നുമില്ല"</string>
<string name="trackpad_touch_gesture" msgid="8641725062131922497">"ടച്ച്പാഡ് ജെസ്ച്ചറുകൾ മനസ്സിലാക്കുക"</string>
<string name="keywords_touchpad" msgid="8159846254066666032">"ട്രാക്ക്പാഡ്, ട്രാക്ക് പാഡ്, മൗസ്, കഴ്സർ, സ്ക്രോൾ, സ്വൈപ്പ്, വലത് ക്ലിക്ക്, ക്ലിക്ക്, പോയിന്റർ"</string>
<string name="keywords_trackpad_bottom_right_tap" msgid="1285062446073929305">"വലത് ക്ലിക്ക്, ടാപ്പ്"</string>
@@ -2179,8 +2178,6 @@
<string name="accessibility_shortcut_edit_dialog_summary_floating_button" msgid="6266489864614886247">"ഫ്ലോട്ടിംഗ് ബട്ടൺ ടാപ്പ് ചെയ്യുക"</string>
<string name="accessibility_shortcut_edit_dialog_title_software_by_gesture" msgid="4775049370625630546">"ഉപയോഗസഹായി ജെസ്ച്ചർ"</string>
<string name="accessibility_shortcut_edit_dialog_summary_software" msgid="8315934725362849788">"നിങ്ങളുടെ സ്ക്രീനിന്റെ ചുവടെയുള്ള ഉപയോഗസഹായി ബട്ടൺ <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g> ടാപ്പ് ചെയ്യുക. ഫീച്ചറുകൾക്കിടയിൽ മാറാൻ, ഉപയോഗസഹായി ബട്ടൺ സ്പർശിച്ച് പിടിക്കുക."</string>
- <string name="accessibility_shortcut_edit_dialog_summary_software_gesture" msgid="8292555254353761635">"നിങ്ങളുടെ സ്ക്രീനിന്റെ താഴെ നിന്ന് രണ്ട് വിരലുകൾ കൊണ്ട് മുകളിലേക്ക് സ്വൈപ്പ് ചെയ്യുക.\n\nഫീച്ചറുകൾക്കിടയിൽ മാറാൻ രണ്ട് വിരലുകൾ കൊണ്ട് മുകളിലേക്ക് സ്വൈപ്പ് ചെയ്ത് പിടിക്കുക."</string>
- <string name="accessibility_shortcut_edit_dialog_summary_software_gesture_talkback" msgid="84483464524360845">"നിങ്ങളുടെ സ്ക്രീനിന്റെ ചുവട്ടിൽ നിന്ന് മൂന്ന് വിരലുകൾ കൊണ്ട് മുകളിലേക്ക് സ്വൈപ്പ് ചെയ്യുക.\n\nഫീച്ചറുകൾക്കിടയിൽ മാറാൻ മൂന്ന് വിരലുകൾ കൊണ്ട് മുകളിലേക്ക് സ്വൈപ്പ് ചെയ്ത് പിടിക്കുക."</string>
<string name="accessibility_shortcut_edit_dialog_summary_gesture" msgid="2081123009255579884">"{count,plural, =1{സ്ക്രീനിന്റെ താഴെ നിന്ന് മുകളിലേക്ക് സ്വൈപ്പ് ചെയ്യുക. ഫീച്ചറുകൾക്കിടയിൽ മാറാൻ, മുകളിലേക്ക് സ്വൈപ്പ് ചെയ്ത് പിടിക്കുക.}other{നിങ്ങളുടെ സ്ക്രീനിന്റെ താഴെ നിന്ന് മുകളിലേക്ക് # വിരലുകൾ ഉപയോഗിച്ച് സ്വൈപ്പ് ചെയ്യുക. ഫീച്ചറുകൾക്കിടയിൽ മാറാൻ, # വിരലുകൾ ഉപയോഗിച്ച് മുകളിലേക്ക് സ്വൈപ്പ് ചെയ്ത് പിടിക്കുക.}}"</string>
<string name="accessibility_shortcut_edit_dialog_summary_software_floating" msgid="4459254227203203324"><annotation id="link">"കൂടുതൽ ഓപ്ഷനുകൾ"</annotation></string>
<string name="footer_learn_more_content_description" msgid="8843798273152131341">"<xliff:g id="SERVICE">%1$s</xliff:g> എന്നതിനെക്കുറിച്ച് കൂടുതലറിയുക"</string>
@@ -2191,16 +2188,12 @@
<string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="844089763968552142">"വോളിയം കീകൾ"</string>
<string name="accessibility_shortcut_hardware_keyword" msgid="2483152542320987022">"വോളിയം കീകൾ"</string>
<string name="accessibility_shortcut_edit_dialog_summary_hardware" msgid="2503134386397991634">"രണ്ട് വോളിയം കീകളും അമർത്തിപ്പിടിക്കുക"</string>
- <string name="accessibility_shortcut_edit_dialog_title_two_finger_double_tap" msgid="2271778556854020996">"രണ്ട് വിരലുകൾ ഉപയോഗിച്ച് സ്ക്രീനിൽ ഡബിൾ ടാപ്പ് ചെയ്യുക"</string>
<string name="accessibility_shortcut_edit_screen_title_two_finger_double_tap" msgid="8952595692906527694">"%1$d-വിരൽ ഉപയോഗിച്ചുള്ള ഡബിൾ ടാപ്പ്"</string>
<string name="accessibility_shortcut_edit_screen_summary_two_finger_double_tap" msgid="385404127425496362">"%1$d വിരലുകൾ ഉപയോഗിച്ച് സ്ക്രീൻ രണ്ട് തവണ അതിവേഗം ടാപ്പ് ചെയ്യുക"</string>
<string name="accessibility_shortcut_edit_screen_title_triple_tap" msgid="3314488747597058942">"ട്രിപ്പിൾ ടാപ്പ്"</string>
<string name="accessibility_shortcut_edit_screen_summary_triple_tap" msgid="4839204951599629871">"%1$d തവണ അതിവേഗം സ്ക്രീൻ ടാപ്പ് ചെയ്യുക. ഇത് നിങ്ങളുടെ ഉപകരണത്തിന്റെ വേഗത കുറച്ചേക്കാം."</string>
<string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="6271718715836961167">"%1$d-വിരൽ ഉപയോഗിച്ചുള്ള ഡബിൾ ടാപ്പ്"</string>
- <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"രണ്ട് വിരലുകൾ ഉപയോഗിച്ച് സ്ക്രീനിൽ {0,number,integer} തവണ വേഗത്തിൽ ടാപ്പ് ചെയ്യുക"</string>
- <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"സ്ക്രീൻ മൂന്ന് തവണ ടാപ്പ് ചെയ്യുക"</string>
<string name="accessibility_shortcut_triple_tap_keyword" msgid="5359347130888464334">"ട്രിപ്പിൾ ടാപ്പ്"</string>
- <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"സ്ക്രീനിൽ {0,number,integer} തവണ വേഗത്തിൽ ടാപ്പ് ചെയ്യുക. ഈ കുറുക്കുവഴി നിങ്ങളുടെ ഉപകരണത്തിന്റെ വേഗത കുറച്ചേക്കാം"</string>
<string name="accessibility_shortcut_edit_dialog_title_advance" msgid="4567868630655591506">"വിപുലമായത്"</string>
<string name="accessibility_screen_magnification_navbar_configuration_warning" msgid="266736851606791552">"<xliff:g id="SERVICE">%1$s</xliff:g> സേവനത്തിലേക്ക് ഉപയോഗസഹായി ബട്ടൺ സജ്ജമാക്കിയിരിക്കുന്നു. മാഗ്നിഫിക്കേഷൻ ഉപയോഗിക്കുന്നതിന് ഉപയോഗസഹായി ബട്ടൺ സ്പർശിച്ചുപിടിച്ച് മാഗ്നിഫിക്കേഷൻ തിരഞ്ഞെടുക്കുക."</string>
<string name="accessibility_screen_magnification_gesture_navigation_warning" msgid="991017769735632046">"ഉപയോഗസഹായി വിരൽചലനം <xliff:g id="SERVICE">%1$s</xliff:g> എന്നതിൽ ക്രമീകരിച്ചു. മാഗ്നിഫിക്കേഷൻ ഉപയോഗിക്കാൻ, സ്ക്രീനിന്റെ താഴെ നിന്ന് രണ്ട് വിരലുകൾ ഉപയോഗിച്ച് മുകളിലേക്ക് സ്വൈപ്പ് ചെയ്ത് പിടിക്കുക. തുടർന്ന് മാഗ്നിഫിക്കേഷൻ തിരഞ്ഞെടുക്കുക."</string>
@@ -2369,6 +2362,7 @@
<string name="daltonizer_mode_tritanomaly_title" msgid="2278786218762602022">"നീല-മഞ്ഞ"</string>
<string name="daltonizer_mode_grayscale_title" msgid="152005391387952588">"ഗ്രേസ്കെയിൽ"</string>
<string name="daltonizer_saturation_title" msgid="2999486412114963068">"തീവ്രത"</string>
+ <string name="daltonizer_saturation_unavailable_summary" msgid="8319753055567798775">"ഗ്രേസ്കെയിൽ മോഡിലോ \'നിറം ശരിയാക്കൽ\' പ്രവർത്തനരഹിതമായിരിക്കുമ്പോഴോ ലഭ്യമല്ല"</string>
<string name="daltonizer_mode_deuteranomaly_summary" msgid="2117727423019598455">"പച്ച നിറം കാണാനാകില്ല, വർണ്ണാന്ധത"</string>
<string name="daltonizer_mode_protanomaly_summary" msgid="4617032854982040748">"ചുവപ്പ് നിറം കാണാനാകില്ല, വർണ്ണാന്ധത"</string>
<string name="daltonizer_mode_tritanomaly_summary" msgid="2428218320118180070">"നീല, മഞ്ഞ നിറങ്ങളോടുള്ള വർണ്ണാന്ധത"</string>
@@ -2418,15 +2412,8 @@
<string name="color_cyan" msgid="4341758639597035927">"സിയാൻ"</string>
<string name="color_yellow" msgid="5957551912912679058">"മഞ്ഞ"</string>
<string name="color_magenta" msgid="8943538189219528423">"മജന്ത"</string>
- <string name="enable_service_title" msgid="7231533866953706788">"<xliff:g id="SERVICE">%1$s</xliff:g> എന്നതിന് നിങ്ങളുടെ ഉപകരണത്തിൻ്റെ പൂർണ്ണ നിയന്ത്രണം അനുവദിക്കണോ?"</string>
<string name="capabilities_list_title" msgid="1225853611983394386">"<xliff:g id="SERVICE">%1$s</xliff:g> എന്നതിന് ഇവ ആവശ്യമാണ്:"</string>
<string name="touch_filtered_warning" msgid="4225815157460318241">"അനുമതി അഭ്യർത്ഥനയെ ഒരു അപ്ലിക്കേഷൻ മറയ്ക്കുന്നതിനാൽ, ക്രമീകരണത്തിന് നിങ്ങളുടെ പ്രതികരണം പരിശോധിച്ചുറപ്പിക്കാനാകില്ല."</string>
- <string name="accessibility_service_warning" msgid="6779187188736432618">"<xliff:g id="SERVICE">%1$s</xliff:g>, ഈ ഉപകരണത്തിന്റെ പൂർണ്ണ നിയന്ത്രണം അഭ്യർത്ഥിക്കുന്നു. ഉപയോഗസഹായം ആവശ്യമുള്ള ഉപയോക്താക്കൾക്ക് വേണ്ടി, സ്ക്രീനിലുള്ളത് വായിക്കാനും അവർക്ക് വേണ്ടി പ്രവർത്തിക്കാനും സേവനത്തിന് കഴിയും. മിക്ക ആപ്പുകളിലും ഈ തലത്തിലുള്ള നിയന്ത്രണം ഉചിതമല്ല."</string>
- <string name="accessibility_service_warning_description" msgid="6573203795976134751">"ഉപയോഗസഹായി ആവശ്യങ്ങൾക്കായി നിങ്ങളെ സഹായിക്കുന്ന ആപ്പുകൾക്ക് പൂർണ്ണ നിയന്ത്രണം അനുയോജ്യമാണെങ്കിലും മിക്ക ആപ്പുകൾക്കും അതിന്റെ ആവശ്യമില്ല."</string>
- <string name="accessibility_service_screen_control_title" msgid="324795030658109870">"സ്ക്രീൻ കാണുക, നിയന്ത്രിക്കുക"</string>
- <string name="accessibility_service_screen_control_description" msgid="8431940515157990426">"ഇതിന് സ്ക്രീനിലെ എല്ലാ ഉള്ളടക്കവും വായിക്കാനും മറ്റ് ആപ്പുകൾക്ക് മുകളിൽ ഉള്ളടക്കം പ്രദർശിപ്പിക്കാനുമാകും."</string>
- <string name="accessibility_service_action_perform_title" msgid="1449360056585337833">"കാണുക, പ്രവർത്തനങ്ങൾ നിർവഹിക്കുക"</string>
- <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"ഇതിന് ഒരു ആപ്പുമായോ ഹാർഡ്വെയർ സെൻസറുമായോ ഉള്ള നിങ്ങളുടെ ആശയവിനിമയങ്ങൾ ട്രാക്ക് ചെയ്യാനും നിങ്ങളുടെ പേരിൽ ആശയവിനിമയം നടത്താനും കഴിയും."</string>
<string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"അനുവദിക്കൂ"</string>
<string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"നിരസിക്കുക"</string>
<string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"ഓഫാക്കുക"</string>
@@ -3656,9 +3643,9 @@
<string name="notif_listener_not_migrated" msgid="6265206376374278226">"മെച്ചപ്പെടുത്തിയ ക്രമീകരണത്തെ ഈ ആപ്പ് പിന്തുണയ്ക്കുന്നില്ല"</string>
<string name="notif_listener_more_settings" msgid="1348409392307208921">"കൂടുതൽ ക്രമീകരണം"</string>
<string name="notif_listener_more_settings_desc" msgid="7995492074281663658">"ഈ ആപ്പിനുള്ളിൽ കൂടുതൽ ക്രമീകരണം ലഭ്യമാണ്"</string>
- <string name="notification_polite_title" msgid="4737150709382859870">"അഡാപ്റ്റീവ് അറിയിപ്പുകൾ"</string>
- <string name="notification_polite_main_control_title" msgid="7267191551379543859">"അഡാപ്റ്റീവ് അറിയിപ്പുകൾ ഉപയോഗിക്കുക"</string>
- <string name="notification_polite_description" msgid="7749280535620291610">"ചെറിയൊരു കാലയളവിൽ നിങ്ങൾക്ക് ധാരാളം അറിയിപ്പുകൾ ലഭിച്ചാൽ രണ്ട് മിനിറ്റോളം നിങ്ങളുടെ ഫോൺ, ശബ്ദം കുറയ്ക്കുകയും സ്ക്രീനിലെ പോപ്പ്-അപ്പുകൾ ചെറുതാക്കുകയും ചെയ്യും. കോളുകളും അലാറങ്ങളും മുൻഗണനയുള്ള സംഭാഷണങ്ങളും തുടർന്നും വൈബ്രേറ്റ് ചെയ്യുകയും ശബ്ദമുണ്ടാക്കുകയും സ്ക്രീനിൽ ദൃശ്യമാകുകയും ചെയ്യും, സ്ക്രീനിന് മുകളിൽ നിന്ന് താഴോട്ട് വലിക്കുകയാണെങ്കിൽ നിങ്ങൾക്ക് എല്ലാ അറിയിപ്പുകളും എളുപ്പത്തിൽ കണ്ടെത്തുകയും ചെയ്യാം."</string>
+ <string name="notification_polite_title" msgid="6121016426991791557">"അറിയിപ്പിന്റെ കൂൾഡൗൺ"</string>
+ <string name="notification_polite_main_control_title" msgid="5812529809151927149">"അറിയിപ്പിന്റെ ശബ്ദം കുറയ്ക്കൽ ഉപയോഗിക്കുക"</string>
+ <string name="notification_polite_description" msgid="5497748284893832854">"ചെറിയൊരു കാലയളവിൽ നിങ്ങൾക്ക് നിരവധി അറിയിപ്പുകൾ ലഭിച്ചാൽ, നിങ്ങളുടെ ഉപകരണം 2 മിനിറ്റ് വരെ അതിന്റെ ശബ്ദം കുറയ്ക്കുകയും മുന്നറിയിപ്പുകൾ ചെറുതാക്കുകയും ചെയ്യും. കോളുകളെയും അലാറങ്ങളെയും മുൻഗണനയുള്ള സംഭാഷണങ്ങളെയും ബാധിക്കില്ല. \n\nകൂൾഡൗൺ സമയത്ത് ലഭിച്ച അറിയിപ്പുകൾ സ്ക്രീനിന്റെ മുകളിൽ നിന്ന് താഴേയ്ക്ക് വലിച്ച് കണ്ടെത്താം."</string>
<string name="notification_polite_work" msgid="8823596456640216391">"ഔദ്യോഗിക പ്രൊഫൈലുകളിൽ ബാധകമാക്കുക"</string>
<string name="notification_polite_work_summary" msgid="5014189280132951378">"ഔദ്യോഗിക പ്രൊഫൈൽ ആപ്പുകൾക്ക് ബാധകമാക്കുക"</string>
<string name="vr_listeners_title" msgid="4960357292472540964">"VR സഹായി സേവനങ്ങൾ"</string>
@@ -3815,7 +3802,9 @@
<string name="zen_mode_apps_priority_apps" msgid="7386196048313716076">"തിരഞ്ഞെടുത്ത ആപ്പുകൾ"</string>
<string name="zen_mode_apps_none_apps" msgid="2493642312793604327">"ഒന്നുമില്ല"</string>
<string name="zen_mode_apps_subtext" msgid="1764211974662012877">"{count,plural,offset:2 =0{ഒരു ആപ്പിനും തടസ്സപ്പെടുത്താൻ കഴിയില്ല}=1{{app_1} എന്നതിന് തടസ്സപ്പെടുത്താൻ കഴിയും}=2{{app_1}, {app_2} എന്നിവയ്ക്ക് തടസ്സപ്പെടുത്താൻ കഴിയും}=3{{app_1}, {app_2}, {app_3} എന്നിവയ്ക്ക് തടസ്സപ്പെടുത്താൻ കഴിയും}other{{app_1}, {app_2} എന്നിവയ്ക്കും മറ്റ് # എണ്ണത്തിനും തടസ്സപ്പെടുത്താൻ കഴിയും}}"</string>
+ <string name="zen_mode_apps_work_app" msgid="8528767938316361588">"<xliff:g id="APP_LABEL">%s</xliff:g> (ഔദ്യോഗികം)"</string>
<string name="zen_mode_apps_calculating" msgid="5420121396943539286">"കണക്കാക്കുന്നു…"</string>
+ <string name="zen_mode_plus_n_items" msgid="6136713354369243421">"+<xliff:g id="NUMBER">%d</xliff:g>"</string>
<string name="zen_mode_bypassing_apps" msgid="625309443389126481">"അസാധുവാക്കാൻ ആപ്പുകളെ അനുവദിക്കുക"</string>
<string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"തടസ്സപ്പെടുത്താൻ കഴിയുന്ന ആപ്പുകൾ"</string>
<string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"കൂടുതൽ ആപ്പുകൾ തിരഞ്ഞെടുക്കുക"</string>
@@ -3833,6 +3822,7 @@
<string name="zen_mode_sounds_none" msgid="6557474361948269420">"ഒന്നിനും തടസ്സപ്പെടുത്താൻ കഴിയില്ല"</string>
<string name="zen_mode_people_none" msgid="4613147461974255046">"ഒരാൾക്കും തടസ്സപ്പെടുത്താൻ കഴിയില്ല"</string>
<string name="zen_mode_people_some" msgid="9101872681298810281">"ചില ആളുകൾക്ക് തടസ്സപ്പെടുത്താൻ കഴിയും"</string>
+ <string name="zen_mode_people_repeat_callers" msgid="4499084111069828761">"ആവർത്തിച്ച് വിളിക്കുന്നവർ തടസ്സം സൃഷ്ടിക്കാം"</string>
<string name="zen_mode_people_all" msgid="311036110283015205">"എല്ലാ ആളുകൾക്കും തടസ്സപ്പെടുത്താൻ കഴിയും"</string>
<string name="zen_mode_repeat_callers" msgid="2270356100287792138">"ആവർത്തിച്ച് വിളിക്കുന്നവർ"</string>
<string name="zen_mode_repeat_callers_title" msgid="8016699240338264781">"ആവർത്തിച്ച് വിളിക്കുന്നവരെ അനുവദിക്കുക"</string>
@@ -3856,6 +3846,34 @@
<string name="zen_mode_new_custom_title" msgid="321750898430776191">"മോഡ് ചേർക്കുക"</string>
<string name="zen_mode_new_custom_default_name" msgid="2778307946775085105">"ഇഷ്ടാനുസൃത മോഡ്"</string>
<string name="zen_mode_edit_name_hint" msgid="4584652062167540536">"മോഡിന്റെ പേര്"</string>
+ <string name="zen_mode_trigger_title_schedule_calendar" msgid="9206609438617550331">"കലണ്ടർ ഇവന്റുകൾ"</string>
+ <string name="zen_mode_trigger_title_bedtime" msgid="5086070900588489978">"ഉറക്ക ഷെഡ്യൂൾ"</string>
+ <string name="zen_mode_trigger_title_driving" msgid="7890990983453164403">"ഡ്രൈവ് ചെയ്യുമ്പോൾ"</string>
+ <string name="zen_mode_trigger_title_generic" msgid="601273385119550420">"ആപ്പിലേക്ക് ലിങ്ക് ചെയ്തു"</string>
+ <string name="zen_mode_trigger_summary_settings_in_app" msgid="4860667191183702601">"<xliff:g id="APP_NAME">%1$s</xliff:g> ആപ്പിലെ വിവരങ്ങളും ക്രമീകരണവും"</string>
+ <string name="zen_mode_trigger_summary_managed_by_app" msgid="8631011868193102098">"<xliff:g id="APP_NAME">%1$s</xliff:g> മാനേജ് ചെയ്യുന്നത്"</string>
+ <string name="zen_mode_confirm_disable_title" msgid="1232297660775719796">"മോഡ് പ്രവർത്തനരഹിതമാക്കുക"</string>
+ <string name="zen_mode_confirm_disable_message" msgid="7315541221665718491">"നിങ്ങൾ ഈ ഫീച്ചർ പ്രവർത്തനരഹിതമാക്കിയാൽ, മോഡ് ഉദ്ദേശിച്ചത് പോലെ പ്രവർത്തിക്കില്ല, അതിന്റെ ഫീച്ചറുകൾ മറയ്ക്കും."</string>
+ <string name="zen_mode_action_disable" msgid="3552921561331044881">"പ്രവർത്തനരഹിതമാക്കുക"</string>
+ <string name="zen_mode_confirm_enable_title" msgid="5683371335847448595">"മോഡ് പ്രവർത്തനക്ഷമമാക്കുക"</string>
+ <string name="zen_mode_confirm_enable_message" msgid="7017879133260011419">"നിങ്ങൾ ഈ ഫീച്ചർ പ്രവർത്തനക്ഷമമാക്കിയാൽ, മോഡ് അതിന്റെ ഷെഡ്യൂൾ അനുസരിച്ച് സ്വയമേവ സജീവമാകും."</string>
+ <string name="zen_mode_action_enable" msgid="1161480633223176531">"പ്രവർത്തനക്ഷമമാക്കുക"</string>
+ <!-- no translation found for zen_mode_blurb_schedule_time (8223898702097484009) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_schedule_calendar (382177907856065945) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_bedtime (6155075956151013457) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_driving (1316054379000667305) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_immersive (5884004861848687869) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_theater (2999237960059524225) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_managed (5473921634985032149) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_generic (3041601339807075625) -->
+ <skip />
<string name="warning_button_text" msgid="1274234338874005639">"മുന്നറിയിപ്പ്"</string>
<string name="suggestion_button_close" msgid="6865170855573283759">"അടയ്ക്കുക"</string>
<string name="device_feedback" msgid="5351614458411688608">"ഇതേക്കുറിച്ചുള്ള ഫീഡ്ബാക്ക് അയയ്ക്കൂ"</string>
@@ -4842,9 +4860,8 @@
<string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"ബാറ്ററി"</string>
<string name="settings_panel_title" msgid="346363079938069215">"ക്രമീകരണ പാനൽ"</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>
+ <!-- no translation found for enable_desktop_mode_on_secondary_display (2609567824593768780) -->
+ <skip />
<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>
@@ -5019,7 +5036,6 @@
<string name="default_active_sim_mobile_data" msgid="6798083892814045301">"മൊബൈൽ ഡാറ്റ"</string>
<string name="wifi_scan_notify_message" msgid="1331238142061476869">"ഉപകരണ അനുഭവം മെച്ചപ്പെടുത്താൻ, വൈഫൈ ഓഫാക്കിയിരിക്കുമ്പോൾ പോലും ആപ്പുകൾക്കും സേവനങ്ങൾക്കും വൈഫൈ നെറ്റ്വർക്കുകൾ കണ്ടെത്താൻ ഏത് സമയത്തും സ്കാൻ ചെയ്യാനാകും. ഉദാഹരണത്തിന്, ലൊക്കേഷൻ അധിഷ്ഠിത ഫീച്ചറുകളും സേവനങ്ങളും മെച്ചപ്പെടുത്താൻ ഇത് ഉപയോഗിക്കാം. നിങ്ങൾക്ക് ഇത് വൈഫൈ സ്കാനിംഗ് ക്രമീകരണത്തിൽ മാറ്റാം."</string>
<string name="wifi_scan_change" msgid="8438320311511852918">"മാറ്റുക"</string>
- <string name="preference_summary_default_combination" msgid="4643585915107796253">"<xliff:g id="STATE">%1$s</xliff:g> / <xliff:g id="NETWORKMODE">%2$s</xliff:g>"</string>
<string name="mobile_data_connection_active" msgid="2422223108911581552">"കണക്റ്റ് ചെയ്തു"</string>
<string name="mobile_data_temp_connection_active" msgid="3430470299756236413">"താൽക്കാലികമായി കണക്റ്റ് ചെയ്തിരിക്കുന്നു"</string>
<string name="mobile_data_temp_using" msgid="5211002380149434155">"താൽക്കാലികമായി <xliff:g id="SUBNAME">%1$s</xliff:g> ഉപയോഗിക്കുന്നു"</string>
@@ -5165,9 +5181,11 @@
<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="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_enable_freeform_support" msgid="3697462756493543645">"ഫ്രീംഫോം വിൻഡോയ്ക്കുള്ള പിന്തുണ പ്രവർത്തനക്ഷമമാക്കാൻ റീബൂട്ട് ചെയ്യേണ്ടതുണ്ട്."</string>
+ <!-- no translation found for reboot_dialog_override_desktop_mode (7480950772574354130) -->
+ <skip />
+ <!-- no translation found for reboot_dialog_enable_desktop_mode_on_secondary_display (1153621881052401924) -->
+ <skip />
<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>
@@ -5398,5 +5416,6 @@
<string name="audio_streams_main_page_password_dialog_join_button" msgid="2967747276379153408">"സ്ട്രീം ചെയ്യുന്നത് കേൾക്കുക"</string>
<string name="audio_streams_main_page_qr_code_scanner_summary" msgid="5312980105735143360">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> ഉപയോഗിച്ച് കേൾക്കാൻ ഓഡിയോ സ്ട്രീം QR കോഡ് സ്കാൻ ചെയ്യുക"</string>
<string name="audio_streams_main_page_password_dialog_cannot_edit" msgid="9020898619297520153">"പങ്കിടുമ്പോൾ പാസ്വേഡ് എഡിറ്റ് ചെയ്യാനാകില്ല. പാസ്വേഡ് മാറ്റാൻ, ആദ്യം ഓഡിയോ പങ്കിടൽ ഓഫാക്കുക."</string>
+ <string name="audio_streams_qr_code_scanner_label" msgid="8799703301071378034">"QR കോഡ് സ്കാനർ"</string>
<string name="homepage_search" msgid="6759334912284663559">"തിരയൽ ക്രമീകരണം"</string>
</resources>
diff --git a/res/values-mn/strings.xml b/res/values-mn/strings.xml
index 731724d..f8946a0 100644
--- a/res/values-mn/strings.xml
+++ b/res/values-mn/strings.xml
@@ -41,6 +41,8 @@
<string name="radioInfo_data_suspended" msgid="2001254415431299603">"Түр хаасан"</string>
<string name="radioInfo_unknown" msgid="2892562356748600367">"Тодорхойгүй"</string>
<string name="preview_pager_content_description" msgid="3762247188224576303">"Урьдчилан үзэх"</string>
+ <!-- no translation found for qr_code_content_description (1852208464419291347) -->
+ <skip />
<string name="font_size_make_smaller_desc" msgid="4978038055549590140">"Жижигрүүлэх"</string>
<string name="font_size_make_larger_desc" msgid="5583046033381722247">"Томруулах"</string>
<string name="stay_awake_on_fold_title" msgid="6590454679898134221">"Үргэлж"</string>
@@ -283,7 +285,7 @@
<string name="location_settings_summary_location_off" msgid="4797932754681162262">"Унтраалттай"</string>
<string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{Асаалттай / # апп байршилд хандах эрхтэй}other{Асаалттай / # апп байршилд хандах эрхтэй}}"</string>
<string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"Ачаалж байна…"</string>
- <string name="location_settings_footer_general" msgid="1040507068701188821">"Ойролцоох төхөөрөмжүүдийн зөвшөөрөлтэй аппууд холбогдсон төхөөрөмжүүдийн харгалзах байрлалыг тодорхойлох боломжтой."</string>
+ <string name="location_settings_footer_general" msgid="3447585552176173502">"Ойролцоох төхөөрөмжийн зөвшөөрөлтэй аппууд холбогдсон төхөөрөмжийн харгалзах байрлалыг тодорхойлох боломжтой."</string>
<string name="location_settings_footer_location_off" msgid="8568995909147566720">"Аппууд болон үйлчилгээнүүдэд байршлын хандалт унтраалттай байна. Таныг яаралтай тусламжийн утасны дугаар луу залгах эсвэл мессеж бичих үед таны төхөөрөмжийн байршлыг яаралтай тусламжийн үйлчилгээ үзүүлэгчид рүү илгээсэн хэвээр байж магадгүй."</string>
<string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Байршлын тохиргооны талаар нэмэлт мэдээлэл авах"</string>
<string name="location_settings_tooltip_text_for_chrome" msgid="5781821709250544575">"Өөрчлөхийн тулд ChromeOS-н Тохиргоо > Нууцлал, аюулгүй байдал > Нууцлалын тохиргоо > Байршлын хандалт руу очно уу"</string>
@@ -850,7 +852,6 @@
<string name="nfc_reboot_dialog_title" msgid="2033983438635768169">"Төхөөрөмжийг дахин эхлүүлэх үү?"</string>
<string name="nfc_reboot_dialog_message" msgid="4929353168157966992">"Нарийвчилсан NFC лог нь зөвхөн хөгжүүлэлтийн зориулалттай. Нэмэлт NFC өгөгдлийг алдааны мэдээнд багтаасан бөгөөд энэ нь хувийн мэдээлэл агуулж байж магадгүй. Энэ тохиргоог өөрчлөхийн тулд төхөөрөмжөө дахин эхлүүлнэ үү."</string>
<string name="nfc_reboot_dialog_confirm" msgid="4769763632008584567">"Дахин эхлүүлэх"</string>
- <string name="keywords_external_display" msgid="4181375057920134909">"тусгал үүсгэх, гаднын дэлгэц, холбогдсон дэлгэц, usb дэлгэц, нягтрал, эргүүлэлт"</string>
<string name="external_display_on" msgid="2560104443500154333">"Асаалттай"</string>
<string name="external_display_off" msgid="5634413756025351374">"Унтраалттай"</string>
<string name="external_display_settings_title" msgid="6256884595821605779">"Гаднын дэлгэц"</string>
@@ -1918,6 +1919,8 @@
<string name="slow_keys_summary" msgid="1784371292745423292">"Товчлуур даралт идэвхжихэд зарцуулах хугацааг <xliff:g id="SLOW_KEYS_THRESHOLD">%1$d</xliff:g> мс болгож тохируулна"</string>
<string name="sticky_keys" msgid="7317317044898161747">"Бэхэлсэн түлхүүрүүд"</string>
<string name="sticky_keys_summary" msgid="1844953803625480623">"Товчлолд товчлууруудыг хамтад нь удаан дарахын оронд нэг удаад нэг товчлуур дарна уу"</string>
+ <string name="mouse_keys" msgid="6237254627808525540">"Хулганын товч"</string>
+ <string name="mouse_keys_summary" msgid="2396247040177734245">"Хулганыг хянахад биет гарыг ашиглана уу."</string>
<string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"Гарын товчлол"</string>
<string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"Товчлолын жагсаалтыг харуулах"</string>
<string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"Ажлын профайлын гар & хэрэгсэл"</string>
@@ -1942,14 +1945,10 @@
<string name="pointer_fill_style_yellow_button" msgid="5025969961559379024">"Заагчийг дүүргэх загварыг шар болго"</string>
<string name="pointer_fill_style_pink_button" msgid="4106218142489635673">"Заагчийг дүүргэх загварыг ягаан болго"</string>
<string name="pointer_fill_style_blue_button" msgid="5594958078854032785">"Заагчийг дүүргэх загварыг цэнхэр болго"</string>
- <!-- no translation found for pointer_stroke_style (1886986630216050665) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_white (673686194443825383) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_black (4655806167067437330) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_none (8953927511729800247) -->
- <skip />
+ <string name="pointer_stroke_style" msgid="1886986630216050665">"Заагчийн зурлагын загвар"</string>
+ <string name="pointer_stroke_style_name_white" msgid="673686194443825383">"Цагаан"</string>
+ <string name="pointer_stroke_style_name_black" msgid="4655806167067437330">"Хар"</string>
+ <string name="pointer_stroke_style_name_none" msgid="8953927511729800247">"Байхгүй"</string>
<string name="trackpad_touch_gesture" msgid="8641725062131922497">"Мэдрэгч самбарын зангааг мэдэж авах"</string>
<string name="keywords_touchpad" msgid="8159846254066666032">"мэдрэгч самбар, мэдрэгч самбар, хулгана, курсор, гүйлгэх, шудрах, баруун талыг товших, товших, заагч"</string>
<string name="keywords_trackpad_bottom_right_tap" msgid="1285062446073929305">"баруун талыг товших, товших"</string>
@@ -2179,8 +2178,6 @@
<string name="accessibility_shortcut_edit_dialog_summary_floating_button" msgid="6266489864614886247">"Хөвөгч товчлуурыг товшино уу"</string>
<string name="accessibility_shortcut_edit_dialog_title_software_by_gesture" msgid="4775049370625630546">"Хандалтын зангаа"</string>
<string name="accessibility_shortcut_edit_dialog_summary_software" msgid="8315934725362849788">"Дэлгэцийнхээ доод талд байх <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g> хандалтын товчлуурыг товшино уу. Онцлогуудын хооронд сэлгэхийн тулд хандалтын товчлуурыг удаан дарна уу."</string>
- <string name="accessibility_shortcut_edit_dialog_summary_software_gesture" msgid="8292555254353761635">"Дэлгэцийн доороос дээш 2 хуруугаар шударна уу.\n\nОнцлогуудын хооронд сэлгэхийн тулд 2 хуруугаар дээш шудраад удаан дарна уу."</string>
- <string name="accessibility_shortcut_edit_dialog_summary_software_gesture_talkback" msgid="84483464524360845">"Дэлгэцийн доороос дээш 3 хуруугаар шударна уу.\n\nОнцлогуудын хооронд сэлгэхийн тулд 3 хуруугаар дээш шудраад удаан дарна уу."</string>
<string name="accessibility_shortcut_edit_dialog_summary_gesture" msgid="2081123009255579884">"{count,plural, =1{Дэлгэцийнхээ доод талаас дээш шударна уу. Онцлогуудын хооронд сэлгэхийн тулд дээш шудраад, удаан дарна уу.}other{Дэлгэцийнхээ доод талаас # хуруугаараа дээш шударна уу. Онцлогуудын хооронд сэлгэхийн тулд # хуруугаараа дээш шудраад, удаан дарна уу.}}"</string>
<string name="accessibility_shortcut_edit_dialog_summary_software_floating" msgid="4459254227203203324"><annotation id="link">"Бусад сонголт"</annotation></string>
<string name="footer_learn_more_content_description" msgid="8843798273152131341">"<xliff:g id="SERVICE">%1$s</xliff:g>-н талаар нэмэлт мэдээлэл авах"</string>
@@ -2191,16 +2188,12 @@
<string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="844089763968552142">"Дууны түвшний товчнууд"</string>
<string name="accessibility_shortcut_hardware_keyword" msgid="2483152542320987022">"дууны түвшний товчнууд"</string>
<string name="accessibility_shortcut_edit_dialog_summary_hardware" msgid="2503134386397991634">"Дууны түвшний хоёр товчийг зэрэг удаан дарна уу"</string>
- <string name="accessibility_shortcut_edit_dialog_title_two_finger_double_tap" msgid="2271778556854020996">"Дэлгэцийг хоёр хуруугаараа хоёр товшино уу"</string>
<string name="accessibility_shortcut_edit_screen_title_two_finger_double_tap" msgid="8952595692906527694">"%1$d хуруугаар хоёр товших"</string>
<string name="accessibility_shortcut_edit_screen_summary_two_finger_double_tap" msgid="385404127425496362">"Дэлгэц дээр хоёр удаа %1$d хуруугаараа хурдан товшино уу"</string>
<string name="accessibility_shortcut_edit_screen_title_triple_tap" msgid="3314488747597058942">"Гурав товших"</string>
<string name="accessibility_shortcut_edit_screen_summary_triple_tap" msgid="4839204951599629871">"Дэлгэц дээр %1$d удаа хурдан товшино уу. Энэ нь таны төхөөрөмжийг удаашруулж магадгүй."</string>
<string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="6271718715836961167">"%1$d хуруугаар хоёр товших"</string>
- <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"Дэлгэцийг хоёр хуруугаараа {0,number,integer} удаа шуурхай товшино уу"</string>
- <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"Дэлгэцийг гурав товших"</string>
<string name="accessibility_shortcut_triple_tap_keyword" msgid="5359347130888464334">"гурав товших"</string>
- <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"Дэлгэцийг {0,number,integer} удаа хурдан товшино уу. Энэ товчлол таны төхөөрөмжийг удаашруулж магадгүй."</string>
<string name="accessibility_shortcut_edit_dialog_title_advance" msgid="4567868630655591506">"Дэлгэрэнгүй"</string>
<string name="accessibility_screen_magnification_navbar_configuration_warning" msgid="266736851606791552">"Хүртээмжийн товчлуурыг <xliff:g id="SERVICE">%1$s</xliff:g> болгож тохируулсан. Томруулахын тулд Хүртээмжийн товчлуурыг удаан дараад, томруулахыг сонгоно уу."</string>
<string name="accessibility_screen_magnification_gesture_navigation_warning" msgid="991017769735632046">"Хандалтын зангааг <xliff:g id="SERVICE">%1$s</xliff:g>-д тохирууллаа. Томруулахыг ашиглахын тулд хоёр хуруугаараа дэлгэцийн доороос дээш шудраад удаан дарна уу. Дараа нь томруулахыг сонгоно уу."</string>
@@ -2369,6 +2362,7 @@
<string name="daltonizer_mode_tritanomaly_title" msgid="2278786218762602022">"Цэнхэр-шар"</string>
<string name="daltonizer_mode_grayscale_title" msgid="152005391387952588">"Саарал өнгө"</string>
<string name="daltonizer_saturation_title" msgid="2999486412114963068">"Нэвчилт"</string>
+ <string name="daltonizer_saturation_unavailable_summary" msgid="8319753055567798775">"Саарал өнгөний горимын хувьд эсвэл өнгө засахыг идэвхгүй болгосон байхад боломжгүй"</string>
<string name="daltonizer_mode_deuteranomaly_summary" msgid="2117727423019598455">"Ногоон сул, дьютераномаль"</string>
<string name="daltonizer_mode_protanomaly_summary" msgid="4617032854982040748">"Улаан сул, протаномаль"</string>
<string name="daltonizer_mode_tritanomaly_summary" msgid="2428218320118180070">"Тританомаль"</string>
@@ -2418,15 +2412,8 @@
<string name="color_cyan" msgid="4341758639597035927">"Шар хөх"</string>
<string name="color_yellow" msgid="5957551912912679058">"Шар"</string>
<string name="color_magenta" msgid="8943538189219528423">"Улаан"</string>
- <string name="enable_service_title" msgid="7231533866953706788">"<xliff:g id="SERVICE">%1$s</xliff:g>-д таны төхөөрөмжийг бүрэн хянахыг зөвшөөрөх үү?"</string>
<string name="capabilities_list_title" msgid="1225853611983394386">"<xliff:g id="SERVICE">%1$s</xliff:g> шаардлага:"</string>
<string name="touch_filtered_warning" msgid="4225815157460318241">"Апп нь зөвшөөрөл авах хүсэлтийг танихгүй байгаа тул Тохиргооноос таны хариултыг баталгаажуулж чадахгүй байна."</string>
- <string name="accessibility_service_warning" msgid="6779187188736432618">"<xliff:g id="SERVICE">%1$s</xliff:g> энэ төхөөрөмжийг бүрэн хянах хүсэлтэй байна. Энэ үйлчилгээ дэлгэцийг уншиж, хүртээмжийн үйлчилгээ шаардлагатай хэрэглэгчдийн өмнөөс үйлдэл хийх боломжтой. Энэ түвшний хяналт нь ихэнх аппад тохиромжгүй."</string>
- <string name="accessibility_service_warning_description" msgid="6573203795976134751">"Бүрэн хянах нь таны хандалтын үйлчилгээний шаардлагад тусалдаг аппуудад тохиромжтой боловч ихэнх аппад тохиромжгүй байдаг."</string>
- <string name="accessibility_service_screen_control_title" msgid="324795030658109870">"Дэлгэцийг харах ба хянах"</string>
- <string name="accessibility_service_screen_control_description" msgid="8431940515157990426">"Энэ нь дэлгэц дээрх бүх контентыг унших болон контентыг бусад аппад харуулах боломжтой."</string>
- <string name="accessibility_service_action_perform_title" msgid="1449360056585337833">"Үйлдлийг харах болон гүйцэтгэх"</string>
- <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"Энэ нь таны апп болон техник хангамжийн мэдрэгчтэй хийх харилцан үйлдлийг хянах болон таны өмнөөс апптай харилцан үйлдэл хийх боломжтой."</string>
<string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Зөвшөөрөх"</string>
<string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Татгалзах"</string>
<string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Унтраах"</string>
@@ -3368,10 +3355,8 @@
<string name="zen_mode_automation_settings_title" msgid="3709324184191870926">"Хуваарь"</string>
<string name="zen_mode_delete_automatic_rules" msgid="5020468289267191765">"Хуваарийг устгах"</string>
<string name="zen_mode_schedule_delete" msgid="5383420576833765114">"Устгах"</string>
- <!-- no translation found for zen_mode_menu_rename_mode (4681802125016390837) -->
- <skip />
- <!-- no translation found for zen_mode_menu_delete_mode (5380084696402157428) -->
- <skip />
+ <string name="zen_mode_menu_rename_mode" msgid="4681802125016390837">"Нэр өөрчлөх"</string>
+ <string name="zen_mode_menu_delete_mode" msgid="5380084696402157428">"Устгах"</string>
<string name="zen_mode_delete_mode_confirmation" msgid="7594340592051947392">"\"<xliff:g id="MODE">%1$s</xliff:g>\" горимыг устгах уу?"</string>
<string name="zen_mode_rule_name_edit" msgid="1053237022416700481">"Засах"</string>
<string name="zen_mode_automation_settings_page_title" msgid="6217433860514433311">"Хуваарь"</string>
@@ -3395,8 +3380,7 @@
<string name="zen_mode_visual_signals_settings_subtitle" msgid="7433077540895876672">"Харагдаж буй дохиог зөвшөөрөх"</string>
<string name="mode_interruption_filter_title" msgid="3343846700214702347">"Төвлөрсөөр байгаарай"</string>
<string name="mode_device_effects_title" msgid="5857008332618433744">"Нэмэлт үйлдлүүд"</string>
- <!-- no translation found for modes_sound_summary_off (6972648204528227879) -->
- <skip />
+ <string name="modes_sound_summary_off" msgid="6972648204528227879">"{count,plural, =0{Унтраалттай}=1{Унтраалттай / 1 горимыг автоматаар асааж болно}other{Унтраалттай / # горимыг автоматаар асааж болно}}"</string>
<string name="mode_display_settings_title" msgid="8132825978346535472">"Дэлгэцийн тохиргоо"</string>
<string name="mode_display_options_section" msgid="5151597748243866532">"Дэлгэцийн сонголтууд"</string>
<string name="mode_grayscale_title" msgid="6027553257331235461">"Саарал өнгө"</string>
@@ -3659,9 +3643,9 @@
<string name="notif_listener_not_migrated" msgid="6265206376374278226">"Энэ апп нь сайжруулсан тохиргоог дэмждэггүй"</string>
<string name="notif_listener_more_settings" msgid="1348409392307208921">"Бусад тохиргоо"</string>
<string name="notif_listener_more_settings_desc" msgid="7995492074281663658">"Энэ аппад бусад тохиргоо боломжтой"</string>
- <string name="notification_polite_title" msgid="4737150709382859870">"Дасан зохицох мэдэгдэл"</string>
- <string name="notification_polite_main_control_title" msgid="7267191551379543859">"Дасан зохицох мэдэгдлийг ашиглах"</string>
- <string name="notification_polite_description" msgid="7749280535620291610">"Та богино хугацаанд олон мэдэгдэл авсан үед таны утас хоёр хүртэлх минутын турш дууны түвшнийг сулруулж, дэлгэц дээрх попапыг багасгана. Дуудлага, сэрүүлэг, чухал харилцан яриа өмнөхтэй адилаар чичрэх, дуу гаргах, дэлгэц дээр харагдах бөгөөд таныг дэлгэцийн дээд талаас доош татах үед бүх мэдэгдэл олоход хялбар байна."</string>
+ <string name="notification_polite_title" msgid="6121016426991791557">"Мэдэгдлийн хөргөлт"</string>
+ <string name="notification_polite_main_control_title" msgid="5812529809151927149">"Мэдэгдлийн хөргөлтийг ашиглах"</string>
+ <string name="notification_polite_description" msgid="5497748284893832854">"Та богино хугацаанд олон мэдэгдэл хүлээн авсан үед таны төхөөрөмж 2 хүртэлх минутын турш дууны түвшнээ сулруулж, сэрэмжлүүлэг/дохиог багасгана. Дуудлага, сэрүүлэг, чухал харилцан ярианд нөлөөлөхгүй. \n\nХөргөлтийн үеэр хүлээн авсан мэдэгдлийг дэлгэцийн дээд талаас доош татсанаар олох боломжтой."</string>
<string name="notification_polite_work" msgid="8823596456640216391">"Ажлын профайлуудад хэрэгжүүлэх"</string>
<string name="notification_polite_work_summary" msgid="5014189280132951378">"Ажлын профайлын аппуудад ашиглах"</string>
<string name="vr_listeners_title" msgid="4960357292472540964">"VR туслагч үйлчилгээ"</string>
@@ -3818,7 +3802,9 @@
<string name="zen_mode_apps_priority_apps" msgid="7386196048313716076">"Сонгосон аппууд"</string>
<string name="zen_mode_apps_none_apps" msgid="2493642312793604327">"Байхгүй"</string>
<string name="zen_mode_apps_subtext" msgid="1764211974662012877">"{count,plural,offset:2 =0{Ямар ч апп тасалдуулах боломжгүй}=1{{app_1} тасалдуулах боломжтой}=2{{app_1} болон {app_2} тасалдуулах боломжтой}=3{{app_1}, {app_2}, {app_3} тасалдуулах боломжтой}other{{app_1}, {app_2} болон өөр # апп тасалдуулах боломжтой}}"</string>
+ <string name="zen_mode_apps_work_app" msgid="8528767938316361588">"<xliff:g id="APP_LABEL">%s</xliff:g> (ажил)"</string>
<string name="zen_mode_apps_calculating" msgid="5420121396943539286">"Тооцоолж байна…"</string>
+ <string name="zen_mode_plus_n_items" msgid="6136713354369243421">"+<xliff:g id="NUMBER">%d</xliff:g>"</string>
<string name="zen_mode_bypassing_apps" msgid="625309443389126481">"Аппуудад дарахыг нь зөвшөөрөх"</string>
<string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"Тасалдуулах боломжтой аппууд"</string>
<string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"Бусад аппыг сонгох"</string>
@@ -3836,6 +3822,7 @@
<string name="zen_mode_sounds_none" msgid="6557474361948269420">"Юу ч тасалдуулах боломжгүй"</string>
<string name="zen_mode_people_none" msgid="4613147461974255046">"Хэн ч тасалдуулах боломжгүй"</string>
<string name="zen_mode_people_some" msgid="9101872681298810281">"Зарим хүн тасалдуулах боломжтой"</string>
+ <string name="zen_mode_people_repeat_callers" msgid="4499084111069828761">"Давтан дуудлага хийгчид тасалдуулах боломжтой"</string>
<string name="zen_mode_people_all" msgid="311036110283015205">"Бүх хүн тасалдуулах боломжтой"</string>
<string name="zen_mode_repeat_callers" msgid="2270356100287792138">"Давтан дуудлага хийгч"</string>
<string name="zen_mode_repeat_callers_title" msgid="8016699240338264781">"Давтан дуудлага хийгчийг зөвшөөрөх"</string>
@@ -3855,13 +3842,37 @@
<string name="zen_mode_summary_alarms_only_by_hour" msgid="7400910210950788163">"{count,plural, =1{{time} хүртэл зөвхөн нэг цагийн турш сэрүүлэг болгож өөрчилнө}other{{time} хүртэл зөвхөн # цагийн турш сэрүүлэг болгож өөрчилнө}}"</string>
<string name="zen_mode_summary_alarms_only_by_time" msgid="8140619669703968810">"<xliff:g id="FORMATTEDTIME">%1$s</xliff:g> хүртэл анхааруулах горимд шилжих"</string>
<string name="zen_mode_summary_always" msgid="722093064250082317">"Үргэлж саад бол горимд шилжих"</string>
- <!-- no translation found for zen_mode_rename_title (8146882272966214558) -->
+ <string name="zen_mode_rename_title" msgid="8146882272966214558">"Засах горим"</string>
+ <string name="zen_mode_new_custom_title" msgid="321750898430776191">"Нэмэх горим"</string>
+ <string name="zen_mode_new_custom_default_name" msgid="2778307946775085105">"Захиалгат горим"</string>
+ <string name="zen_mode_edit_name_hint" msgid="4584652062167540536">"Горимын нэр"</string>
+ <string name="zen_mode_trigger_title_schedule_calendar" msgid="9206609438617550331">"Календарийн үйл явдал"</string>
+ <string name="zen_mode_trigger_title_bedtime" msgid="5086070900588489978">"Унтах хуваарь"</string>
+ <string name="zen_mode_trigger_title_driving" msgid="7890990983453164403">"Жолоо барьж байхад"</string>
+ <string name="zen_mode_trigger_title_generic" msgid="601273385119550420">"Аппад холбосон"</string>
+ <string name="zen_mode_trigger_summary_settings_in_app" msgid="4860667191183702601">"<xliff:g id="APP_NAME">%1$s</xliff:g> дахь мэдээлэл ба тохиргоо"</string>
+ <string name="zen_mode_trigger_summary_managed_by_app" msgid="8631011868193102098">"<xliff:g id="APP_NAME">%1$s</xliff:g>-н удирддаг"</string>
+ <string name="zen_mode_confirm_disable_title" msgid="1232297660775719796">"Горимыг идэвхгүй болгох"</string>
+ <string name="zen_mode_confirm_disable_message" msgid="7315541221665718491">"Хэрэв та энэ онцлогийг идэвхгүй болговол тухайн горим зориулалтын дагуу ажиллахгүй ба тохиргоог нь нууна."</string>
+ <string name="zen_mode_action_disable" msgid="3552921561331044881">"Идэвхгүй болгох"</string>
+ <string name="zen_mode_confirm_enable_title" msgid="5683371335847448595">"Горимыг идэвхжүүлэх"</string>
+ <string name="zen_mode_confirm_enable_message" msgid="7017879133260011419">"Хэрэв та энэ онцлогийг идэвхжүүлбэл тухайн горим хуваарийнхаа дагуу автоматаар идэвхэжнэ."</string>
+ <string name="zen_mode_action_enable" msgid="1161480633223176531">"Идэвхжүүлэх"</string>
+ <!-- no translation found for zen_mode_blurb_schedule_time (8223898702097484009) -->
<skip />
- <!-- no translation found for zen_mode_new_custom_title (321750898430776191) -->
+ <!-- no translation found for zen_mode_blurb_schedule_calendar (382177907856065945) -->
<skip />
- <!-- no translation found for zen_mode_new_custom_default_name (2778307946775085105) -->
+ <!-- no translation found for zen_mode_blurb_bedtime (6155075956151013457) -->
<skip />
- <!-- no translation found for zen_mode_edit_name_hint (4584652062167540536) -->
+ <!-- no translation found for zen_mode_blurb_driving (1316054379000667305) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_immersive (5884004861848687869) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_theater (2999237960059524225) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_managed (5473921634985032149) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_generic (3041601339807075625) -->
<skip />
<string name="warning_button_text" msgid="1274234338874005639">"Сануулга"</string>
<string name="suggestion_button_close" msgid="6865170855573283759">"Хаах"</string>
@@ -4849,9 +4860,8 @@
<string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"Батарей"</string>
<string name="settings_panel_title" msgid="346363079938069215">"Тохиргооны самбар"</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>
+ <!-- no translation found for enable_desktop_mode_on_secondary_display (2609567824593768780) -->
+ <skip />
<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>
@@ -5026,7 +5036,6 @@
<string name="default_active_sim_mobile_data" msgid="6798083892814045301">"мобайл дата"</string>
<string name="wifi_scan_notify_message" msgid="1331238142061476869">"Төхөөрөмжийн хэрэглээг сайжруулахын тулд аппууд болон үйлчилгээнүүд нь Wi-Fi сүлжээг хүссэн үедээ буюу Wi-Fi-г унтраалттай байсан ч скан хийх боломжтой хэвээр байна. Үүнийг байршилд тулгуурласан онцлогууд болон үйлчилгээнүүдийг сайжруулах зэргээр ашиглаж болно. Та үүнийг Wi-Fi скан хийх тохиргоонд өөрчлөх боломжтой."</string>
<string name="wifi_scan_change" msgid="8438320311511852918">"Өөрчлөх"</string>
- <string name="preference_summary_default_combination" msgid="4643585915107796253">"<xliff:g id="STATE">%1$s</xliff:g> / <xliff:g id="NETWORKMODE">%2$s</xliff:g>"</string>
<string name="mobile_data_connection_active" msgid="2422223108911581552">"Холбогдсон"</string>
<string name="mobile_data_temp_connection_active" msgid="3430470299756236413">"Түр зуур холбогдсон"</string>
<string name="mobile_data_temp_using" msgid="5211002380149434155">"<xliff:g id="SUBNAME">%1$s</xliff:g>-г түр зуур ашиглаж байна"</string>
@@ -5172,9 +5181,11 @@
<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="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_enable_freeform_support" msgid="3697462756493543645">"Чөлөөт хэлбэрийн цонхны дэмжлэгийг идэвхжүүлэхэд дахин асаах шаардлагатай."</string>
+ <!-- no translation found for reboot_dialog_override_desktop_mode (7480950772574354130) -->
+ <skip />
+ <!-- no translation found for reboot_dialog_enable_desktop_mode_on_secondary_display (1153621881052401924) -->
+ <skip />
<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>
@@ -5292,10 +5303,8 @@
<string name="show_captions_enabled" msgid="7089043007924626">"Асаалттай"</string>
<string name="live_caption_disabled" msgid="3562035026547887366">"Унтраалттай"</string>
<string name="live_caption_enabled" msgid="5269360946200718949">"Асаалттай"</string>
- <!-- no translation found for audio_seek_bar_state_left_first (8814986910920838972) -->
- <skip />
- <!-- no translation found for audio_seek_bar_state_right_first (1999368979633398876) -->
- <skip />
+ <string name="audio_seek_bar_state_left_first" msgid="8814986910920838972">"Аудио %1$d%% зүүн, %2$d%% баруун"</string>
+ <string name="audio_seek_bar_state_right_first" msgid="1999368979633398876">"Аудио %1$d%% баруун, %2$d%% зүүн"</string>
<string name="about_phone_device_name_warning" msgid="3243226572404472381">"Таны төхөөрөмжийн нэр суулгасан аппуудад тань харагдана. Таныг Bluetooth төхөөрөмжүүд, Wi-Fi сүлжээнд холбогдох эсвэл Wi-Fi сүлжээний цэг тохируулах үед үүнийг мөн бусад хүн харж магадгүй."</string>
<string name="grammatical_gender_title" msgid="8584242850477270828">"Хэл зүйн хүйс"</string>
<string name="grammatical_gender_dialog_title" msgid="8754048592099871587">"Хэл зүйн хүйс сонгох"</string>
@@ -5407,5 +5416,6 @@
<string name="audio_streams_main_page_password_dialog_join_button" msgid="2967747276379153408">"Дамжуулалтыг сонсох"</string>
<string name="audio_streams_main_page_qr_code_scanner_summary" msgid="5312980105735143360">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>-р сонсохын тулд аудио дамжуулалтын QR кодыг скан хийнэ үү"</string>
<string name="audio_streams_main_page_password_dialog_cannot_edit" msgid="9020898619297520153">"Хуваалцаж байхад нууц үгийг засах боломжгүй. Нууц үгийг өөрчлөхийн тулд эхлээд аудио хуваалцахыг унтраана уу."</string>
+ <string name="audio_streams_qr_code_scanner_label" msgid="8799703301071378034">"QR код сканнер"</string>
<string name="homepage_search" msgid="6759334912284663559">"Хайлтын тохиргоо"</string>
</resources>
diff --git a/res/values-mr/strings.xml b/res/values-mr/strings.xml
index 8bfccc7..9b0fd14 100644
--- a/res/values-mr/strings.xml
+++ b/res/values-mr/strings.xml
@@ -41,6 +41,8 @@
<string name="radioInfo_data_suspended" msgid="2001254415431299603">"निलंबित"</string>
<string name="radioInfo_unknown" msgid="2892562356748600367">"अज्ञात"</string>
<string name="preview_pager_content_description" msgid="3762247188224576303">"पूर्वावलोकन"</string>
+ <!-- no translation found for qr_code_content_description (1852208464419291347) -->
+ <skip />
<string name="font_size_make_smaller_desc" msgid="4978038055549590140">"आणखी लहान करा"</string>
<string name="font_size_make_larger_desc" msgid="5583046033381722247">"आणखी मोठे करा"</string>
<string name="stay_awake_on_fold_title" msgid="6590454679898134221">"नेहमी"</string>
@@ -283,7 +285,7 @@
<string name="location_settings_summary_location_off" msgid="4797932754681162262">"बंद"</string>
<string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{सुरू आहे / # अॅपला स्थानाचा अॅक्सेस आहे}other{सुरू आहे / # अॅप्सना स्थानाचा अॅक्सेस आहे}}"</string>
<string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"लोड करत आहे…"</string>
- <string name="location_settings_footer_general" msgid="1040507068701188821">"जवळपासच्या डिव्हाइसची परवानगी असणारी ॲप्स कनेक्ट केलेल्या डिव्हाइसचे संबंधित स्थान निर्धारित करू शकतात."</string>
+ <string name="location_settings_footer_general" msgid="3447585552176173502">"जवळपासच्या डिव्हाइसची परवानगी असणारी ॲप्स कनेक्ट केलेल्या डिव्हाइसचे संबंधित स्थान निर्धारित करू शकतात."</string>
<string name="location_settings_footer_location_off" msgid="8568995909147566720">"ॲप्स आणि सेवांसाठी स्थान अॅक्सेस बंद आहे. तुम्ही आणीबाणी नंबरवर कॉल केल्यास किंवा एसएमएस पाठवल्यास तुमच्या डिव्हाइसचे स्थान आणीबाणी प्रतिसादकर्त्यांना अद्याप पाठवले जाऊ शकते."</string>
<string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"स्थान सेटिंग्जबद्दल अधिक जाणून घ्या"</string>
<string name="location_settings_tooltip_text_for_chrome" msgid="5781821709250544575">"बदलण्यासाठी ChromeOS सेटिंग्ज > गोपनीयता आणि सुरक्षा > गोपनीयता नियंत्रणे > स्थान अॅक्सेस वर जा"</string>
@@ -383,7 +385,7 @@
<string name="security_settings_fingerprint_v2_enroll_introduction_footer_title_2" msgid="2580899232734177771">"हे कसे काम करते"</string>
<string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_2" msgid="5909924864816776516">"ते तुम्हीच आहात याची पडताळणी करण्यासाठी फिंगरप्रिंट अनलॉक तुमच्या फिंगरप्रिंटचे युनिक मॉडेल तयार करते. सेटअपदरम्यान हे फिंगरप्रिंट मॉडेल तयार करण्यासाठी, तुम्ही तुमच्या फिंगरप्रिंटच्या वेगवेगळ्या स्थितीमधील इमेज घ्याल."</string>
<string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_consent_2" msgid="3493356605815124807">"फिंगरप्रिंट अनलॉक हे तुमच्या लहान मुलाची, ते तेच आहेत याची पडताळणी करण्यासाठी तुमच्या लहान मुलाच्या फिंगरप्रिंटचे युनिक मॉडेल तयार करते. सेटअपदरम्यान हे फिंगरप्रिंट मॉडेल तयार करण्यासाठी, ते त्यांच्या फिंगरप्रिंटच्या वेगवेगळ्या स्थितीमधील इमेज घेतील."</string>
- <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_6" msgid="5314031490467481499">"सर्वोत्तम परिणामांसाठी, Google साठी बनवलेले प्रमाणित असलेले स्क्रीन प्रोटेक्टर वापरा. इतर स्क्रीन प्रोटेक्टरसह, तुमचे फिंगरप्रिंट कदाचित काम करणार नाही."</string>
+ <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_6" msgid="5314031490467481499">"सर्वोत्तम परिणामांसाठी, Google साठी बनवलेले प्रमाणित स्क्रीन प्रोटेक्टर वापरा. इतर स्क्रीन प्रोटेक्टरसह, तुमची फिंगरप्रिंट कदाचित काम करणार नाही."</string>
<string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_consent_6" msgid="3563942520716110478">"सर्वोत्तम परिणामांसाठी, Google साठी बनवलेले प्रमाणित असलेले स्क्रीन प्रोटेक्टर वापरा. इतर स्क्रीन प्रोटेक्टरसह, तुमच्या लहान मुलाचे फिंगरप्रिंट कदाचित काम करणार नाही."</string>
<string name="security_settings_fingerprint_v2_enroll_introduction_message_learn_more" msgid="5856010507790137793"></string>
<string name="security_settings_activeunlock_preference_title" msgid="4257580421087062228">"वॉच अनलॉक"</string>
@@ -850,7 +852,6 @@
<string name="nfc_reboot_dialog_title" msgid="2033983438635768169">"डिव्हाइस रीस्टार्ट करायचे आहे का?"</string>
<string name="nfc_reboot_dialog_message" msgid="4929353168157966992">"तपशीलवार NFC लॉगिंग हे फक्त विकासाच्या उद्देशाने आहे. बग रिपोर्टमध्ये अतिरिक्त NFC डेटाचा समावेश केला आहे, ज्यामध्ये खाजगी माहितीचा समावेश असू शकतो. हे सेटिंग बदलण्यासाठी तुमचे डिव्हाइस रीस्टार्ट करा."</string>
<string name="nfc_reboot_dialog_confirm" msgid="4769763632008584567">"रीस्टार्ट करा"</string>
- <string name="keywords_external_display" msgid="4181375057920134909">"मिरर करा, बाह्य डिस्प्ले, कनेक्ट केलेला डिस्प्ले, USB डिस्प्ले, रेझोल्यूशन, रोटेशन"</string>
<string name="external_display_on" msgid="2560104443500154333">"सुरू आहे"</string>
<string name="external_display_off" msgid="5634413756025351374">"बंद आहे"</string>
<string name="external_display_settings_title" msgid="6256884595821605779">"बाह्य डिस्प्ले"</string>
@@ -1706,7 +1707,7 @@
<string name="lockpattern_recording_inprogress" msgid="7268008332694009191">"पूर्ण झाल्यावर बोट सोडा"</string>
<string name="lockpattern_recording_incorrect_too_short" msgid="3351522018450593723">"कमीत कमी <xliff:g id="NUMBER">%d</xliff:g> बिंदू कनेक्ट करा. पुन्हा प्रयत्न करा."</string>
<string name="lockpattern_pattern_entered_header" msgid="7709618312713127249">"पॅटर्न रेकॉर्ड झाला"</string>
- <string name="lockpattern_need_to_confirm" msgid="6489499109451714360">"खात्री करण्यासाठी पॅटर्न पुन्हा एकदा काढा"</string>
+ <string name="lockpattern_need_to_confirm" msgid="6489499109451714360">"कन्फर्म करण्यासाठी पॅटर्न पुन्हा काढा"</string>
<string name="lockpattern_pattern_confirmed_header" msgid="2969990617475456153">"तुमचा नवीन अनलॉक पॅटर्न"</string>
<string name="lockpattern_confirm_button_text" msgid="6122815520373044089">"कन्फर्म करा"</string>
<string name="lockpattern_restart_button_text" msgid="255339375151895998">"पुन्हा रेखाटा"</string>
@@ -1918,6 +1919,8 @@
<string name="slow_keys_summary" msgid="1784371292745423292">"<xliff:g id="SLOW_KEYS_THRESHOLD">%1$d</xliff:g> मिसेपर्यंत अॅक्टिव्हेट होण्यासाठी की प्रेस करण्याकरिता लागणारा वेळ अॅडजस्ट करा"</string>
<string name="sticky_keys" msgid="7317317044898161747">"स्टिकी की"</string>
<string name="sticky_keys_summary" msgid="1844953803625480623">"की एकत्र धरून ठेवण्याऐवजी शॉर्टकटसाठी एकावेळी एक की प्रेस करा"</string>
+ <string name="mouse_keys" msgid="6237254627808525540">"माउस की"</string>
+ <string name="mouse_keys_summary" msgid="2396247040177734245">"माउस नियंत्रणासाठी वास्तविक कीबोर्ड वापरा."</string>
<string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"कीबोर्ड शॉर्टकट"</string>
<string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"शॉर्टकटची सूची दाखवा"</string>
<string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"कार्य प्रोफाइल कीबोर्ड आणि टूल"</string>
@@ -2175,8 +2178,6 @@
<string name="accessibility_shortcut_edit_dialog_summary_floating_button" msgid="6266489864614886247">"फ्लोटिंग बटणावर टॅप करा"</string>
<string name="accessibility_shortcut_edit_dialog_title_software_by_gesture" msgid="4775049370625630546">"ॲक्सेसिबिलिटी जेश्चर"</string>
<string name="accessibility_shortcut_edit_dialog_summary_software" msgid="8315934725362849788">"तुमच्या स्क्रीनच्या तळाशी असलेले अॅक्सेसिबिलिटी बटण <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g> यावर टॅप करा. वैशिष्ट्यांदरम्यान स्विच करण्यासाठी अॅक्सेसिबिलिटी बटणाला स्पर्श करून धरून ठेवा."</string>
- <string name="accessibility_shortcut_edit_dialog_summary_software_gesture" msgid="8292555254353761635">"दोन बोटांनी स्क्रीनच्या तळापासून वर स्वाइप करा.\n\nवैशिष्ट्यांदरम्यान स्विच करण्यासाठी दोन बोटांनी वर स्वाइप करा आणि धरून ठेवा."</string>
- <string name="accessibility_shortcut_edit_dialog_summary_software_gesture_talkback" msgid="84483464524360845">"तीन बोटांनी स्क्रीनच्या तळापासून वर स्वाइप करा.\n\nवैशिष्ट्यांदरम्यान स्विच करण्यासाठी तीन बोटांनी वर स्वाइप करा आणि धरून ठेवा."</string>
<string name="accessibility_shortcut_edit_dialog_summary_gesture" msgid="2081123009255579884">"{count,plural, =1{तुमच्या स्क्रीनच्या तळापासून वर स्वाइप करा. वैशिष्ट्यांदरम्यान स्विच करण्यासाठी, वर स्वाइप करून धरून ठेवा.}other{# बोटांनी तुमच्या स्क्रीनच्या तळापासून वर स्वाइप करा. वैशिष्ट्यांदरम्यान स्विच करण्यासाठी, # बोटांनी वर स्वाइप करून धरून ठेवा.}}"</string>
<string name="accessibility_shortcut_edit_dialog_summary_software_floating" msgid="4459254227203203324"><annotation id="link">"आणखी पर्याय"</annotation></string>
<string name="footer_learn_more_content_description" msgid="8843798273152131341">"<xliff:g id="SERVICE">%1$s</xliff:g> बद्दल अधिक जाणून घ्या"</string>
@@ -2187,16 +2188,12 @@
<string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="844089763968552142">"व्हॉल्यूम की"</string>
<string name="accessibility_shortcut_hardware_keyword" msgid="2483152542320987022">"व्हॉल्यूम की"</string>
<string name="accessibility_shortcut_edit_dialog_summary_hardware" msgid="2503134386397991634">"दोन्ही व्हॉल्यूम की प्रेस करून धरून ठेवा"</string>
- <string name="accessibility_shortcut_edit_dialog_title_two_finger_double_tap" msgid="2271778556854020996">"दोन बोटांनी स्क्रीनवर दोनदा टॅप करा"</string>
<string name="accessibility_shortcut_edit_screen_title_two_finger_double_tap" msgid="8952595692906527694">"%1$d बोटांनी दोनदा टॅप करा"</string>
<string name="accessibility_shortcut_edit_screen_summary_two_finger_double_tap" msgid="385404127425496362">"स्क्रीनवर %1$d बोटांनी दोन वेळा झटपट टॅप करा"</string>
<string name="accessibility_shortcut_edit_screen_title_triple_tap" msgid="3314488747597058942">"तीनदा टॅप करा"</string>
<string name="accessibility_shortcut_edit_screen_summary_triple_tap" msgid="4839204951599629871">"स्क्रीनवर %1$d वेळा झटपट टॅप करा. यामुळे तुमच्या डिव्हाइसचा वेग कमी होऊ शकतो."</string>
<string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="6271718715836961167">"%1$d बोटांनी दोन वेळा टॅप करा"</string>
- <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"दोन बोटांनी स्क्रीनवर {0,number,integer} वेळा झटपट टॅप करा"</string>
- <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"स्क्रीनवर तीन वेळा टॅप करा"</string>
<string name="accessibility_shortcut_triple_tap_keyword" msgid="5359347130888464334">"तीन वेळा टॅप करा"</string>
- <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"स्क्रीनवर झटपट {0,number,integer} वेळा टॅप करा. हा शॉर्टकट तुमच्या डिव्हाइसचा वेग कमी करू शकताे"</string>
<string name="accessibility_shortcut_edit_dialog_title_advance" msgid="4567868630655591506">"प्रगत"</string>
<string name="accessibility_screen_magnification_navbar_configuration_warning" msgid="266736851606791552">"प्रवेशयोग्यता बटण <xliff:g id="SERVICE">%1$s</xliff:g> वर सेट केले आहे. मॅग्निफिकेशन वापरण्यासाठी, प्रवेशयोग्यता बटणाला स्पर्श करा आणि धरून ठेवा, नंतर मॅग्निफिकेशन निवडा."</string>
<string name="accessibility_screen_magnification_gesture_navigation_warning" msgid="991017769735632046">"अॅक्सेसिबिलिटी जेश्चर <xliff:g id="SERVICE">%1$s</xliff:g> वर सेट केले आहे. मॅग्निफिकेशन वापरण्यासाठी, स्क्रीनच्या खालच्या बाजूने दोन बोटांनी वर स्वाइप करा आणि धरून ठेवा. त्यानंतर मॅग्निफिकेशन निवडा."</string>
@@ -2365,6 +2362,7 @@
<string name="daltonizer_mode_tritanomaly_title" msgid="2278786218762602022">"निळा-पिवळा"</string>
<string name="daltonizer_mode_grayscale_title" msgid="152005391387952588">"ग्रेस्केल"</string>
<string name="daltonizer_saturation_title" msgid="2999486412114963068">"तीव्रता"</string>
+ <string name="daltonizer_saturation_unavailable_summary" msgid="8319753055567798775">"ग्रेस्केल मोडसाठी किंवा रंग सुधारणा बंद असताना उपलब्ध नाही"</string>
<string name="daltonizer_mode_deuteranomaly_summary" msgid="2117727423019598455">"हिरवा रंग न दिसणे, द्वितीयवर्ण दृष्टिक्षीणता"</string>
<string name="daltonizer_mode_protanomaly_summary" msgid="4617032854982040748">"लाल रंग न दिसणे, प्रथमवर्ण दृष्टिक्षीणता"</string>
<string name="daltonizer_mode_tritanomaly_summary" msgid="2428218320118180070">"तृतीयवर्ण दृष्टिक्षीणता"</string>
@@ -2414,15 +2412,8 @@
<string name="color_cyan" msgid="4341758639597035927">"हिरवट निळा"</string>
<string name="color_yellow" msgid="5957551912912679058">"पिवळा"</string>
<string name="color_magenta" msgid="8943538189219528423">"किरमिजी तांबडा"</string>
- <string name="enable_service_title" msgid="7231533866953706788">"<xliff:g id="SERVICE">%1$s</xliff:g> ला तुमच्या डिव्हाइसचे संपूर्ण नियंत्रण देण्यासाठी अनुमती द्यायची आहे का?"</string>
<string name="capabilities_list_title" msgid="1225853611983394386">"यासाठी <xliff:g id="SERVICE">%1$s</xliff:g> आवश्यक आहे:"</string>
<string name="touch_filtered_warning" msgid="4225815157460318241">"अॅप परवानगी विनंती अस्पष्ट करीत असल्याने, सेटिंग्ज आपल्या प्रतिसादाची पडताळणी करू शकत नाहीत."</string>
- <string name="accessibility_service_warning" msgid="6779187188736432618">"<xliff:g id="SERVICE">%1$s</xliff:g>या डिव्हाइसच्या पूर्ण नियंत्रणासाठी विनंती करत आहे. सेवा स्क्रीन रीड करू शकते आणि अॅक्सेसिबिलिटीच्या गरजा असलेल्या वापरकर्त्यांच्या वतीने कृती करू शकते. नियंत्रणाची ही पातळी बहुतांश अॅप्ससाठी योग्य नाही."</string>
- <string name="accessibility_service_warning_description" msgid="6573203795976134751">"जी ॲप्स तुमच्या ॲक्सेसिबिलिटी गरजा पूर्ण करतात अशा ॲप्ससाठी संपूर्ण नियंत्रण योग्य आहे. पण ते सर्व ॲप्सना लागू होईल असे नाही."</string>
- <string name="accessibility_service_screen_control_title" msgid="324795030658109870">"स्क्रीन पहा आणि नियंत्रित करा"</string>
- <string name="accessibility_service_screen_control_description" msgid="8431940515157990426">"ते स्क्रीनवरील सर्व आशय वाचू शकते आणि इतर ॲप्सवर आशय प्रदर्शित करू शकते."</string>
- <string name="accessibility_service_action_perform_title" msgid="1449360056585337833">"पहा आणि क्रिया करा"</string>
- <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"हे तुमचा ॲप किंवा हार्डवेअर सेन्सरसोबतचा परस्परसंवाद ट्रॅक करू शकते आणि इतर ॲप्ससोबत तुमच्या वतीने संवाद साधू शकते."</string>
<string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"अनुमती द्या"</string>
<string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"नकार द्या"</string>
<string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"बंद करा"</string>
@@ -3652,9 +3643,9 @@
<string name="notif_listener_not_migrated" msgid="6265206376374278226">"हे ॲप वर्धित सेटिंग्जना सपोर्ट करत नाही"</string>
<string name="notif_listener_more_settings" msgid="1348409392307208921">"अधिक सेटिंग्ज"</string>
<string name="notif_listener_more_settings_desc" msgid="7995492074281663658">"या अॅपमध्ये अधिक सेटिंग्ज उपलब्ध आहेत"</string>
- <string name="notification_polite_title" msgid="4737150709382859870">"अडॅप्टिव्ह नोटिफिकेशन"</string>
- <string name="notification_polite_main_control_title" msgid="7267191551379543859">"अडॅप्टिव्ह नोटिफिकेशन वापरा"</string>
- <string name="notification_polite_description" msgid="7749280535620291610">"तुम्हाला थोड्या कालावधीमध्ये बरीच नोटिफिकेशन मिळतात, तेव्हा तुमचा फोन व्हॉल्यूम कमी करेल आणि दोन मिनिटांपर्यंत स्क्रीनवर पॉप-अप कमी करेल. कॉल, अलार्म आणि प्राधान्य दिलेल्या संभाषणांसाठी नोटिफिकेशन व्हायब्रेट करतात, आवाज करतात किंवा स्क्रीनवर दिसतात आणि तुम्ही स्क्रीनच्या वरून खाली खेचता, तेव्हा सर्व नोटिफिकेशन शोधणे सोपे आहे."</string>
+ <string name="notification_polite_title" msgid="6121016426991791557">"सूचना कूलडाउन"</string>
+ <string name="notification_polite_main_control_title" msgid="5812529809151927149">"नोटिफिकेशन कूलडाउन वापरा"</string>
+ <string name="notification_polite_description" msgid="5497748284893832854">"तुम्हाला थोड्या कालावधीमध्ये बरीच नोटिफिकेशन मिळतात, तेव्हा तुमचे डिव्हाइस त्याचा व्हॉल्यूम कमी करेल आणि स्क्रीनवरील सूचनांना २ मिनिटांपर्यंत कमी करेल. कॉल, अलार्म आणि प्राधान्य दिलेल्या संभाषणांवर परिणाम होत नाहीत. \n\nकूलडाउनदरम्यान मिळालेल्या सूचना स्क्रीनच्या वरून खालपर्यंत स्वाइप करून शोधल्या जाऊ शकतात."</string>
<string name="notification_polite_work" msgid="8823596456640216391">"कार्य प्रोफाइलला लागू करा"</string>
<string name="notification_polite_work_summary" msgid="5014189280132951378">"कार्य प्रोफाइलच्या अॅप्सना लागू करा"</string>
<string name="vr_listeners_title" msgid="4960357292472540964">"VR मदतनीस सेवा"</string>
@@ -3811,7 +3802,9 @@
<string name="zen_mode_apps_priority_apps" msgid="7386196048313716076">"निवडलेली अॅप्स"</string>
<string name="zen_mode_apps_none_apps" msgid="2493642312793604327">"कोणतेही नाही"</string>
<string name="zen_mode_apps_subtext" msgid="1764211974662012877">"{count,plural,offset:2 =0{No apps can interrupt}=1{{app_1} व्यत्यय आणू शकते}=2{{app_1} आणि {app_2} व्यत्यय आणू शकतात}=3{{app_1}, {app_2} आणि {app_3} व्यत्यय आणू शकतात}other{{app_1}, {app_2} आणि आणखी # व्यत्यय आणू शकतात}}"</string>
+ <string name="zen_mode_apps_work_app" msgid="8528767938316361588">"<xliff:g id="APP_LABEL">%s</xliff:g> (ऑफिस)"</string>
<string name="zen_mode_apps_calculating" msgid="5420121396943539286">"मोजत आहे…"</string>
+ <string name="zen_mode_plus_n_items" msgid="6136713354369243421">"+<xliff:g id="NUMBER">%d</xliff:g>"</string>
<string name="zen_mode_bypassing_apps" msgid="625309443389126481">"ॲप्सना ओव्हरराइड करण्याची अनुमती द्या"</string>
<string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"व्यत्यय आणू शकणारी ॲप्स"</string>
<string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"आणखी ॲप्स निवडा"</string>
@@ -3829,6 +3822,7 @@
<string name="zen_mode_sounds_none" msgid="6557474361948269420">"काहीही व्यत्यय आणू शकत नाही"</string>
<string name="zen_mode_people_none" msgid="4613147461974255046">"कोणीही व्यत्यय आणू शकत नाही"</string>
<string name="zen_mode_people_some" msgid="9101872681298810281">"काही लोक व्यत्यय आणू शकतात"</string>
+ <string name="zen_mode_people_repeat_callers" msgid="4499084111069828761">"पुन्हा कॉल करणारे कॉलर व्यत्यय आणू शकतात"</string>
<string name="zen_mode_people_all" msgid="311036110283015205">"सर्व लोक व्यत्यय आणू शकतात"</string>
<string name="zen_mode_repeat_callers" msgid="2270356100287792138">"नियमित कॉलर"</string>
<string name="zen_mode_repeat_callers_title" msgid="8016699240338264781">"पुन्हा कॉल करणाऱ्यांना अनुमती द्या"</string>
@@ -3852,6 +3846,34 @@
<string name="zen_mode_new_custom_title" msgid="321750898430776191">"मोड जोडा"</string>
<string name="zen_mode_new_custom_default_name" msgid="2778307946775085105">"कस्टम मोड"</string>
<string name="zen_mode_edit_name_hint" msgid="4584652062167540536">"मोडचे नाव"</string>
+ <string name="zen_mode_trigger_title_schedule_calendar" msgid="9206609438617550331">"कॅलेंडर इव्हेंट"</string>
+ <string name="zen_mode_trigger_title_bedtime" msgid="5086070900588489978">"झोपेचे शेड्यूल"</string>
+ <string name="zen_mode_trigger_title_driving" msgid="7890990983453164403">"ड्राइव्ह करत असताना"</string>
+ <string name="zen_mode_trigger_title_generic" msgid="601273385119550420">"अॅपशी लिंक केले आहे"</string>
+ <string name="zen_mode_trigger_summary_settings_in_app" msgid="4860667191183702601">"<xliff:g id="APP_NAME">%1$s</xliff:g> ची माहिती आणि त्यातील सेटिंग्ज"</string>
+ <string name="zen_mode_trigger_summary_managed_by_app" msgid="8631011868193102098">"<xliff:g id="APP_NAME">%1$s</xliff:g> द्वारे व्यवस्थापित"</string>
+ <string name="zen_mode_confirm_disable_title" msgid="1232297660775719796">"मोड बंद करा"</string>
+ <string name="zen_mode_confirm_disable_message" msgid="7315541221665718491">"तुम्ही हे वैशिष्ट्य बंद केल्यास, मोड यापुढे हवा तसा काम करणार नाही आणि त्याची सेटिंग्ज लपवली जातील."</string>
+ <string name="zen_mode_action_disable" msgid="3552921561331044881">"बंद करा"</string>
+ <string name="zen_mode_confirm_enable_title" msgid="5683371335847448595">"मोड सुरू करा"</string>
+ <string name="zen_mode_confirm_enable_message" msgid="7017879133260011419">"तुम्ही हे वैशिष्ट्य सुरू केल्यास, मोड त्याच्या शेड्यूलनुसार आपोआप ॲक्टिव्हेट होईल."</string>
+ <string name="zen_mode_action_enable" msgid="1161480633223176531">"सुरू करा"</string>
+ <!-- no translation found for zen_mode_blurb_schedule_time (8223898702097484009) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_schedule_calendar (382177907856065945) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_bedtime (6155075956151013457) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_driving (1316054379000667305) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_immersive (5884004861848687869) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_theater (2999237960059524225) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_managed (5473921634985032149) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_generic (3041601339807075625) -->
+ <skip />
<string name="warning_button_text" msgid="1274234338874005639">"चेतावणी"</string>
<string name="suggestion_button_close" msgid="6865170855573283759">"बंद करा"</string>
<string name="device_feedback" msgid="5351614458411688608">"या डिव्हाइसबद्दल फीडबॅक पाठवा"</string>
@@ -4838,9 +4860,8 @@
<string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"बॅटरी"</string>
<string name="settings_panel_title" msgid="346363079938069215">"सेटिंग्ज पॅनल"</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>
+ <!-- no translation found for enable_desktop_mode_on_secondary_display (2609567824593768780) -->
+ <skip />
<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>
@@ -5015,7 +5036,6 @@
<string name="default_active_sim_mobile_data" msgid="6798083892814045301">"मोबाइल डेटा"</string>
<string name="wifi_scan_notify_message" msgid="1331238142061476869">"वाय-फाय बंद असतानादेखील, डिव्हाइससंबंधी अनुभवामध्ये सुधारणा करण्यासाठी अॅप्स आणि सेवा वाय-फाय नेटवर्क कधीही स्कॅन करू शकतात. उदाहरणार्थ, हे स्थानावर आधारित वैशिष्ट्ये आणि सेवांमध्ये सुधारणा करण्यासाठी वापरले जाऊ शकते. तुम्ही हे वाय-फाय स्कॅनिंग सेटिंग्जमध्ये बदलू शकता."</string>
<string name="wifi_scan_change" msgid="8438320311511852918">"बदला"</string>
- <string name="preference_summary_default_combination" msgid="4643585915107796253">"<xliff:g id="STATE">%1$s</xliff:g> / <xliff:g id="NETWORKMODE">%2$s</xliff:g>"</string>
<string name="mobile_data_connection_active" msgid="2422223108911581552">"कनेक्ट केले आहे"</string>
<string name="mobile_data_temp_connection_active" msgid="3430470299756236413">"तात्पुरते कनेक्ट केलेले"</string>
<string name="mobile_data_temp_using" msgid="5211002380149434155">"<xliff:g id="SUBNAME">%1$s</xliff:g> तात्पुरता वापरत आहे"</string>
@@ -5161,9 +5181,11 @@
<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="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_enable_freeform_support" msgid="3697462756493543645">"फ्रीफॉर्म विंडो सपोर्ट सुरू करण्यासाठी रीबूट करणे आवश्यक आहे."</string>
+ <!-- no translation found for reboot_dialog_override_desktop_mode (7480950772574354130) -->
+ <skip />
+ <!-- no translation found for reboot_dialog_enable_desktop_mode_on_secondary_display (1153621881052401924) -->
+ <skip />
<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>
@@ -5394,5 +5416,6 @@
<string name="audio_streams_main_page_password_dialog_join_button" msgid="2967747276379153408">"स्ट्रीम ऐका"</string>
<string name="audio_streams_main_page_qr_code_scanner_summary" msgid="5312980105735143360">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> वापरून ऐकण्यासाठी ऑडिओ स्ट्रीमचा QR कोड स्कॅन करा"</string>
<string name="audio_streams_main_page_password_dialog_cannot_edit" msgid="9020898619297520153">"शेअर करताना पासवर्ड संपादित करू शकत नाही. पासवर्ड बदलण्यासाठी सर्वप्रथम ऑडिओ शेअरिंग बंद करा."</string>
+ <string name="audio_streams_qr_code_scanner_label" msgid="8799703301071378034">"QR कोड स्कॅनर"</string>
<string name="homepage_search" msgid="6759334912284663559">"शोध सेटिंग्ज"</string>
</resources>
diff --git a/res/values-ms/strings.xml b/res/values-ms/strings.xml
index 29731e2..7af728b 100644
--- a/res/values-ms/strings.xml
+++ b/res/values-ms/strings.xml
@@ -41,6 +41,7 @@
<string name="radioInfo_data_suspended" msgid="2001254415431299603">"Digantung"</string>
<string name="radioInfo_unknown" msgid="2892562356748600367">"Tidak diketahui"</string>
<string name="preview_pager_content_description" msgid="3762247188224576303">"Pratonton"</string>
+ <string name="qr_code_content_description" msgid="1852208464419291347">"Kod QR"</string>
<string name="font_size_make_smaller_desc" msgid="4978038055549590140">"Kecilkan"</string>
<string name="font_size_make_larger_desc" msgid="5583046033381722247">"Besarkan"</string>
<string name="stay_awake_on_fold_title" msgid="6590454679898134221">"Sentiasa"</string>
@@ -283,7 +284,7 @@
<string name="location_settings_summary_location_off" msgid="4797932754681162262">"Mati"</string>
<string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{Hidup / # apl memiliki akses kepada lokasi}other{Hidup / # apl memiliki akses kepada lokasi}}"</string>
<string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"Memuatkan…"</string>
- <string name="location_settings_footer_general" msgid="1040507068701188821">"Apl dengan kebenaran peranti Berdekatan boleh menentukan kedudukan relatif peranti tersambung."</string>
+ <string name="location_settings_footer_general" msgid="3447585552176173502">"Apl dengan kebenaran peranti berdekatan boleh menentukan kedudukan relatif peranti tersambung."</string>
<string name="location_settings_footer_location_off" msgid="8568995909147566720">"Akses lokasi dimatikan untuk apl dan perkhidmatan. Lokasi peranti anda mungkin tetap dihantar kepada pasukan bantuan kecemasan apabila anda menghubungi atau menghantar teks kepada nombor kecemasan."</string>
<string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Ketahui lebih lanjut tentang tetapan Lokasi"</string>
<string name="location_settings_tooltip_text_for_chrome" msgid="5781821709250544575">"Untuk membuat perubahan, lawati Tetapan ChromeOS > Privasi dan keselamatan > Kawalan privasi > Akses lokasi"</string>
@@ -850,7 +851,6 @@
<string name="nfc_reboot_dialog_title" msgid="2033983438635768169">"Mulakan Semula Peranti?"</string>
<string name="nfc_reboot_dialog_message" msgid="4929353168157966992">"Pengelogan butiran NFC adalah khusus untuk tujuan pembangunan sahaja. Data tambahan NFC disertakan dalam laporan pepijat yang mungkin mengandungi maklumat peribadi. Mulakan semula peranti anda untuk menukar tetapan ini."</string>
<string name="nfc_reboot_dialog_confirm" msgid="4769763632008584567">"Mulakan semula"</string>
- <string name="keywords_external_display" msgid="4181375057920134909">"cermin, paparan luaran, paparan tersambung, paparan usb, peleraian, putaran"</string>
<string name="external_display_on" msgid="2560104443500154333">"Hidup"</string>
<string name="external_display_off" msgid="5634413756025351374">"Mati"</string>
<string name="external_display_settings_title" msgid="6256884595821605779">"Paparan Luaran"</string>
@@ -1918,6 +1918,8 @@
<string name="slow_keys_summary" msgid="1784371292745423292">"Melaraskan masa yang diambil untuk mengaktifkan tekanan kekunci kepada <xliff:g id="SLOW_KEYS_THRESHOLD">%1$d</xliff:g> ms"</string>
<string name="sticky_keys" msgid="7317317044898161747">"Kekunci Lekit"</string>
<string name="sticky_keys_summary" msgid="1844953803625480623">"Tekan satu kekunci pada satu-satu masa untuk pintasan, bukan menahan beberapa kekunci secara serentak"</string>
+ <string name="mouse_keys" msgid="6237254627808525540">"Kekunci tetikus"</string>
+ <string name="mouse_keys_summary" msgid="2396247040177734245">"Gunakan papan kekunci fizikal untuk mengawal tetikus."</string>
<string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"Pintasan papan kekunci"</string>
<string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"Tunjukkan senarai pintasan"</string>
<string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"Papan kekunci & alatan profil kerja"</string>
@@ -2175,8 +2177,6 @@
<string name="accessibility_shortcut_edit_dialog_summary_floating_button" msgid="6266489864614886247">"Ketik butang terapung"</string>
<string name="accessibility_shortcut_edit_dialog_title_software_by_gesture" msgid="4775049370625630546">"Gerak isyarat kebolehaksesan"</string>
<string name="accessibility_shortcut_edit_dialog_summary_software" msgid="8315934725362849788">"Ketik butang kebolehaksesan <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g> pada bahagian bawah skrin. Untuk beralih antara ciri, sentuh & tahan butang kebolehaksesan."</string>
- <string name="accessibility_shortcut_edit_dialog_summary_software_gesture" msgid="8292555254353761635">"Leret ke atas dari bahagian bawah skrin menggunakan 2 jari.\n\nUntuk beralih antara ciri, leret ke atas menggunakan 2 jari dan tahan."</string>
- <string name="accessibility_shortcut_edit_dialog_summary_software_gesture_talkback" msgid="84483464524360845">"Leret ke atas dari bahagian bawah skrin menggunakan 3 jari.\n\nUntuk beralih antara ciri, leret ke atas menggunakan 3 jari dan tahan."</string>
<string name="accessibility_shortcut_edit_dialog_summary_gesture" msgid="2081123009255579884">"{count,plural, =1{Leret ke atas daripada bahagian bawah skrin. Untuk beralih antara ciri, leret ke atas dan tahan.}other{Leret ke atas menggunakan # jari daripada bahagian bawah skrin. Untuk beralih antara ciri, leret ke atas menggunakan # jari dan tahan.}}"</string>
<string name="accessibility_shortcut_edit_dialog_summary_software_floating" msgid="4459254227203203324"><annotation id="link">"Lagi pilihan"</annotation></string>
<string name="footer_learn_more_content_description" msgid="8843798273152131341">"Ketahui lebih lanjut tentang <xliff:g id="SERVICE">%1$s</xliff:g>"</string>
@@ -2187,16 +2187,12 @@
<string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="844089763968552142">"Kekunci kelantangan"</string>
<string name="accessibility_shortcut_hardware_keyword" msgid="2483152542320987022">"kekunci kelantangan"</string>
<string name="accessibility_shortcut_edit_dialog_summary_hardware" msgid="2503134386397991634">"Tekan & tahan kedua-dua kekunci kelantangan"</string>
- <string name="accessibility_shortcut_edit_dialog_title_two_finger_double_tap" msgid="2271778556854020996">"Ketik skrin dua kali menggunakan dua jari"</string>
<string name="accessibility_shortcut_edit_screen_title_two_finger_double_tap" msgid="8952595692906527694">"Ketik dua kali menggunakan %1$d jari"</string>
<string name="accessibility_shortcut_edit_screen_summary_two_finger_double_tap" msgid="385404127425496362">"Ketik skrin dua kali dengan pantas menggunakan %1$d jari"</string>
<string name="accessibility_shortcut_edit_screen_title_triple_tap" msgid="3314488747597058942">"Ketik tiga kali"</string>
<string name="accessibility_shortcut_edit_screen_summary_triple_tap" msgid="4839204951599629871">"Ketik skrin %1$d kali dengan pantas. Tindakan ini mungkin akan memperlahan peranti anda."</string>
<string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="6271718715836961167">"Ketik dua kali menggunakan %1$d jari"</string>
- <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"Ketik skrin {0,number,integer} kali dengan cepat menggunakan dua jari"</string>
- <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"Ketik tiga kali pada skrin"</string>
<string name="accessibility_shortcut_triple_tap_keyword" msgid="5359347130888464334">"ketik tiga kali"</string>
- <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"Ketik skrin {0,number,integer} kali dengan pantas. Pintasan ini mungkin memperlahankan peranti anda"</string>
<string name="accessibility_shortcut_edit_dialog_title_advance" msgid="4567868630655591506">"Terperinci"</string>
<string name="accessibility_screen_magnification_navbar_configuration_warning" msgid="266736851606791552">"Butang Kebolehaksesan ditetapkan kepada <xliff:g id="SERVICE">%1$s</xliff:g>. Untuk menggunakan pembesaran, sentuh & tahan butang Kebolehaksesan, kemudian pilih pembesaran."</string>
<string name="accessibility_screen_magnification_gesture_navigation_warning" msgid="991017769735632046">"Gerak isyarat kebolehaksesan ditetapkan pada <xliff:g id="SERVICE">%1$s</xliff:g>. Untuk menggunakan pembesaran, leret ke atas menggunakan dua jari dari bahagian bawah skrin dan tahan. Kemudian, pilih pembesaran."</string>
@@ -2365,6 +2361,7 @@
<string name="daltonizer_mode_tritanomaly_title" msgid="2278786218762602022">"Biru-kuning"</string>
<string name="daltonizer_mode_grayscale_title" msgid="152005391387952588">"Skala kelabu"</string>
<string name="daltonizer_saturation_title" msgid="2999486412114963068">"Keamatan"</string>
+ <string name="daltonizer_saturation_unavailable_summary" msgid="8319753055567798775">"Tidak tersedia untuk mod skala kelabu atau apabila pembetulan warna dilumpuhkan"</string>
<string name="daltonizer_mode_deuteranomaly_summary" msgid="2117727423019598455">"Hijau lemah, deuteranomali"</string>
<string name="daltonizer_mode_protanomaly_summary" msgid="4617032854982040748">"Merah lemah, protanomali"</string>
<string name="daltonizer_mode_tritanomaly_summary" msgid="2428218320118180070">"Tritanomali"</string>
@@ -2414,15 +2411,8 @@
<string name="color_cyan" msgid="4341758639597035927">"Biru kehijauan"</string>
<string name="color_yellow" msgid="5957551912912679058">"Kuning"</string>
<string name="color_magenta" msgid="8943538189219528423">"Magenta"</string>
- <string name="enable_service_title" msgid="7231533866953706788">"Benarkan <xliff:g id="SERVICE">%1$s</xliff:g> mengawal peranti anda sepenuhnya?"</string>
<string name="capabilities_list_title" msgid="1225853611983394386">"<xliff:g id="SERVICE">%1$s</xliff:g> perlu:"</string>
<string name="touch_filtered_warning" msgid="4225815157460318241">"Oleh sebab apl melindungi permintaan kebenaran, Tetapan tidak dapat mengesahkan jawapan anda."</string>
- <string name="accessibility_service_warning" msgid="6779187188736432618">"<xliff:g id="SERVICE">%1$s</xliff:g> meminta kawalan sepenuhnya ke atas peranti ini. Perkhidmatan dapat membaca skrin dan bertindak bagi pihak pengguna dengan keperluan kebolehaksesan. Tahap kawalan ini tidak sesuai untuk kebanyakan apl."</string>
- <string name="accessibility_service_warning_description" msgid="6573203795976134751">"Kawalan penuh sesuai untuk apl yang membantu anda dengan keperluan kebolehaksesan tetapi bukan untuk kebanyakan apl."</string>
- <string name="accessibility_service_screen_control_title" msgid="324795030658109870">"Melihat dan mengawal skrin"</string>
- <string name="accessibility_service_screen_control_description" msgid="8431940515157990426">"Ciri ini boleh membaca semua kandungan pada skrin dan memaparkan kandungan di atas apl lain."</string>
- <string name="accessibility_service_action_perform_title" msgid="1449360056585337833">"Melihat dan melaksanakan tindakan"</string>
- <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"Ciri ini boleh menjejaki interaksi anda dengan apl atau penderia perkakasan dan berinteraksi dengan apl bagi pihak anda."</string>
<string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Benarkan"</string>
<string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Tolak"</string>
<string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Matikan"</string>
@@ -3652,9 +3642,9 @@
<string name="notif_listener_not_migrated" msgid="6265206376374278226">"Apl ini tidak menyokong tetapan dipertingkatkan"</string>
<string name="notif_listener_more_settings" msgid="1348409392307208921">"Lagi tetapan"</string>
<string name="notif_listener_more_settings_desc" msgid="7995492074281663658">"Lagi tetapan tersedia dalam apl ini"</string>
- <string name="notification_polite_title" msgid="4737150709382859870">"Pemberitahuan Boleh Suai"</string>
- <string name="notification_polite_main_control_title" msgid="7267191551379543859">"Gunakan pemberitahuan boleh suai"</string>
- <string name="notification_polite_description" msgid="7749280535620291610">"Apabila anda menerima banyak pemberitahuan dalam tempoh masa yang singkat, telefon anda akan mengurangkan kelantangan dan meminimumkan tetingkap timbul pada skrin hingga dua minit. Panggilan, penggera dan perbualan keutamaan masih bergetar, mengeluarkan bunyi atau dipaparkan pada skrin dan semua pemberitahuan mudah ditemukan apabila anda menarik bahagian atas skrin ke bawah."</string>
+ <string name="notification_polite_title" msgid="6121016426991791557">"Tempoh bertenang pemberitahuan"</string>
+ <string name="notification_polite_main_control_title" msgid="5812529809151927149">"Gunakan tempoh bertenang pemberitahuan"</string>
+ <string name="notification_polite_description" msgid="5497748284893832854">"Apabila anda menerima banyak pemberitahuan dalam tempoh masa yang singkat, peranti anda akan mengurangkan kelantangan dan meminimumkan makluman hingga 2 minit. Panggilan, penggera dan perbualan keutamaan tidak terjejas. \n\nPemberitahuan yang diterima semasa tempoh bertenang boleh ditemukan dengan menarik ke bawah daripada bahagian atas skrin."</string>
<string name="notification_polite_work" msgid="8823596456640216391">"Gunakan pada profil kerja"</string>
<string name="notification_polite_work_summary" msgid="5014189280132951378">"Gunakan pada apl profil kerja"</string>
<string name="vr_listeners_title" msgid="4960357292472540964">"Perkhidmatan pembantu VR"</string>
@@ -3811,7 +3801,9 @@
<string name="zen_mode_apps_priority_apps" msgid="7386196048313716076">"Apl yang dipilih"</string>
<string name="zen_mode_apps_none_apps" msgid="2493642312793604327">"Tiada"</string>
<string name="zen_mode_apps_subtext" msgid="1764211974662012877">"{count,plural,offset:2 =0{Tiada apl yang boleh ganggu}=1{{app_1} boleh ganggu}=2{{app_1} dan {app_2} boleh ganggu}=3{{app_1}, {app_2} dan {app_3} boleh ganggu}other{{app_1}, {app_2} dan # lagi boleh ganggu}}"</string>
+ <string name="zen_mode_apps_work_app" msgid="8528767938316361588">"<xliff:g id="APP_LABEL">%s</xliff:g> (Kerja)"</string>
<string name="zen_mode_apps_calculating" msgid="5420121396943539286">"Mengira…"</string>
+ <string name="zen_mode_plus_n_items" msgid="6136713354369243421">"+<xliff:g id="NUMBER">%d</xliff:g>"</string>
<string name="zen_mode_bypassing_apps" msgid="625309443389126481">"Benarkan apl membatalkan Jangan Ganggu"</string>
<string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"Apl yang boleh ganggu"</string>
<string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"Pilih lagi apl"</string>
@@ -3829,6 +3821,7 @@
<string name="zen_mode_sounds_none" msgid="6557474361948269420">"Tiada apa-apa yang boleh ganggu"</string>
<string name="zen_mode_people_none" msgid="4613147461974255046">"Tiada seorang pun boleh ganggu"</string>
<string name="zen_mode_people_some" msgid="9101872681298810281">"Sesetengah orang boleh ganggu"</string>
+ <string name="zen_mode_people_repeat_callers" msgid="4499084111069828761">"Pemanggil berulang boleh mengganggu"</string>
<string name="zen_mode_people_all" msgid="311036110283015205">"Semua orang boleh ganggu"</string>
<string name="zen_mode_repeat_callers" msgid="2270356100287792138">"Pemanggil berulang"</string>
<string name="zen_mode_repeat_callers_title" msgid="8016699240338264781">"Benarkan pemanggil berulang"</string>
@@ -3852,6 +3845,26 @@
<string name="zen_mode_new_custom_title" msgid="321750898430776191">"Tambahkan mod"</string>
<string name="zen_mode_new_custom_default_name" msgid="2778307946775085105">"Mod tersuai"</string>
<string name="zen_mode_edit_name_hint" msgid="4584652062167540536">"Nama mod"</string>
+ <string name="zen_mode_trigger_title_schedule_calendar" msgid="9206609438617550331">"Acara kalendar"</string>
+ <string name="zen_mode_trigger_title_bedtime" msgid="5086070900588489978">"Jadual tidur"</string>
+ <string name="zen_mode_trigger_title_driving" msgid="7890990983453164403">"Semasa memandu"</string>
+ <string name="zen_mode_trigger_title_generic" msgid="601273385119550420">"Dipautkan kepada apl"</string>
+ <string name="zen_mode_trigger_summary_settings_in_app" msgid="4860667191183702601">"Maklumat dan tetapan dalam <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+ <string name="zen_mode_trigger_summary_managed_by_app" msgid="8631011868193102098">"Diurus oleh <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+ <string name="zen_mode_confirm_disable_title" msgid="1232297660775719796">"Lumpuhkan Mod"</string>
+ <string name="zen_mode_confirm_disable_message" msgid="7315541221665718491">"Jika anda melumpuhkan ciri ini, mod tidak akan berfungsi lagi seperti yang sepatutnya dan tetapan mod ini akan disembunyikan."</string>
+ <string name="zen_mode_action_disable" msgid="3552921561331044881">"Lumpuhkan"</string>
+ <string name="zen_mode_confirm_enable_title" msgid="5683371335847448595">"Dayakan Mod"</string>
+ <string name="zen_mode_confirm_enable_message" msgid="7017879133260011419">"Jika anda melumpuhkan ciri ini, mod akan diaktifkan secara automatik mengikut jadual mod itu."</string>
+ <string name="zen_mode_action_enable" msgid="1161480633223176531">"Dayakan"</string>
+ <string name="zen_mode_blurb_schedule_time" msgid="8223898702097484009">"Tetapkan mod yang mengikut jadual yang tetap"</string>
+ <string name="zen_mode_blurb_schedule_calendar" msgid="382177907856065945">"Tetapkan mod untuk disegerakkan dengan acara kalendar dan maklum balas undangan"</string>
+ <string name="zen_mode_blurb_bedtime" msgid="6155075956151013457">"Rancang rutin tidur yang menenangkan. Tetapkan penggera, malapkan skrin dan sekat pemberitahuan."</string>
+ <string name="zen_mode_blurb_driving" msgid="1316054379000667305">"Utamakan keselamatan di atas jalan untuk mendapatkan pemanduan yang fokus dan bebas gangguan"</string>
+ <string name="zen_mode_blurb_immersive" msgid="5884004861848687869">"Sekat gangguan daripada peranti anda untuk menambahkan fokus"</string>
+ <string name="zen_mode_blurb_theater" msgid="2999237960059524225">"Singkirkan semua gangguan untuk persekitaran yang senyap"</string>
+ <string name="zen_mode_blurb_managed" msgid="5473921634985032149">"Peribadikan pengalaman dan tetapan peranti untuk pengguna yang berlainan"</string>
+ <string name="zen_mode_blurb_generic" msgid="3041601339807075625">"Minimumkan gangguan dengan membenarkan orang dan apl yang penting sahaja menghubungi anda"</string>
<string name="warning_button_text" msgid="1274234338874005639">"Amaran"</string>
<string name="suggestion_button_close" msgid="6865170855573283759">"Tutup"</string>
<string name="device_feedback" msgid="5351614458411688608">"Hantar maklum balas peranti ini"</string>
@@ -4838,9 +4851,8 @@
<string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"Bateri"</string>
<string name="settings_panel_title" msgid="346363079938069215">"Panel Tetapan"</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>
+ <!-- no translation found for enable_desktop_mode_on_secondary_display (2609567824593768780) -->
+ <skip />
<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>
@@ -5015,7 +5027,6 @@
<string name="default_active_sim_mobile_data" msgid="6798083892814045301">"data mudah alih"</string>
<string name="wifi_scan_notify_message" msgid="1331238142061476869">"Untuk meningkatkan pengalaman peranti, apl dan perkhidmatan masih dapat melakukan imbasan untuk mengesan rangkaian Wi-Fi pada bila-bila masa, meskipun apabila Wi-Fi dimatikan. Ini dapat digunakan, contohnya, untuk meningkatkan ciri dan perkhidmatan berasaskan lokasi. Anda boleh menukar pilihan ini dalam tetapan pengimbasan Wi-Fi."</string>
<string name="wifi_scan_change" msgid="8438320311511852918">"Tukar"</string>
- <string name="preference_summary_default_combination" msgid="4643585915107796253">"<xliff:g id="STATE">%1$s</xliff:g> / <xliff:g id="NETWORKMODE">%2$s</xliff:g>"</string>
<string name="mobile_data_connection_active" msgid="2422223108911581552">"Disambungkan"</string>
<string name="mobile_data_temp_connection_active" msgid="3430470299756236413">"Disambungkan buat sementara waktu"</string>
<string name="mobile_data_temp_using" msgid="5211002380149434155">"Menggunakan <xliff:g id="SUBNAME">%1$s</xliff:g> buat sementara waktu"</string>
@@ -5161,9 +5172,11 @@
<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="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_enable_freeform_support" msgid="3697462756493543645">"But semula diperlukan untuk mendayakan sokongan tetingkap bentuk bebas."</string>
+ <!-- no translation found for reboot_dialog_override_desktop_mode (7480950772574354130) -->
+ <skip />
+ <!-- no translation found for reboot_dialog_enable_desktop_mode_on_secondary_display (1153621881052401924) -->
+ <skip />
<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>
@@ -5394,5 +5407,6 @@
<string name="audio_streams_main_page_password_dialog_join_button" msgid="2967747276379153408">"Dengar strim"</string>
<string name="audio_streams_main_page_qr_code_scanner_summary" msgid="5312980105735143360">"Imbas kod QR strim audio untuk mendengar dengan <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
<string name="audio_streams_main_page_password_dialog_cannot_edit" msgid="9020898619297520153">"Tidak dapat mengedit kata laluan semasa perkongsian. Untuk mengubah kata laluan, matikan perkongsian audio dahulu."</string>
+ <string name="audio_streams_qr_code_scanner_label" msgid="8799703301071378034">"Pengimbas kod QR"</string>
<string name="homepage_search" msgid="6759334912284663559">"Tetapan Carian"</string>
</resources>
diff --git a/res/values-my/strings.xml b/res/values-my/strings.xml
index 235ae84..a1e7624 100644
--- a/res/values-my/strings.xml
+++ b/res/values-my/strings.xml
@@ -41,6 +41,8 @@
<string name="radioInfo_data_suspended" msgid="2001254415431299603">"ဆိုင်းငံ့ထားသည်"</string>
<string name="radioInfo_unknown" msgid="2892562356748600367">"မသိ"</string>
<string name="preview_pager_content_description" msgid="3762247188224576303">"အစမ်းကြည့်ပါ"</string>
+ <!-- no translation found for qr_code_content_description (1852208464419291347) -->
+ <skip />
<string name="font_size_make_smaller_desc" msgid="4978038055549590140">"ပိုသေးအောင် ပြုလုပ်ပါ"</string>
<string name="font_size_make_larger_desc" msgid="5583046033381722247">"ပိုကြီးအောင် ပြုလုပ်ပါ"</string>
<string name="stay_awake_on_fold_title" msgid="6590454679898134221">"အမြဲတမ်း"</string>
@@ -283,7 +285,7 @@
<string name="location_settings_summary_location_off" msgid="4797932754681162262">"ပိတ်"</string>
<string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{ဖွင့် / အက်ပ် # ခုက တည်နေရာသုံးခွင့် ရှိသည်}other{ဖွင့် / အက်ပ် # ခုက တည်နေရာသုံးခွင့် ရှိသည်}}"</string>
<string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"ဖွင့်နေသည်…"</string>
- <string name="location_settings_footer_general" msgid="1040507068701188821">"အနီးတစ်ဝိုက်ရှိ စက်များ၏ ခွင့်ပြုချက်ကိုရထားသော အက်ပ်များက ချိတ်ဆက်ထားသောစက်များ၏ ဆက်စပ်နေရာကို တွက်ချက်နိုင်သည်။"</string>
+ <string name="location_settings_footer_general" msgid="3447585552176173502">"အနီးတစ်ဝိုက်ရှိ စက်များ၏ ခွင့်ပြုချက်ကိုရထားသော အက်ပ်များက ချိတ်ဆက်ထားသောစက်များ၏ ဆက်စပ်နေရာကို တွက်ချက်နိုင်သည်။"</string>
<string name="location_settings_footer_location_off" msgid="8568995909147566720">"အက်ပ်နှင့် ဝန်ဆောင်မှုများအတွက် တည်နေရာသုံးခွင့်ကို ပိတ်ထားသည်။ သင် အရေးပေါ် နံပါတ်ကို ဖုန်းဆက်သောအခါ (သို့) စာတိုပို့သောအခါ သင့်စက်၏တည်နေရာကို အရေးပေါ်ဆောင်ရွက်ပေးသူများထံ ပို့နိုင်ပါသည်။"</string>
<string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"တည်နေရာပြ ဆက်တင်များအကြောင်း ပိုမိုလေ့လာရန်"</string>
<string name="location_settings_tooltip_text_for_chrome" msgid="5781821709250544575">"ပြောင်းရန် ChromeOS ဆက်တင်များ > ကိုယ်ရေးအချက်အလက် လုံခြုံမှုနှင့် လုံခြုံရေး > ကိုယ်ရေးအချက်အလက်လုံခြုံမှု ဆက်တင်များ > တည်နေရာ အသုံးပြုခွင့်သို့ သွားပါ"</string>
@@ -850,7 +852,6 @@
<string name="nfc_reboot_dialog_title" msgid="2033983438635768169">"စက်ကို ပြန်စမလား။"</string>
<string name="nfc_reboot_dialog_message" msgid="4929353168157966992">"အသေးစိတ် NFC မှတ်တမ်းတင်ခြင်းကို ဆော့ဖ်ဝဲရေးရန်အတွက်သာ ရည်ရွယ်ထားသည်။ ကိုယ်ရေးကိုယ်တာ အချက်အလက်များ ပါရှိနိုင်သော ချွတ်ယွင်းမှု အစီရင်ခံချက်များတွင် ထပ်ဆောင်း NFC ဒေတာ ပါဝင်သည်။ ဤဆက်တင်ပြောင်းရန် သင့်စက်ကို ပြန်စပါ။"</string>
<string name="nfc_reboot_dialog_confirm" msgid="4769763632008584567">"ပြန်စရန်"</string>
- <string name="keywords_external_display" msgid="4181375057920134909">"စကရင်ပွား၊ ပြင်ပဖန်သားပြင်၊ ချိတ်ထားသောဖန်သားပြင်၊ USB ဖန်သားပြင်၊ ပုံရိပ်ပြတ်သားကိန်း၊ လှည့်ခြင်း"</string>
<string name="external_display_on" msgid="2560104443500154333">"ဖွင့်"</string>
<string name="external_display_off" msgid="5634413756025351374">"ပိတ်"</string>
<string name="external_display_settings_title" msgid="6256884595821605779">"ပြင်ပဖန်သားပြင်"</string>
@@ -1918,6 +1919,8 @@
<string name="slow_keys_summary" msgid="1784371292745423292">"<xliff:g id="SLOW_KEYS_THRESHOLD">%1$d</xliff:g> ms ဖွင့်ရန် ခလုတ်နှိပ်ခြင်းအတွက် ကြာချိန်ကို ပြင်နိုင်သည်"</string>
<string name="sticky_keys" msgid="7317317044898161747">"ကပ်ခွာကီးများ"</string>
<string name="sticky_keys_summary" msgid="1844953803625480623">"ဖြတ်လမ်းလင့်ခ်များအတွက် ခလုတ်များကို တစ်ပြိုင်တည်းဖိထားမည့်အစား တစ်ကြိမ်လျှင် ခလုတ်တစ်ခု နှိပ်နိုင်သည်"</string>
+ <string name="mouse_keys" msgid="6237254627808525540">"မောက်စ်ကီးများ"</string>
+ <string name="mouse_keys_summary" msgid="2396247040177734245">"မောက်စ်ကို ထိန်းချုပ်ရန် ကီးဘုတ်ကိုသုံးပါ။"</string>
<string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"လက်ကွက်ဖြတ်လမ်းများ"</string>
<string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"ဖြတ်လမ်းလင့်ခ်များစာရင်း ပြပါ"</string>
<string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"အလုပ်ပရိုဖိုင် လက်ကွက်နှင့် တူးလ်များ"</string>
@@ -1942,14 +1945,10 @@
<string name="pointer_fill_style_yellow_button" msgid="5025969961559379024">"မြား ဖြည့်စွက်ပုံစံကို အဝါ ပြောင်းရန်"</string>
<string name="pointer_fill_style_pink_button" msgid="4106218142489635673">"မြား ဖြည့်စွက်ပုံစံကို ပန်းရောင် ပြောင်းရန်"</string>
<string name="pointer_fill_style_blue_button" msgid="5594958078854032785">"မြား ဖြည့်စွက်ပုံစံကို အပြာ ပြောင်းရန်"</string>
- <!-- no translation found for pointer_stroke_style (1886986630216050665) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_white (673686194443825383) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_black (4655806167067437330) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_none (8953927511729800247) -->
- <skip />
+ <string name="pointer_stroke_style" msgid="1886986630216050665">"မြားစုတ်ချက် ပုံစံ"</string>
+ <string name="pointer_stroke_style_name_white" msgid="673686194443825383">"အဖြူ"</string>
+ <string name="pointer_stroke_style_name_black" msgid="4655806167067437330">"အမည်း"</string>
+ <string name="pointer_stroke_style_name_none" msgid="8953927511729800247">"မရှိ"</string>
<string name="trackpad_touch_gesture" msgid="8641725062131922497">"တာ့ချ်ပက်လက်ဟန်များကို လေ့လာရန်"</string>
<string name="keywords_touchpad" msgid="8159846254066666032">"တာ့ချ်ပက်၊ တာ့ချ်ပက်၊ မောက်စ်၊ ကာဆာ၊ လှိမ့်၊ ပွတ်ဆွဲ၊ ညာဘက်ခလုတ်ကို နှိပ်၊ နှိပ်၊ မြား"</string>
<string name="keywords_trackpad_bottom_right_tap" msgid="1285062446073929305">"ညာဘက်ခလုတ်ကို နှိပ်၊ တို့"</string>
@@ -2179,8 +2178,6 @@
<string name="accessibility_shortcut_edit_dialog_summary_floating_button" msgid="6266489864614886247">"လွင့်မျောခလုတ်ကို တို့ပါ"</string>
<string name="accessibility_shortcut_edit_dialog_title_software_by_gesture" msgid="4775049370625630546">"သုံးနိုင်မှု လက်ဟန်"</string>
<string name="accessibility_shortcut_edit_dialog_summary_software" msgid="8315934725362849788">"သင့်ဖန်သားပြင်အောက်ခြေရှိ သုံးနိုင်မှုခလုတ် <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g> ကို တို့ပါ။ ဝန်ဆောင်မှုများအကြား ပြောင်းရန် သုံးနိုင်မှုခလုတ်ကို တို့ထိ၍ ဖိထားပါ။"</string>
- <string name="accessibility_shortcut_edit_dialog_summary_software_gesture" msgid="8292555254353761635">"လက် ၂ ချောင်းဖြင့် ဖန်သားပြင်အောက်ခြေမှ အပေါ်သို့ပွတ်ဆွဲပါ။\n\nဝန်ဆောင်မှုများအကြား ပြောင်းရန် လက် ၂ ချောင်းဖြင့် အပေါ်သို့ပွတ်ဆွဲပြီး ဖိထားပါ။"</string>
- <string name="accessibility_shortcut_edit_dialog_summary_software_gesture_talkback" msgid="84483464524360845">"လက် ၃ ချောင်းဖြင့် ဖန်သားပြင်အောက်ခြေမှ အပေါ်သို့ပွတ်ဆွဲပါ။\n\nဝန်ဆောင်မှုများအကြား ပြောင်းရန် လက် ၃ ချောင်းဖြင့် အပေါ်သို့ပွတ်ဆွဲပြီး ဖိထားပါ။"</string>
<string name="accessibility_shortcut_edit_dialog_summary_gesture" msgid="2081123009255579884">"{count,plural, =1{သင့်ဖန်သားပြင် အောက်ခြေမှ အပေါ်သို့ ပွတ်ဆွဲပါ။ ဝန်ဆောင်မှုများအကြား ပြောင်းရန် အပေါ်သို့ ပွတ်ဆွဲပြီး ဖိထားပါ။}other{သင့်ဖန်သားပြင် အောက်ခြေမှ အပေါ်သို့ လက် # ချောင်းဖြင့် ပွတ်ဆွဲပါ။ ဝန်ဆောင်မှုများအကြား ပြောင်းရန် လက် # ချောင်းဖြင့် အပေါ်သို့ ပွတ်ဆွဲပြီး ဖိထားပါ။}}"</string>
<string name="accessibility_shortcut_edit_dialog_summary_software_floating" msgid="4459254227203203324"><annotation id="link">"နောက်ထပ် ရွေးချယ်စရာများ"</annotation></string>
<string name="footer_learn_more_content_description" msgid="8843798273152131341">"<xliff:g id="SERVICE">%1$s</xliff:g> အကြောင်း ပိုမိုလေ့လာရန်"</string>
@@ -2191,16 +2188,12 @@
<string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="844089763968552142">"အသံထိန်းခလုတ်"</string>
<string name="accessibility_shortcut_hardware_keyword" msgid="2483152542320987022">"အသံထိန်းခလုတ်"</string>
<string name="accessibility_shortcut_edit_dialog_summary_hardware" msgid="2503134386397991634">"အသံခလုတ်နှစ်ခုလုံးကို နှိပ်ထားပါ"</string>
- <string name="accessibility_shortcut_edit_dialog_title_two_finger_double_tap" msgid="2271778556854020996">"စခရင်ကို လက်နှစ်ချောင်းဖြင့် နှစ်ချက်တို့ခြင်း"</string>
<string name="accessibility_shortcut_edit_screen_title_two_finger_double_tap" msgid="8952595692906527694">"လက် %1$d ချောင်းဖြင့် နှစ်ချက်တို့ခြင်း"</string>
<string name="accessibility_shortcut_edit_screen_summary_two_finger_double_tap" msgid="385404127425496362">"ဖန်သားပြင်ကို လက် %1$d ချောင်းဖြင့် နှစ်ကြိမ် အမြန်တို့ပါ"</string>
<string name="accessibility_shortcut_edit_screen_title_triple_tap" msgid="3314488747597058942">"သုံးချက်တို့ခြင်း"</string>
<string name="accessibility_shortcut_edit_screen_summary_triple_tap" msgid="4839204951599629871">"ဖန်သားပြင်ကို %1$d ကြိမ် အမြန်တို့ပါ။ ၎င်းသည် သင့်စက်ကို နှေးသွားစေနိုင်သည်။"</string>
<string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="6271718715836961167">"လက် %1$d ချောင်းဖြင့် နှစ်ချက်တို့ခြင်း"</string>
- <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"စခရင်ကို {0,number,integer} ကြိမ် လက်နှစ်ချောင်းဖြင့် အမြန်တို့ပါ"</string>
- <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"မျက်နှာပြင်ကို သုံးချက်တို့ပါ"</string>
<string name="accessibility_shortcut_triple_tap_keyword" msgid="5359347130888464334">"သုံးချက်တို့ခြင်း"</string>
- <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"ဖန်သားပြင်ကို {0,number,integer} ကြိမ် အမြန်တို့ပါ။ ဤဖြတ်လမ်းလင့်ခ်သည် သင့်စက်ကို နှေးသွားစေနိုင်သည်"</string>
<string name="accessibility_shortcut_edit_dialog_title_advance" msgid="4567868630655591506">"အဆင့်မြင့်"</string>
<string name="accessibility_screen_magnification_navbar_configuration_warning" msgid="266736851606791552">"အများသုံးနိုင်မှု ခလုတ်ကို <xliff:g id="SERVICE">%1$s</xliff:g> အဖြစ် သတ်မှတ်ထားသည်။ ပုံကြီးချဲ့ခြင်းကို အသုံးပြုရန် အများသုံးနိုင်မှု ခလုတ်ကို ထိထားပြီးနောက် ပုံကြီးချဲ့ခြင်းကို ရွေးပါ။"</string>
<string name="accessibility_screen_magnification_gesture_navigation_warning" msgid="991017769735632046">"အများသုံးနိုင်မှု လက်ဟန်ကို <xliff:g id="SERVICE">%1$s</xliff:g> အဖြစ် သတ်မှတ်ထားသည်။ ပုံကြီးချဲ့ခြင်းကို အသုံးပြုရန် မျက်နှာပြင်၏ အောက်ခြေမှနေ၍ အပေါ်သို့ လက်နှစ်ချောင်းဖြင့် ပွတ်ဆွဲပြီး ဖိထားပါ။ ထို့နောက် ပုံကြီးချဲ့ခြင်းကို ရွေးပါ။"</string>
@@ -2369,6 +2362,7 @@
<string name="daltonizer_mode_tritanomaly_title" msgid="2278786218762602022">"အပြာ-အဝါ"</string>
<string name="daltonizer_mode_grayscale_title" msgid="152005391387952588">"အဖြူအမည်း"</string>
<string name="daltonizer_saturation_title" msgid="2999486412114963068">"တောက်ပမှု"</string>
+ <string name="daltonizer_saturation_unavailable_summary" msgid="8319753055567798775">"အဖြူအမည်းမုဒ်အတွက် (သို့) အရောင်အမှန်ပြင်ခြင်းကို ပိတ်ထားချိန်တွင် မရနိုင်ပါ"</string>
<string name="daltonizer_mode_deuteranomaly_summary" msgid="2117727423019598455">"အစိမ်းရောင်အားနည်းခြင်း၊ အစိမ်းမမြင်ရခြင်း"</string>
<string name="daltonizer_mode_protanomaly_summary" msgid="4617032854982040748">"အနီရောင်အားနည်းခြင်း၊ အနီမမြင်ရခြင်း"</string>
<string name="daltonizer_mode_tritanomaly_summary" msgid="2428218320118180070">"အပြာ-အဝါ အရောင်ကန်းခြင်း"</string>
@@ -2418,15 +2412,8 @@
<string name="color_cyan" msgid="4341758639597035927">"စိမ်းပြာ"</string>
<string name="color_yellow" msgid="5957551912912679058">"အဝါ"</string>
<string name="color_magenta" msgid="8943538189219528423">"ပန်းခရမ်း"</string>
- <string name="enable_service_title" msgid="7231533866953706788">"<xliff:g id="SERVICE">%1$s</xliff:g> အား သင့်စက်ပစ္စည်းကို အပြည့်အဝ ထိန်းချုပ်ခွင့်ပေးလိုပါသလား။"</string>
<string name="capabilities_list_title" msgid="1225853611983394386">"<xliff:g id="SERVICE">%1$s</xliff:g> ကလုပ်ဆောင်ရန်များ-"</string>
<string name="touch_filtered_warning" msgid="4225815157460318241">"အပလီကေးရှင်းသည် ခွင့်ပြုချက်တောင်းခံမှုကို ပိတ်လိုက်ခြင်းကြောင့်၊ သင့်တုန့်ပြန်မှုကို အချိန်ညှိချက်များ အတည်မပြုနိုင်ပါ။"</string>
- <string name="accessibility_service_warning" msgid="6779187188736432618">"<xliff:g id="SERVICE">%1$s</xliff:g> က ဤကိရိယာကို အပြည့်အဝ ထိန်းချုပ်ခွင့် တောင်းဆိုနေသည်။ ဤဝန်ဆောင်မှုက ဖန်သားပြင်ရှိအရာများကို ဖတ်နိုင်ပြီး အများသုံးနိုင်မှု လိုအပ်ချက်များသုံး၍ အသုံးပြုသူများကိုယ်စား လုပ်ဆောင်နိုင်သည်။ ဤထိန်းချုပ်မှု အဆင့်သည် အက်ပ်အများစုအတွက် မသင့်လျော်ပါ။"</string>
- <string name="accessibility_service_warning_description" msgid="6573203795976134751">"အများသုံးနိုင်မှု လိုအပ်ချက်များအတွက် အထောက်အကူပြုသည့် အက်ပ်များကို အပြည့်အဝထိန်းချုပ်ခြင်းသည် သင့်လျော်သော်လည်း အက်ပ်အများစုအတွက် မသင့်လျော်ပါ။"</string>
- <string name="accessibility_service_screen_control_title" msgid="324795030658109870">"ဖန်သားပြင်ကို ကြည့်ရှုထိန်းချုပ်ခြင်း"</string>
- <string name="accessibility_service_screen_control_description" msgid="8431940515157990426">"၎င်းသည် မျက်နှာပြင်ပေါ်ရှိ အကြောင်းအရာအားလုံးကို ဖတ်နိုင်ပြီး အခြားအက်ပ်များအပေါ်တွင် အကြောင်းအရာကို ဖော်ပြနိုင်သည်။"</string>
- <string name="accessibility_service_action_perform_title" msgid="1449360056585337833">"လုပ်ဆောင်ချက်များကို ကြည့်ရှုဆောင်ရွက်ခြင်း"</string>
- <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"၎င်းသည် သင်နှင့် အက်ပ်တစ်ခု (သို့) အာရုံခံကိရိယာအကြား ပြန်လှန်တုံ့ပြန်မှုများကို မှတ်သားနိုင်ပြီး သင့်ကိုယ်စား အက်ပ်များနှင့် ပြန်လှန်တုံ့ပြန်နိုင်သည်။"</string>
<string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"ခွင့်ပြု"</string>
<string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"ပယ်ရန်"</string>
<string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"ပိတ်ရန်"</string>
@@ -3368,10 +3355,8 @@
<string name="zen_mode_automation_settings_title" msgid="3709324184191870926">"အချိန်ဇယားများ"</string>
<string name="zen_mode_delete_automatic_rules" msgid="5020468289267191765">"အချိန်ဇယားများ ဖျက်ရန်"</string>
<string name="zen_mode_schedule_delete" msgid="5383420576833765114">"ဖျက်ရန်"</string>
- <!-- no translation found for zen_mode_menu_rename_mode (4681802125016390837) -->
- <skip />
- <!-- no translation found for zen_mode_menu_delete_mode (5380084696402157428) -->
- <skip />
+ <string name="zen_mode_menu_rename_mode" msgid="4681802125016390837">"အမည်ပြောင်းရန်"</string>
+ <string name="zen_mode_menu_delete_mode" msgid="5380084696402157428">"ဖျက်ရန်"</string>
<string name="zen_mode_delete_mode_confirmation" msgid="7594340592051947392">"“<xliff:g id="MODE">%1$s</xliff:g>” ကို ဖျက်မလား။"</string>
<string name="zen_mode_rule_name_edit" msgid="1053237022416700481">"တည်းဖြတ်ရန်"</string>
<string name="zen_mode_automation_settings_page_title" msgid="6217433860514433311">"အချိန်ဇယားများ"</string>
@@ -3395,8 +3380,7 @@
<string name="zen_mode_visual_signals_settings_subtitle" msgid="7433077540895876672">"ပြသမှုများကို ခွင့်ပြုရန်"</string>
<string name="mode_interruption_filter_title" msgid="3343846700214702347">"အာရုံမပျက်ပါစေနှင့်"</string>
<string name="mode_device_effects_title" msgid="5857008332618433744">"နောက်ထပ် လုပ်ဆောင်ချက်များ"</string>
- <!-- no translation found for modes_sound_summary_off (6972648204528227879) -->
- <skip />
+ <string name="modes_sound_summary_off" msgid="6972648204528227879">"{count,plural, =0{ပိတ်ရန်}=1{ပိတ်ရန် / မုဒ် ၁ ခု အလိုအလျောက်ပွင့်နိုင်သည်}other{ပိတ်ရန် / မုဒ် # ခု အလိုအလျောက်ပွင့်နိုင်သည်}}"</string>
<string name="mode_display_settings_title" msgid="8132825978346535472">"ဖန်သားပြင် ဆက်တင်များ"</string>
<string name="mode_display_options_section" msgid="5151597748243866532">"ဖန်သားပြင်တွင် ပြသမှုရွေးစရာများ"</string>
<string name="mode_grayscale_title" msgid="6027553257331235461">"အဖြူအမည်း"</string>
@@ -3659,9 +3643,9 @@
<string name="notif_listener_not_migrated" msgid="6265206376374278226">"ဤအက်ပ်က အဆင့်မြှင့်ထားသော ဆက်တင်များကို မပံ့ပိုးပါ"</string>
<string name="notif_listener_more_settings" msgid="1348409392307208921">"နောက်ထပ်ဆက်တင်များ"</string>
<string name="notif_listener_more_settings_desc" msgid="7995492074281663658">"ဤအက်ပ်အတွင်း ဆက်တင်များ ရရှိနိုင်သည်"</string>
- <string name="notification_polite_title" msgid="4737150709382859870">"အလိုက်သင့် အကြောင်းကြားချက်များ"</string>
- <string name="notification_polite_main_control_title" msgid="7267191551379543859">"အလိုက်သင့် အကြောင်းကြားချက်များ သုံးခြင်း"</string>
- <string name="notification_polite_description" msgid="7749280535620291610">"အချိန်တိုအတွင်း အကြောင်းကြားချက်များစွာ ရရှိပါက သင့်ဖုန်းသည် နှစ်မိနစ်ကြာသည်အထိ အသံတိုးပြီး စခရင်ပေါ်ရှိ ပေါ့ပ်အပ်များကို လျှော့ချပါမည်။ ခေါ်ဆိုမှု၊ နှိုးစက်နှင့် ဦးစားပေးစကားဝိုင်းများအတွက် တုန်ခါခြင်း၊ အသံမြည်ခြင်း၊ ဖန်သားပြင်တွင် ပေါ်လာခြင်းတို့ ဆက်ရှိဦးမည်ဖြစ်ပြီး အကြောင်းကြားချက်အားလုံးကို ဖန်သားပြင်ထိပ်မှ ဆွဲချခြင်းဖြင့် အလွယ်တကူ ရှာတွေ့နိုင်သည်။"</string>
+ <string name="notification_polite_title" msgid="6121016426991791557">"အကြောင်းကြားချက် အသံလျော့ချမှု"</string>
+ <string name="notification_polite_main_control_title" msgid="5812529809151927149">"အကြောင်းကြားချက် သတိပေးမှု လျှော့ချခြင်း သုံးရန်"</string>
+ <string name="notification_polite_description" msgid="5497748284893832854">"အချိန်တိုအတွင်း အကြောင်းကြားချက်များစွာ ရပါက သင့်စက်သည် ၂ မိနစ်ကြာသည်အထိ အသံတိုးပြီး သတိပေးချက်များကို လျှော့ချပါမည်။ ခေါ်ဆိုမှု၊ နှိုးစက်နှင့် ဦးစားပေးစကားဝိုင်းများကို မသက်ရောက်ပါ။ \n\nဆောင်ရွက်မှုအပြီးကာလအတွင်း ရရှိသော အကြောင်းကြားချက်များကို ဖန်သားပြင်ထိပ်ပိုင်းမှ အောက်သို့ဆွဲချခြင်းဖြင့် တွေ့နိုင်သည်။"</string>
<string name="notification_polite_work" msgid="8823596456640216391">"အလုပ်ပရိုဖိုင်များတွင် သုံးရန်"</string>
<string name="notification_polite_work_summary" msgid="5014189280132951378">"အလုပ်ပရိုဖိုင်အက်ပ်များတွင် သုံးရန်"</string>
<string name="vr_listeners_title" msgid="4960357292472540964">"VR အထောက်အကူပြု ဝန်ဆောင်မှုများ"</string>
@@ -3818,7 +3802,9 @@
<string name="zen_mode_apps_priority_apps" msgid="7386196048313716076">"ရွေးချယ်ထားသော အက်ပ်များ"</string>
<string name="zen_mode_apps_none_apps" msgid="2493642312793604327">"မရှိ"</string>
<string name="zen_mode_apps_subtext" msgid="1764211974662012877">"{count,plural,offset:2 =0{မည်သည့်အက်ပ်မျှ ကြားမဖြတ်နိုင်ပါ}=1{{app_1} က ကြားဖြတ်နိုင်သည်}=2{{app_1} နှင့် {app_2} က ကြားဖြတ်နိုင်သည်}=3{{app_1}၊ {app_2} နှင့်{app_3} က ကြားဖြတ်နိုင်သည်}other{{app_1}၊ {app_2} နှင့် နောက်ထပ်အက်ပ် # ခုက ကြားဖြတ်နိုင်သည်}}"</string>
+ <string name="zen_mode_apps_work_app" msgid="8528767938316361588">"<xliff:g id="APP_LABEL">%s</xliff:g> (အလုပ်သုံး)"</string>
<string name="zen_mode_apps_calculating" msgid="5420121396943539286">"တွက်ချက်နေသည်…"</string>
+ <string name="zen_mode_plus_n_items" msgid="6136713354369243421">"+<xliff:g id="NUMBER">%d</xliff:g>"</string>
<string name="zen_mode_bypassing_apps" msgid="625309443389126481">"အက်ပ်များကို အစားထိုးခွင့်ပြုပါ"</string>
<string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"ကြားဖြတ်နိုင်သည့် အက်ပ်များ"</string>
<string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"နောက်ထပ်အက်ပ်များကို ရွေးပါ"</string>
@@ -3836,6 +3822,7 @@
<string name="zen_mode_sounds_none" msgid="6557474361948269420">"မည်သည့်အရာကမျှ ကြားဖြတ်နိုင်ခြင်းမရှိပါ"</string>
<string name="zen_mode_people_none" msgid="4613147461974255046">"မည်သူမျှ ကြားဖြတ်နိုင်ခြင်းမရှိပါ"</string>
<string name="zen_mode_people_some" msgid="9101872681298810281">"အချို့သူများ ကြားဖြတ်နိုင်သည်"</string>
+ <string name="zen_mode_people_repeat_callers" msgid="4499084111069828761">"အကြိမ်ကြိမ်ခေါ်ဆိုသူများသည် ကြားဖြတ်နိုင်သည်"</string>
<string name="zen_mode_people_all" msgid="311036110283015205">"လူတိုင်းက ကြားဖြတ်နိုင်သည်"</string>
<string name="zen_mode_repeat_callers" msgid="2270356100287792138">"အကြိမ်ကြိမ်ခေါ်ဆိုသူများ"</string>
<string name="zen_mode_repeat_callers_title" msgid="8016699240338264781">"ထပ်မံခေါ်ဆိုသူများကို ခွင့်ပြုပါ"</string>
@@ -3855,13 +3842,37 @@
<string name="zen_mode_summary_alarms_only_by_hour" msgid="7400910210950788163">"{count,plural, =1{{time} အထိ တစ်နာရီအတွက်သာ နှိုးစက်များတွင် ပြောင်းမည်}other{{time} အထိ # နာရီအတွက်သာ နှိုးစက်များတွင် ပြောင်းမည်}}"</string>
<string name="zen_mode_summary_alarms_only_by_time" msgid="8140619669703968810">"<xliff:g id="FORMATTEDTIME">%1$s</xliff:g> အထိနိုးစက်သာလျှင် သို့ပြောင်းမည်"</string>
<string name="zen_mode_summary_always" msgid="722093064250082317">"အမြဲတမ်း ကြားဖြတ်ရန်သို့ ပြောင်းမည်"</string>
- <!-- no translation found for zen_mode_rename_title (8146882272966214558) -->
+ <string name="zen_mode_rename_title" msgid="8146882272966214558">"မုဒ်ပြင်ခြင်း"</string>
+ <string name="zen_mode_new_custom_title" msgid="321750898430776191">"မုဒ်ထည့်ခြင်း"</string>
+ <string name="zen_mode_new_custom_default_name" msgid="2778307946775085105">"စိတ်ကြိုက်မုဒ်"</string>
+ <string name="zen_mode_edit_name_hint" msgid="4584652062167540536">"မုဒ်အမည်"</string>
+ <string name="zen_mode_trigger_title_schedule_calendar" msgid="9206609438617550331">"ပြက္ခဒိန်အစီအစဉ်"</string>
+ <string name="zen_mode_trigger_title_bedtime" msgid="5086070900588489978">"အိပ်ချိန် အချိန်ဇယား"</string>
+ <string name="zen_mode_trigger_title_driving" msgid="7890990983453164403">"ကားမောင်းနေစဉ်"</string>
+ <string name="zen_mode_trigger_title_generic" msgid="601273385119550420">"အက်ပ်နှင့် လင့်ခ်ချိတ်ထားခြင်း"</string>
+ <string name="zen_mode_trigger_summary_settings_in_app" msgid="4860667191183702601">"<xliff:g id="APP_NAME">%1$s</xliff:g> ရှိ အချက်အလက်နှင့် ဆက်တင်များ"</string>
+ <string name="zen_mode_trigger_summary_managed_by_app" msgid="8631011868193102098">"<xliff:g id="APP_NAME">%1$s</xliff:g> က စီမံခန့်ခွဲခြင်း"</string>
+ <string name="zen_mode_confirm_disable_title" msgid="1232297660775719796">"ဤမုဒ်ကို ပိတ်ခြင်း"</string>
+ <string name="zen_mode_confirm_disable_message" msgid="7315541221665718491">"ဤတူးလ်ကို ပိတ်လိုက်ပါက ဤမုဒ်သည် ရည်ရွယ်ထားသည့်အတိုင်း အလုပ်လုပ်တော့မည် မဟုတ်ဘဲ ၎င်း၏ဆက်တင်များကို ဖျောက်ထားပါမည်။"</string>
+ <string name="zen_mode_action_disable" msgid="3552921561331044881">"ပိတ်ရန်"</string>
+ <string name="zen_mode_confirm_enable_title" msgid="5683371335847448595">"ဤမုဒ်ကို ဖွင့်ခြင်း"</string>
+ <string name="zen_mode_confirm_enable_message" msgid="7017879133260011419">"ဤတူးလ်ကို ဖွင့်လိုက်ပါက ဤမုဒ်သည် ၎င်း၏အချိန်ဇယားအတိုင်း အလိုအလျောက်ဖွင့်ပါမည်။"</string>
+ <string name="zen_mode_action_enable" msgid="1161480633223176531">"ဖွင့်ရန်"</string>
+ <!-- no translation found for zen_mode_blurb_schedule_time (8223898702097484009) -->
<skip />
- <!-- no translation found for zen_mode_new_custom_title (321750898430776191) -->
+ <!-- no translation found for zen_mode_blurb_schedule_calendar (382177907856065945) -->
<skip />
- <!-- no translation found for zen_mode_new_custom_default_name (2778307946775085105) -->
+ <!-- no translation found for zen_mode_blurb_bedtime (6155075956151013457) -->
<skip />
- <!-- no translation found for zen_mode_edit_name_hint (4584652062167540536) -->
+ <!-- no translation found for zen_mode_blurb_driving (1316054379000667305) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_immersive (5884004861848687869) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_theater (2999237960059524225) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_managed (5473921634985032149) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_generic (3041601339807075625) -->
<skip />
<string name="warning_button_text" msgid="1274234338874005639">"သတိပေးချက်"</string>
<string name="suggestion_button_close" msgid="6865170855573283759">"ပိတ်ရန်"</string>
@@ -4849,9 +4860,8 @@
<string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"ဘက်ထရီ"</string>
<string name="settings_panel_title" msgid="346363079938069215">"ဆက်တင်များ အကန့်"</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>
+ <!-- no translation found for enable_desktop_mode_on_secondary_display (2609567824593768780) -->
+ <skip />
<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>
@@ -5026,7 +5036,6 @@
<string name="default_active_sim_mobile_data" msgid="6798083892814045301">"မိုဘိုင်းဒေတာ"</string>
<string name="wifi_scan_notify_message" msgid="1331238142061476869">"စက်ကို ပိုမိုကောင်းမွန်စွာ အသုံးပြုနိုင်ရန် Wi-Fi ပိတ်ထားသည့်တိုင် အက်ပ်နှင့် ဝန်ဆောင်မှုများက Wi-Fi ကွန်ရက်များကို အချိန်မရွေး ရှာကြည့်နိုင်သည်။ ဥပမာအားဖြင့် တည်နေရာကို အခြေခံသည့် လုပ်ဆောင်ချက်နှင့် ဝန်ဆောင်မှုများ ပိုမိုကောင်းမွန်လာစေရန် ၎င်းကို အသုံးပြုနိုင်သည်။ ၎င်းကို Wi-Fi ရှာဖွေခြင်း ဆက်တင်များတွင် ပြောင်းနိုင်သည်။"</string>
<string name="wifi_scan_change" msgid="8438320311511852918">"ပြောင်းရန်"</string>
- <string name="preference_summary_default_combination" msgid="4643585915107796253">"<xliff:g id="STATE">%1$s</xliff:g> / <xliff:g id="NETWORKMODE">%2$s</xliff:g>"</string>
<string name="mobile_data_connection_active" msgid="2422223108911581552">"ချိတ်ဆက်ထားသည်"</string>
<string name="mobile_data_temp_connection_active" msgid="3430470299756236413">"ယာယီချိတ်ဆက်ထားသည်"</string>
<string name="mobile_data_temp_using" msgid="5211002380149434155">"<xliff:g id="SUBNAME">%1$s</xliff:g> ကို ယာယီသုံးနေသည်"</string>
@@ -5058,7 +5067,7 @@
<string name="app_pinning_main_switch_title" msgid="5465506660064032876">"အက်ပ်ပင်ထိုးခြင်းကို သုံးရန်"</string>
<string name="developer_options_main_switch_title" msgid="1720074589554152501">"ဆော့ဖ်ဝဲရေးသူ ရွေးစရာများကို သုံးရန်"</string>
<string name="default_print_service_main_switch_title" msgid="4697133737128324036">"ပုံနှိပ်ဝန်ဆောင်မှုကို သုံးရန်"</string>
- <string name="multiple_users_main_switch_title" msgid="9158796544835843201">"အသုံးပြုသူ ပြောင်းခွင့်ပြုခြင်း"</string>
+ <string name="multiple_users_main_switch_title" msgid="9158796544835843201">"အသုံးပြုသူ ပြောင်းခွင့်ပြုရန်"</string>
<string name="multiple_users_main_switch_keywords" msgid="4845954458094134356">"ခွင့်ပြုရန်၊ အမျိုးစုံ၊ အသုံးပြုသူ၊ ခွင့်ပြုချက်၊ အများအပြား"</string>
<string name="multiple_users_title_keywords" msgid="2395593167746225172">"အများအပြား၊ အသုံးပြုသူများ၊ ပရိုဖိုင်များ၊ လူများ၊ အကောင့်များ၊ ပြောင်းရန်၊ များစွာ"</string>
<string name="wireless_debugging_main_switch_title" msgid="8463499572781441719">"ကြိုးမဲ့ အမှားရှာပြင်ခြင်းကို သုံးပါ"</string>
@@ -5172,9 +5181,11 @@
<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="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_enable_freeform_support" msgid="3697462756493543645">"အလွတ်ပုံစံ ဝင်းဒိုးပံ့ပိုးမှုကို ဖွင့်ရန်အတွက် ပြန်လည်စတင်ရမည်။"</string>
+ <!-- no translation found for reboot_dialog_override_desktop_mode (7480950772574354130) -->
+ <skip />
+ <!-- no translation found for reboot_dialog_enable_desktop_mode_on_secondary_display (1153621881052401924) -->
+ <skip />
<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>
@@ -5405,5 +5416,6 @@
<string name="audio_streams_main_page_password_dialog_join_button" msgid="2967747276379153408">"ထုတ်လွှင့်မှုကို နားထောင်ရန်"</string>
<string name="audio_streams_main_page_qr_code_scanner_summary" msgid="5312980105735143360">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> ဖြင့် နားထောင်ရန် အသံ ထုတ်လွှင့်ခြင်း QR ကုဒ်ကို စကင်ဖတ်နိုင်သည်"</string>
<string name="audio_streams_main_page_password_dialog_cannot_edit" msgid="9020898619297520153">"မျှဝေစဉ် စကားဝှက်ကို ပြင်၍မရပါ။ စကားဝှက် ပြောင်းရန် အော်ဒီယို မျှဝေခြင်းကို ဦးစွာပိတ်ပါ။"</string>
+ <string name="audio_streams_qr_code_scanner_label" msgid="8799703301071378034">"QR ကုဒ် စကင်ဖတ်စနစ်"</string>
<string name="homepage_search" msgid="6759334912284663559">"ဆက်တင်များတွင် ရှာရန်"</string>
</resources>
diff --git a/res/values-nb/strings.xml b/res/values-nb/strings.xml
index 5906457..3df0077 100644
--- a/res/values-nb/strings.xml
+++ b/res/values-nb/strings.xml
@@ -41,6 +41,8 @@
<string name="radioInfo_data_suspended" msgid="2001254415431299603">"Satt på vent"</string>
<string name="radioInfo_unknown" msgid="2892562356748600367">"Ukjent"</string>
<string name="preview_pager_content_description" msgid="3762247188224576303">"Forhåndsvisning"</string>
+ <!-- no translation found for qr_code_content_description (1852208464419291347) -->
+ <skip />
<string name="font_size_make_smaller_desc" msgid="4978038055549590140">"Gjør mindre"</string>
<string name="font_size_make_larger_desc" msgid="5583046033381722247">"Gjør større"</string>
<string name="stay_awake_on_fold_title" msgid="6590454679898134221">"Alltid"</string>
@@ -283,7 +285,7 @@
<string name="location_settings_summary_location_off" msgid="4797932754681162262">"Av"</string>
<string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{På / # app har tilgang til posisjon}other{På / # apper har tilgang til posisjon}}"</string>
<string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"Laster inn …"</string>
- <string name="location_settings_footer_general" msgid="1040507068701188821">"Apper med tillatelsen for enheter i nærheten kan fastslå den relative posisjonen til tilkoblede enheter."</string>
+ <string name="location_settings_footer_general" msgid="3447585552176173502">"Apper med tillatelsen for enheter i nærheten kan fastslå den relative posisjonen til tilkoblede enheter."</string>
<string name="location_settings_footer_location_off" msgid="8568995909147566720">"Posisjonstilgang er av for apper og tjenester. Enhetsposisjonen kan fremdeles sendes til utrykningspersonell når du ringer eller sender tekstmelding til et nødnummer."</string>
<string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Finn ut mer om posisjonsinnstillinger"</string>
<string name="location_settings_tooltip_text_for_chrome" msgid="5781821709250544575">"For å bytte, gå til ChromeOS-innstillingene > Personvern og sikkerhet > Personverninnstillinger > Posisjonstilgang"</string>
@@ -850,7 +852,6 @@
<string name="nfc_reboot_dialog_title" msgid="2033983438635768169">"Vil du starte enheten på nytt?"</string>
<string name="nfc_reboot_dialog_message" msgid="4929353168157966992">"Detaljert NFC-loggføring er bare beregnet på utviklingsformål. Det inkluderes ekstra NFC-data i feilrapporter. Dette kan omfatte privat informasjon. Hvis du vil endre denne innstillingen, må du starte enheten på nytt."</string>
<string name="nfc_reboot_dialog_confirm" msgid="4769763632008584567">"Start på nytt"</string>
- <string name="keywords_external_display" msgid="4181375057920134909">"speiling, ekstern skjerm, tilkoblet skjerm, USB-skjerm, oppløsning, rotasjon"</string>
<string name="external_display_on" msgid="2560104443500154333">"På"</string>
<string name="external_display_off" msgid="5634413756025351374">"Av"</string>
<string name="external_display_settings_title" msgid="6256884595821605779">"Ekstern skjerm"</string>
@@ -1918,6 +1919,8 @@
<string name="slow_keys_summary" msgid="1784371292745423292">"Justerer aktiveringstiden for tastetrykk til <xliff:g id="SLOW_KEYS_THRESHOLD">%1$d</xliff:g> ms"</string>
<string name="sticky_keys" msgid="7317317044898161747">"Trege taster"</string>
<string name="sticky_keys_summary" msgid="1844953803625480623">"Aktiver hurtigtaster ved å trykke på én tast av gangen i stedet for å holde flere taster inne samtidig"</string>
+ <string name="mouse_keys" msgid="6237254627808525540">"Museknapper"</string>
+ <string name="mouse_keys_summary" msgid="2396247040177734245">"Bruk det fysiske tastaturet for å kontrollere musen."</string>
<string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"Hurtigtaster"</string>
<string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"Vis listen over hurtigtaster"</string>
<string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"Tastatur og verktøy i jobbprofilen"</string>
@@ -1942,14 +1945,10 @@
<string name="pointer_fill_style_yellow_button" msgid="5025969961559379024">"Endre markørfyllstilen til gul"</string>
<string name="pointer_fill_style_pink_button" msgid="4106218142489635673">"Endre markørfyllstilen til rosa"</string>
<string name="pointer_fill_style_blue_button" msgid="5594958078854032785">"Endre markørfyllstilen til blå"</string>
- <!-- no translation found for pointer_stroke_style (1886986630216050665) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_white (673686194443825383) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_black (4655806167067437330) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_none (8953927511729800247) -->
- <skip />
+ <string name="pointer_stroke_style" msgid="1886986630216050665">"Pekerstrøkstil"</string>
+ <string name="pointer_stroke_style_name_white" msgid="673686194443825383">"Hvit"</string>
+ <string name="pointer_stroke_style_name_black" msgid="4655806167067437330">"Svart"</string>
+ <string name="pointer_stroke_style_name_none" msgid="8953927511729800247">"Ingen"</string>
<string name="trackpad_touch_gesture" msgid="8641725062131922497">"Lær styreflatebevegelser"</string>
<string name="keywords_touchpad" msgid="8159846254066666032">"styreflate, styre flate, mus, markør, rull, sveip, høyreklikk, klikk, peker"</string>
<string name="keywords_trackpad_bottom_right_tap" msgid="1285062446073929305">"høyreklikk, trykk"</string>
@@ -2179,8 +2178,6 @@
<string name="accessibility_shortcut_edit_dialog_summary_floating_button" msgid="6266489864614886247">"Trykk på den svevende knappen"</string>
<string name="accessibility_shortcut_edit_dialog_title_software_by_gesture" msgid="4775049370625630546">"Tilgjengelighetsbevegelse"</string>
<string name="accessibility_shortcut_edit_dialog_summary_software" msgid="8315934725362849788">"Trykk på Tilgjengelighet-knappen <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g> nederst på skjermen. For å bytte mellom funksjoner, trykk og hold på Tilgjengelighet-knappen."</string>
- <string name="accessibility_shortcut_edit_dialog_summary_software_gesture" msgid="8292555254353761635">"Sveip opp fra bunnen av skjermen med to fingre.\n\nFor å bytte mellom funksjoner, sveip opp med to fingre og hold."</string>
- <string name="accessibility_shortcut_edit_dialog_summary_software_gesture_talkback" msgid="84483464524360845">"Sveip opp fra bunnen av skjermen med tre fingre.\n\nFor å bytte mellom funksjoner, sveip opp med tre fingre og hold."</string>
<string name="accessibility_shortcut_edit_dialog_summary_gesture" msgid="2081123009255579884">"{count,plural, =1{Sveip opp fra bunnen av skjermen. For å bytte mellom funksjoner, sveip opp og hold.}other{Sveip opp med # fingre fra bunnen av skjermen. For å bytte mellom funksjoner, sveip opp med # fingre og hold.}}"</string>
<string name="accessibility_shortcut_edit_dialog_summary_software_floating" msgid="4459254227203203324"><annotation id="link">"Flere alternativer"</annotation></string>
<string name="footer_learn_more_content_description" msgid="8843798273152131341">"Finn ut mer om <xliff:g id="SERVICE">%1$s</xliff:g>"</string>
@@ -2191,16 +2188,12 @@
<string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="844089763968552142">"Volumtaster"</string>
<string name="accessibility_shortcut_hardware_keyword" msgid="2483152542320987022">"volumtaster"</string>
<string name="accessibility_shortcut_edit_dialog_summary_hardware" msgid="2503134386397991634">"Trykk og hold inne begge volumtastene"</string>
- <string name="accessibility_shortcut_edit_dialog_title_two_finger_double_tap" msgid="2271778556854020996">"Dobbelttrykk på skjermen med to fingre"</string>
<string name="accessibility_shortcut_edit_screen_title_two_finger_double_tap" msgid="8952595692906527694">"Dobbelttrykk med %1$d fingre"</string>
<string name="accessibility_shortcut_edit_screen_summary_two_finger_double_tap" msgid="385404127425496362">"Trykk raskt på skjermen to ganger med %1$d fingre"</string>
<string name="accessibility_shortcut_edit_screen_title_triple_tap" msgid="3314488747597058942">"Trippeltrykk"</string>
<string name="accessibility_shortcut_edit_screen_summary_triple_tap" msgid="4839204951599629871">"Trykk raskt på skjermen %1$d ganger. Dette kan gjøre enheten tregere."</string>
<string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="6271718715836961167">"Dobbelttrykk med %1$d fingre"</string>
- <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"Trykk raskt på skjermen {0,number,integer} ganger med to fingre"</string>
- <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"Trippeltrykk på skjermen"</string>
<string name="accessibility_shortcut_triple_tap_keyword" msgid="5359347130888464334">"trippeltrykk"</string>
- <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"Trykk raskt på skjermen {0,number,integer} ganger. Denne snarveien kan gjøre enheten tregere"</string>
<string name="accessibility_shortcut_edit_dialog_title_advance" msgid="4567868630655591506">"Avansert"</string>
<string name="accessibility_screen_magnification_navbar_configuration_warning" msgid="266736851606791552">"Tilgjengelighet-knappen er satt til <xliff:g id="SERVICE">%1$s</xliff:g>. For å bruke forstørrelse, trykk på og hold inne Tilgjengelighet-knappen, og velg deretter forstørrelse."</string>
<string name="accessibility_screen_magnification_gesture_navigation_warning" msgid="991017769735632046">"Tilgjengelighetsbevegelsen er satt til <xliff:g id="SERVICE">%1$s</xliff:g>. For å bruke forstørring, sveip opp med to fingre fra bunnen av skjermen og hold. Deretter velger du forstørring."</string>
@@ -2369,6 +2362,7 @@
<string name="daltonizer_mode_tritanomaly_title" msgid="2278786218762602022">"Blå-gul"</string>
<string name="daltonizer_mode_grayscale_title" msgid="152005391387952588">"Gråtoner"</string>
<string name="daltonizer_saturation_title" msgid="2999486412114963068">"Intensitet"</string>
+ <string name="daltonizer_saturation_unavailable_summary" msgid="8319753055567798775">"Utilgjengelig for gråtonemodus eller når fargekorrigering er slått av"</string>
<string name="daltonizer_mode_deuteranomaly_summary" msgid="2117727423019598455">"Svak grønn, deuteranomali"</string>
<string name="daltonizer_mode_protanomaly_summary" msgid="4617032854982040748">"Svak rød, protanomali"</string>
<string name="daltonizer_mode_tritanomaly_summary" msgid="2428218320118180070">"Tritanomali"</string>
@@ -2418,15 +2412,8 @@
<string name="color_cyan" msgid="4341758639597035927">"Cyan"</string>
<string name="color_yellow" msgid="5957551912912679058">"Gul"</string>
<string name="color_magenta" msgid="8943538189219528423">"Magenta"</string>
- <string name="enable_service_title" msgid="7231533866953706788">"Vil du gi <xliff:g id="SERVICE">%1$s</xliff:g> full kontroll over enheten din?"</string>
<string name="capabilities_list_title" msgid="1225853611983394386">"<xliff:g id="SERVICE">%1$s</xliff:g> må"</string>
<string name="touch_filtered_warning" msgid="4225815157460318241">"Fordi en app skjuler tillatelsesforespørselen, kan ikke Innstillinger bekrefte svaret ditt."</string>
- <string name="accessibility_service_warning" msgid="6779187188736432618">"<xliff:g id="SERVICE">%1$s</xliff:g> ber om full kontroll over denne enheten. Tjenesten kan lese skjermen og handle på vegne av brukere med tilgjengelighetsbehov. Dette kontrollnivået er ikke passende for de fleste apper."</string>
- <string name="accessibility_service_warning_description" msgid="6573203795976134751">"Full kontroll er passende for apper som hjelper deg med tilgjengelighetsbehov, men ikke for de fleste apper."</string>
- <string name="accessibility_service_screen_control_title" msgid="324795030658109870">"Se og kontroller skjermen"</string>
- <string name="accessibility_service_screen_control_description" msgid="8431940515157990426">"Den kan lese alt innhold på skjermen og vise innhold over andre apper."</string>
- <string name="accessibility_service_action_perform_title" msgid="1449360056585337833">"Se og utfør handlinger"</string>
- <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"Den kan spore kommunikasjonen din med en app eller maskinvaresensor og kommunisere med apper på dine vegne."</string>
<string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Tillat"</string>
<string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Avvis"</string>
<string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Slå av"</string>
@@ -3368,10 +3355,8 @@
<string name="zen_mode_automation_settings_title" msgid="3709324184191870926">"Tidsplaner"</string>
<string name="zen_mode_delete_automatic_rules" msgid="5020468289267191765">"Slett tidsplaner"</string>
<string name="zen_mode_schedule_delete" msgid="5383420576833765114">"Slett"</string>
- <!-- no translation found for zen_mode_menu_rename_mode (4681802125016390837) -->
- <skip />
- <!-- no translation found for zen_mode_menu_delete_mode (5380084696402157428) -->
- <skip />
+ <string name="zen_mode_menu_rename_mode" msgid="4681802125016390837">"Gi nytt navn"</string>
+ <string name="zen_mode_menu_delete_mode" msgid="5380084696402157428">"Slett"</string>
<string name="zen_mode_delete_mode_confirmation" msgid="7594340592051947392">"Vil du slette «<xliff:g id="MODE">%1$s</xliff:g>»-modus?"</string>
<string name="zen_mode_rule_name_edit" msgid="1053237022416700481">"Endre"</string>
<string name="zen_mode_automation_settings_page_title" msgid="6217433860514433311">"Tidsplaner"</string>
@@ -3395,8 +3380,7 @@
<string name="zen_mode_visual_signals_settings_subtitle" msgid="7433077540895876672">"Tillat visuelle signaler"</string>
<string name="mode_interruption_filter_title" msgid="3343846700214702347">"Hold fokus"</string>
<string name="mode_device_effects_title" msgid="5857008332618433744">"Flere handlinger"</string>
- <!-- no translation found for modes_sound_summary_off (6972648204528227879) -->
- <skip />
+ <string name="modes_sound_summary_off" msgid="6972648204528227879">"{count,plural, =0{Av}=1{Av / 1 modus kan slås på automatisk}other{Av / # moduser kan slås på automatisk}}"</string>
<string name="mode_display_settings_title" msgid="8132825978346535472">"Visningsinnstillinger"</string>
<string name="mode_display_options_section" msgid="5151597748243866532">"Visningsalternativer"</string>
<string name="mode_grayscale_title" msgid="6027553257331235461">"Gråtoner"</string>
@@ -3659,9 +3643,9 @@
<string name="notif_listener_not_migrated" msgid="6265206376374278226">"Denne appen støtter ikke utvidete innstillinger"</string>
<string name="notif_listener_more_settings" msgid="1348409392307208921">"Flere innstillinger"</string>
<string name="notif_listener_more_settings_desc" msgid="7995492074281663658">"Flere innstillinger er tilgjengelige i denne appen"</string>
- <string name="notification_polite_title" msgid="4737150709382859870">"Tilpassede varsler"</string>
- <string name="notification_polite_main_control_title" msgid="7267191551379543859">"Bruk tilpassede varsler"</string>
- <string name="notification_polite_description" msgid="7749280535620291610">"Når du får mange varsler på kort tid, reduserer telefonen volumet og minimerer forgrunnsvinduer på skjermen i opptil to minutter. Anrop, alarmer og prioriterte samtaler vibrerer, spiller av en lyd eller vises på skjermen fortsatt, og det er enkelt å finne alle varsler når du drar ned fra toppen av skjermen."</string>
+ <string name="notification_polite_title" msgid="6121016426991791557">"Varseldemping"</string>
+ <string name="notification_polite_main_control_title" msgid="5812529809151927149">"Bruk varseldemping"</string>
+ <string name="notification_polite_description" msgid="5497748284893832854">"Når du får mange varsler på kort tid, reduserer enheten volumet og minimerer varsler i opptil to minutter. Anrop, alarmer og prioriterte samtaler berøres ikke. \n\nDu kan se varsler du får mens dempingen er aktiv, ved å dra ned fra toppen av skjermen."</string>
<string name="notification_polite_work" msgid="8823596456640216391">"Bruk for jobbprofiler"</string>
<string name="notification_polite_work_summary" msgid="5014189280132951378">"Bruk for apper i jobbprofilen"</string>
<string name="vr_listeners_title" msgid="4960357292472540964">"Hjelpetjenester for VR"</string>
@@ -3818,7 +3802,9 @@
<string name="zen_mode_apps_priority_apps" msgid="7386196048313716076">"De valgte appene"</string>
<string name="zen_mode_apps_none_apps" msgid="2493642312793604327">"Ingen"</string>
<string name="zen_mode_apps_subtext" msgid="1764211974662012877">"{count,plural,offset:2 =0{Ingen apper kan forstyrre}=1{{app_1} kan forstyrre}=2{{app_1} og {app_2} kan forstyrre}=3{{app_1}, {app_2} og {app_3} kan forstyrre}other{{app_1}, {app_2} og # til kan forstyrre}}"</string>
+ <string name="zen_mode_apps_work_app" msgid="8528767938316361588">"<xliff:g id="APP_LABEL">%s</xliff:g> (jobb)"</string>
<string name="zen_mode_apps_calculating" msgid="5420121396943539286">"Beregner …"</string>
+ <string name="zen_mode_plus_n_items" msgid="6136713354369243421">"+<xliff:g id="NUMBER">%d</xliff:g>"</string>
<string name="zen_mode_bypassing_apps" msgid="625309443389126481">"Tillat at apper overstyrer"</string>
<string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"Apper som kan forstyrre"</string>
<string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"Velg flere apper"</string>
@@ -3836,6 +3822,7 @@
<string name="zen_mode_sounds_none" msgid="6557474361948269420">"Ingenting kan forstyrre"</string>
<string name="zen_mode_people_none" msgid="4613147461974255046">"Ingen kan forstyrre"</string>
<string name="zen_mode_people_some" msgid="9101872681298810281">"Noen personer kan forstyrre"</string>
+ <string name="zen_mode_people_repeat_callers" msgid="4499084111069828761">"Gjentatte anrop kan forstyrre"</string>
<string name="zen_mode_people_all" msgid="311036110283015205">"Alle personer kan forstyrre"</string>
<string name="zen_mode_repeat_callers" msgid="2270356100287792138">"Gjentatte anrop"</string>
<string name="zen_mode_repeat_callers_title" msgid="8016699240338264781">"Tillat gjentatte anrop"</string>
@@ -3855,13 +3842,37 @@
<string name="zen_mode_summary_alarms_only_by_hour" msgid="7400910210950788163">"{count,plural, =1{Endre til bare alarmer i én time frem til {time}}other{Endre til bare alarmer i # timer frem til {time}}}"</string>
<string name="zen_mode_summary_alarms_only_by_time" msgid="8140619669703968810">"Endre til Bare alarmer frem til <xliff:g id="FORMATTEDTIME">%1$s</xliff:g>"</string>
<string name="zen_mode_summary_always" msgid="722093064250082317">"Bytt til Alltid forstyrr"</string>
- <!-- no translation found for zen_mode_rename_title (8146882272966214558) -->
+ <string name="zen_mode_rename_title" msgid="8146882272966214558">"Rediger modusen"</string>
+ <string name="zen_mode_new_custom_title" msgid="321750898430776191">"Legg til modus"</string>
+ <string name="zen_mode_new_custom_default_name" msgid="2778307946775085105">"Egendefinert modus"</string>
+ <string name="zen_mode_edit_name_hint" msgid="4584652062167540536">"Modusnavn"</string>
+ <string name="zen_mode_trigger_title_schedule_calendar" msgid="9206609438617550331">"Kalenderaktiviteter"</string>
+ <string name="zen_mode_trigger_title_bedtime" msgid="5086070900588489978">"Søvntidsplan"</string>
+ <string name="zen_mode_trigger_title_driving" msgid="7890990983453164403">"Under kjøring"</string>
+ <string name="zen_mode_trigger_title_generic" msgid="601273385119550420">"Tilknyttet app"</string>
+ <string name="zen_mode_trigger_summary_settings_in_app" msgid="4860667191183702601">"Informasjon og innstillinger i <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+ <string name="zen_mode_trigger_summary_managed_by_app" msgid="8631011868193102098">"Administreres av <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+ <string name="zen_mode_confirm_disable_title" msgid="1232297660775719796">"Slå av modusen"</string>
+ <string name="zen_mode_confirm_disable_message" msgid="7315541221665718491">"Hvis du slår av denne funksjonen, fungerer ikke modusen som den skal, og innstillingene blir skjult."</string>
+ <string name="zen_mode_action_disable" msgid="3552921561331044881">"Slå av"</string>
+ <string name="zen_mode_confirm_enable_title" msgid="5683371335847448595">"Slå på modusen"</string>
+ <string name="zen_mode_confirm_enable_message" msgid="7017879133260011419">"Hvis du slår på denne funksjonen, aktiveres modusen automatisk i henhold til tidsplanen sin."</string>
+ <string name="zen_mode_action_enable" msgid="1161480633223176531">"Slå på"</string>
+ <!-- no translation found for zen_mode_blurb_schedule_time (8223898702097484009) -->
<skip />
- <!-- no translation found for zen_mode_new_custom_title (321750898430776191) -->
+ <!-- no translation found for zen_mode_blurb_schedule_calendar (382177907856065945) -->
<skip />
- <!-- no translation found for zen_mode_new_custom_default_name (2778307946775085105) -->
+ <!-- no translation found for zen_mode_blurb_bedtime (6155075956151013457) -->
<skip />
- <!-- no translation found for zen_mode_edit_name_hint (4584652062167540536) -->
+ <!-- no translation found for zen_mode_blurb_driving (1316054379000667305) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_immersive (5884004861848687869) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_theater (2999237960059524225) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_managed (5473921634985032149) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_generic (3041601339807075625) -->
<skip />
<string name="warning_button_text" msgid="1274234338874005639">"Varsel"</string>
<string name="suggestion_button_close" msgid="6865170855573283759">"Lukk"</string>
@@ -4849,9 +4860,8 @@
<string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"Batteri"</string>
<string name="settings_panel_title" msgid="346363079938069215">"Innstillinger-panel"</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>
+ <!-- no translation found for enable_desktop_mode_on_secondary_display (2609567824593768780) -->
+ <skip />
<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>
@@ -5026,7 +5036,6 @@
<string name="default_active_sim_mobile_data" msgid="6798083892814045301">"mobildata"</string>
<string name="wifi_scan_notify_message" msgid="1331238142061476869">"For å forbedre brukeropplevelsen på enheten kan apper og tjenester søke etter wifi-nettverk når som helst – også når wifi er slått av. Dette kan for eksempel brukes til å forbedre posisjonsbaserte funksjoner og tjenester. Du kan endre dette i innstillingene for wifi-skanning."</string>
<string name="wifi_scan_change" msgid="8438320311511852918">"Endre"</string>
- <string name="preference_summary_default_combination" msgid="4643585915107796253">"<xliff:g id="STATE">%1$s</xliff:g> / <xliff:g id="NETWORKMODE">%2$s</xliff:g>"</string>
<string name="mobile_data_connection_active" msgid="2422223108911581552">"Tilkoblet"</string>
<string name="mobile_data_temp_connection_active" msgid="3430470299756236413">"Koblet til midlertidig"</string>
<string name="mobile_data_temp_using" msgid="5211002380149434155">"Bruker <xliff:g id="SUBNAME">%1$s</xliff:g> midlertidig"</string>
@@ -5172,9 +5181,11 @@
<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="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_enable_freeform_support" msgid="3697462756493543645">"En omstart kreves for å slå på støtte for vinduer i fritt format."</string>
+ <!-- no translation found for reboot_dialog_override_desktop_mode (7480950772574354130) -->
+ <skip />
+ <!-- no translation found for reboot_dialog_enable_desktop_mode_on_secondary_display (1153621881052401924) -->
+ <skip />
<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>
@@ -5292,10 +5303,8 @@
<string name="show_captions_enabled" msgid="7089043007924626">"På"</string>
<string name="live_caption_disabled" msgid="3562035026547887366">"Av"</string>
<string name="live_caption_enabled" msgid="5269360946200718949">"På"</string>
- <!-- no translation found for audio_seek_bar_state_left_first (8814986910920838972) -->
- <skip />
- <!-- no translation found for audio_seek_bar_state_right_first (1999368979633398876) -->
- <skip />
+ <string name="audio_seek_bar_state_left_first" msgid="8814986910920838972">"Lyd %1$d %% venstre, %2$d %% høyre"</string>
+ <string name="audio_seek_bar_state_right_first" msgid="1999368979633398876">"Lyd %1$d %% høyre, %2$d %% venstre"</string>
<string name="about_phone_device_name_warning" msgid="3243226572404472381">"Enhetsnavnet ditt er synlig for apper du har installert. Det kan også ses av andre personer når du kobler til Bluetooth-enheter, kobler til et wifi-nettverk eller konfigurerer en wifi-sone."</string>
<string name="grammatical_gender_title" msgid="8584242850477270828">"Grammatisk kjønn"</string>
<string name="grammatical_gender_dialog_title" msgid="8754048592099871587">"Velg grammatisk kjønn"</string>
@@ -5407,5 +5416,6 @@
<string name="audio_streams_main_page_password_dialog_join_button" msgid="2967747276379153408">"Lytt til strømmen"</string>
<string name="audio_streams_main_page_qr_code_scanner_summary" msgid="5312980105735143360">"Skann en QR-kode for en lydstrøm for å lytte med <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
<string name="audio_streams_main_page_password_dialog_cannot_edit" msgid="9020898619297520153">"Kan ikke redigere passordet under deling. For å bytte passord, slå først av lyddelingen."</string>
+ <string name="audio_streams_qr_code_scanner_label" msgid="8799703301071378034">"QR-kodeskanner"</string>
<string name="homepage_search" msgid="6759334912284663559">"Søk i innstillingene"</string>
</resources>
diff --git a/res/values-ne/strings.xml b/res/values-ne/strings.xml
index 00e3396..9255837 100644
--- a/res/values-ne/strings.xml
+++ b/res/values-ne/strings.xml
@@ -41,6 +41,8 @@
<string name="radioInfo_data_suspended" msgid="2001254415431299603">"निलम्बित"</string>
<string name="radioInfo_unknown" msgid="2892562356748600367">"अज्ञात"</string>
<string name="preview_pager_content_description" msgid="3762247188224576303">"प्रिभ्यु"</string>
+ <!-- no translation found for qr_code_content_description (1852208464419291347) -->
+ <skip />
<string name="font_size_make_smaller_desc" msgid="4978038055549590140">"अझ सानो बनाउनुहोस्"</string>
<string name="font_size_make_larger_desc" msgid="5583046033381722247">"अझ ठुलो बनाउनुहोस्"</string>
<string name="stay_awake_on_fold_title" msgid="6590454679898134221">"सधैँ"</string>
@@ -283,7 +285,7 @@
<string name="location_settings_summary_location_off" msgid="4797932754681162262">"निष्क्रिय"</string>
<string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{अन छ / # वटा एपलाई लोकेसन प्रयोग गर्ने अनुमति दिइएको छ}other{अन छ / # वटा एपहरूलाई लोकेसन प्रयोग गर्ने अनुमति दिइएको छ}}"</string>
<string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"लोड गर्दै…"</string>
- <string name="location_settings_footer_general" msgid="1040507068701188821">"वरपर रहेका ब्लुटुथ चल्ने डिभाइसहरू खोज्ने अनुमति दिइएका एपहरूले कनेक्ट गरिएका डिभाइसहरूको सापेक्ष लोकेसन पत्ता लगाउन सक्छन्।"</string>
+ <string name="location_settings_footer_general" msgid="3447585552176173502">"नजिकैका डिभाइसहरू खोज्ने अनुमति दिइएका एपहरूले कनेक्ट गरिएका डिभाइसहरूको सापेक्षिक लोकेसन पत्ता लगाउन सक्छन्।"</string>
<string name="location_settings_footer_location_off" msgid="8568995909147566720">"एप तथा सेवाहरूलाई लोकेसन प्रयोग गर्ने अनुमति दिइएको छैन। तपाईंले कुनै आपत्कालीन नम्बरमा कल गर्दा वा टेक्स्ट म्यासेज पठाउँदा भने आपत्कालीन सेवा प्रदान गर्ने निकायलाई तपाईंको डिभाइसको लोकेसन पठाइन सक्छ।"</string>
<string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"लोकेसन सेटिङका बारेमा थप जान्नुहोस्"</string>
<string name="location_settings_tooltip_text_for_chrome" msgid="5781821709250544575">"परिवर्तन गर्न \"ChromeOS का सेटिङ > गोपनीयता र सुरक्षा > गोपनीयतासम्बन्धी सेटिङ > लोकेसन एक्सेस\" मा जानुहोस्"</string>
@@ -850,7 +852,6 @@
<string name="nfc_reboot_dialog_title" msgid="2033983438635768169">"डिभाइस रिस्टार्ट गर्ने हो?"</string>
<string name="nfc_reboot_dialog_message" msgid="4929353168157966992">"NFC को विस्तृत लग राख्ने सुविधा सफ्टवेयर विकास गर्ने प्रयोजनका लागि मात्र बनाइएको हो। बग रिपोर्टहरूमा NFC का अतिरिक्त डेटा समावेश हुन्छन्। यी डेटामा निजी जानकारी पनि समावेश हुन सक्छन्। यो सेटिङ बदल्न आफ्नो डिभाइस रिस्टार्ट गर्नुहोस्।"</string>
<string name="nfc_reboot_dialog_confirm" msgid="4769763632008584567">"रिस्टार्ट गर्नुहोस्"</string>
- <string name="keywords_external_display" msgid="4181375057920134909">"मिरर गर्नुहोस्, बाह्य डिस्प्ले, कनेक्ट गरिएको डिस्प्ले, USB डिस्प्ले, रिजोल्युसन, रोटेसन"</string>
<string name="external_display_on" msgid="2560104443500154333">"अन छ"</string>
<string name="external_display_off" msgid="5634413756025351374">"अफ छ"</string>
<string name="external_display_settings_title" msgid="6256884595821605779">"बाह्य डिस्प्ले"</string>
@@ -1652,7 +1653,7 @@
<string name="lockpassword_confirm_your_work_pin_header" msgid="4229765521391960255">"आफ्नो कार्य प्रोफाइलको PIN हाल्नुहोस्"</string>
<string name="lockpassword_confirm_passwords_dont_match" msgid="2100071354970605232">"पासवर्ड मिलेन"</string>
<string name="lockpassword_confirm_pins_dont_match" msgid="1103699575489401030">"PIN मिलेन"</string>
- <string name="lockpassword_draw_your_pattern_again_header" msgid="1045638030120803622">"प्याटर्न फेरि कोर्नुहोस्"</string>
+ <string name="lockpassword_draw_your_pattern_again_header" msgid="1045638030120803622">"फेरि प्याटर्न हाल्नुहोस्"</string>
<string name="lockpassword_choose_lock_generic_header" msgid="5669348379247148696">"चयन अनलक गर्नुहोस्"</string>
<string name="lockpassword_password_set_toast" msgid="6615759749393973795">"पासवर्ड सेट भएको छ"</string>
<string name="lockpassword_pin_set_toast" msgid="5415783847198570890">"PIN सेट भएको छ।"</string>
@@ -1918,6 +1919,8 @@
<string name="slow_keys_summary" msgid="1784371292745423292">"<xliff:g id="SLOW_KEYS_THRESHOLD">%1$d</xliff:g> मिलिसेकेन्डमा एक्टिभेट गर्नका लागि कुनै की थिच्न लाग्ने समय समायोजन गर्छ"</string>
<string name="sticky_keys" msgid="7317317044898161747">"स्टिकी की"</string>
<string name="sticky_keys_summary" msgid="1844953803625480623">"सर्टकट प्राप्त गर्नका लागि कीहरू सँगै थिचिराख्नुको साटो एक पटकमा एउटा की थिच्नुहोस्"</string>
+ <string name="mouse_keys" msgid="6237254627808525540">"माउस की"</string>
+ <string name="mouse_keys_summary" msgid="2396247040177734245">"माउस नियन्त्रण गर्न भौतिक किबोर्ड प्रयोग गर्नुहोस्।"</string>
<string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"किबोर्डका सर्टकटहरू"</string>
<string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"सर्टकटहरूको सूची देखाउनुहोस्"</string>
<string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"कार्य प्रोफाइल किबोर्ड र उपकरणहरू"</string>
@@ -1942,14 +1945,10 @@
<string name="pointer_fill_style_yellow_button" msgid="5025969961559379024">"पोइन्टर फिलको शैली बदलेर पहेँलो बनाउनुहोस्"</string>
<string name="pointer_fill_style_pink_button" msgid="4106218142489635673">"पोइन्टर फिलको शैली बदलेर गुलाबी बनाउनुहोस्"</string>
<string name="pointer_fill_style_blue_button" msgid="5594958078854032785">"पोइन्टर फिलको शैली बदलेर निलो बनाउनुहोस्"</string>
- <!-- no translation found for pointer_stroke_style (1886986630216050665) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_white (673686194443825383) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_black (4655806167067437330) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_none (8953927511729800247) -->
- <skip />
+ <string name="pointer_stroke_style" msgid="1886986630216050665">"पोइन्टर स्ट्रोकको शैली"</string>
+ <string name="pointer_stroke_style_name_white" msgid="673686194443825383">"सेतो"</string>
+ <string name="pointer_stroke_style_name_black" msgid="4655806167067437330">"कालो"</string>
+ <string name="pointer_stroke_style_name_none" msgid="8953927511729800247">"कुनै पनि होइन"</string>
<string name="trackpad_touch_gesture" msgid="8641725062131922497">"टचप्याड इसाराहरूका बारेमा जानकारी"</string>
<string name="keywords_touchpad" msgid="8159846254066666032">"ट्र्याकप्याड, ट्र्याक प्याड, माउस, कर्सर, स्क्रोल, स्वाइप, राइट क्लिक, क्लिक, पोइन्टर"</string>
<string name="keywords_trackpad_bottom_right_tap" msgid="1285062446073929305">"राइट क्लिक, ट्याप"</string>
@@ -2179,8 +2178,6 @@
<string name="accessibility_shortcut_edit_dialog_summary_floating_button" msgid="6266489864614886247">"फ्लोटिङ बटनमा ट्याप गर्नुहोस्"</string>
<string name="accessibility_shortcut_edit_dialog_title_software_by_gesture" msgid="4775049370625630546">"एक्सेसिबिलिटी जेस्चर"</string>
<string name="accessibility_shortcut_edit_dialog_summary_software" msgid="8315934725362849788">"स्क्रिनको फेदमा रहेको एक्सेसिबिलिटी बटन <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g> मा ट्याप गर्नुहोस्। एउटा सुविधाबाट अर्को सुविधामा जान एक्सेसिबिलिटी बटनमा टच एन्ड होल्ड गर्नुहोस्।"</string>
- <string name="accessibility_shortcut_edit_dialog_summary_software_gesture" msgid="8292555254353761635">"२ वटा औँलाले स्क्रिनको फेदबाट माथितिर स्वाइप गर्नुहोस्।\n\nएउटा सुविधाबाट अर्को सुविधामा जान २ वटा औँलाले माथितिर स्वाइप गरी स्क्रिनमा टच एण्ड होल्ड गर्नुहोस्।"</string>
- <string name="accessibility_shortcut_edit_dialog_summary_software_gesture_talkback" msgid="84483464524360845">"३ वटा औँलाले स्क्रिनको फेदबाट माथितिर स्वाइप गर्नुहोस्।\n\nएउटा सुविधाबाट अर्को सुविधामा जान ३ वटा औँलाले माथितिर स्वाइप गरी स्क्रिनमा टच एण्ड होल्ड गर्नुहोस्।"</string>
<string name="accessibility_shortcut_edit_dialog_summary_gesture" msgid="2081123009255579884">"{count,plural, =1{स्क्रिनको फेदबाट माथितिर स्वाइप गर्नुहोस्। एउटा सुविधाबाट अर्को सुविधामा जान माथितिर स्वाइप गर्नुहोस् र होल्ड गर्नुहोस्।}other{स्क्रिनको फेदबाट # औँलाले माथितिर स्वाइप गर्नुहोस्। एउटा सुविधाबाट अर्को सुविधामा जान # औँलाले माथितिर स्वाइप गर्नुहोस् र होल्ड गर्नुहोस्।}}"</string>
<string name="accessibility_shortcut_edit_dialog_summary_software_floating" msgid="4459254227203203324"><annotation id="link">"थप विकल्पहरू"</annotation></string>
<string name="footer_learn_more_content_description" msgid="8843798273152131341">"<xliff:g id="SERVICE">%1$s</xliff:g> का बारेमा थप जान्नुहोस्"</string>
@@ -2191,16 +2188,12 @@
<string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="844089763968552142">"भोल्युम बटन"</string>
<string name="accessibility_shortcut_hardware_keyword" msgid="2483152542320987022">"भोल्युम बटन"</string>
<string name="accessibility_shortcut_edit_dialog_summary_hardware" msgid="2503134386397991634">"दुवै भोल्युम की थिचिराख्नुहोस्"</string>
- <string name="accessibility_shortcut_edit_dialog_title_two_finger_double_tap" msgid="2271778556854020996">"स्क्रिनमा दुई वटा औँलाले डबल ट्याप गर्नुहोस्"</string>
<string name="accessibility_shortcut_edit_screen_title_two_finger_double_tap" msgid="8952595692906527694">"%1$d-औँलाले डबल ट्याप"</string>
<string name="accessibility_shortcut_edit_screen_summary_two_finger_double_tap" msgid="385404127425496362">"स्क्रिनमा आफ्नो %1$d औँलाले दुई पटक छिटो छिटो ट्याप गर्नुहोस्"</string>
<string name="accessibility_shortcut_edit_screen_title_triple_tap" msgid="3314488747597058942">"ट्रिपल ट्याप"</string>
<string name="accessibility_shortcut_edit_screen_summary_triple_tap" msgid="4839204951599629871">"स्क्रिनमा %1$d पटक छिटो छिटो ट्याप गर्नुहोस्। तपाईंले यसो गर्नुभयो भने तपाईंको डिभाइस ढिलो चल्न सक्छ।"</string>
<string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="6271718715836961167">"%1$d-औँलाले डबल ट्याप"</string>
- <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"स्क्रिनमा दुई वटा औँलाले {0,number,integer} पटक छिटो छिटो ट्याप गर्नुहोस्"</string>
- <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"स्क्रिनमा तीन पटक ट्याप गर्नुहोस्"</string>
<string name="accessibility_shortcut_triple_tap_keyword" msgid="5359347130888464334">"ट्रिपल ट्याप"</string>
- <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"स्क्रिनमा द्रुत रूपमा {0,number,integer} पटक ट्याप गर्नुहोस्। यो सर्टकट प्रयोग गर्दा तपाईंको डिभाइस ढिलो चल्न सक्छ"</string>
<string name="accessibility_shortcut_edit_dialog_title_advance" msgid="4567868630655591506">"उन्नत"</string>
<string name="accessibility_screen_magnification_navbar_configuration_warning" msgid="266736851606791552">"पहुँच बटनलाई <xliff:g id="SERVICE">%1$s</xliff:g> मा सेट गरिएको छ। म्याग्निफिकेसन प्रयोग गर्नाका लागि पहुँच बटनलाई केहीबेर छोइरहनुहोस् र त्यसपछि म्याग्निफिकेसन चयन गर्नुहोस्।"</string>
<string name="accessibility_screen_magnification_gesture_navigation_warning" msgid="991017769735632046">"पहुँचको इसारा सेट गरी <xliff:g id="SERVICE">%1$s</xliff:g> बनाइयो। म्याग्निफिकेसन प्रयोग गर्न दुई वटा औँलाले स्क्रिनको फेदबाट माथितिर स्वाइप गरी थिचिराख्नुहोस्। त्यसपछि म्याग्निफिकेसन चयन गर्नुहोस्।"</string>
@@ -2369,6 +2362,7 @@
<string name="daltonizer_mode_tritanomaly_title" msgid="2278786218762602022">"निलो-पहेँलो"</string>
<string name="daltonizer_mode_grayscale_title" msgid="152005391387952588">"ग्रेस्केल"</string>
<string name="daltonizer_saturation_title" msgid="2999486412114963068">"सघनता"</string>
+ <string name="daltonizer_saturation_unavailable_summary" msgid="8319753055567798775">"ग्रेस्केल मोड वा रङ सच्याउने सुविधा अफ हुँदा यो प्रयोग गर्न मिल्दैन"</string>
<string name="daltonizer_mode_deuteranomaly_summary" msgid="2117727423019598455">"हरियो रङ ठम्याउन नसक्ने समस्या, ड्युटेरानोमेली"</string>
<string name="daltonizer_mode_protanomaly_summary" msgid="4617032854982040748">"रातो रङ ठम्याउन नसक्ने समस्या, प्रोटानोमेली"</string>
<string name="daltonizer_mode_tritanomaly_summary" msgid="2428218320118180070">"ट्रिटानोमेली"</string>
@@ -2418,15 +2412,8 @@
<string name="color_cyan" msgid="4341758639597035927">"सायन"</string>
<string name="color_yellow" msgid="5957551912912679058">"पहेँलो"</string>
<string name="color_magenta" msgid="8943538189219528423">"म्याजेन्टा"</string>
- <string name="enable_service_title" msgid="7231533866953706788">"<xliff:g id="SERVICE">%1$s</xliff:g> लाई आफ्नो डिभाइस पूर्ण रूपमा नियन्त्रण गर्न दिने हो?"</string>
<string name="capabilities_list_title" msgid="1225853611983394386">"<xliff:g id="SERVICE">%1$s</xliff:g> लाई आवश्यक:"</string>
<string name="touch_filtered_warning" msgid="4225815157460318241">"एपले अनुमति अनुरोधलाई अस्पष्ट मानिरहेको हुनाले, सेटिङहरूलले तपाईंको प्रतिक्रियालाई प्रमाणित गर्न सक्दैनन्।"</string>
- <string name="accessibility_service_warning" msgid="6779187188736432618">"<xliff:g id="SERVICE">%1$s</xliff:g> ले यो डिभाइस पूर्ण रूपमा नियन्त्रण गर्ने अनुमति माग्दै छ। यो सेवाले स्क्रिनमा भएका जानकारी पढ्न तथा पहुँचसम्बन्धी आवश्यकता भएका प्रयोगकर्ताहरूका तर्फबाट कारबाही गर्न सक्छ। धेरैजसो एपका हकमा यो स्तरको नियन्त्रण उपयुक्त हुँदैन।"</string>
- <string name="accessibility_service_warning_description" msgid="6573203795976134751">"तपाईंका विशेष आवश्यकतामा सहयोग गर्ने एपमाथि पूर्ण नियन्त्रण गर्न दिनु उपयुक्त हुन्छ तर अधिकांश एपका हकमा यस्तो नियन्त्रण उपयुक्त हुँदैन।"</string>
- <string name="accessibility_service_screen_control_title" msgid="324795030658109870">"स्क्रिन हेर्नुहोस् र नियन्त्रण गर्नुहोस्"</string>
- <string name="accessibility_service_screen_control_description" msgid="8431940515157990426">"यसले स्क्रिनमा देखिने सबै सामग्री पढ्न सक्छ र अन्य एपहरूमा उक्त सामग्री देखाउन सक्छ।"</string>
- <string name="accessibility_service_action_perform_title" msgid="1449360056585337833">"कारबाहीहरू हेर्नुहोस् र तिनमा कार्य गर्नुहोस्"</string>
- <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"यसले कुनै एप वा हार्डवेयर सेन्सरसँग तपाईंले गर्ने अन्तर्क्रिया ट्र्याक गर्न सक्छ र तपाईंका तर्फबाट एपहरूसँग अन्तर्क्रिया गर्न सक्छ।"</string>
<string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"अनुमति दिनुहोस्"</string>
<string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"नदिनुहोस्"</string>
<string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"अफ गर्नुहोस्"</string>
@@ -3656,9 +3643,9 @@
<string name="notif_listener_not_migrated" msgid="6265206376374278226">"यो एपमा परिष्कृत सेटिङ प्रयोग गर्न मिल्दैन"</string>
<string name="notif_listener_more_settings" msgid="1348409392307208921">"थप सेटिङ"</string>
<string name="notif_listener_more_settings_desc" msgid="7995492074281663658">"यस एपभित्र थप सेटिङ उपलब्ध छन्"</string>
- <string name="notification_polite_title" msgid="4737150709382859870">"एड्याप्टिभ नोटिफिकेसन"</string>
- <string name="notification_polite_main_control_title" msgid="7267191551379543859">"एड्याप्टिभ नोटिफिकेसन प्रयोग गर्नुहोस्"</string>
- <string name="notification_polite_description" msgid="7749280535620291610">"तपाईंले छोटो समयमा धेरै नोटिफिकेसन प्राप्त गर्दा तपाईंको फोनले बढीमा दुई मिनेटसम्म भोल्युम घटाउँछ र स्क्रिनमा कम पप-अप देखाउँछ। तर कल आउँदा, अलार्म बज्दा र महत्त्वपूर्ण वार्तालापसम्बन्धी नोटिफिकेसन प्राप्त हुँदा भने फोन भाइब्रेट हुन्छ, साउन्ड बज्छ वा स्क्रिनमा उक्त नोटिफिकेसन देखिन्छ र तपाईं स्क्रिनको सिरानबाट तलतिर स्वाइप गरेर सजिलैसँग सबै नोटिफिकेसन हेर्न सक्नुहुन्छ।"</string>
+ <string name="notification_polite_title" msgid="6121016426991791557">"नोटिफिकेसन कुलडाउन"</string>
+ <string name="notification_polite_main_control_title" msgid="5812529809151927149">"नोटिफिकेसन कुलडाउन प्रयोग गर्नुहोस्"</string>
+ <string name="notification_polite_description" msgid="5497748284893832854">"तपाईंले छोटो समयमा धेरै नोटिफिकेसन प्राप्त गर्दा तपाईंको डिभाइसले बढीमा २ मिनेटसम्म ती नोटिफिकेसनको साउन्डको भोल्युम घटाउँछ र अलर्टहरू कम देखाउँछ। कल, अलार्म र महत्त्वपूर्ण वार्तालापहरू भने प्रभावित हुँदैनन्। \n\nडिभाइसको स्क्रिनको सिरानबाट तलतिर स्वाइप गरेर कुलडाउनका बेला प्राप्त भएका नोटिफिकेसनहरू हेर्न सकिन्छ।"</string>
<string name="notification_polite_work" msgid="8823596456640216391">"कार्य प्रोफाइलहरूमा लागू गर्नुहोस्"</string>
<string name="notification_polite_work_summary" msgid="5014189280132951378">"कार्य प्रोफाइलका एपहरूमा लागू गर्नुहोस्"</string>
<string name="vr_listeners_title" msgid="4960357292472540964">"VR का सहायक सेवाहरू"</string>
@@ -3815,7 +3802,9 @@
<string name="zen_mode_apps_priority_apps" msgid="7386196048313716076">"चयन गरिएका एपहरू"</string>
<string name="zen_mode_apps_none_apps" msgid="2493642312793604327">"कुनै पनि होइन"</string>
<string name="zen_mode_apps_subtext" msgid="1764211974662012877">"{count,plural,offset:2 =0{कुनै पनि एपले बाधा पुर्याउन सक्दैन}=1{{app_1} ले बाधा पुर्याउन सक्छ}=2{{app_1} र {app_2} ले बाधा पुर्याउन सक्छन्}=3{{app_1}, {app_2} र {app_3} ले बाधा पुर्याउन सक्छन्}other{{app_1}, {app_2} र अरू # एपले बाधा पुर्याउन सक्छन्}}"</string>
+ <string name="zen_mode_apps_work_app" msgid="8528767938316361588">"<xliff:g id="APP_LABEL">%s</xliff:g> (काम)"</string>
<string name="zen_mode_apps_calculating" msgid="5420121396943539286">"हिसाब गरिँदै छ…"</string>
+ <string name="zen_mode_plus_n_items" msgid="6136713354369243421">"+<xliff:g id="NUMBER">%d</xliff:g>"</string>
<string name="zen_mode_bypassing_apps" msgid="625309443389126481">"एपहरूलाई ओभरराइड गर्ने अनुमति दिनुहोस्"</string>
<string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"अफ गर्न सक्ने एपहरू"</string>
<string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"थप एपहरू चयन गर्नुहोस्"</string>
@@ -3833,6 +3822,7 @@
<string name="zen_mode_sounds_none" msgid="6557474361948269420">"कुनै पनि साउन्डले अफ गर्न सक्दैन"</string>
<string name="zen_mode_people_none" msgid="4613147461974255046">"अफ गर्न सक्दैनन्"</string>
<string name="zen_mode_people_some" msgid="9101872681298810281">"केही मान्छेहरूले अवरोध गर्न सक्छन्"</string>
+ <string name="zen_mode_people_repeat_callers" msgid="4499084111069828761">"दोहोर्याएर कल गर्ने व्यक्तिहरूले बाधा पुर्याउन सक्छन्"</string>
<string name="zen_mode_people_all" msgid="311036110283015205">"सबै मान्छेहरू अवरोध गर्न सक्छन्"</string>
<string name="zen_mode_repeat_callers" msgid="2270356100287792138">"कलरहरू दोरोर्याउनुहोस्"</string>
<string name="zen_mode_repeat_callers_title" msgid="8016699240338264781">"धेरै कल गर्ने व्यक्तिहरू"</string>
@@ -3856,6 +3846,34 @@
<string name="zen_mode_new_custom_title" msgid="321750898430776191">"मोड हाल्नुहोस्"</string>
<string name="zen_mode_new_custom_default_name" msgid="2778307946775085105">"कस्टम मोड"</string>
<string name="zen_mode_edit_name_hint" msgid="4584652062167540536">"मोडको नाम"</string>
+ <string name="zen_mode_trigger_title_schedule_calendar" msgid="9206609438617550331">"पात्रोमा सेट गरिएका कार्यक्रमहरू"</string>
+ <string name="zen_mode_trigger_title_bedtime" msgid="5086070900588489978">"सुत्ने समयतालिका"</string>
+ <string name="zen_mode_trigger_title_driving" msgid="7890990983453164403">"सवारी साधन चलाइरहेका बेला"</string>
+ <string name="zen_mode_trigger_title_generic" msgid="601273385119550420">"एपमा लिंक गरिएको"</string>
+ <string name="zen_mode_trigger_summary_settings_in_app" msgid="4860667191183702601">"<xliff:g id="APP_NAME">%1$s</xliff:g> मा रहेका जानकारी तथा सेटिङ"</string>
+ <string name="zen_mode_trigger_summary_managed_by_app" msgid="8631011868193102098">"<xliff:g id="APP_NAME">%1$s</xliff:g> ले व्यवस्थापन गरेको"</string>
+ <string name="zen_mode_confirm_disable_title" msgid="1232297660775719796">"यो मोड अफ गर्नुहोस्"</string>
+ <string name="zen_mode_confirm_disable_message" msgid="7315541221665718491">"तपाईंले यो सुविधा अफ गर्नुभयो भने यो मोडले सही तरिकाले काम गर्ने छैन र यसका सेटिङ लुकाइने छन्।"</string>
+ <string name="zen_mode_action_disable" msgid="3552921561331044881">"अफ गर्नुहोस्"</string>
+ <string name="zen_mode_confirm_enable_title" msgid="5683371335847448595">"यो मोड अन गर्नुहोस्"</string>
+ <string name="zen_mode_confirm_enable_message" msgid="7017879133260011419">"तपाईंले यो सुविधा अन गर्नुभयो भने यो मोड निर्धारित समयतालिकाअनुसार स्वतः एक्टिभेट हुने छ।"</string>
+ <string name="zen_mode_action_enable" msgid="1161480633223176531">"अन गर्नुहोस्"</string>
+ <!-- no translation found for zen_mode_blurb_schedule_time (8223898702097484009) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_schedule_calendar (382177907856065945) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_bedtime (6155075956151013457) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_driving (1316054379000667305) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_immersive (5884004861848687869) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_theater (2999237960059524225) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_managed (5473921634985032149) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_generic (3041601339807075625) -->
+ <skip />
<string name="warning_button_text" msgid="1274234338874005639">"चेतावनी"</string>
<string name="suggestion_button_close" msgid="6865170855573283759">"बन्द गर्नुहोस्"</string>
<string name="device_feedback" msgid="5351614458411688608">"डिभाइसका बारेमा प्रतिक्रिया पठाउनुहोस्"</string>
@@ -4842,9 +4860,8 @@
<string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"ब्याट्री"</string>
<string name="settings_panel_title" msgid="346363079938069215">"सेटिङहरू नामक प्यानल"</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>
+ <!-- no translation found for enable_desktop_mode_on_secondary_display (2609567824593768780) -->
+ <skip />
<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>
@@ -5019,7 +5036,6 @@
<string name="default_active_sim_mobile_data" msgid="6798083892814045301">"मोबाइल डेटा"</string>
<string name="wifi_scan_notify_message" msgid="1331238142061476869">"डिभाइस प्रयोगको अनुभवमा सुधार गर्न, एप तथा सेवाहरूले अझै पनि जुनसुकै बेला (Wi‑Fi अफ भएका बेलामा पनि) Wi‑Fi नेटवर्क खोज्न सक्छन्। यसलाई लोकेसनमा आधारित सुविधा तथा सेवाहरूमा सुधार गर्ने जस्ता कार्यहरू गर्नका लागि प्रयोग गर्न सकिन्छ। तपाईं यसलाई Wi-Fi स्क्यानिङका सेटिङमा गई परिवर्तन गर्न सक्नुहुन्छ।"</string>
<string name="wifi_scan_change" msgid="8438320311511852918">"बदल्नुहोस्"</string>
- <string name="preference_summary_default_combination" msgid="4643585915107796253">"<xliff:g id="STATE">%1$s</xliff:g> / <xliff:g id="NETWORKMODE">%2$s</xliff:g>"</string>
<string name="mobile_data_connection_active" msgid="2422223108911581552">"इन्टरनेटमा कनेक्ट गरिएको छ"</string>
<string name="mobile_data_temp_connection_active" msgid="3430470299756236413">"यसमा केही समयका लागि कनेक्ट गरिएको हो"</string>
<string name="mobile_data_temp_using" msgid="5211002380149434155">"केही समयका लागि <xliff:g id="SUBNAME">%1$s</xliff:g> प्रयोग गरिँदै छ"</string>
@@ -5165,9 +5181,11 @@
<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="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_enable_freeform_support" msgid="3697462756493543645">"फ्रिफर्म विन्डो प्रयोग गर्ने सुविधा अन गर्न रिबुट गर्नु पर्ने हुन्छ।"</string>
+ <!-- no translation found for reboot_dialog_override_desktop_mode (7480950772574354130) -->
+ <skip />
+ <!-- no translation found for reboot_dialog_enable_desktop_mode_on_secondary_display (1153621881052401924) -->
+ <skip />
<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>
@@ -5398,5 +5416,6 @@
<string name="audio_streams_main_page_password_dialog_join_button" msgid="2967747276379153408">"स्ट्रिम सुन्नुहोस्"</string>
<string name="audio_streams_main_page_qr_code_scanner_summary" msgid="5312980105735143360">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> सँग अडियो स्ट्रिम सुन्न उक्त स्ट्रिमको QR कोड स्क्यान गर्नुहोस्"</string>
<string name="audio_streams_main_page_password_dialog_cannot_edit" msgid="9020898619297520153">"अडियो सेयर गरिरहेका बेला पासवर्ड बदल्न मिल्दैन। पासवर्ड बदल्न सर्वप्रथम अडियो सेयर गर्ने सुविधा अफ गर्नुहोस्।"</string>
+ <string name="audio_streams_qr_code_scanner_label" msgid="8799703301071378034">"QR कोड स्क्यानर"</string>
<string name="homepage_search" msgid="6759334912284663559">"सेटिङ खोज्नुहोस्"</string>
</resources>
diff --git a/res/values-nl/strings.xml b/res/values-nl/strings.xml
index 0447290..6c518e7 100644
--- a/res/values-nl/strings.xml
+++ b/res/values-nl/strings.xml
@@ -41,6 +41,8 @@
<string name="radioInfo_data_suspended" msgid="2001254415431299603">"Opgeschort"</string>
<string name="radioInfo_unknown" msgid="2892562356748600367">"Onbekend"</string>
<string name="preview_pager_content_description" msgid="3762247188224576303">"Voorbeeld"</string>
+ <!-- no translation found for qr_code_content_description (1852208464419291347) -->
+ <skip />
<string name="font_size_make_smaller_desc" msgid="4978038055549590140">"Verkleinen"</string>
<string name="font_size_make_larger_desc" msgid="5583046033381722247">"Vergroten"</string>
<string name="stay_awake_on_fold_title" msgid="6590454679898134221">"Altijd"</string>
@@ -283,7 +285,7 @@
<string name="location_settings_summary_location_off" msgid="4797932754681162262">"Uit"</string>
<string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{Aan: # app heeft toegang tot de locatie}other{Aan: # apps hebben toegang tot de locatie}}"</string>
<string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"Laden…"</string>
- <string name="location_settings_footer_general" msgid="1040507068701188821">"Apps met rechten voor apparaten in de buurt kunnen ongeveer inschatten waar verbonden apparaten zijn."</string>
+ <string name="location_settings_footer_general" msgid="3447585552176173502">"Apps met rechten voor apparaten in de buurt kunnen de relatieve positie van verbonden apparaten bepalen."</string>
<string name="location_settings_footer_location_off" msgid="8568995909147566720">"Toegang tot de locatie staat uit voor apps en services. De locatie van je apparaat kan nog steeds worden gestuurd naar nooddiensten als je een alarmnummer belt of sms\'t."</string>
<string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Meer informatie over locatie-instellingen"</string>
<string name="location_settings_tooltip_text_for_chrome" msgid="5781821709250544575">"Wijzig dit via ChromeOS-instellingen > Privacy en beveiliging > Privacyopties > Locatietoegang"</string>
@@ -850,7 +852,6 @@
<string name="nfc_reboot_dialog_title" msgid="2033983438635768169">"Apparaat opnieuw opstarten?"</string>
<string name="nfc_reboot_dialog_message" msgid="4929353168157966992">"Gedetailleerde NFC-logboekregistratie is alleen bedoeld voor ontwikkelingsdoeleinden. Aanvullende NFC-gegevens worden opgenomen in bugrapporten. Deze kunnen privé-informatie bevatten. Start je apparaat opnieuw op om deze instelling te wijzigen."</string>
<string name="nfc_reboot_dialog_confirm" msgid="4769763632008584567">"Opnieuw opstarten"</string>
- <string name="keywords_external_display" msgid="4181375057920134909">"mirroren, extern scherm, verbonden scherm, usb-scherm, resolutie, rotatie"</string>
<string name="external_display_on" msgid="2560104443500154333">"Aan"</string>
<string name="external_display_off" msgid="5634413756025351374">"Uit"</string>
<string name="external_display_settings_title" msgid="6256884595821605779">"Extern scherm"</string>
@@ -1918,6 +1919,8 @@
<string name="slow_keys_summary" msgid="1784371292745423292">"Past de tijd voordat een toetsaanslag wordt geactiveerd aan naar <xliff:g id="SLOW_KEYS_THRESHOLD">%1$d</xliff:g> ms"</string>
<string name="sticky_keys" msgid="7317317044898161747">"Plaktoetsen"</string>
<string name="sticky_keys_summary" msgid="1844953803625480623">"Druk toetsen één voor één in voor snelkoppelingen in plaats van meerdere toetsen tegelijkertijd"</string>
+ <string name="mouse_keys" msgid="6237254627808525540">"Muisknoppen"</string>
+ <string name="mouse_keys_summary" msgid="2396247040177734245">"Gebruik het fysieke toetsenbord om de muis te bedienen."</string>
<string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"Sneltoetsen"</string>
<string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"Toon lijst met sneltoetsen"</string>
<string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"Toetsenborden en tools van werkprofiel"</string>
@@ -1942,14 +1945,10 @@
<string name="pointer_fill_style_yellow_button" msgid="5025969961559379024">"Vulstijl voor aanwijzer wijzigen in geel"</string>
<string name="pointer_fill_style_pink_button" msgid="4106218142489635673">"Vulstijl voor aanwijzer wijzigen in roze"</string>
<string name="pointer_fill_style_blue_button" msgid="5594958078854032785">"Vulstijl voor aanwijzer wijzigen in blauw"</string>
- <!-- no translation found for pointer_stroke_style (1886986630216050665) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_white (673686194443825383) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_black (4655806167067437330) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_none (8953927511729800247) -->
- <skip />
+ <string name="pointer_stroke_style" msgid="1886986630216050665">"Streekstijl van aanwijzer"</string>
+ <string name="pointer_stroke_style_name_white" msgid="673686194443825383">"Wit"</string>
+ <string name="pointer_stroke_style_name_black" msgid="4655806167067437330">"Zwart"</string>
+ <string name="pointer_stroke_style_name_none" msgid="8953927511729800247">"Geen"</string>
<string name="trackpad_touch_gesture" msgid="8641725062131922497">"Touchpadgebaren leren"</string>
<string name="keywords_touchpad" msgid="8159846254066666032">"trackpad, track pad, muis, cursor, aanwijzer, scrollen, swipen, vegen, klikken met de rechtermuisknop, rechtsklikken, klikken, klik"</string>
<string name="keywords_trackpad_bottom_right_tap" msgid="1285062446073929305">"klikken met de rechtermuisknop, rechtsklikken, tikken"</string>
@@ -2179,8 +2178,6 @@
<string name="accessibility_shortcut_edit_dialog_summary_floating_button" msgid="6266489864614886247">"Tik op de zwevende knop"</string>
<string name="accessibility_shortcut_edit_dialog_title_software_by_gesture" msgid="4775049370625630546">"Toegankelijkheidsgebaar"</string>
<string name="accessibility_shortcut_edit_dialog_summary_software" msgid="8315934725362849788">"Tik onderaan het scherm op de knop Toegankelijkheid <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g>. Houd je vinger op de knop om tussen functies te wisselen."</string>
- <string name="accessibility_shortcut_edit_dialog_summary_software_gesture" msgid="8292555254353761635">"Swipe met twee vingers omhoog vanaf de onderkant van het scherm.\n\nSwipe met twee vingers omhoog en houd vast om tussen functies te schakelen."</string>
- <string name="accessibility_shortcut_edit_dialog_summary_software_gesture_talkback" msgid="84483464524360845">"Swipe met 3 vingers omhoog vanaf de onderkant van het scherm.\n\nSwipe met 3 vingers omhoog en houd vast om tussen functies te schakelen."</string>
<string name="accessibility_shortcut_edit_dialog_summary_gesture" msgid="2081123009255579884">"{count,plural, =1{Swipe omhoog vanaf de onderkant van het scherm. Swipe omhoog en houd vast om tussen functies te wisselen.}other{Swipe met # vingers omhoog vanaf de onderkant van het scherm. Swipe met # vingers omhoog en houd vast om tussen functies te wisselen.}}"</string>
<string name="accessibility_shortcut_edit_dialog_summary_software_floating" msgid="4459254227203203324"><annotation id="link">"Meer opties"</annotation></string>
<string name="footer_learn_more_content_description" msgid="8843798273152131341">"Meer informatie over <xliff:g id="SERVICE">%1$s</xliff:g>"</string>
@@ -2191,16 +2188,12 @@
<string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="844089763968552142">"Volumeknoppen"</string>
<string name="accessibility_shortcut_hardware_keyword" msgid="2483152542320987022">"volumeknoppen"</string>
<string name="accessibility_shortcut_edit_dialog_summary_hardware" msgid="2503134386397991634">"Houd beide volumeknoppen ingedrukt"</string>
- <string name="accessibility_shortcut_edit_dialog_title_two_finger_double_tap" msgid="2271778556854020996">"Dubbeltik met 2 vingers op het scherm"</string>
<string name="accessibility_shortcut_edit_screen_title_two_finger_double_tap" msgid="8952595692906527694">"Dubbeltikken met %1$d vingers"</string>
<string name="accessibility_shortcut_edit_screen_summary_two_finger_double_tap" msgid="385404127425496362">"Tik snel 2 keer op het scherm met %1$d vingers"</string>
<string name="accessibility_shortcut_edit_screen_title_triple_tap" msgid="3314488747597058942">"3 keer tikken"</string>
<string name="accessibility_shortcut_edit_screen_summary_triple_tap" msgid="4839204951599629871">"Tik snel %1$d keer op het scherm. Hierdoor kan je apparaat vertragen."</string>
<string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="6271718715836961167">"Dubbeltikken met %1$d vingers"</string>
- <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"Tik snel {0,number,integer} keer op het scherm met 2 vingers"</string>
- <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"3 keer op het scherm tikken"</string>
<string name="accessibility_shortcut_triple_tap_keyword" msgid="5359347130888464334">"3 keer tikken"</string>
- <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"Tik snel {0,number,integer} keer op het scherm. Deze snelkoppeling kan je apparaat vertragen."</string>
<string name="accessibility_shortcut_edit_dialog_title_advance" msgid="4567868630655591506">"Geavanceerd"</string>
<string name="accessibility_screen_magnification_navbar_configuration_warning" msgid="266736851606791552">"Toegankelijkheid is ingesteld op <xliff:g id="SERVICE">%1$s</xliff:g>. Als je vergroting wilt gebruiken, tik je op de knop Toegankelijkheid, houd je deze vast en selecteer je Vergroting."</string>
<string name="accessibility_screen_magnification_gesture_navigation_warning" msgid="991017769735632046">"Het toegankelijkheidsgebaar is ingesteld op <xliff:g id="SERVICE">%1$s</xliff:g>. Als je vergroting wilt gebruiken, swipe je met twee vingers omhoog vanaf het onderkant van het scherm en houd je vast. Selecteer vervolgens Vergroting."</string>
@@ -2369,6 +2362,7 @@
<string name="daltonizer_mode_tritanomaly_title" msgid="2278786218762602022">"Blauw-geel"</string>
<string name="daltonizer_mode_grayscale_title" msgid="152005391387952588">"Grijstinten"</string>
<string name="daltonizer_saturation_title" msgid="2999486412114963068">"Intensiteit"</string>
+ <string name="daltonizer_saturation_unavailable_summary" msgid="8319753055567798775">"Niet beschikbaar voor de modus Grijstinten of als kleurcorrectie uitstaat"</string>
<string name="daltonizer_mode_deuteranomaly_summary" msgid="2117727423019598455">"Groen zwak, deuteranomalie"</string>
<string name="daltonizer_mode_protanomaly_summary" msgid="4617032854982040748">"Rood zwak, protanomalie"</string>
<string name="daltonizer_mode_tritanomaly_summary" msgid="2428218320118180070">"Tritanomalie"</string>
@@ -2418,15 +2412,8 @@
<string name="color_cyan" msgid="4341758639597035927">"Cyaan"</string>
<string name="color_yellow" msgid="5957551912912679058">"Geel"</string>
<string name="color_magenta" msgid="8943538189219528423">"Magenta"</string>
- <string name="enable_service_title" msgid="7231533866953706788">"Toestaan dat <xliff:g id="SERVICE">%1$s</xliff:g> volledige controle over je apparaat heeft?"</string>
<string name="capabilities_list_title" msgid="1225853611983394386">"\'<xliff:g id="SERVICE">%1$s</xliff:g>\' moet het volgende kunnen:"</string>
<string name="touch_filtered_warning" msgid="4225815157460318241">"Aangezien een app een rechtenverzoek afdekt, kan Instellingen je reactie niet verifiëren."</string>
- <string name="accessibility_service_warning" msgid="6779187188736432618">"<xliff:g id="SERVICE">%1$s</xliff:g> vraagt om volledig beheer voor dit apparaat. De service kan het scherm lezen en handelen namens gebruikers met toegankelijkheidsbehoeften. Dit beheerniveau is voor de meeste apps niet gepast."</string>
- <string name="accessibility_service_warning_description" msgid="6573203795976134751">"Volledige controle is gepast voor apps die je helpen met toegankelijkheid, maar niet voor de meeste andere apps."</string>
- <string name="accessibility_service_screen_control_title" msgid="324795030658109870">"Scherm bekijken en bedienen"</string>
- <string name="accessibility_service_screen_control_description" msgid="8431940515157990426">"De functie kan alle content op het scherm lezen en content bovenop andere apps weergeven."</string>
- <string name="accessibility_service_action_perform_title" msgid="1449360056585337833">"Acties bekijken en uitvoeren"</string>
- <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"De functie kan je interacties met een app of een hardwaresensor bijhouden en namens jou met apps communiceren."</string>
<string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Toestaan"</string>
<string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Weigeren"</string>
<string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Uitzetten"</string>
@@ -3656,9 +3643,9 @@
<string name="notif_listener_not_migrated" msgid="6265206376374278226">"Deze app ondersteunt geen uitgebreide instellingen"</string>
<string name="notif_listener_more_settings" msgid="1348409392307208921">"Meer instellingen"</string>
<string name="notif_listener_more_settings_desc" msgid="7995492074281663658">"Er zijn meer instellingen beschikbaar in deze app"</string>
- <string name="notification_polite_title" msgid="4737150709382859870">"Aanpasbare meldingen"</string>
- <string name="notification_polite_main_control_title" msgid="7267191551379543859">"Aanpasbare meldingen gebruiken"</string>
- <string name="notification_polite_description" msgid="7749280535620291610">"Als je in korte tijd veel meldingen krijgt, wordt het volume op je telefoon lager gezet en worden pop-ups op het scherm geminimaliseerd gedurende maximaal 2 minuten. Gesprekken, wekkers en prioriteitsgesprekken trillen nog wel, laten een geluid horen of worden op het scherm getoond. Alle meldingen zijn makkelijk te vinden als je omlaag swipet vanaf de bovenkant van het scherm."</string>
+ <string name="notification_polite_title" msgid="6121016426991791557">"Afkoelperiode voor meldingen"</string>
+ <string name="notification_polite_main_control_title" msgid="5812529809151927149">"Afkoelperiode van meldingen gebruiken"</string>
+ <string name="notification_polite_description" msgid="5497748284893832854">"Als je in korte tijd veel meldingen krijgt, wordt het volume op je apparaat lager gezet en worden meldingen geminimaliseerd gedurende maximaal 2 minuten. Dit is niet van invloed op gesprekken, wekkers en prioriteitsgesprekken. \n\nJe kunt meldingen die je tijdens de afkoelperiode krijgt, vinden door omlaag te swipen vanaf de bovenkant van het scherm."</string>
<string name="notification_polite_work" msgid="8823596456640216391">"Toepassen op werkprofielen"</string>
<string name="notification_polite_work_summary" msgid="5014189280132951378">"Toepassen op apps in werkprofiel"</string>
<string name="vr_listeners_title" msgid="4960357292472540964">"VR-helperservices"</string>
@@ -3815,7 +3802,9 @@
<string name="zen_mode_apps_priority_apps" msgid="7386196048313716076">"Geselecteerde apps"</string>
<string name="zen_mode_apps_none_apps" msgid="2493642312793604327">"Geen"</string>
<string name="zen_mode_apps_subtext" msgid="1764211974662012877">"{count,plural,offset:2 =0{Apps mogen je niet storen}=1{{app_1} mag je storen}=2{{app_1} en {app_2} mogen je storen}=3{{app_1}, {app_2} en {app_3} mogen je storen}other{{app_1}, {app_2} en nog # mogen je storen}}"</string>
+ <string name="zen_mode_apps_work_app" msgid="8528767938316361588">"<xliff:g id="APP_LABEL">%s</xliff:g> (werk)"</string>
<string name="zen_mode_apps_calculating" msgid="5420121396943539286">"Berekenen…"</string>
+ <string name="zen_mode_plus_n_items" msgid="6136713354369243421">"+<xliff:g id="NUMBER">%d</xliff:g>"</string>
<string name="zen_mode_bypassing_apps" msgid="625309443389126481">"Apps toestaan dit te negeren"</string>
<string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"Apps die je mogen storen"</string>
<string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"Meer apps selecteren"</string>
@@ -3833,6 +3822,7 @@
<string name="zen_mode_sounds_none" msgid="6557474361948269420">"Niets mag onderbreken"</string>
<string name="zen_mode_people_none" msgid="4613147461974255046">"Niemand mag onderbreken"</string>
<string name="zen_mode_people_some" msgid="9101872681298810281">"Bepaalde mensen mogen je storen"</string>
+ <string name="zen_mode_people_repeat_callers" msgid="4499084111069828761">"Terugkerende bellers mogen je storen"</string>
<string name="zen_mode_people_all" msgid="311036110283015205">"Alle mensen mogen onderbreken"</string>
<string name="zen_mode_repeat_callers" msgid="2270356100287792138">"Terugkerende bellers"</string>
<string name="zen_mode_repeat_callers_title" msgid="8016699240338264781">"Terugkerende bellers toestaan"</string>
@@ -3856,6 +3846,34 @@
<string name="zen_mode_new_custom_title" msgid="321750898430776191">"Toevoegingsmodus"</string>
<string name="zen_mode_new_custom_default_name" msgid="2778307946775085105">"Aangepaste modus"</string>
<string name="zen_mode_edit_name_hint" msgid="4584652062167540536">"Naam van modus"</string>
+ <string name="zen_mode_trigger_title_schedule_calendar" msgid="9206609438617550331">"Agenda-afspraken"</string>
+ <string name="zen_mode_trigger_title_bedtime" msgid="5086070900588489978">"Slaapschema"</string>
+ <string name="zen_mode_trigger_title_driving" msgid="7890990983453164403">"Tijdens het autorijden"</string>
+ <string name="zen_mode_trigger_title_generic" msgid="601273385119550420">"Gekoppeld aan app"</string>
+ <string name="zen_mode_trigger_summary_settings_in_app" msgid="4860667191183702601">"Informatie en instellingen in <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+ <string name="zen_mode_trigger_summary_managed_by_app" msgid="8631011868193102098">"Beheerd door <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+ <string name="zen_mode_confirm_disable_title" msgid="1232297660775719796">"Modus uitzetten"</string>
+ <string name="zen_mode_confirm_disable_message" msgid="7315541221665718491">"Als je deze functie uitzet, werkt de modus niet meer zoals bedoeld en worden de bijbehorende instellingen verborgen."</string>
+ <string name="zen_mode_action_disable" msgid="3552921561331044881">"Uitzetten"</string>
+ <string name="zen_mode_confirm_enable_title" msgid="5683371335847448595">"Modus aanzetten"</string>
+ <string name="zen_mode_confirm_enable_message" msgid="7017879133260011419">"Als je deze functie aanzet, wordt de modus automatisch geactiveerd op basis van het bijbehorende schema."</string>
+ <string name="zen_mode_action_enable" msgid="1161480633223176531">"Aanzetten"</string>
+ <!-- no translation found for zen_mode_blurb_schedule_time (8223898702097484009) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_schedule_calendar (382177907856065945) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_bedtime (6155075956151013457) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_driving (1316054379000667305) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_immersive (5884004861848687869) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_theater (2999237960059524225) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_managed (5473921634985032149) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_generic (3041601339807075625) -->
+ <skip />
<string name="warning_button_text" msgid="1274234338874005639">"Waarschuwing"</string>
<string name="suggestion_button_close" msgid="6865170855573283759">"Sluiten"</string>
<string name="device_feedback" msgid="5351614458411688608">"Feedback sturen over dit apparaat"</string>
@@ -4842,9 +4860,8 @@
<string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"Batterij"</string>
<string name="settings_panel_title" msgid="346363079938069215">"Instellingenvenster"</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>
+ <!-- no translation found for enable_desktop_mode_on_secondary_display (2609567824593768780) -->
+ <skip />
<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>
@@ -5019,7 +5036,6 @@
<string name="default_active_sim_mobile_data" msgid="6798083892814045301">"mobiele data"</string>
<string name="wifi_scan_notify_message" msgid="1331238142061476869">"Voor een betere apparaatfunctionaliteit kunnen apps en services nog steeds op elk moment zoeken naar wifi-netwerken, zelfs als wifi uitstaat. Dit kan worden gebruikt om bijvoorbeeld locatiegebaseerde functies en services te verbeteren. Je kunt dit wijzigen in de instellingen voor wifi-scannen."</string>
<string name="wifi_scan_change" msgid="8438320311511852918">"Wijzigen"</string>
- <string name="preference_summary_default_combination" msgid="4643585915107796253">"<xliff:g id="STATE">%1$s</xliff:g>: <xliff:g id="NETWORKMODE">%2$s</xliff:g>"</string>
<string name="mobile_data_connection_active" msgid="2422223108911581552">"Verbonden"</string>
<string name="mobile_data_temp_connection_active" msgid="3430470299756236413">"Tijdelijk verbonden"</string>
<string name="mobile_data_temp_using" msgid="5211002380149434155">"<xliff:g id="SUBNAME">%1$s</xliff:g> wordt tijdelijk gebruikt"</string>
@@ -5084,7 +5100,7 @@
<string name="all_apps" msgid="3054120149509114789">"Alle apps"</string>
<string name="request_manage_bluetooth_permission_dont_allow" msgid="8798061333407581300">"Niet toestaan"</string>
<string name="uwb_settings_title" msgid="8578498712312002231">"Ultra-wideband (UWB)"</string>
- <string name="uwb_settings_summary" msgid="3074271396764672268">"Helpt de relatieve positie van apparaten in de buurt die UWB hebben te bepalen"</string>
+ <string name="uwb_settings_summary" msgid="3074271396764672268">"Helpt de relatieve positie te bepalen van apparaten in de buurt die UWB hebben"</string>
<string name="uwb_settings_summary_airplane_mode" msgid="1328864888135086484">"Zet de vliegtuigmodus uit om UWB te gebruiken"</string>
<string name="uwb_settings_summary_no_uwb_regulatory" msgid="3465456428217979428">"UWB is niet beschikbaar op je huidige locatie"</string>
<string name="thread_network_settings_title" msgid="4212301030523859220">"Thread"</string>
@@ -5165,9 +5181,11 @@
<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="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_enable_freeform_support" msgid="3697462756493543645">"Je moet opnieuw opstarten om ondersteuning voor vensters met vrije vorm aan te zetten."</string>
+ <!-- no translation found for reboot_dialog_override_desktop_mode (7480950772574354130) -->
+ <skip />
+ <!-- no translation found for reboot_dialog_enable_desktop_mode_on_secondary_display (1153621881052401924) -->
+ <skip />
<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>
@@ -5398,5 +5416,6 @@
<string name="audio_streams_main_page_password_dialog_join_button" msgid="2967747276379153408">"Luisteren naar stream"</string>
<string name="audio_streams_main_page_qr_code_scanner_summary" msgid="5312980105735143360">"Scan de QR-code van een audiostream om mee te luisteren met <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
<string name="audio_streams_main_page_password_dialog_cannot_edit" msgid="9020898619297520153">"Kan wachtwoord niet bewerken tijdens het delen. Als je het wachtwoord wilt wijzigen, zet je audio delen eerst uit."</string>
+ <string name="audio_streams_qr_code_scanner_label" msgid="8799703301071378034">"QR-codescanner"</string>
<string name="homepage_search" msgid="6759334912284663559">"Zoeken in instellingen"</string>
</resources>
diff --git a/res/values-or/strings.xml b/res/values-or/strings.xml
index ff20a41..0b14484 100644
--- a/res/values-or/strings.xml
+++ b/res/values-or/strings.xml
@@ -41,6 +41,8 @@
<string name="radioInfo_data_suspended" msgid="2001254415431299603">"ସସ୍ପେଣ୍ଡ ହୋଇଛି"</string>
<string name="radioInfo_unknown" msgid="2892562356748600367">"ଅଜଣା"</string>
<string name="preview_pager_content_description" msgid="3762247188224576303">"ପ୍ରିଭ୍ୟୁ"</string>
+ <!-- no translation found for qr_code_content_description (1852208464419291347) -->
+ <skip />
<string name="font_size_make_smaller_desc" msgid="4978038055549590140">"ଛୋଟ କରନ୍ତୁ"</string>
<string name="font_size_make_larger_desc" msgid="5583046033381722247">"ବହୁତ ବଡ଼ କରନ୍ତୁ"</string>
<string name="stay_awake_on_fold_title" msgid="6590454679898134221">"ସର୍ବଦା"</string>
@@ -283,7 +285,7 @@
<string name="location_settings_summary_location_off" msgid="4797932754681162262">"ବନ୍ଦ"</string>
<string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{ଚାଲୁ ଅଛି / # ଆପର ଲୋକେସନକୁ ଆକ୍ସେସ ଅଛି}other{ଚାଲୁ ଅଛି / # ଆପ୍ସର ଲୋକେସନକୁ ଆକ୍ସେସ ଅଛି}}"</string>
<string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"ଲୋଡ୍ ହେଉଛି…"</string>
- <string name="location_settings_footer_general" msgid="1040507068701188821">"ଆଖପାଖର ଡିଭାଇସଗୁଡ଼ିକ ପାଇଁ ଅନୁମତି ଥିବା ଆପ୍ସ କନେକ୍ଟ ହୋଇଥିବା ଡିଭାଇସଗୁଡ଼ିକର ଆପେକ୍ଷିକ ଅବସ୍ଥିତିକୁ ନିର୍ଦ୍ଧାରଣ କରିପାରିବ।"</string>
+ <string name="location_settings_footer_general" msgid="3447585552176173502">"ଆଖପାଖର ଡିଭାଇସଗୁଡ଼ିକ ପାଇଁ ଅନୁମତି ଥିବା ଆପ୍ସ କନେକ୍ଟେଡ ଡିଭାଇସଗୁଡ଼ିକର ଆପେକ୍ଷିକ ଅବସ୍ଥିତିକୁ ନିର୍ଦ୍ଧାରଣ କରିପାରିବ।"</string>
<string name="location_settings_footer_location_off" msgid="8568995909147566720">"ଆପ୍ସ ଓ ସେବାଗୁଡ଼ିକ ପାଇଁ ଲୋକେସନ ଆକ୍ସେସ ବନ୍ଦ ଅଛି। ଆପଣ ଏକ ଜରୁରୀକାଳୀନ ନମ୍ବରକୁ କଲ କରିବା କିମ୍ବା ଟେକ୍ସଟ ମେସେଜ ପଠାଇବା ସମୟରେ ଆପଣଙ୍କ ଡିଭାଇସର ଲୋକେସନ ଏବେ ବି ଜରୁରୀକାଳୀନ ଉତ୍ତରଦାତାମାନଙ୍କୁ ପଠାଯାଇପାରେ।"</string>
<string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"ଲୋକେସନ ସେଟିଂସ ବିଷୟରେ ଅଧିକ ଜାଣନ୍ତୁ"</string>
<string name="location_settings_tooltip_text_for_chrome" msgid="5781821709250544575">"ପରିବର୍ତ୍ତନ କରିବାକୁ ChromeOS ସେଟିଂସ > ଗୋପନୀୟତା ଏବଂ ସୁରକ୍ଷା > ଗୋପନୀୟତା ନିୟନ୍ତ୍ରଣ > ଲୋକେସନ ଆକ୍ସେସକୁ ଯାଆନ୍ତୁ"</string>
@@ -666,7 +668,7 @@
<string name="lock_settings_picker_admin_restricted_personal_message" msgid="3532653662159888328">"ଯଦି ଆପଣ ଆପଣଙ୍କ ସ୍କ୍ରିନ ଲକ ଭୁଲି ଯାଆନ୍ତି, ଆପଣଙ୍କ IT ଆଡମିନ ତାହା ରିସେଟ କରିପାରିବେ ନାହିଁ।"</string>
<string name="lock_settings_picker_admin_restricted_personal_message_action" msgid="5956615234246626264">"ଏକ ଅଲଗା ୱାର୍କ ଲକ ସେଟ କର"</string>
<string name="lock_settings_picker_profile_message" msgid="9142379549980873478">"ଆପଣ ଏହି ଲକଟି ଭୁଲିଗଲେ, ଏହାକୁ ରିସେଟ କରିବାକୁ ଆପଣଙ୍କ IT ଆଡମିନଙ୍କୁ କୁହନ୍ତୁ"</string>
- <string name="setup_lock_settings_options_button_label" msgid="6098297461618298505">"ସ୍କ୍ରିନ୍ ଲକ୍ ବିକଳ୍ପ"</string>
+ <string name="setup_lock_settings_options_button_label" msgid="6098297461618298505">"ସ୍କ୍ରିନ ଲକ ବିକଳ୍ପ"</string>
<string name="setup_lock_settings_options_dialog_title" msgid="7985107300517468569">"ସ୍କ୍ରିନ ଲକ ବିକଳ୍ପ"</string>
<string name="lock_screen_auto_pin_confirm_title" msgid="3012128112186088375">"ଅନଲକକୁ ସ୍ୱତଃ-ସୁନିଶ୍ଚିତ କରନ୍ତୁ"</string>
<string name="lock_screen_auto_pin_confirm_summary" msgid="9050818870806580819">"ଯଦି ଆପଣ 6 କିମ୍ବା ଅଧିକ ଅଙ୍କର ଏକ ସଠିକ PIN ଇନପୁଟ କରନ୍ତି ତେବେ ସ୍ୱତଃ ଅନଲକ କରନ୍ତୁ। ସୁନିଶ୍ଚିତ କରିବା ପାଇଁ Enter ଟାପ କରିବାଠାରୁ ଏହା ସାମାନ୍ୟ କମ ସୁରକ୍ଷିତ ଅଟେ।"</string>
@@ -771,7 +773,7 @@
<string name="lock_last_password_attempt_before_wipe_device" msgid="985126164175708507">"ଏଥର ମଧ୍ୟ ଭୁଲ ପାସ୍ୱାର୍ଡ ଲେଖିଲେ ଏହି ଡିଭାଇସ୍ ଡାଟା ଲିଭାଇ ଦିଆଯିବ"</string>
<string name="lock_last_pattern_attempt_before_wipe_user" msgid="8283944727199433440">"ପରବର୍ତ୍ତୀ ପ୍ରୟାସରେ ଯଦି ଆପଣ ଭୁଲ ପାଟର୍ନ ଅଙ୍କନ କରନ୍ତି, ତେବେ ଏହି ୟୁଜର ଡିଲିଟ ହୋଇଯିବେ"</string>
<string name="lock_last_pin_attempt_before_wipe_user" msgid="972834567684477451">"ପରବର୍ତ୍ତୀ ପ୍ରୟାସରେ ଯଦି ଆପଣ ଭୁଲ ପିନ ନମ୍ବର ଲେଖନ୍ତି, ତେବେ ଏହି ୟୁଜର ଡିଲିଟ ହୋଇଯିବେ"</string>
- <string name="lock_last_password_attempt_before_wipe_user" msgid="3797239847079686727">"ପରବର୍ତ୍ତୀ ପ୍ରୟାସରେ ଯଦି ଆପଣ ଭୁଲ ପାସ୍ୱର୍ଡ ଦିଅନ୍ତି, ତେବେ ଏହି ଉପଯୋଗକର୍ତ୍ତା ଡିଲିଟ୍ ହୋଇଯିବେ"</string>
+ <string name="lock_last_password_attempt_before_wipe_user" msgid="3797239847079686727">"ପରବର୍ତ୍ତୀ ପ୍ରୟାସରେ ଯଦି ଆପଣ ଭୁଲ ପାସୱର୍ଡ ଦିଅନ୍ତି ତେବେ ଏହି ୟୁଜର ଡିଲିଟ ହୋଇଯିବେ"</string>
<string name="lock_last_pattern_attempt_before_wipe_profile" msgid="2479195488386373253">"ପରବର୍ତ୍ତୀ ପ୍ରଚେଷ୍ଟାରେ ଯଦି ଆପଣ ଭୁଲ ପାଟର୍ନ ଦିଅନ୍ତି, ତେବେ ଆପଣଙ୍କ ୱାର୍କ ପ୍ରୋଫାଇଲ୍ ଓ ଏହାର ଡାଟା ଡିଲିଟ୍ ହୋଇଯିବ"</string>
<string name="lock_last_pin_attempt_before_wipe_profile" msgid="7086428013814722436">"ପରବର୍ତ୍ତୀ ପ୍ରଚେଷ୍ଟାରେ ଯଦି ଆପଣ ଭୁଲ PIN ଦିଅନ୍ତି, ତେବେ ଆପଣଙ୍କ ୱାର୍କ ପ୍ରୋଫାଇଲ୍ ଓ ତାର ଡାଟା ଡିଲିଟ୍ ହୋଇଯିବ"</string>
<string name="lock_last_password_attempt_before_wipe_profile" msgid="253673907244112643">"ପରବର୍ତ୍ତୀ ପ୍ରଚେଷ୍ଟାରେ ଯଦି ଆପଣ ଭୁଲ ପାସୱାର୍ଡ ଲେଖନ୍ତି, ତେବେ ଆପଣଙ୍କର ୱାର୍କ ପ୍ରୋଫାଇଲ୍ ଓ ତାର ଡାଟାକୁ ଡିଲିଟ୍ କରିଦିଆଯିବ।"</string>
@@ -850,7 +852,6 @@
<string name="nfc_reboot_dialog_title" msgid="2033983438635768169">"ଡିଭାଇସକୁ ରିଷ୍ଟାର୍ଟ କରିବେ?"</string>
<string name="nfc_reboot_dialog_message" msgid="4929353168157966992">"ସବିଶେଷ NFC ଲଗିଂ କେବଳ ଉନ୍ନତି ପାଇଁ ଉଦ୍ଦିଷ୍ଟ। ବଗ ରିପୋର୍ଟରେ ଅତିରିକ୍ତ NFC ଡାଟା ଅନ୍ତର୍ଭୁକ୍ତ କରାଯାଏ, ଯେଉଁଥିରେ ବ୍ୟକ୍ତିଗତ ସୂଚନା ଥାଇପାରେ। ଏହି ସେଟିଂକୁ ପରିବର୍ତ୍ତନ କରିବା ପାଇଁ ଆପଣଙ୍କ ଡିଭାଇସକୁ ରିଷ୍ଟାର୍ଟ କରନ୍ତୁ।"</string>
<string name="nfc_reboot_dialog_confirm" msgid="4769763632008584567">"ରିଷ୍ଟାର୍ଟ କରନ୍ତୁ"</string>
- <string name="keywords_external_display" msgid="4181375057920134909">"ମିରର, ଏକ୍ସଟର୍ନଲ ଡିସପ୍ଲେ, କନେକ୍ଟ ହୋଇଥିବା ଡିସପ୍ଲେ, USB ଡିସପ୍ଲେ, ରିଜୋଲ୍ୟୁସନ, ରୋଟେସନ"</string>
<string name="external_display_on" msgid="2560104443500154333">"ଚାଲୁ ଅଛି"</string>
<string name="external_display_off" msgid="5634413756025351374">"ବନ୍ଦ ଅଛି"</string>
<string name="external_display_settings_title" msgid="6256884595821605779">"ଏକ୍ସଟର୍ନଲ ଡିସପ୍ଲେ"</string>
@@ -1854,7 +1855,7 @@
<!-- no translation found for service_process_name (7827318358399776412) -->
<skip />
<string name="running_process_item_user_label" msgid="1444898861984132133">"ୟୁଜର: <xliff:g id="USER_NAME">%1$s</xliff:g>"</string>
- <string name="running_process_item_removed_user_label" msgid="4812732296696662613">"କାଢ଼ିଦିଆଯାଇଥିବା ଉପଯୋଗକର୍ତ୍ତା"</string>
+ <string name="running_process_item_removed_user_label" msgid="4812732296696662613">"କାଢ଼ିଦିଆଯାଇଥିବା ୟୁଜର"</string>
<string name="running_processes_item_description_s_s" msgid="6835918861352501671">"<xliff:g id="NUMPROCESS">%1$d</xliff:g> ପ୍ରକ୍ରିୟା ଏବଂ <xliff:g id="NUMSERVICES">%2$d</xliff:g> ସେବା"</string>
<string name="running_processes_item_description_s_p" msgid="1209371773353932361">"<xliff:g id="NUMPROCESS">%1$d</xliff:g> ପ୍ରକ୍ରିୟା ଓ <xliff:g id="NUMSERVICES">%2$d</xliff:g> ସେବା"</string>
<string name="running_processes_item_description_p_s" msgid="8957061449107822282">"<xliff:g id="NUMPROCESS">%1$d</xliff:g> ପ୍ରକ୍ରିୟା ଓ <xliff:g id="NUMSERVICES">%2$d</xliff:g> ସେବା"</string>
@@ -1918,6 +1919,8 @@
<string name="slow_keys_summary" msgid="1784371292745423292">"<xliff:g id="SLOW_KEYS_THRESHOLD">%1$d</xliff:g> msକୁ ସକ୍ରିୟ କରିବାକୁ ଏକ କୀ ଦବାଇବା ପାଇଁ ଲାଗୁଥିବା ସମୟକୁ ଏହା ଆଡଜଷ୍ଟ କରେ"</string>
<string name="sticky_keys" msgid="7317317044898161747">"ଷ୍ଟିକି କୀଗୁଡ଼ିକ"</string>
<string name="sticky_keys_summary" msgid="1844953803625480623">"ଏକାଠି କୀଗୁଡ଼ିକୁ ଦବାଇ ଧରିବା ପରିବର୍ତ୍ତେ ସର୍ଟକର୍ଟଗୁଡ଼ିକ ପାଇଁ ଥରକେ ଗୋଟିଏ କୀ ଦବାନ୍ତୁ"</string>
+ <string name="mouse_keys" msgid="6237254627808525540">"ମାଉସ କୀଗୁଡ଼ିକ"</string>
+ <string name="mouse_keys_summary" msgid="2396247040177734245">"ମାଉସକୁ ନିୟନ୍ତ୍ରଣ କରିବା ପାଇଁ ଫିଜିକାଲ କୀବୋର୍ଡ ବ୍ୟବହାର କରନ୍ତୁ।"</string>
<string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"କୀବୋର୍ଡ଼ ସର୍ଟକଟଗୁଡ଼ିକ"</string>
<string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"ସର୍ଟକଟଗୁଡ଼ିକର ତାଲିକା ଦେଖାନ୍ତୁ"</string>
<string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"ୱର୍କ ପ୍ରୋଫାଇଲ୍ କୀବୋର୍ଡ & ଟୁଲ୍ଗୁଡ଼ିକ"</string>
@@ -1942,14 +1945,10 @@
<string name="pointer_fill_style_yellow_button" msgid="5025969961559379024">"ପଏଣ୍ଟର ଫିଲ ଷ୍ଟାଇଲ ହଳଦିଆରେ ବଦଳାନ୍ତୁ"</string>
<string name="pointer_fill_style_pink_button" msgid="4106218142489635673">"ପଏଣ୍ଟର ଫିଲ ଷ୍ଟାଇଲ ଗୋଲାପିରେ ବଦଳାନ୍ତୁ"</string>
<string name="pointer_fill_style_blue_button" msgid="5594958078854032785">"ପଏଣ୍ଟର ଫିଲ ଷ୍ଟାଇଲକୁ ନୀଳରେ ବଦଳାନ୍ତୁ"</string>
- <!-- no translation found for pointer_stroke_style (1886986630216050665) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_white (673686194443825383) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_black (4655806167067437330) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_none (8953927511729800247) -->
- <skip />
+ <string name="pointer_stroke_style" msgid="1886986630216050665">"ପଏଣ୍ଟର ଷ୍ଟ୍ରୋକର ଷ୍ଟାଇଲ"</string>
+ <string name="pointer_stroke_style_name_white" msgid="673686194443825383">"ଧଳା"</string>
+ <string name="pointer_stroke_style_name_black" msgid="4655806167067437330">"କଳା"</string>
+ <string name="pointer_stroke_style_name_none" msgid="8953927511729800247">"କିଛି ନାହିଁ"</string>
<string name="trackpad_touch_gesture" msgid="8641725062131922497">"ଟଚପେଡର ଜେଶ୍ଚରଗୁଡ଼ିକ ବିଷୟରେ ଜାଣନ୍ତୁ"</string>
<string name="keywords_touchpad" msgid="8159846254066666032">"ଟ୍ରାକପେଡ ଟ୍ରାକ ପେଡ, ମାଉସ, କର୍ସର, ସ୍କ୍ରୋଲ, ସ୍ୱାଇପ, ଡାହାଣ କ୍ଲିକ, କ୍ଲିକ, ପଏଣ୍ଟର"</string>
<string name="keywords_trackpad_bottom_right_tap" msgid="1285062446073929305">"ଡାହାଣ କ୍ଲିକ, ଟାପ"</string>
@@ -2179,8 +2178,6 @@
<string name="accessibility_shortcut_edit_dialog_summary_floating_button" msgid="6266489864614886247">"ଫ୍ଲୋଟିଂ ବଟନରେ ଟାପ କରନ୍ତୁ"</string>
<string name="accessibility_shortcut_edit_dialog_title_software_by_gesture" msgid="4775049370625630546">"ଆକ୍ସେସିବିଲିଟୀ ଜେଶ୍ଚର"</string>
<string name="accessibility_shortcut_edit_dialog_summary_software" msgid="8315934725362849788">"ଆପଣଙ୍କ ସ୍କ୍ରିନର ନିମ୍ନରେ ଥିବା ଆକ୍ସେସିବିଲିଟୀ ବଟନ <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g>ରେ ଟାପ କରନ୍ତୁ। ଫିଚରଗୁଡ଼ିକ ମଧ୍ୟରେ ସ୍ୱିଚ କରିବାକୁ ଆକ୍ସେସିବିଲିଟୀ ବଟନକୁ ସ୍ପର୍ଶ କରି ଧରି ରଖନ୍ତୁ।"</string>
- <string name="accessibility_shortcut_edit_dialog_summary_software_gesture" msgid="8292555254353761635">"2ଟି ଆଙ୍ଗୁଠିରେ ସ୍କ୍ରିନର ତଳୁ ଉପରକୁ ସ୍ୱାଇପ୍ କରନ୍ତୁ।\n\nଫିଚରଗୁଡ଼ିକ ମଧ୍ୟରେ ସ୍ୱିଚ୍ କରିବାକୁ, 2ଟି ଆଙ୍ଗୁଠିରେ ଉପରକୁ ସ୍ୱାଇପ୍ କରି ଧରି ରଖନ୍ତୁ।"</string>
- <string name="accessibility_shortcut_edit_dialog_summary_software_gesture_talkback" msgid="84483464524360845">"3ଟି ଆଙ୍ଗୁଠିରେ ସ୍କ୍ରିନର ତଳୁ ଉପରକୁ ସ୍ୱାଇପ୍ କରନ୍ତୁ।\n\nଫିଚରଗୁଡ଼ିକ ମଧ୍ୟରେ ସ୍ୱିଚ୍ କରିବାକୁ, 3ଟି ଆଙ୍ଗୁଠିରେ ଉପରକୁ ସ୍ୱାଇପ୍ କରି ଧରି ରଖନ୍ତୁ।"</string>
<string name="accessibility_shortcut_edit_dialog_summary_gesture" msgid="2081123009255579884">"{count,plural, =1{ଆପଣଙ୍କ ସ୍କ୍ରିନର ନିମ୍ନରୁ ଉପରକୁ ସ୍ୱାଇପ କରନ୍ତୁ। ଫିଚରଗୁଡ଼ିକ ମଧ୍ୟରେ ସୁଇଚ କରିବା ପାଇଁ ଉପରକୁ ସ୍ୱାଇପ କରି ଧରି ରଖନ୍ତୁ।}other{# ଆଙ୍ଗୁଠିରେ ଆପଣଙ୍କ ସ୍କ୍ରିନର ନିମ୍ନରୁ ଉପରକୁ ସ୍ୱାଇପ କରନ୍ତୁ। ଫିଚରଗୁଡ଼ିକ ମଧ୍ୟରେ ସୁଇଚ କରିବାକୁ # ଆଙ୍ଗୁଠିରେ ଉପରକୁ ସ୍ୱାଇପ କରି ଧରି ରଖନ୍ତୁ।}}"</string>
<string name="accessibility_shortcut_edit_dialog_summary_software_floating" msgid="4459254227203203324"><annotation id="link">"ଅଧିକ ବିକଳ୍ପ"</annotation></string>
<string name="footer_learn_more_content_description" msgid="8843798273152131341">"<xliff:g id="SERVICE">%1$s</xliff:g> ବିଷୟରେ ଅଧିକ ଜାଣନ୍ତୁ"</string>
@@ -2191,16 +2188,12 @@
<string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="844089763968552142">"ଭଲ୍ୟୁମ କୀ"</string>
<string name="accessibility_shortcut_hardware_keyword" msgid="2483152542320987022">"ଭଲ୍ୟୁମ କୀ"</string>
<string name="accessibility_shortcut_edit_dialog_summary_hardware" msgid="2503134386397991634">"ଉଭୟ ଭଲ୍ୟୁମ କୀ’କୁ ଦବାଇ ଧରି ରଖନ୍ତୁ"</string>
- <string name="accessibility_shortcut_edit_dialog_title_two_finger_double_tap" msgid="2271778556854020996">"ସ୍କ୍ରିନକୁ ଦୁଇଟି-ଆଙ୍ଗୁଠିରେ ଦୁଇଥର-ଟାପ କରନ୍ତୁ"</string>
<string name="accessibility_shortcut_edit_screen_title_two_finger_double_tap" msgid="8952595692906527694">"%1$d-ଆଙ୍ଗୁଠିରେ ଦୁଇଥର ଟାପ"</string>
<string name="accessibility_shortcut_edit_screen_summary_two_finger_double_tap" msgid="385404127425496362">"%1$d ଆଙ୍ଗୁଠିରେ ସ୍କ୍ରିନରେ ଶୀଘ୍ର ଦୁଇଥର ଟାପ କରନ୍ତୁ"</string>
<string name="accessibility_shortcut_edit_screen_title_triple_tap" msgid="3314488747597058942">"ତିନିଥର ଟାପ"</string>
<string name="accessibility_shortcut_edit_screen_summary_triple_tap" msgid="4839204951599629871">"ସ୍କ୍ରିନରେ ଶୀଘ୍ର %1$d ଥର ଟାପ କରନ୍ତୁ। ଏହା ଆପଣଙ୍କ ଡିଭାଇସକୁ ଧୀର କରିପାରେ।"</string>
<string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="6271718715836961167">"%1$d-ଆଙ୍ଗୁଠିରେ ଦୁଇଥର ଟାପ"</string>
- <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"ଦୁଇଟି ଆଙ୍ଗୁଠିରେ ସ୍କ୍ରିନକୁ ଶୀଘ୍ର {0,number,integer} ଥର ଟାପ କରନ୍ତୁ"</string>
- <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"ଟ୍ରିପଲ୍ ଟାପ୍ ସ୍କ୍ରିନ୍"</string>
<string name="accessibility_shortcut_triple_tap_keyword" msgid="5359347130888464334">"ତିନିଥର ଟାପ"</string>
- <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"ସ୍କ୍ରିନରେ ଶୀଘ୍ର {0,number,integer} ଥର ଟାପ୍ କରନ୍ତୁ। ଏହି ସର୍ଟକଟ୍ ଆପଣଙ୍କ ଡିଭାଇସକୁ ଧୀର କରିପାରେ"</string>
<string name="accessibility_shortcut_edit_dialog_title_advance" msgid="4567868630655591506">"ଉନ୍ନତ"</string>
<string name="accessibility_screen_magnification_navbar_configuration_warning" msgid="266736851606791552">"<xliff:g id="SERVICE">%1$s</xliff:g>କୁ ଆକ୍ସେସିବିଲିଟୀ ବଟନ୍ ସେଟ୍ କରାଯାଇଛି। ମାଗ୍ନିଫିକେଶନ୍କୁ ବ୍ୟବହାର କରିବା ପାଇଁ ଆକ୍ସେସିବିଲିଟୀ ବଟନ୍କୁ ଦାବି ଧରନ୍ତୁ, ତା’ପରେ ମାଗ୍ନିଫିକେଶନ୍କୁ ଚୟନ କରନ୍ତୁ।"</string>
<string name="accessibility_screen_magnification_gesture_navigation_warning" msgid="991017769735632046">"ଆକ୍ସେସିବିଲିଟୀ ଜେଶ୍ଚର୍ <xliff:g id="SERVICE">%1$s</xliff:g>ରେ ସେଟ୍ କରାଯାଇଛି। ମ୍ୟାଗ୍ନିଫିକେସନ୍ ବ୍ୟବହାର କରିବା ପାଇଁ, ଦୁଇଟି ଆଙ୍ଗୁଠିରେ ସ୍କ୍ରିନ୍ର ତଳୁ ଉପର ଆଡ଼କୁ ସ୍ୱାଇପ୍ କରି ଧରି ରଖନ୍ତୁ। ତା’ପରେ ମ୍ୟାଗ୍ନିଫିକେସନ୍ ଚୟନ କରନ୍ତୁ।"</string>
@@ -2369,6 +2362,7 @@
<string name="daltonizer_mode_tritanomaly_title" msgid="2278786218762602022">"ନୀଳ-ହଳଦିଆ"</string>
<string name="daltonizer_mode_grayscale_title" msgid="152005391387952588">"ଗ୍ରେସ୍କେଲ୍"</string>
<string name="daltonizer_saturation_title" msgid="2999486412114963068">"ତୀବ୍ରତା"</string>
+ <string name="daltonizer_saturation_unavailable_summary" msgid="8319753055567798775">"ଗ୍ରେସ୍କେଲ ମୋଡ କିମ୍ବା ରଙ୍ଗ ସଂଶୋଧନ ଅକ୍ଷମ ଥିବା ସମୟରେ ଅନୁପଲବ୍ଧ ଅଟେ"</string>
<string name="daltonizer_mode_deuteranomaly_summary" msgid="2117727423019598455">"ସବୁଜ ରଙ୍ଗ ଦେଖିବାରେ ସମସ୍ୟା, ଡ୍ୟୁଟେରାନୋମାଲି"</string>
<string name="daltonizer_mode_protanomaly_summary" msgid="4617032854982040748">"ଲାଲ୍ ରଙ୍ଗ ଦେଖିବାରେ ସମସ୍ୟା, ପ୍ରୋଟାନୋମାଲି"</string>
<string name="daltonizer_mode_tritanomaly_summary" msgid="2428218320118180070">"ଟ୍ରିଟାନୋମାଲି"</string>
@@ -2418,15 +2412,8 @@
<string name="color_cyan" msgid="4341758639597035927">"ସିଆନ୍"</string>
<string name="color_yellow" msgid="5957551912912679058">"ହଳଦିଆ"</string>
<string name="color_magenta" msgid="8943538189219528423">"ମାଜେଣ୍ଟା"</string>
- <string name="enable_service_title" msgid="7231533866953706788">"ଆପଣଙ୍କ ଡିଭାଇସର ସମ୍ପୂର୍ଣ୍ଣ ନିୟନ୍ତ୍ରଣ କରିବାକୁ <xliff:g id="SERVICE">%1$s</xliff:g>କୁ ଅନୁମତି ଦେବେ?"</string>
<string name="capabilities_list_title" msgid="1225853611983394386">"<xliff:g id="SERVICE">%1$s</xliff:g> ଆବଶ୍ୟକ କରେ:"</string>
<string name="touch_filtered_warning" msgid="4225815157460318241">"ଗୋଟିଏ ଆପ ଏକ ଅସ୍ପଷ୍ଟ ଅନୁରୋଧକୁ ଅଣଦେଖା କରୁଥିବା ଯୋଗୁଁ, ସେଟିଂସ ଆପଣଙ୍କ ଉତ୍ତରକୁ ଯାଞ୍ଚ କରିପାରିବ ନାହିଁ।"</string>
- <string name="accessibility_service_warning" msgid="6779187188736432618">"<xliff:g id="SERVICE">%1$s</xliff:g>, ଏହି ଡିଭାଇସର ସମ୍ପୂର୍ଣ୍ଣ ନିୟନ୍ତ୍ରଣ ଅନୁରୋଧ କରୁଛି। ଏହି ସେବା, ସ୍କ୍ରିନ ପଢ଼ିପାରିବ ଏବଂ ଆକ୍ସେସିବିଲିଟି ଆବଶ୍ୟକତା ଅନୁଯାୟୀ ୟୁଜର ତରଫରୁ କାର୍ଯ୍ୟ କରିପାରିବ। ଅଧିକାଂଶ ଆପ ପାଇଁ ଏହି ସ୍ତରର ନିୟନ୍ତ୍ରଣ ସଠିକ୍ ନୁହେଁ।"</string>
- <string name="accessibility_service_warning_description" msgid="6573203795976134751">"ଯେଉଁ ଆପ୍ସ ଆପଣଙ୍କୁ ଆକ୍ସେସିବିଲିଟୀ ଆବଶ୍ୟକତାରେ ସହାୟତା କରେ, ସେହି ଆପ୍ସ ପାଇଁ ସମ୍ପୂର୍ଣ୍ଣ ନିୟନ୍ତ୍ରଣ ଉପଯୁକ୍ତ ଅଟେ, କିନ୍ତୁ ଅଧିକାଂଶ ଆପ୍ସ ପାଇଁ ଉପଯୁକ୍ତ ନୁହେଁ।"</string>
- <string name="accessibility_service_screen_control_title" msgid="324795030658109870">"ସ୍କ୍ରିନକୁ ଦେଖନ୍ତୁ ଏବଂ ନିୟନ୍ତ୍ରଣ କରନ୍ତୁ"</string>
- <string name="accessibility_service_screen_control_description" msgid="8431940515157990426">"ଏହା ସ୍କ୍ରିନ୍ର ସମସ୍ତ ବିଷୟବସ୍ତୁ ପଢ଼ିପାରେ ଏବଂ ଅନ୍ୟ ଆପ୍ସରେ ବିଷୟବସ୍ତୁ ପ୍ରଦର୍ଶନ କରିପାରେ।"</string>
- <string name="accessibility_service_action_perform_title" msgid="1449360056585337833">"ଦେଖନ୍ତୁ ଏବଂ କାର୍ଯ୍ୟ ସମ୍ପାଦନ କରନ୍ତୁ"</string>
- <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"ଏହା କୌଣସି ଆପ କିମ୍ବା ହାର୍ଡୱେର ସେନ୍ସର ସହ ଆପଣଙ୍କର ଇଣ୍ଟେରାକ୍ସନକୁ ଟ୍ରାକ କରିପାରେ ଏବଂ ଆପଣଙ୍କ ତରଫରୁ ଆପ୍ସ ସହ ଇଣ୍ଟରାକ୍ଟ କରିପାରେ।"</string>
<string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"ଅନୁମତି"</string>
<string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"ଅଗ୍ରାହ୍ୟ"</string>
<string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"ବନ୍ଦ କରନ୍ତୁ"</string>
@@ -3368,10 +3355,8 @@
<string name="zen_mode_automation_settings_title" msgid="3709324184191870926">"ସିଡୁଲ୍"</string>
<string name="zen_mode_delete_automatic_rules" msgid="5020468289267191765">"ସିଡୁଲ୍ ଡିଲିଟ୍ କରନ୍ତୁ"</string>
<string name="zen_mode_schedule_delete" msgid="5383420576833765114">"ଡିଲିଟ୍ କରନ୍ତୁ"</string>
- <!-- no translation found for zen_mode_menu_rename_mode (4681802125016390837) -->
- <skip />
- <!-- no translation found for zen_mode_menu_delete_mode (5380084696402157428) -->
- <skip />
+ <string name="zen_mode_menu_rename_mode" msgid="4681802125016390837">"ରିନେମ କରନ୍ତୁ"</string>
+ <string name="zen_mode_menu_delete_mode" msgid="5380084696402157428">"ଡିଲିଟ କରନ୍ତୁ"</string>
<string name="zen_mode_delete_mode_confirmation" msgid="7594340592051947392">"\"<xliff:g id="MODE">%1$s</xliff:g>\" ମୋଡକୁ ଡିଲିଟ କରିବେ?"</string>
<string name="zen_mode_rule_name_edit" msgid="1053237022416700481">"ଏଡିଟ"</string>
<string name="zen_mode_automation_settings_page_title" msgid="6217433860514433311">"ସିଡୁଲ୍"</string>
@@ -3395,8 +3380,7 @@
<string name="zen_mode_visual_signals_settings_subtitle" msgid="7433077540895876672">"ଭିଜୁଆଲ୍ ସଙ୍କେତ ଅନୁମତି ଦିଅନ୍ତୁ"</string>
<string name="mode_interruption_filter_title" msgid="3343846700214702347">"ଫୋକସ କରନ୍ତୁ"</string>
<string name="mode_device_effects_title" msgid="5857008332618433744">"ଅତିରିକ୍ତ ପଦକ୍ଷେପ"</string>
- <!-- no translation found for modes_sound_summary_off (6972648204528227879) -->
- <skip />
+ <string name="modes_sound_summary_off" msgid="6972648204528227879">"{count,plural, =0{ବନ୍ଦ ଅଛି}=1{ବନ୍ଦ ଅଛି / 1 ମୋଡ ସ୍ୱତଃ ଚାଲୁ ହୋଇପାରିବ}other{ବନ୍ଦ ଅଛି / # ମୋଡ ସ୍ୱତଃ ଚାଲୁ ହୋଇପାରିବ}}"</string>
<string name="mode_display_settings_title" msgid="8132825978346535472">"ଡିସପ୍ଲେ ସେଟିଂସ"</string>
<string name="mode_display_options_section" msgid="5151597748243866532">"ଡିସପ୍ଲେ ବିକଳ୍ପଗୁଡ଼ିକ"</string>
<string name="mode_grayscale_title" msgid="6027553257331235461">"ଗ୍ରେସ୍କେଲ"</string>
@@ -3659,9 +3643,9 @@
<string name="notif_listener_not_migrated" msgid="6265206376374278226">"ଏହି ଆପ ଉନ୍ନତ ସେଟିଂସକୁ ସମର୍ଥନ କରେ ନାହିଁ"</string>
<string name="notif_listener_more_settings" msgid="1348409392307208921">"ଅଧିକ ସେଟିଂସ"</string>
<string name="notif_listener_more_settings_desc" msgid="7995492074281663658">"ଏହି ଆପରେ ଅଧିକ ସେଟିଂସ ଉପଲବ୍ଧ ଅଛି"</string>
- <string name="notification_polite_title" msgid="4737150709382859870">"ଆଡେପ୍ଟିଭ ବିଜ୍ଞପ୍ତିଗୁଡ଼ିକ"</string>
- <string name="notification_polite_main_control_title" msgid="7267191551379543859">"ଆଡେପ୍ଟିଭ ବିଜ୍ଞପ୍ତିଗୁଡ଼ିକୁ ବ୍ୟବହାର କରନ୍ତୁ"</string>
- <string name="notification_polite_description" msgid="7749280535620291610">"ଆପଣ ଅଳ୍ପ ସମୟ ମଧ୍ୟରେ ଅନେକ ବିଜ୍ଞପ୍ତି ପାଇଲେ, ଆପଣଙ୍କ ଫୋନ ଭଲ୍ୟୁମକୁ କମ କରିବ ଏବଂ ସ୍କ୍ରିନରେ ପପ-ଅପକୁ ଦୁଇ ମିନିଟ ପର୍ଯ୍ୟନ୍ତ ହ୍ରାସ କରିବ। କଲ, ଆଲାରାମ ଏବଂ ପ୍ରାଥମିକତା ବାର୍ତ୍ତାଳାପଗୁଡ଼ିକ ପାଇଁ ଏବେ ବି ଭାଇବ୍ରେଟ କରାଯିବ, ଏକ ସାଉଣ୍ଡ କରାଯିବ କିମ୍ବା ସ୍କ୍ରିନରେ ଦେଖାଯିବ ଏବଂ ଆପଣ ସ୍କ୍ରିନର ଶୀର୍ଷରୁ ତଳକୁ ଟାଣିଲେ ସମସ୍ତ ବିଜ୍ଞପ୍ତି ଖୋଜିବା ସହଜ ଅଟେ।"</string>
+ <string name="notification_polite_title" msgid="6121016426991791557">"ବିଜ୍ଞପ୍ତି କୁଲଡାଉନ"</string>
+ <string name="notification_polite_main_control_title" msgid="5812529809151927149">"ବିଜ୍ଞପ୍ତି କୁଲଡାଉନ ବ୍ୟବହାର କରନ୍ତୁ"</string>
+ <string name="notification_polite_description" msgid="5497748284893832854">"ଆପଣ ଅଳ୍ପ ସମୟ ମଧ୍ୟରେ ଅନେକ ବିଜ୍ଞପ୍ତି ପାଇଲେ, ଆପଣଙ୍କ ଡିଭାଇସ ଏହାର ଭଲ୍ୟୁମକୁ କମ କରି 2 ମିନିଟ ପର୍ଯ୍ୟନ୍ତ ଆଲର୍ଟକୁ ହ୍ରାସ କରିବ। କଲ, ଆଲାରାମ ଏବଂ ପ୍ରାଥମିକତା ଥିବା ବାର୍ତ୍ତାଳାପଗୁଡ଼ିକ ପ୍ରଭାବିତ ହୁଏ ନାହିଁ। \n\nକୁଲଡାଉନ ସମୟରେ ପାଇଥିବା ବିଜ୍ଞପ୍ତିଗୁଡ଼ିକ ସ୍କ୍ରିନର ଉପରୁ ତଳକୁ ଟାଣି ପାଇପାରିବେ।"</string>
<string name="notification_polite_work" msgid="8823596456640216391">"ୱାର୍କ ପ୍ରୋଫାଇଲରେ ଲାଗୁ କରନ୍ତୁ"</string>
<string name="notification_polite_work_summary" msgid="5014189280132951378">"ୱାର୍କ ପ୍ରୋଫାଇଲ ଆପ୍ସରେ ଲାଗୁ କରନ୍ତୁ"</string>
<string name="vr_listeners_title" msgid="4960357292472540964">"VR ସାହାଯ୍ୟକାରୀ ସେବାଗୁଡ଼ିକ"</string>
@@ -3818,7 +3802,9 @@
<string name="zen_mode_apps_priority_apps" msgid="7386196048313716076">"ଚୟନିତ ଆପ୍ସ"</string>
<string name="zen_mode_apps_none_apps" msgid="2493642312793604327">"କିଛି ନାହିଁ"</string>
<string name="zen_mode_apps_subtext" msgid="1764211974662012877">"{count,plural,offset:2 =0{କୌଣସି ଆପ୍ସ ବାଧା ସୃଷ୍ଟି କରିପାରିବ ନାହିଁ}=1{{app_1} ବାଧା ସୃଷ୍ଟି କରିପାରିବ}=2{{app_1} ଏବଂ {app_2} ବାଧା ସୃଷ୍ଟି କରିପାରିବ}=3{{app_1}, {app_2} ଏବଂ {app_3} ବାଧା ସୃଷ୍ଟି କରିପାରିବ}other{{app_1}, {app_2} ଏବଂ # ଅଧିକ ଆପ୍ସ ବାଧା ସୃଷ୍ଟି କରିପାରିବ}}"</string>
+ <string name="zen_mode_apps_work_app" msgid="8528767938316361588">"<xliff:g id="APP_LABEL">%s</xliff:g> (ୱାର୍କ)"</string>
<string name="zen_mode_apps_calculating" msgid="5420121396943539286">"ଗଣନା କରାଯାଉଛି…"</string>
+ <string name="zen_mode_plus_n_items" msgid="6136713354369243421">"+<xliff:g id="NUMBER">%d</xliff:g>"</string>
<string name="zen_mode_bypassing_apps" msgid="625309443389126481">"ନିଷ୍କ୍ରିୟ କରିବାକୁ ଆପ୍ସକୁ ଅନୁମତି ଦିଅନ୍ତୁ"</string>
<string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"ବାଧା ସୃଷ୍ଟି କରିପାରୁଥିବା ଆପଗୁଡ଼ିକ"</string>
<string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"ଅଧିକ ଆପ୍ ଚୟନ କରନ୍ତୁ"</string>
@@ -3836,6 +3822,7 @@
<string name="zen_mode_sounds_none" msgid="6557474361948269420">"କିଛି ବି ବାଧା ସୃଷ୍ଟି କରିପାରିବ ନାହିଁ"</string>
<string name="zen_mode_people_none" msgid="4613147461974255046">"କେହି ବି ବାଧା ଉପୁଯାଇପାରିବେ ନାହିଁ"</string>
<string name="zen_mode_people_some" msgid="9101872681298810281">"କିଛି ଲୋକ ବାଧା ଦେଇପାରନ୍ତି"</string>
+ <string name="zen_mode_people_repeat_callers" msgid="4499084111069828761">"ରିପିଟ କଲର ବାଧା ସୃଷ୍ଟି କରିପାରେ"</string>
<string name="zen_mode_people_all" msgid="311036110283015205">"ସବୁ ଲୋକ ବାଧା ଉପୁଯାଇପାରିବେ"</string>
<string name="zen_mode_repeat_callers" msgid="2270356100287792138">"ବାରମ୍ୱାର ଫୋନ୍ କରୁଥିବା କଲର୍"</string>
<string name="zen_mode_repeat_callers_title" msgid="8016699240338264781">"ବାରମ୍ବାର କଲ କରୁଥିବା ବ୍ୟକ୍ତିଙ୍କ ପାଇଁ ଅନୁମତି ଦିଅନ୍ତୁ"</string>
@@ -3855,13 +3842,37 @@
<string name="zen_mode_summary_alarms_only_by_hour" msgid="7400910210950788163">"{count,plural, =1{{time} ପର୍ଯ୍ୟନ୍ତ କେବଳ ଏକ ଘଣ୍ଟା ପାଇଁ ଆଲାରାମରେ ପରିବର୍ତ୍ତନ କରନ୍ତୁ}other{{time} ପର୍ଯ୍ୟନ୍ତ କେବଳ # ଘଣ୍ଟା ପାଇଁ ଆଲାରାମରେ ପରିବର୍ତ୍ତନ କରନ୍ତୁ}}"</string>
<string name="zen_mode_summary_alarms_only_by_time" msgid="8140619669703968810">"<xliff:g id="FORMATTEDTIME">%1$s</xliff:g> ପର୍ଯ୍ୟନ୍ତ କେବଳ ଆଲାର୍ମଗୁଡିକ ପରିବର୍ତ୍ତନ କରନ୍ତୁ"</string>
<string name="zen_mode_summary_always" msgid="722093064250082317">"ସର୍ବଦା ବାଧାକୁ ବଦଳାନ୍ତୁ"</string>
- <!-- no translation found for zen_mode_rename_title (8146882272966214558) -->
+ <string name="zen_mode_rename_title" msgid="8146882272966214558">"ମୋଡ ଏଡିଟ କରନ୍ତୁ"</string>
+ <string name="zen_mode_new_custom_title" msgid="321750898430776191">"ମୋଡ ଯୋଗ କରନ୍ତୁ"</string>
+ <string name="zen_mode_new_custom_default_name" msgid="2778307946775085105">"କଷ୍ଟମ ମୋଡ"</string>
+ <string name="zen_mode_edit_name_hint" msgid="4584652062167540536">"ମୋଡର ନାମ"</string>
+ <string name="zen_mode_trigger_title_schedule_calendar" msgid="9206609438617550331">"କେଲେଣ୍ଡର ଇଭେଣ୍ଟଗୁଡ଼ିକ"</string>
+ <string name="zen_mode_trigger_title_bedtime" msgid="5086070900588489978">"ଶୋଇବା ସିଡୁଲ"</string>
+ <string name="zen_mode_trigger_title_driving" msgid="7890990983453164403">"ଡ୍ରାଇଭିଂ କରିବା ସମୟରେ"</string>
+ <string name="zen_mode_trigger_title_generic" msgid="601273385119550420">"ଆପ ସହ ଲିଙ୍କ କରାଯାଇଛି"</string>
+ <string name="zen_mode_trigger_summary_settings_in_app" msgid="4860667191183702601">"<xliff:g id="APP_NAME">%1$s</xliff:g>ରେ ସୂଚନା ଏବଂ ସେଟିଂସ"</string>
+ <string name="zen_mode_trigger_summary_managed_by_app" msgid="8631011868193102098">"<xliff:g id="APP_NAME">%1$s</xliff:g> ଦ୍ୱାରା ପରିଚାଳିତ"</string>
+ <string name="zen_mode_confirm_disable_title" msgid="1232297660775719796">"ମୋଡକୁ ଅକ୍ଷମ କରନ୍ତୁ"</string>
+ <string name="zen_mode_confirm_disable_message" msgid="7315541221665718491">"ଯଦି ଆପଣ ଏହି ଫିଚରକୁ ଅକ୍ଷମ କରନ୍ତି, ତେବେ ମୋଡ ଆଉ ଆଶାନୁରୂପେ କାମ କରିବ ନାହିଁ ଏବଂ ଏହାର ସେଟିଂସକୁ ଲୁଚାଯିବ।"</string>
+ <string name="zen_mode_action_disable" msgid="3552921561331044881">"ଅକ୍ଷମ କରନ୍ତୁ"</string>
+ <string name="zen_mode_confirm_enable_title" msgid="5683371335847448595">"ମୋଡକୁ ସକ୍ଷମ କରନ୍ତୁ"</string>
+ <string name="zen_mode_confirm_enable_message" msgid="7017879133260011419">"ଯଦି ଆପଣ ଏହି ଫିଚରକୁ ସକ୍ଷମ କରନ୍ତି, ତେବେ ମୋଡ ଏହାର ସିଡୁଲ ଅନୁସାରେ ସ୍ୱତଃ ସକ୍ରିୟ ହେବ।"</string>
+ <string name="zen_mode_action_enable" msgid="1161480633223176531">"ସକ୍ଷମ କରନ୍ତୁ"</string>
+ <!-- no translation found for zen_mode_blurb_schedule_time (8223898702097484009) -->
<skip />
- <!-- no translation found for zen_mode_new_custom_title (321750898430776191) -->
+ <!-- no translation found for zen_mode_blurb_schedule_calendar (382177907856065945) -->
<skip />
- <!-- no translation found for zen_mode_new_custom_default_name (2778307946775085105) -->
+ <!-- no translation found for zen_mode_blurb_bedtime (6155075956151013457) -->
<skip />
- <!-- no translation found for zen_mode_edit_name_hint (4584652062167540536) -->
+ <!-- no translation found for zen_mode_blurb_driving (1316054379000667305) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_immersive (5884004861848687869) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_theater (2999237960059524225) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_managed (5473921634985032149) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_generic (3041601339807075625) -->
<skip />
<string name="warning_button_text" msgid="1274234338874005639">"ଚେତାବନୀ"</string>
<string name="suggestion_button_close" msgid="6865170855573283759">"ବନ୍ଦ କରନ୍ତୁ"</string>
@@ -4850,9 +4861,8 @@
<string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"ବେଟେରୀ"</string>
<string name="settings_panel_title" msgid="346363079938069215">"ସେଟିଂସ ପ୍ୟାନେଲ"</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>
+ <!-- no translation found for enable_desktop_mode_on_secondary_display (2609567824593768780) -->
+ <skip />
<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>
@@ -5027,7 +5037,6 @@
<string name="default_active_sim_mobile_data" msgid="6798083892814045301">"ମୋବାଇଲ ଡାଟା"</string>
<string name="wifi_scan_notify_message" msgid="1331238142061476869">"ଡିଭାଇସ ଅନୁଭୂତିକୁ ଉନ୍ନତ କରିବା ପାଇଁ, ୱାଇ-ଫାଇ ବନ୍ଦ ଥିଲେ ମଧ୍ୟ ଆପ୍ସ ଏବଂ ସେବାଗୁଡ଼ିକ ଏବେ ବି ଯେ କୌଣସି ସମୟରେ ୱାଇ-ଫାଇ ନେଟୱାର୍କ ପାଇଁ ସ୍କାନ କରିପାରିବେ। ଉଦାହରଣ ସ୍ଵରୂପ, ଲୋକେସନ-ଆଧାରିତ ଫିଚର ଓ ସେବାଗୁଡ଼ିକୁ ଉନ୍ନତ କରିବା ପାଇଁ ଏହାକୁ ବ୍ୟବହାର କରାଯାଇପାରିବ। ଆପଣ ଏହାକୁ ୱାଇ-ଫାଇ ସ୍କାନିଂ ସେଟିଂସରେ ପରିବର୍ତ୍ତନ କରିପାରିବେ।"</string>
<string name="wifi_scan_change" msgid="8438320311511852918">"ପରିବର୍ତ୍ତନ କରନ୍ତୁ"</string>
- <string name="preference_summary_default_combination" msgid="4643585915107796253">"<xliff:g id="STATE">%1$s</xliff:g> / <xliff:g id="NETWORKMODE">%2$s</xliff:g>"</string>
<string name="mobile_data_connection_active" msgid="2422223108911581552">"ସଂଯୋଗ କରାଯାଇଛି"</string>
<string name="mobile_data_temp_connection_active" msgid="3430470299756236413">"ଅସ୍ଥାୟୀ ରୂପେ କନେକ୍ଟ କରାଯାଇଛି"</string>
<string name="mobile_data_temp_using" msgid="5211002380149434155">"ଅସ୍ଥାୟୀ ରୂପେ <xliff:g id="SUBNAME">%1$s</xliff:g>କୁ ବ୍ୟବହାର କରୁଛି"</string>
@@ -5173,9 +5182,11 @@
<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="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_enable_freeform_support" msgid="3697462756493543645">"ଫ୍ରିଫର୍ମ ୱିଣ୍ଡୋ ସପୋର୍ଟକୁ ସକ୍ଷମ କରିବା ପାଇଁ ଏକ ରିବୁଟ ଆବଶ୍ୟକ।"</string>
+ <!-- no translation found for reboot_dialog_override_desktop_mode (7480950772574354130) -->
+ <skip />
+ <!-- no translation found for reboot_dialog_enable_desktop_mode_on_secondary_display (1153621881052401924) -->
+ <skip />
<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>
@@ -5293,10 +5304,8 @@
<string name="show_captions_enabled" msgid="7089043007924626">"ଚାଲୁ ଅଛି"</string>
<string name="live_caption_disabled" msgid="3562035026547887366">"ବନ୍ଦ ଅଛି"</string>
<string name="live_caption_enabled" msgid="5269360946200718949">"ଚାଲୁ ଅଛି"</string>
- <!-- no translation found for audio_seek_bar_state_left_first (8814986910920838972) -->
- <skip />
- <!-- no translation found for audio_seek_bar_state_right_first (1999368979633398876) -->
- <skip />
+ <string name="audio_seek_bar_state_left_first" msgid="8814986910920838972">"ଅଡିଓ %1$d%% ବାମ, %2$d%% ଡାହାଣ"</string>
+ <string name="audio_seek_bar_state_right_first" msgid="1999368979633398876">"ଅଡିଓ %1$d%% ଡାହାଣ, %2$d%% ବାମ"</string>
<string name="about_phone_device_name_warning" msgid="3243226572404472381">"ଆପଣ ଇନଷ୍ଟଲ କରିଥିବା ଆପ୍ସକୁ ଆପଣଙ୍କ ଡିଭାଇସ ନାମ ଦେଖାଯାଇଥାଏ। ଯେତେବେଳେ ଆପଣ ବ୍ଲୁଟୁଥ ଡିଭାଇସଗୁଡ଼ିକ ସହ କନେକ୍ଟ କରନ୍ତି, ଏକ ୱାଇ-ଫାଇ ନେଟୱାର୍କ ସହ କନେକ୍ଟ କରନ୍ତି କିମ୍ବା ଏକ ୱାଇ-ଫାଇ ହଟସ୍ପଟ ସେଟ ଅପ କରନ୍ତି, ସେତେବେଳେ ଏହା ଅନ୍ୟ ଲୋକମାନଙ୍କୁ ମଧ୍ୟ ଦେଖାଯାଇପାରେ।"</string>
<string name="grammatical_gender_title" msgid="8584242850477270828">"ବ୍ୟାକରଣଗତ ଲିଙ୍ଗ"</string>
<string name="grammatical_gender_dialog_title" msgid="8754048592099871587">"ବ୍ୟାକରଣଗତ ଲିଙ୍ଗ ଚୟନ କରନ୍ତୁ"</string>
@@ -5408,5 +5417,6 @@
<string name="audio_streams_main_page_password_dialog_join_button" msgid="2967747276379153408">"ଷ୍ଟ୍ରିମକୁ ଶୁଣନ୍ତୁ"</string>
<string name="audio_streams_main_page_qr_code_scanner_summary" msgid="5312980105735143360">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> ସହିତ ଶୁଣିବା ପାଇଁ ଏକ ଅଡିଓ ଷ୍ଟ୍ରିମ QR କୋଡକୁ ସ୍କାନ କରନ୍ତୁ"</string>
<string name="audio_streams_main_page_password_dialog_cannot_edit" msgid="9020898619297520153">"ସେୟାର କରୁଥିବା ସମୟରେ ପାସୱାର୍ଡକୁ ଏଡିଟ କରିପାରିବେ ନାହିଁ। ପାସୱାର୍ଡକୁ ପରିବର୍ତ୍ତନ କରିବା ପାଇଁ, ପ୍ରଥମେ ଅଡିଓ ସେୟାରିଂକୁ ବନ୍ଦ କରନ୍ତୁ।"</string>
+ <string name="audio_streams_qr_code_scanner_label" msgid="8799703301071378034">"QR କୋଡ ସ୍କାନର"</string>
<string name="homepage_search" msgid="6759334912284663559">"ସର୍ଚ୍ଚ ସେଟିଂସ"</string>
</resources>
diff --git a/res/values-pa/strings.xml b/res/values-pa/strings.xml
index 29f9c5e..c8db91c 100644
--- a/res/values-pa/strings.xml
+++ b/res/values-pa/strings.xml
@@ -41,6 +41,8 @@
<string name="radioInfo_data_suspended" msgid="2001254415431299603">"ਮੁਅੱਤਲ ਕੀਤਾ"</string>
<string name="radioInfo_unknown" msgid="2892562356748600367">"ਅਣਪਛਾਤਾ"</string>
<string name="preview_pager_content_description" msgid="3762247188224576303">"ਪੂਰਵ-ਝਲਕ"</string>
+ <!-- no translation found for qr_code_content_description (1852208464419291347) -->
+ <skip />
<string name="font_size_make_smaller_desc" msgid="4978038055549590140">"ਛੋਟਾ ਕਰੋ"</string>
<string name="font_size_make_larger_desc" msgid="5583046033381722247">"ਵੱਡਾ ਕਰੋ"</string>
<string name="stay_awake_on_fold_title" msgid="6590454679898134221">"ਹਮੇਸ਼ਾਂ"</string>
@@ -283,7 +285,7 @@
<string name="location_settings_summary_location_off" msgid="4797932754681162262">"ਬੰਦ"</string>
<string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{ਚਾਲੂ / # ਐਪ ਕੋਲ ਟਿਕਾਣੇ ਤੱਕ ਪਹੁੰਚ ਹੈ}one{ਚਾਲੂ / # ਐਪ ਕੋਲ ਟਿਕਾਣੇ ਤੱਕ ਪਹੁੰਚ ਹੈ}other{ਚਾਲੂ / # ਐਪਾਂ ਕੋਲ ਟਿਕਾਣੇ ਤੱਕ ਪਹੁੰਚ ਹੈ}}"</string>
<string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"ਲੋਡ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ…"</string>
- <string name="location_settings_footer_general" msgid="1040507068701188821">"ਨਜ਼ਦੀਕੀ ਡੀਵਾਈਸਾਂ ਦੀਆਂ ਇਜਾਜ਼ਤਾਂ ਵਾਲੀਆਂ ਐਪਾਂ ਕਨੈਕਟ ਕੀਤੇ ਡੀਵਾਈਸਾਂ ਦੀ ਸੰਬੰਧਿਤ ਸਥਿਤੀ ਨਿਰਧਾਰਿਤ ਕਰ ਸਕਦੀਆਂ ਹਨ।"</string>
+ <string name="location_settings_footer_general" msgid="3447585552176173502">"ਨਜ਼ਦੀਕੀ ਡੀਵਾਈਸਾਂ ਦੀਆਂ ਇਜਾਜ਼ਤਾਂ ਵਾਲੀਆਂ ਐਪਾਂ ਕਨੈਕਟ ਕੀਤੇ ਡੀਵਾਈਸਾਂ ਦੀ ਸੰਬੰਧਿਤ ਸਥਿਤੀ ਨਿਰਧਾਰਿਤ ਕਰ ਸਕਦੀਆਂ ਹਨ।"</string>
<string name="location_settings_footer_location_off" msgid="8568995909147566720">"ਐਪਾਂ ਅਤੇ ਸੇਵਾਵਾਂ ਲਈ ਟਿਕਾਣਾ ਪਹੁੰਚ ਬੰਦ ਹੈ। ਤੁਹਾਡੇ ਵੱਲੋਂ ਕਿਸੇ ਐਮਰਜੈਂਸੀ ਨੰਬਰ \'ਤੇ ਕਾਲ ਕਰਨ ਜਾਂ ਲਿਖਤ ਸੁਨੇਹਾ ਭੇਜਣ \'ਤੇ ਹਾਲੇ ਵੀ ਤੁਹਾਡੇ ਡੀਵਾਈਸ ਦੀ ਟਿਕਾਣਾ ਜਾਣਕਾਰੀ ਐਮਰਜੈਂਸੀ ਮਦਦਗਾਰਾਂ ਨੂੰ ਭੇਜੀ ਜਾ ਸਕਦੀ ਹੈ।"</string>
<string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"ਟਿਕਾਣਾ ਸੈਟਿੰਗਾਂ ਬਾਰੇ ਹੋਰ ਜਾਣੋ"</string>
<string name="location_settings_tooltip_text_for_chrome" msgid="5781821709250544575">"ਬਦਲਣ ਲਈ, ChromeOS ਸੈਟਿੰਗਾਂ > ਪਰਦੇਦਾਰੀ ਅਤੇ ਸੁਰੱਖਿਆ > ਪਰਦੇਦਾਰੀ ਕੰਟਰੋਲ > ਟਿਕਾਣਾ ਪਹੁੰਚ \'ਤੇ ਜਾਓ"</string>
@@ -850,7 +852,6 @@
<string name="nfc_reboot_dialog_title" msgid="2033983438635768169">"ਕੀ ਡੀਵਾਈਸ ਮੁੜ-ਸ਼ੁਰੂ ਕਰਨਾ ਹੈ?"</string>
<string name="nfc_reboot_dialog_message" msgid="4929353168157966992">"ਵੇਰਵੇ ਵਾਲੀ NFC ਲੌਗਿੰਗ ਨੂੰ ਸਿਰਫ਼ ਵਿਕਾਸ ਦੇ ਉਦੇਸ਼ਾਂ ਲਈ ਬਣਾਇਆ ਗਿਆ ਹੈ। ਬੱਗ ਰਿਪੋਰਟਾਂ ਵਿੱਚ ਵਧੀਕ NFC ਡਾਟਾ ਸ਼ਾਮਲ ਹੁੰਦਾ ਹੈ, ਜਿਨ੍ਹਾਂ ਵਿੱਚ ਪ੍ਰਾਈਵੇਟ ਜਾਣਕਾਰੀ ਸ਼ਾਮਲ ਹੋ ਸਕਦੀ ਹੈ। ਇਸ ਸੈਟਿੰਗ ਨੂੰ ਬਦਲਣ ਲਈ ਆਪਣਾ ਡੀਵਾਈਸ ਮੁੜ-ਸ਼ੁਰੂ ਕਰੋ।"</string>
<string name="nfc_reboot_dialog_confirm" msgid="4769763632008584567">"ਮੁੜ-ਸ਼ੁਰੂ ਕਰੋ"</string>
- <string name="keywords_external_display" msgid="4181375057920134909">"ਪ੍ਰਤਿਬਿੰਬਿਤ ਕਰਨਾ, ਬਾਹਰੀ ਡਿਸਪਲੇ, ਕਨੈਕਟ ਕੀਤਾ ਡਿਸਪਲੇ, USB ਡਿਸਪਲੇ, ਰੈਜ਼ੋਲਿਊਸ਼ਨ, ਘੁਮਾਅ"</string>
<string name="external_display_on" msgid="2560104443500154333">"ਚਾਲੂ"</string>
<string name="external_display_off" msgid="5634413756025351374">"ਬੰਦ ਹੈ"</string>
<string name="external_display_settings_title" msgid="6256884595821605779">"ਬਾਹਰੀ ਡਿਸਪਲੇ"</string>
@@ -1918,6 +1919,8 @@
<string name="slow_keys_summary" msgid="1784371292745423292">"ਕਿਸੇ ਕੁੰਜੀ ਨੂੰ ਕਿਰਿਆਸ਼ੀਲ ਕਰਨ ਵਿੱਚ ਲੱਗਣ ਵਾਲੇ ਸਮੇਂ ਨੂੰ <xliff:g id="SLOW_KEYS_THRESHOLD">%1$d</xliff:g> ਮਿਲੀਸਕਿੰਟਾਂ ਤੱਕ ਵਿਵਸਥਿਤ ਕਰਦਾ ਹੈ"</string>
<string name="sticky_keys" msgid="7317317044898161747">"ਸਥਿਰ ਕੁੰਜੀਆਂ"</string>
<string name="sticky_keys_summary" msgid="1844953803625480623">"ਸ਼ਾਰਟਕੱਟਾਂ ਲਈ ਕੁੰਜੀਆਂ ਨੂੰ ਇਕੱਠੇ ਦਬਾਈ ਰੱਖਣ ਦੀ ਬਜਾਏ ਇੱਕ ਵਾਰ ਵਿੱਚ ਇੱਕ ਕੁੰਜੀ ਦਬਾਓ"</string>
+ <string name="mouse_keys" msgid="6237254627808525540">"ਮਾਊਸ ਕੁੰਜੀਆਂ"</string>
+ <string name="mouse_keys_summary" msgid="2396247040177734245">"ਮਾਊਸ ਨੂੰ ਕੰਟਰੋਲ ਕਰਨ ਲਈ ਭੌਤਿਕ ਕੀ-ਬੋਰਡ ਵਰਤੋ।"</string>
<string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"ਕੀ-ਬੋਰਡ ਸ਼ਾਰਟਕੱਟ"</string>
<string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"ਸ਼ਾਰਟਕੱਟਾਂ ਦੀ ਸੂਚੀ ਦਿਖਾਓ"</string>
<string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"ਕਾਰਜ ਪ੍ਰੋਫਾਈਲ ਕੀ-ਬੋਰਡ ਅਤੇ ਟੂਲ"</string>
@@ -1942,14 +1945,10 @@
<string name="pointer_fill_style_yellow_button" msgid="5025969961559379024">"ਪੁਆਇੰਟਰ ਭਰਨ ਦਾ ਸਟਾਈਲ ਪੀਲੇ ਵਿੱਚ ਬਦਲੋ"</string>
<string name="pointer_fill_style_pink_button" msgid="4106218142489635673">"ਪੁਆਇੰਟਰ ਭਰਨ ਦਾ ਸਟਾਈਲ ਗੁਲਾਬੀ \'ਚ ਬਦਲੋ"</string>
<string name="pointer_fill_style_blue_button" msgid="5594958078854032785">"ਪੁਆਇੰਟਰ ਭਰਨ ਦਾ ਸਟਾਈਲ ਨੀਲੇ ਵਿੱਚ ਬਦਲੋ"</string>
- <!-- no translation found for pointer_stroke_style (1886986630216050665) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_white (673686194443825383) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_black (4655806167067437330) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_none (8953927511729800247) -->
- <skip />
+ <string name="pointer_stroke_style" msgid="1886986630216050665">"ਪੁਆਇੰਟਰ ਸਟ੍ਰੋਕ ਸਟਾਈਲ"</string>
+ <string name="pointer_stroke_style_name_white" msgid="673686194443825383">"ਸਫ਼ੈਦ"</string>
+ <string name="pointer_stroke_style_name_black" msgid="4655806167067437330">"ਕਾਲਾ"</string>
+ <string name="pointer_stroke_style_name_none" msgid="8953927511729800247">"ਕੋਈ ਨਹੀਂ"</string>
<string name="trackpad_touch_gesture" msgid="8641725062131922497">"ਟੱਚਪੈਡ ਇਸ਼ਾਰਿਆਂ ਬਾਰੇ ਜਾਣੋ"</string>
<string name="keywords_touchpad" msgid="8159846254066666032">"ਟਰੈਕਪੈਡ, ਟਰੈਕ ਪੈਡ, ਮਾਊਸ, ਕਰਸਰ, ਸਕ੍ਰੋਲ ਕਰੋ, ਸਵਾਈਪ ਕਰੋ, ਸੱਜਾ ਕਲਿੱਕ, ਕਲਿੱਕ ਕਰੋ, ਪੁਆਇੰਟ"</string>
<string name="keywords_trackpad_bottom_right_tap" msgid="1285062446073929305">"ਸੱਜਾ ਕਲਿੱਕ, ਟੈਪ ਕਰੋ"</string>
@@ -2179,8 +2178,6 @@
<string name="accessibility_shortcut_edit_dialog_summary_floating_button" msgid="6266489864614886247">"ਫ਼ਲੋਟਿੰਗ ਬਟਨ \'ਤੇ ਟੈਪ ਕਰੋ"</string>
<string name="accessibility_shortcut_edit_dialog_title_software_by_gesture" msgid="4775049370625630546">"ਪਹੁੰਚਯੋਗਤਾ ਸੰਬੰਧੀ ਇਸ਼ਾਰਾ"</string>
<string name="accessibility_shortcut_edit_dialog_summary_software" msgid="8315934725362849788">"ਆਪਣੀ ਸਕ੍ਰੀਨ ਦੇ ਹੇਠਾਂ ਪਹੁੰਚਯੋਗਤਾ ਬਟਨ <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g> \'ਤੇ ਟੈਪ ਕਰੋ। ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਵਿਚਾਲੇ ਸਵਿੱਚ ਕਰਨ ਲਈ, ਪਹੁੰਚਯੋਗਤਾ ਬਟਨ \'ਤੇ ਸਪਰਸ਼ ਕਰ ਕੇ ਰੱਖੋ।"</string>
- <string name="accessibility_shortcut_edit_dialog_summary_software_gesture" msgid="8292555254353761635">"2 ਉਂਗਲਾਂ ਨਾਲ ਸਕ੍ਰੀਨ ਦੇ ਹੇਠਾਂ ਤੋਂ ਉੱਪਰ ਵੱਲ ਸਵਾਈਪ ਕਰੋ।\n\nਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਵਿਚਾਲੇ ਅਦਲਾ-ਬਦਲੀ ਕਰਨ ਲਈ, 2 ਉਂਗਲਾਂ ਨਾਲ ਉੱਪਰ ਵੱਲ ਸਵਾਈਪ ਕਰਕੇ ਦਬਾਈ ਰੱਖੋ।"</string>
- <string name="accessibility_shortcut_edit_dialog_summary_software_gesture_talkback" msgid="84483464524360845">"3 ਉਂਗਲਾਂ ਨਾਲ ਸਕ੍ਰੀਨ ਦੇ ਹੇਠਾਂ ਤੋਂ ਉੱਪਰ ਵੱਲ ਸਵਾਈਪ ਕਰੋ।\n\nਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਵਿਚਾਲੇ ਅਦਲਾ-ਬਦਲੀ ਕਰਨ ਲਈ, 3 ਉਂਗਲਾਂ ਨਾਲ ਉੱਪਰ ਵੱਲ ਸਵਾਈਪ ਕਰਕੇ ਦਬਾਈ ਰੱਖੋ।"</string>
<string name="accessibility_shortcut_edit_dialog_summary_gesture" msgid="2081123009255579884">"{count,plural, =1{ਆਪਣੀ ਸਕ੍ਰੀਨ ਦੇ ਹੇਠਾਂ ਤੋਂ ਉੱਪਰ ਵੱਲ ਸਵਾਈਪ ਕਰੋ। ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਵਿਚਾਲੇ ਸਵਿੱਚ ਕਰਨ ਲਈ, ਉੱਪਰ ਵੱਲ ਸਵਾਈਪ ਕਰਕੇ ਦਬਾਈ ਰੱਖੋ।}one{# ਉਂਗਲ ਨਾਲ ਆਪਣੀ ਸਕ੍ਰੀਨ ਦੇ ਹੇਠਾਂ ਤੋਂ ਉੱਪਰ ਵੱਲ ਸਵਾਈਪ ਕਰੋ। ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਵਿਚਾਲੇ ਸਵਿੱਚ ਕਰਨ ਲਈ, # ਉਂਗਲ ਨਾਲ ਉੱਪਰ ਵੱਲ ਸਵਾਈਪ ਕਰਕੇ ਦਬਾਈ ਰੱਖੋ।}other{# ਉਂਗਲਾਂ ਨਾਲ ਆਪਣੀ ਸਕ੍ਰੀਨ ਦੇ ਹੇਠਾਂ ਤੋਂ ਉੱਪਰ ਵੱਲ ਸਵਾਈਪ ਕਰੋ। ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਵਿਚਾਲੇ ਸਵਿੱਚ ਕਰਨ ਲਈ, # ਉਂਗਲਾਂ ਨਾਲ ਉੱਪਰ ਵੱਲ ਸਵਾਈਪ ਕਰਕੇ ਦਬਾਈ ਰੱਖੋ।}}"</string>
<string name="accessibility_shortcut_edit_dialog_summary_software_floating" msgid="4459254227203203324"><annotation id="link">"ਹੋਰ ਵਿਕਲਪ"</annotation></string>
<string name="footer_learn_more_content_description" msgid="8843798273152131341">"<xliff:g id="SERVICE">%1$s</xliff:g> ਬਾਰੇ ਹੋਰ ਜਾਣੋ"</string>
@@ -2191,16 +2188,12 @@
<string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="844089763968552142">"ਅਵਾਜ਼ ਕੁੰਜੀਆਂ"</string>
<string name="accessibility_shortcut_hardware_keyword" msgid="2483152542320987022">"ਅਵਾਜ਼ ਕੁੰਜੀਆਂ"</string>
<string name="accessibility_shortcut_edit_dialog_summary_hardware" msgid="2503134386397991634">"ਦੋਵੇਂ ਅਵਾਜ਼ ਕੁੰਜੀਆਂ ਨੂੰ ਦਬਾਈ ਰੱਖੋ"</string>
- <string name="accessibility_shortcut_edit_dialog_title_two_finger_double_tap" msgid="2271778556854020996">"ਸਕ੍ਰੀਨ \'ਤੇ ਦੋ-ਉਂਗਲਾਂ ਨਾਲ ਡਬਲ ਟੈਪ ਕਰੋ"</string>
<string name="accessibility_shortcut_edit_screen_title_two_finger_double_tap" msgid="8952595692906527694">"%1$d-ਉਂਗਲਾਂ ਨਾਲ ਡਬਲ ਟੈਪ ਕਰੋ"</string>
<string name="accessibility_shortcut_edit_screen_summary_two_finger_double_tap" msgid="385404127425496362">"%1$d ਉਂਗਲਾਂ ਨਾਲ ਸਕ੍ਰੀਨ \'ਤੇ ਦੋ ਵਾਰ ਤੇਜ਼ੀ ਨਾਲ ਟੈਪ ਕਰੋ"</string>
<string name="accessibility_shortcut_edit_screen_title_triple_tap" msgid="3314488747597058942">"ਤਿੰਨ ਵਾਰ ਟੈਪ ਕਰੋ"</string>
<string name="accessibility_shortcut_edit_screen_summary_triple_tap" msgid="4839204951599629871">"ਸਕ੍ਰੀਨ \'ਤੇ %1$d ਵਾਰ ਤੇਜ਼ੀ ਨਾਲ ਟੈਪ ਕਰੋ। ਇਸ ਨਾਲ ਤੁਹਾਡਾ ਡੀਵਾਈਸ ਹੌਲੀ ਹੋ ਸਕਦਾ ਹੈ।"</string>
<string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="6271718715836961167">"%1$d-ਉਂਗਲਾਂ ਨਾਲ ਡਬਲ ਟੈਪ ਕਰੋ"</string>
- <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"ਤੇਜ਼ੀ ਨਾਲ ਸਕ੍ਰੀਨ \'ਤੇ ਦੋ ਉਂਗਲਾਂ ਨਾਲ {0,number,integer} ਵਾਰ ਟੈਪ ਕਰੋ"</string>
- <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"ਸਕ੍ਰੀਨ \'ਤੇ ਟ੍ਰਿਪਲ ਟੈਪ ਕਰੋ"</string>
<string name="accessibility_shortcut_triple_tap_keyword" msgid="5359347130888464334">"ਤਿੰਨ ਵਾਰ ਟੈਪ ਕਰੋ"</string>
- <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"ਸਕ੍ਰੀਨ \'ਤੇ ਤੇਜ਼ੀ ਨਾਲ {0,number,integer} ਵਾਰ ਟੈਪ ਕਰੋ। ਇਹ ਸ਼ਾਰਟਕੱਟ ਸ਼ਾਇਦ ਤੁਹਾਡੇ ਡੀਵਾਈਸ ਨੂੰ ਹੌਲੀ ਕਰ ਦੇਵੇ"</string>
<string name="accessibility_shortcut_edit_dialog_title_advance" msgid="4567868630655591506">"ਅਡਵਾਂਸ"</string>
<string name="accessibility_screen_magnification_navbar_configuration_warning" msgid="266736851606791552">"ਪਹੁੰਚਯੋਗਤਾ ਬਟਨ <xliff:g id="SERVICE">%1$s</xliff:g> \'ਤੇ ਸੈੱਟ ਹੈ। ਵੱਡਦਰਸ਼ੀਕਰਨ ਦੀ ਵਰਤੋਂ ਕਰਨ ਲਈ, ਪਹੁੰਚਯੋਗਤਾ ਬਟਨ ਨੂੰ ਸਪੱਰਸ਼ ਕਰੋ ਅਤੇ ਦਬਾਈ ਰੱਖੋ, ਫਿਰ ਵੱਡਦਰਸ਼ੀਕਰਨ ਨੂੰ ਚੁਣੋ।"</string>
<string name="accessibility_screen_magnification_gesture_navigation_warning" msgid="991017769735632046">"ਪਹੁੰਚਯੋਗਤਾ ਸੰਕੇਤਾਂ ਨੂੰ <xliff:g id="SERVICE">%1$s</xliff:g> \'ਤੇ ਸੈੱਟ ਕੀਤਾ ਜਾਂਦਾ ਹੈ। ਵੱਡਦਰਸ਼ੀਕਰਨ ਨੂੰ ਵਰਤਣ ਲਈ, ਦੋ ਉਂਗਲਾਂ ਨਾਲ ਸਕ੍ਰੀਨ ਦੇ ਹੇਠਾਂ ਤੋਂ ਉੱਪਰ ਵੱਲ ਸਵਾਈਪ ਕਰਕੇ ਦਬਾਈ ਰੱਖੋ। ਫਿਰ ਵੱਡਦਰਸ਼ੀਕਰਨ ਚੁਣੋ।"</string>
@@ -2369,6 +2362,7 @@
<string name="daltonizer_mode_tritanomaly_title" msgid="2278786218762602022">"ਨੀਲਾ-ਪੀਲਾ"</string>
<string name="daltonizer_mode_grayscale_title" msgid="152005391387952588">"ਗ੍ਰੇਸਕੇਲ"</string>
<string name="daltonizer_saturation_title" msgid="2999486412114963068">"ਤੀਬਰਤਾ"</string>
+ <string name="daltonizer_saturation_unavailable_summary" msgid="8319753055567798775">"ਗ੍ਰੇਸਕੇਲ ਮੋਡ ਜਾਂ ਰੰਗ ਸੁਧਾਈ ਵਿਸ਼ੇਸ਼ਤਾ ਬੰਦ ਹੋਣ \'ਤੇ ਇਹ ਸੈਟਿੰਗ ਉਪਲਬਧ ਨਹੀਂ ਹੁੰਦੀ"</string>
<string name="daltonizer_mode_deuteranomaly_summary" msgid="2117727423019598455">"ਉਹ ਸਮੱਸਿਆ ਜਿਸ ਵਿੱਚ ਹਰਾ ਰੰਗ ਲਾਲ ਦਿਸਦਾ ਹੈ"</string>
<string name="daltonizer_mode_protanomaly_summary" msgid="4617032854982040748">"ਉਹ ਸਮੱਸਿਆ ਜਿਸ ਵਿੱਚ ਲਾਲ ਰੰਗ ਹਰਾ ਦਿਸਦਾ ਹੈ"</string>
<string name="daltonizer_mode_tritanomaly_summary" msgid="2428218320118180070">"ਰੰਗ ਅਸਪਸ਼ਟਤਾ"</string>
@@ -2418,15 +2412,8 @@
<string name="color_cyan" msgid="4341758639597035927">"ਹਰਾ ਨੀਲਾ"</string>
<string name="color_yellow" msgid="5957551912912679058">"ਪੀਲਾ"</string>
<string name="color_magenta" msgid="8943538189219528423">"ਮਜੈਂਟਾ"</string>
- <string name="enable_service_title" msgid="7231533866953706788">"ਕੀ <xliff:g id="SERVICE">%1$s</xliff:g> ਨੂੰ ਤੁਹਾਡੇ ਡੀਵਾਈਸ ਦਾ ਪੂਰਾ ਕੰਟਰੋਲ ਦੇਣਾ ਹੈ?"</string>
<string name="capabilities_list_title" msgid="1225853611983394386">"<xliff:g id="SERVICE">%1$s</xliff:g> ਨੂੰ ਇਹ ਕਰਨ ਦੀ ਲੋੜ ਹੈ:"</string>
<string name="touch_filtered_warning" msgid="4225815157460318241">"ਕਿਉਂਕਿ ਇੱਕ ਐਪ ਇੱਕ ਇਜਾਜ਼ਤ ਬੇਨਤੀ ਨੂੰ ਅਸਪਸ਼ਟ ਬਣਾ ਰਿਹਾ ਹੈ, ਸੈਟਿੰਗਾਂ ਤੁਹਾਡੇ ਜਵਾਬ ਦੀ ਜਾਂਚ ਨਹੀਂ ਕਰ ਸਕਦੀਆਂ।"</string>
- <string name="accessibility_service_warning" msgid="6779187188736432618">"<xliff:g id="SERVICE">%1$s</xliff:g> ਇਸ ਡੀਵਾਈਸ ਦੇ ਪੂਰੇ ਕੰਟਰੋਲ ਲਈ ਬੇਨਤੀ ਕਰ ਰਹੀ ਹੈ। ਸੇਵਾ ਸਕ੍ਰੀਨ ਨੂੰ ਪੜ੍ਹ ਕੇ ਪਹੁੰਚਯੋਗਤਾ ਜ਼ਰੂਰਤਾਂ ਵਾਲੇ ਵਰਤੋਂਕਾਰਾਂ ਵਜੋਂ ਕੰਮ ਕਰ ਸਕਦੀ ਹੈ। ਜ਼ਿਆਦਾਤਰ ਐਪਾਂ ਲਈ ਕੰਟਰੋਲ ਦਾ ਇਹ ਪੱਧਰ ਢੁਕਵਾਂ ਨਹੀਂ ਹੈ।"</string>
- <string name="accessibility_service_warning_description" msgid="6573203795976134751">"ਪੂਰਾ ਕੰਟਰੋਲ ਉਨ੍ਹਾਂ ਐਪਾਂ ਲਈ ਢੁਕਵਾਂ ਹੈ ਜੋ ਪਹੁੰਚਯੋਗਤਾ ਸੰਬੰਧੀ ਲੋੜਾਂ ਵਿੱਚ ਤੁਹਾਡੀ ਮਦਦ ਕਰਦੀਆਂ ਹਨ, ਪਰ ਜ਼ਿਆਦਾਤਰ ਐਪਾਂ ਲਈ ਢੁਕਵਾਂ ਨਹੀਂ ਹੁੰਦਾ।"</string>
- <string name="accessibility_service_screen_control_title" msgid="324795030658109870">"ਸਕ੍ਰੀਨ ਨੂੰ ਦੇਖਣਾ ਅਤੇ ਕੰਟਰੋਲ ਕਰਨਾ"</string>
- <string name="accessibility_service_screen_control_description" msgid="8431940515157990426">"ਇਹ ਸਕ੍ਰੀਨ \'ਤੇ ਸਾਰੀ ਸਮੱਗਰੀ ਪੜ੍ਹ ਸਕਦੀ ਹੈ ਅਤੇ ਸਮੱਗਰੀ ਨੂੰ ਦੂਜੀਆਂ ਐਪਾਂ ਦੇ ਉੱਪਰ ਦਿਖਾ ਸਕਦੀ ਹੈ।"</string>
- <string name="accessibility_service_action_perform_title" msgid="1449360056585337833">"ਕਾਰਵਾਈਆਂ ਦੇਖਣਾ ਅਤੇ ਕਰਨਾ"</string>
- <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"ਇਹ ਕਿਸੇ ਐਪ ਜਾਂ ਹਾਰਡਵੇਅਰ ਸੈਂਸਰ ਦੇ ਨਾਲ ਤੁਹਾਡੀਆਂ ਅੰਤਰਕਿਰਿਆਵਾਂ ਨੂੰ ਟਰੈਕ ਕਰ ਸਕਦੀ ਹੈ ਅਤੇ ਤੁਹਾਡੀ ਤਰਫ਼ੋਂ ਐਪਾਂ ਦੇ ਨਾਲ ਅੰਤਰਕਿਰਿਆ ਕਰ ਸਕਦੀ ਹੈ।"</string>
<string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"ਕਰਨ ਦਿਓ"</string>
<string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"ਨਾ ਕਰਨ ਦਿਓ"</string>
<string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"ਬੰਦ ਕਰੋ"</string>
@@ -3368,10 +3355,8 @@
<string name="zen_mode_automation_settings_title" msgid="3709324184191870926">"ਸਮਾਂ-ਸੂਚੀਆਂ"</string>
<string name="zen_mode_delete_automatic_rules" msgid="5020468289267191765">"ਸਮਾਂ-ਸੂਚੀਆਂ ਮਿਟਾਓ"</string>
<string name="zen_mode_schedule_delete" msgid="5383420576833765114">"ਮਿਟਾਓ"</string>
- <!-- no translation found for zen_mode_menu_rename_mode (4681802125016390837) -->
- <skip />
- <!-- no translation found for zen_mode_menu_delete_mode (5380084696402157428) -->
- <skip />
+ <string name="zen_mode_menu_rename_mode" msgid="4681802125016390837">"ਨਾਮ ਬਦਲੋ"</string>
+ <string name="zen_mode_menu_delete_mode" msgid="5380084696402157428">"ਮਿਟਾਓ"</string>
<string name="zen_mode_delete_mode_confirmation" msgid="7594340592051947392">"ਕੀ \"<xliff:g id="MODE">%1$s</xliff:g>\" ਮੋਡ ਨੂੰ ਮਿਟਾਉਣਾ ਹੈ?"</string>
<string name="zen_mode_rule_name_edit" msgid="1053237022416700481">"ਸੰਪਾਦਨ ਕਰੋ"</string>
<string name="zen_mode_automation_settings_page_title" msgid="6217433860514433311">"ਸਮਾਂ-ਸੂਚੀਆਂ"</string>
@@ -3395,8 +3380,7 @@
<string name="zen_mode_visual_signals_settings_subtitle" msgid="7433077540895876672">"ਦ੍ਰਿਸ਼ਟੀਗਤ ਸਿਗਨਲ ਦਿਖਣ ਦਿਓ"</string>
<string name="mode_interruption_filter_title" msgid="3343846700214702347">"ਧਿਆਨ ਕੇਂਦਰਿਤ ਰੱਖੋ"</string>
<string name="mode_device_effects_title" msgid="5857008332618433744">"ਵਧੀਕ ਕਾਰਵਾਈਆਂ"</string>
- <!-- no translation found for modes_sound_summary_off (6972648204528227879) -->
- <skip />
+ <string name="modes_sound_summary_off" msgid="6972648204528227879">"{count,plural, =0{ਬੰਦ}=1{ਬੰਦ / 1 ਮੋਡ ਸਵੈਚਲਿਤ ਤੌਰ \'ਤੇ ਚਾਲੂ ਹੋ ਸਕਦਾ ਹੈ}other{ਬੰਦ / # ਮੋਡ ਸਵੈਚਲਿਤ ਤੌਰ \'ਤੇ ਚਾਲੂ ਹੋ ਸਕਦੇ ਹਨ}}"</string>
<string name="mode_display_settings_title" msgid="8132825978346535472">"ਡਿਸਪਲੇ ਸੈਟਿੰਗਾਂ"</string>
<string name="mode_display_options_section" msgid="5151597748243866532">"ਡਿਸਪਲੇ ਦੇ ਵਿਕਲਪ"</string>
<string name="mode_grayscale_title" msgid="6027553257331235461">"ਗ੍ਰੇਸਕੇਲ"</string>
@@ -3659,9 +3643,9 @@
<string name="notif_listener_not_migrated" msgid="6265206376374278226">"ਇਹ ਐਪ ਵਿਸਤ੍ਰਿਤ ਸੈਟਿੰਗਾਂ ਦਾ ਸਮਰਥਨ ਨਹੀਂ ਕਰਦੀ"</string>
<string name="notif_listener_more_settings" msgid="1348409392307208921">"ਹੋਰ ਸੈਟਿੰਗਾਂ"</string>
<string name="notif_listener_more_settings_desc" msgid="7995492074281663658">"ਇਸ ਐਪ ਵਿੱਚ ਹੋਰ ਸੈਟਿੰਗਾਂ ਉਪਲਬਧ ਹਨ"</string>
- <string name="notification_polite_title" msgid="4737150709382859870">"ਅਡੈਪਟਿਵ ਸੂਚਨਾਵਾਂ"</string>
- <string name="notification_polite_main_control_title" msgid="7267191551379543859">"ਅਡੈਪਟਿਵ ਸੂਚਨਾਵਾਂ ਦੀ ਵਰਤੋਂ ਕਰੋ"</string>
- <string name="notification_polite_description" msgid="7749280535620291610">"ਜੇ ਤੁਹਾਨੂੰ ਘੱਟ ਸਮੇਂ ਵਿੱਚ ਕਈ ਸੂਚਨਾਵਾਂ ਪ੍ਰਾਪਤ ਹੁੰਦੀਆਂ ਹਨ, ਤਾਂ ਤੁਹਾਡਾ ਫ਼ੋਨ ਦੋ ਮਿੰਟਾਂ ਤੱਕ ਅਵਾਜ਼ ਨੂੰ ਘਟਾ ਦੇਵੇਗਾ ਅਤੇ ਸਕ੍ਰੀਨ \'ਤੇ ਪੌਪ-ਅੱਪਾਂ ਨੂੰ ਛੋਟਾ ਕਰ ਦੇਵੇਗਾ। ਕਾਲਾਂ, ਅਲਾਰਮਾਂ ਅਤੇ ਤਰਜੀਹੀ ਗੱਲਾਂਬਾਤਾਂ ਸੰਬੰਧੀ ਸੂਚਨਾਵਾਂ ਹਾਲੇ ਵੀ ਥਰਥਰਾਹਟ ਕਰਨਗੀਆਂ, ਧੁਨੀ ਵਜਾਉਣਗੀਆਂ ਜਾਂ ਸਕ੍ਰੀਨ \'ਤੇ ਦਿਖਾਈ ਦੇਣਗੀਆਂ ਅਤੇ ਜਦੋਂ ਤੁਸੀਂ ਸਕ੍ਰੀਨ ਦੇ ਸਿਖਰ ਤੋਂ ਹੇਠਾਂ ਵੱਲ ਖਿੱਚੋਗੇ, ਤਾਂ ਸਾਰੀਆਂ ਸੂਚਨਾਵਾਂ ਆਸਾਨੀ ਨਾਲ ਮਿਲ ਜਾਣਗੀਆਂ।"</string>
+ <string name="notification_polite_title" msgid="6121016426991791557">"ਸੂਚਨਾ ਦੀ ਕੂਲਡਾਊਨ ਸੈਟਿੰਗ"</string>
+ <string name="notification_polite_main_control_title" msgid="5812529809151927149">"ਨੋਟੀਫ਼ਿਕੇਸ਼ਨ ਕੂਲਡਾਊਨ ਦੀ ਵਰਤੋਂ ਕਰੋ"</string>
+ <string name="notification_polite_description" msgid="5497748284893832854">"ਜੇ ਤੁਹਾਨੂੰ ਘੱਟ ਸਮੇਂ ਵਿੱਚ ਕਈ ਸੂਚਨਾਵਾਂ ਪ੍ਰਾਪਤ ਹੁੰਦੀਆਂ ਹਨ, ਤਾਂ ਤੁਹਾਡਾ ਡੀਵਾਈਸ 2 ਮਿੰਟਾਂ ਤੱਕ ਇਸਦੀ ਅਵਾਜ਼ ਨੂੰ ਘਟਾ ਦੇਵੇਗਾ ਅਤੇ ਅਲਰਟਾਂ ਨੂੰ ਛੋਟਾ ਕਰ ਦੇਵੇਗਾ। ਕਾਲਾਂ, ਅਲਾਰਮ ਅਤੇ ਤਰਜੀਹੀ ਗੱਲਾਂਬਾਤਾਂ ਪ੍ਰਭਾਵਿਤ ਨਹੀਂ ਹੁੰਦੀਆਂ। \n\nਕੂਲਡਾਊਨ ਦੌਰਾਨ ਪ੍ਰਾਪਤ ਹੋਈਆਂ ਸੂਚਨਾਵਾਂ ਸਕ੍ਰੀਨ ਦੇ ਸਿਖਰ ਤੋਂ ਹੇਠਾਂ ਵੱਲ ਖਿੱਚ ਕੇ ਲੱਭੀਆਂ ਜਾ ਸਕਦੀਆਂ ਹਨ।"</string>
<string name="notification_polite_work" msgid="8823596456640216391">"ਕਾਰਜ ਪ੍ਰੋਫਾਈਲਾਂ ਦੇ ਲਾਗੂ ਕਰੋ"</string>
<string name="notification_polite_work_summary" msgid="5014189280132951378">"ਕਾਰਜ ਪ੍ਰੋਫਾਈਲ ਐਪਾਂ \'ਤੇ ਲਾਗੂ ਕਰੋ"</string>
<string name="vr_listeners_title" msgid="4960357292472540964">"VR ਮਦਦਗਾਰ ਸੇਵਾਵਾਂ"</string>
@@ -3818,7 +3802,9 @@
<string name="zen_mode_apps_priority_apps" msgid="7386196048313716076">"ਚੁਣੀਆਂ ਗਈਆਂ ਐਪਾਂ"</string>
<string name="zen_mode_apps_none_apps" msgid="2493642312793604327">"ਕੋਈ ਨਹੀਂ"</string>
<string name="zen_mode_apps_subtext" msgid="1764211974662012877">"{count,plural,offset:2 =0{ਕੋਈ ਵੀ ਐਪ ਰੁਕਾਵਟ ਨਹੀਂ ਪਾ ਸਕਦੀ}=1{{app_1} ਕਰਕੇ ਰੁਕਾਵਟ ਪੈ ਸਕਦੀ ਹੈ}=2{{app_1} ਅਤੇ {app_2} ਕਰਕੇ ਰੁਕਾਵਟ ਪੈ ਸਕਦੀ ਹੈ}=3{{app_1}, {app_2} ਅਤੇ {app_3} ਕਰਕੇ ਰੁਕਾਵਟ ਪੈ ਸਕਦੀ ਹੈ}other{{app_1}, {app_2} ਅਤੇ # ਹੋਰ ਐਪਾਂ ਕਰਕੇ ਰੁਕਾਵਟ ਪੈ ਸਕਦੀ ਹੈ}}"</string>
+ <string name="zen_mode_apps_work_app" msgid="8528767938316361588">"<xliff:g id="APP_LABEL">%s</xliff:g> (ਕੰਮ ਦੇ ਲਈ)"</string>
<string name="zen_mode_apps_calculating" msgid="5420121396943539286">"ਗਣਨਾ ਕੀਤੀ ਜਾ ਰਹੀ ਹੈ…"</string>
+ <string name="zen_mode_plus_n_items" msgid="6136713354369243421">"+<xliff:g id="NUMBER">%d</xliff:g>"</string>
<string name="zen_mode_bypassing_apps" msgid="625309443389126481">"ਐਪਾਂ ਨੂੰ ਓਵਰਰਾਈਡ ਕਰਨ ਦਿਓ"</string>
<string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"ਐਪਾਂ ਜੋ ਵਿਘਨ ਪਾ ਸਕਦੀਆਂ ਹਨ"</string>
<string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"ਹੋਰ ਐਪਾਂ ਚੁਣੋ"</string>
@@ -3836,6 +3822,7 @@
<string name="zen_mode_sounds_none" msgid="6557474361948269420">"ਕੋਈ ਵੀ ਚੀਜ਼ ਵਿਘਨ ਨਹੀਂ ਪਾ ਸਕਦੀ"</string>
<string name="zen_mode_people_none" msgid="4613147461974255046">"ਕੋਈ ਵੀ ਵਿਘਨ ਨਹੀਂ ਪਾ ਸਕਦਾ"</string>
<string name="zen_mode_people_some" msgid="9101872681298810281">"ਕੁਝ ਲੋਕ ਵਿਘਨ ਪਾ ਸਕਦੇ ਹਨ"</string>
+ <string name="zen_mode_people_repeat_callers" msgid="4499084111069828761">"ਵਾਰ-ਵਾਰ ਕਾਲ ਕਰਨ ਵਾਲਿਆਂ ਕਰਕੇ ਰੁਕਾਵਟ ਪੈ ਸਕਦੀ ਹੈ"</string>
<string name="zen_mode_people_all" msgid="311036110283015205">"ਸਾਰੇ ਲੋਕ ਵਿਘਨ ਪਾ ਸਕਦੇ ਹਨ"</string>
<string name="zen_mode_repeat_callers" msgid="2270356100287792138">"ਦੁਬਾਰਾ ਕਾਲ ਕਰਨ ਵਾਲੇ"</string>
<string name="zen_mode_repeat_callers_title" msgid="8016699240338264781">"ਦੁਬਾਰਾ ਕਾਲ ਕਰਨ ਵਾਲਿਆਂ ਨੂੰ ਆਗਿਆ ਦਿਓ"</string>
@@ -3855,13 +3842,37 @@
<string name="zen_mode_summary_alarms_only_by_hour" msgid="7400910210950788163">"{count,plural, =1{{time} ਤੱਕ ਸਿਰਫ਼ ਇੱਕ ਘੰਟੇ ਲਈ ਅਲਾਰਮਾਂ ਵਿੱਚ ਬਦਲੋ}one{{time} ਤੱਕ ਸਿਰਫ਼ # ਘੰਟੇ ਲਈ ਅਲਾਰਮਾਂ ਵਿੱਚ ਬਦਲੋ}other{{time} ਤੱਕ ਸਿਰਫ਼ # ਘੰਟਿਆਂ ਲਈ ਅਲਾਰਮਾਂ ਵਿੱਚ ਬਦਲੋ}}"</string>
<string name="zen_mode_summary_alarms_only_by_time" msgid="8140619669703968810">"ਅਲਾਰਮ ਨੂੰ ਸਿਰਫ਼ <xliff:g id="FORMATTEDTIME">%1$s</xliff:g> ਤੱਕ ਬਦਲੋ"</string>
<string name="zen_mode_summary_always" msgid="722093064250082317">"ਹਮੇਸ਼ਾਂ ਵਿਘਨ ਪਾਓ ਵਿੱਚ ਬਦਲੋ"</string>
- <!-- no translation found for zen_mode_rename_title (8146882272966214558) -->
+ <string name="zen_mode_rename_title" msgid="8146882272966214558">"ਸੰਪਾਦਨ ਮੋਡ"</string>
+ <string name="zen_mode_new_custom_title" msgid="321750898430776191">"ਮੋਡ ਸ਼ਾਮਲ ਕਰੋ"</string>
+ <string name="zen_mode_new_custom_default_name" msgid="2778307946775085105">"ਵਿਉਂਤਬੱਧ ਮੋਡ"</string>
+ <string name="zen_mode_edit_name_hint" msgid="4584652062167540536">"ਮੋਡ ਦਾ ਨਾਮ"</string>
+ <string name="zen_mode_trigger_title_schedule_calendar" msgid="9206609438617550331">"ਕੈਲੰਡਰ ਇਵੈਂਟ"</string>
+ <string name="zen_mode_trigger_title_bedtime" msgid="5086070900588489978">"ਸੌਣ ਸੰਬੰਧੀ ਸਮਾਂ-ਸੂਚੀ"</string>
+ <string name="zen_mode_trigger_title_driving" msgid="7890990983453164403">"ਗੱਡੀ ਚਲਾਉਣ ਵੇਲੇ"</string>
+ <string name="zen_mode_trigger_title_generic" msgid="601273385119550420">"ਐਪ ਨਾਲ ਲਿੰਕ ਕੀਤੇ"</string>
+ <string name="zen_mode_trigger_summary_settings_in_app" msgid="4860667191183702601">"<xliff:g id="APP_NAME">%1$s</xliff:g> ਵਿੱਚ ਜਾਣਕਾਰੀ ਅਤੇ ਸੈਟਿੰਗਾਂ"</string>
+ <string name="zen_mode_trigger_summary_managed_by_app" msgid="8631011868193102098">"<xliff:g id="APP_NAME">%1$s</xliff:g> ਵੱਲੋਂ ਪ੍ਰਬੰਧਨ ਕੀਤਾ ਜਾਂਦਾ ਹੈ"</string>
+ <string name="zen_mode_confirm_disable_title" msgid="1232297660775719796">"ਮੋਡ ਬੰਦ ਕਰੋ"</string>
+ <string name="zen_mode_confirm_disable_message" msgid="7315541221665718491">"ਜੇ ਤੁਸੀਂ ਇਹ ਵਿਸ਼ੇਸ਼ਤਾ ਬੰਦ ਕਰਦੇ ਹੋ, ਤਾਂ ਮੋਡ ਇੱਛਾ ਮੁਤਾਬਕ ਕੰਮ ਨਹੀਂ ਕਰੇਗਾ ਅਤੇ ਇਸਦੀਆਂ ਸੈਟਿੰਗਾਂ ਨੂੰ ਲੁਕਾ ਦਿੱਤਾ ਜਾਵੇਗਾ।"</string>
+ <string name="zen_mode_action_disable" msgid="3552921561331044881">"ਬੰਦ ਕਰੋ"</string>
+ <string name="zen_mode_confirm_enable_title" msgid="5683371335847448595">"ਮੋਡ ਚਾਲੂ ਕਰੋ"</string>
+ <string name="zen_mode_confirm_enable_message" msgid="7017879133260011419">"ਜੇ ਤੁਸੀਂ ਇਸ ਵਿਸ਼ੇਸ਼ਤਾ ਨੂੰ ਚਾਲੂ ਕਰਦੇ ਹੋ, ਤਾਂ ਆਪਣੀ ਸਮਾਂ-ਸੂਚੀ ਮੁਤਾਬਕ ਮੋਡ ਸਵੈਚਲਿਤ ਤੌਰ \'ਤੇ ਕਿਰਿਆਸ਼ੀਲ ਹੋ ਜਾਵੇਗਾ।"</string>
+ <string name="zen_mode_action_enable" msgid="1161480633223176531">"ਚਾਲੂ ਕਰੋ"</string>
+ <!-- no translation found for zen_mode_blurb_schedule_time (8223898702097484009) -->
<skip />
- <!-- no translation found for zen_mode_new_custom_title (321750898430776191) -->
+ <!-- no translation found for zen_mode_blurb_schedule_calendar (382177907856065945) -->
<skip />
- <!-- no translation found for zen_mode_new_custom_default_name (2778307946775085105) -->
+ <!-- no translation found for zen_mode_blurb_bedtime (6155075956151013457) -->
<skip />
- <!-- no translation found for zen_mode_edit_name_hint (4584652062167540536) -->
+ <!-- no translation found for zen_mode_blurb_driving (1316054379000667305) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_immersive (5884004861848687869) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_theater (2999237960059524225) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_managed (5473921634985032149) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_generic (3041601339807075625) -->
<skip />
<string name="warning_button_text" msgid="1274234338874005639">"ਚਿਤਾਵਨੀ"</string>
<string name="suggestion_button_close" msgid="6865170855573283759">"ਬੰਦ ਕਰੋ"</string>
@@ -4849,9 +4860,8 @@
<string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"ਬੈਟਰੀ"</string>
<string name="settings_panel_title" msgid="346363079938069215">"ਸੈਟਿੰਗਾਂ ਪੈਨਲ"</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>
+ <!-- no translation found for enable_desktop_mode_on_secondary_display (2609567824593768780) -->
+ <skip />
<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>
@@ -5026,7 +5036,6 @@
<string name="default_active_sim_mobile_data" msgid="6798083892814045301">"ਮੋਬਾਈਲ ਡਾਟਾ"</string>
<string name="wifi_scan_notify_message" msgid="1331238142061476869">"ਡੀਵਾਈਸ ਦੇ ਅਨੁਭਵ ਨੂੰ ਬਿਹਤਰ ਬਣਾਉਣ ਲਈ, ਐਪਾਂ ਅਤੇ ਸੇਵਾਵਾਂ ਕਿਸੇ ਵੀ ਸਮੇਂ ਵਾਈ-ਫਾਈ ਨੈੱਟਵਰਕਾਂ ਲਈ ਸਕੈਨ ਕਰ ਸਕਦੀਆਂ ਹਨ, ਭਾਵੇਂ ਵਾਈ-ਫਾਈ ਬੰਦ ਹੀ ਕਿਉਂ ਨਾ ਹੋਵੇ। ਇਸ ਦੀ ਵਰਤੋਂ ਟਿਕਾਣਾ-ਆਧਾਰਿਤ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਅਤੇ ਸੇਵਾਵਾਂ ਵਰਗੀਆਂ ਚੀਜ਼ਾਂ ਨੂੰ ਬਿਹਤਰ ਬਣਾਉਣ ਲਈ ਕੀਤੀ ਜਾ ਸਕਦੀ ਹੈ। ਤੁਸੀਂ ਇਸ ਨੂੰ ਵਾਈ‑ਫਾਈ ਸਕੈਨਿੰਗ ਸੈਟਿੰਗਾਂ ਵਿੱਚ ਜਾ ਕੇ ਬਦਲ ਸਕਦੇ ਹੋ।"</string>
<string name="wifi_scan_change" msgid="8438320311511852918">"ਬਦਲੋ"</string>
- <string name="preference_summary_default_combination" msgid="4643585915107796253">"<xliff:g id="STATE">%1$s</xliff:g> / <xliff:g id="NETWORKMODE">%2$s</xliff:g>"</string>
<string name="mobile_data_connection_active" msgid="2422223108911581552">"ਕਨੈਕਟ ਹੈ"</string>
<string name="mobile_data_temp_connection_active" msgid="3430470299756236413">"ਕੁਝ ਸਮੇਂ ਲਈ ਕਨੈਕਟ ਹੈ"</string>
<string name="mobile_data_temp_using" msgid="5211002380149434155">"ਕੁਝ ਸਮੇਂ ਲਈ <xliff:g id="SUBNAME">%1$s</xliff:g> ਦੀ ਵਰਤੋਂ ਕੀਤੀ ਜਾ ਰਹੀ ਹੈ"</string>
@@ -5172,9 +5181,11 @@
<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="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_enable_freeform_support" msgid="3697462756493543645">"ਫ਼੍ਰੀਫ਼ਾਰਮ ਵਿੰਡੋ ਦੇ ਸਮਰਥਨ ਨੂੰ ਚਾਲੂ ਕਰਨ ਲਈ ਰੀਬੂਟ ਕਰਨ ਦੀ ਲੋੜ ਹੈ।"</string>
+ <!-- no translation found for reboot_dialog_override_desktop_mode (7480950772574354130) -->
+ <skip />
+ <!-- no translation found for reboot_dialog_enable_desktop_mode_on_secondary_display (1153621881052401924) -->
+ <skip />
<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>
@@ -5292,10 +5303,8 @@
<string name="show_captions_enabled" msgid="7089043007924626">"ਚਾਲੂ"</string>
<string name="live_caption_disabled" msgid="3562035026547887366">"ਬੰਦ"</string>
<string name="live_caption_enabled" msgid="5269360946200718949">"ਚਾਲੂ"</string>
- <!-- no translation found for audio_seek_bar_state_left_first (8814986910920838972) -->
- <skip />
- <!-- no translation found for audio_seek_bar_state_right_first (1999368979633398876) -->
- <skip />
+ <string name="audio_seek_bar_state_left_first" msgid="8814986910920838972">"ਆਡੀਓ %1$d%% ਖੱਬਾ, %2$d%% ਸੱਜਾ"</string>
+ <string name="audio_seek_bar_state_right_first" msgid="1999368979633398876">"ਆਡੀਓ %1$d%% ਸੱਜਾ, %2$d%% ਖੱਬਾ"</string>
<string name="about_phone_device_name_warning" msgid="3243226572404472381">"ਤੁਹਾਡੇ ਡੀਵਾਈਸ ਦਾ ਨਾਮ ਤੁਹਾਡੇ ਵੱਲੋਂ ਸਥਾਪਤ ਕੀਤੀਆਂ ਗਈਆਂ ਐਪਾਂ ਨੂੰ ਦਿਖਾਈ ਦਿੰਦਾ ਹੈ। ਤੁਹਾਡੇ ਵੱਲੋਂ ਬਲੂਟੁੱਥ ਡੀਵਾਈਸਾਂ ਨਾਲ ਕਨੈਕਟ ਕਰਨ, ਵਾਈ-ਫਾਈ ਨੈੱਟਵਰਕ ਨਾਲ ਕਨੈਕਟ ਕਰਨ ਜਾਂ ਵਾਈ-ਫਾਈ ਹੌਟਸਪੌਟ ਦਾ ਸੈੱਟਅੱਪ ਕਰਨ \'ਤੇ ਇਸਨੂੰ ਹੋਰ ਲੋਕਾਂ ਵੱਲੋਂ ਵੀ ਦੇਖਿਆ ਜਾ ਸਕਦਾ ਹੈ।"</string>
<string name="grammatical_gender_title" msgid="8584242850477270828">"ਵਿਆਕਰਨਿਕ ਲਿੰਗ"</string>
<string name="grammatical_gender_dialog_title" msgid="8754048592099871587">"ਵਿਆਕਰਨ ਸੰਬੰਧੀ ਲਿੰਗ ਚੁਣੋ"</string>
@@ -5407,5 +5416,6 @@
<string name="audio_streams_main_page_password_dialog_join_button" msgid="2967747276379153408">"ਸਟ੍ਰੀਮ ਸੁਣੋ"</string>
<string name="audio_streams_main_page_qr_code_scanner_summary" msgid="5312980105735143360">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> ਨਾਲ ਸੁਣਨ ਲਈ ਆਡੀਓ ਸਟ੍ਰੀਮ ਦਾ QR ਕੋਡ ਸਕੈਨ ਕਰੋ"</string>
<string name="audio_streams_main_page_password_dialog_cannot_edit" msgid="9020898619297520153">"ਸਾਂਝਾਕਰਨ ਦੌਰਾਨ ਪਾਸਵਰਡ ਦਾ ਸੰਪਾਦਨ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਦਾ। ਪਾਸਵਰਡ ਬਦਲਣ ਲਈ, ਪਹਿਲਾਂ ਆਡੀਓ ਸਾਂਝਾਕਰਨ ਨੂੰ ਬੰਦ ਕਰੋ।"</string>
+ <string name="audio_streams_qr_code_scanner_label" msgid="8799703301071378034">"QR ਕੋਡ ਸਕੈਨਰ"</string>
<string name="homepage_search" msgid="6759334912284663559">"ਖੋਜ ਸੈਟਿੰਗਾਂ"</string>
</resources>
diff --git a/res/values-pl/strings.xml b/res/values-pl/strings.xml
index 37a61d0..0a34130 100644
--- a/res/values-pl/strings.xml
+++ b/res/values-pl/strings.xml
@@ -41,6 +41,8 @@
<string name="radioInfo_data_suspended" msgid="2001254415431299603">"Zawieszony"</string>
<string name="radioInfo_unknown" msgid="2892562356748600367">"Nieznane"</string>
<string name="preview_pager_content_description" msgid="3762247188224576303">"Podgląd"</string>
+ <!-- no translation found for qr_code_content_description (1852208464419291347) -->
+ <skip />
<string name="font_size_make_smaller_desc" msgid="4978038055549590140">"Pomniejsz"</string>
<string name="font_size_make_larger_desc" msgid="5583046033381722247">"Powiększ"</string>
<string name="stay_awake_on_fold_title" msgid="6590454679898134221">"Zawsze"</string>
@@ -283,7 +285,7 @@
<string name="location_settings_summary_location_off" msgid="4797932754681162262">"Wyłączono"</string>
<string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{Włączona / # aplikacja ma dostęp do lokalizacji}few{Włączona / # aplikacje mają dostęp do lokalizacji}many{Włączona / # aplikacji ma dostęp do lokalizacji}other{Włączona / # aplikacji ma dostęp do lokalizacji}}"</string>
<string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"Wczytuję…"</string>
- <string name="location_settings_footer_general" msgid="1040507068701188821">"Aplikacje z uprawnieniami dostępu do urządzeń w pobliżu mogą określać położenie połączonych urządzeń względem siebie."</string>
+ <string name="location_settings_footer_general" msgid="3447585552176173502">"Aplikacje z uprawnieniami dostępu do urządzeń w pobliżu mogą określać położenie połączonych urządzeń względem siebie."</string>
<string name="location_settings_footer_location_off" msgid="8568995909147566720">"Dostęp aplikacji i usług do lokalizacji jest wyłączony. Informacje o lokalizacji urządzenia mogą jednak zostać przesłane do ratowników, gdy zadzwonisz lub wyślesz SMS-a na numer alarmowy."</string>
<string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Więcej informacji o ustawieniach lokalizacji"</string>
<string name="location_settings_tooltip_text_for_chrome" msgid="5781821709250544575">"Aby to zmienić, otwórz Ustawienia ChromeOS > Prywatność i bezpieczeństwo > Ustawienia prywatności > Dostęp do lokalizacji"</string>
@@ -850,7 +852,6 @@
<string name="nfc_reboot_dialog_title" msgid="2033983438635768169">"Uruchomić urządzenie ponownie?"</string>
<string name="nfc_reboot_dialog_message" msgid="4929353168157966992">"Szczegółowe logowanie NFC jest przeznaczone tylko dla programistów. Dodatkowe dane NFC są dołączane do raportów o błędach i mogą zawierać informacje prywatne. Uruchom urządzenie ponownie, aby zmienić to ustawienie."</string>
<string name="nfc_reboot_dialog_confirm" msgid="4769763632008584567">"Uruchom ponownie"</string>
- <string name="keywords_external_display" msgid="4181375057920134909">"odbicie lustrzane, wyświetlacz zewnętrzny, podłączony, USB, rozdzielczość, obrót"</string>
<string name="external_display_on" msgid="2560104443500154333">"Włączony"</string>
<string name="external_display_off" msgid="5634413756025351374">"Wyłączony"</string>
<string name="external_display_settings_title" msgid="6256884595821605779">"Wyświetlacz zewnętrzny"</string>
@@ -1918,6 +1919,8 @@
<string name="slow_keys_summary" msgid="1784371292745423292">"Czas wymagany do aktywacji naciśnięcia klawisza zmienia się na <xliff:g id="SLOW_KEYS_THRESHOLD">%1$d</xliff:g> ms"</string>
<string name="sticky_keys" msgid="7317317044898161747">"Klawisze trwałe"</string>
<string name="sticky_keys_summary" msgid="1844953803625480623">"Naciśnij 1 klawisz, aby zyskać dostęp do skrótów, zamiast przytrzymywać kilka jednocześnie"</string>
+ <string name="mouse_keys" msgid="6237254627808525540">"Klawisze sterowania myszą"</string>
+ <string name="mouse_keys_summary" msgid="2396247040177734245">"Używaj fizycznej klawiatury do sterowania myszą."</string>
<string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"Skróty klawiszowe"</string>
<string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"Lista skrótów"</string>
<string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"Klawiatura i narzędzia w profilu służbowym"</string>
@@ -2175,8 +2178,6 @@
<string name="accessibility_shortcut_edit_dialog_summary_floating_button" msgid="6266489864614886247">"Kliknij pływający przycisk"</string>
<string name="accessibility_shortcut_edit_dialog_title_software_by_gesture" msgid="4775049370625630546">"Gest ułatwień dostępu"</string>
<string name="accessibility_shortcut_edit_dialog_summary_software" msgid="8315934725362849788">"Kliknij przycisk ułatwień dostępu <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g> na dole ekranu. Aby przełączać funkcje, naciśnij i przytrzymaj przycisk ułatwień dostępu."</string>
- <string name="accessibility_shortcut_edit_dialog_summary_software_gesture" msgid="8292555254353761635">"Przesuń dwoma palcami z dołu ekranu w górę.\n\nAby przełączać funkcje, przesuń 2 palcami w górę i przytrzymaj."</string>
- <string name="accessibility_shortcut_edit_dialog_summary_software_gesture_talkback" msgid="84483464524360845">"Przesuń 3 palcami z dołu ekranu w górę.\n\nAby przełączyć funkcje, przesuń 3 palcami w górę i przytrzymaj."</string>
<string name="accessibility_shortcut_edit_dialog_summary_gesture" msgid="2081123009255579884">"{count,plural, =1{Przesuń palcem z dołu ekranu w górę. Aby przełączać funkcje, przesuń w górę i przytrzymaj.}few{Przesuń # palcami z dołu ekranu w górę. Aby przełączać funkcje, przesuń # palcami w górę i przytrzymaj.}many{Przesuń # palcami z dołu ekranu w górę. Aby przełączać funkcje, przesuń # palcami w górę i przytrzymaj.}other{Przesuń # palca z dołu ekranu w górę. Aby przełączać funkcje, przesuń # palca w górę i przytrzymaj.}}"</string>
<string name="accessibility_shortcut_edit_dialog_summary_software_floating" msgid="4459254227203203324"><annotation id="link">"Więcej opcji"</annotation></string>
<string name="footer_learn_more_content_description" msgid="8843798273152131341">"Więcej informacji: <xliff:g id="SERVICE">%1$s</xliff:g>"</string>
@@ -2187,16 +2188,12 @@
<string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="844089763968552142">"Przyciski głośności"</string>
<string name="accessibility_shortcut_hardware_keyword" msgid="2483152542320987022">"przyciski głośności"</string>
<string name="accessibility_shortcut_edit_dialog_summary_hardware" msgid="2503134386397991634">"Naciśnij i przytrzymaj oba przyciski głośności"</string>
- <string name="accessibility_shortcut_edit_dialog_title_two_finger_double_tap" msgid="2271778556854020996">"Kliknij dwukrotnie ekran dwoma palcami"</string>
<string name="accessibility_shortcut_edit_screen_title_two_finger_double_tap" msgid="8952595692906527694">"Dwukrotnie kliknij %1$d palcami"</string>
<string name="accessibility_shortcut_edit_screen_summary_two_finger_double_tap" msgid="385404127425496362">"Szybko dwukrotnie kliknij ekran %1$d palcami"</string>
<string name="accessibility_shortcut_edit_screen_title_triple_tap" msgid="3314488747597058942">"Kliknij trzykrotnie"</string>
<string name="accessibility_shortcut_edit_screen_summary_triple_tap" msgid="4839204951599629871">"Szybko %1$d-krotnie kliknij ekran – może to spowolnić Twoje urządzenie"</string>
<string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="6271718715836961167">"Dwukrotnie kliknij %1$d palcami"</string>
- <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"Szybko kliknij ekran {0,number,integer} razy dwoma palcami"</string>
- <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"Kliknij ekran trzykrotnie"</string>
<string name="accessibility_shortcut_triple_tap_keyword" msgid="5359347130888464334">"kliknij trzykrotnie"</string>
- <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"Szybko kliknij ekran {0,number,integer} razy. Ten skrót może spowolnić urządzenie."</string>
<string name="accessibility_shortcut_edit_dialog_title_advance" msgid="4567868630655591506">"Zaawansowane"</string>
<string name="accessibility_screen_magnification_navbar_configuration_warning" msgid="266736851606791552">"Przycisk ułatwień dostępu włącza: <xliff:g id="SERVICE">%1$s</xliff:g>. Aby użyć powiększenia, naciśnij i przytrzymaj przycisk ułatwień dostępu, a następnie wybierz powiększenie."</string>
<string name="accessibility_screen_magnification_gesture_navigation_warning" msgid="991017769735632046">"Gest ułatwień dostępu jest ustawiony na: <xliff:g id="SERVICE">%1$s</xliff:g>. Aby użyć powiększenia, przesuń dwoma palcami w górę od dołu ekranu i przytrzymaj. Potem wybierz powiększenie."</string>
@@ -2365,6 +2362,7 @@
<string name="daltonizer_mode_tritanomaly_title" msgid="2278786218762602022">"Niebieski–żółty"</string>
<string name="daltonizer_mode_grayscale_title" msgid="152005391387952588">"Tryb szarości"</string>
<string name="daltonizer_saturation_title" msgid="2999486412114963068">"Intensywność"</string>
+ <string name="daltonizer_saturation_unavailable_summary" msgid="8319753055567798775">"Opcja niedostępna w trybie szarości ani przy wyłączonej korekcji kolorów"</string>
<string name="daltonizer_mode_deuteranomaly_summary" msgid="2117727423019598455">"Słaby zielony, deuteranomalia"</string>
<string name="daltonizer_mode_protanomaly_summary" msgid="4617032854982040748">"Słaby czerwony, protanomalia"</string>
<string name="daltonizer_mode_tritanomaly_summary" msgid="2428218320118180070">"Tritanomalia"</string>
@@ -2414,15 +2412,8 @@
<string name="color_cyan" msgid="4341758639597035927">"Cyjan"</string>
<string name="color_yellow" msgid="5957551912912679058">"Żółty"</string>
<string name="color_magenta" msgid="8943538189219528423">"Amarantowy"</string>
- <string name="enable_service_title" msgid="7231533866953706788">"Pozwolić usłudze <xliff:g id="SERVICE">%1$s</xliff:g> na pełną kontrolę nad urządzeniem?"</string>
<string name="capabilities_list_title" msgid="1225853611983394386">"Wymagania <xliff:g id="SERVICE">%1$s</xliff:g>:"</string>
<string name="touch_filtered_warning" msgid="4225815157460318241">"Aplikacja Ustawienia nie może zweryfikować Twojej odpowiedzi, ponieważ inna aplikacja zasłania prośbę o udzielenie uprawnień."</string>
- <string name="accessibility_service_warning" msgid="6779187188736432618">"Usługa <xliff:g id="SERVICE">%1$s</xliff:g> prosi o pełną kontrolę nad urządzeniem. Ta usługa może odczytywać zawartość ekranu i wykonywać działania w imieniu użytkownika, który potrzebuje ułatwień dostępu. Taki poziom kontroli nie jest odpowiedni w przypadku większości aplikacji."</string>
- <string name="accessibility_service_warning_description" msgid="6573203795976134751">"Pełna kontrola jest odpowiednia dla aplikacji, które ułatwiają Ci dostęp, ale nie należy jej przyznawać wszystkim aplikacjom."</string>
- <string name="accessibility_service_screen_control_title" msgid="324795030658109870">"Wyświetlaj i kontroluj ekran"</string>
- <string name="accessibility_service_screen_control_description" msgid="8431940515157990426">"Może odczytywać całą zawartość ekranu i wyświetlać treść nad innymi aplikacjami."</string>
- <string name="accessibility_service_action_perform_title" msgid="1449360056585337833">"Wyświetlaj i wykonuj działania"</string>
- <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"Może śledzić Twoje interakcje z aplikacjami lub czujnikiem sprzętowym, a także obsługiwać aplikacje za Ciebie."</string>
<string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Zezwól"</string>
<string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Odmów"</string>
<string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Wyłącz"</string>
@@ -3652,9 +3643,9 @@
<string name="notif_listener_not_migrated" msgid="6265206376374278226">"Ta aplikacja nie obsługuje ustawień zaawansowanych"</string>
<string name="notif_listener_more_settings" msgid="1348409392307208921">"Więcej ustawień"</string>
<string name="notif_listener_more_settings_desc" msgid="7995492074281663658">"Więcej ustawień znajdziesz w tej aplikacji"</string>
- <string name="notification_polite_title" msgid="4737150709382859870">"Powiadomienia adaptacyjne"</string>
- <string name="notification_polite_main_control_title" msgid="7267191551379543859">"Używaj powiadomień adaptacyjnych"</string>
- <string name="notification_polite_description" msgid="7749280535620291610">"Gdy w krótkim czasie otrzymasz wiele powiadomień, telefon zmniejszy głośność i ograniczy liczbę wyskakujących okienek na ekranie przez maksymalnie 2 minuty. Połączenia, alarmy i rozmowy priorytetowe nadal będą sygnalizowane wibracjami, dźwiękowo lub wyświetlą się na ekranie, a wszystkie powiadomienia będzie można łatwo znaleźć, przesuwając palcem z góry ekranu w dół."</string>
+ <string name="notification_polite_title" msgid="6121016426991791557">"Wyciszanie powiadomień"</string>
+ <string name="notification_polite_main_control_title" msgid="5812529809151927149">"Używaj wyciszenia powiadomień"</string>
+ <string name="notification_polite_description" msgid="5497748284893832854">"Gdy w krótkim czasie otrzymasz wiele powiadomień, urządzenie zmniejszy głośność i ograniczy liczbę alertów przez maksymalnie 2 minuty. Nie wpłynie to na połączenia, alarmy ani rozmowy priorytetowe. \n\nPowiadomienia otrzymane podczas okresu wyciszenia można zobaczyć po przesunięciu palcem z góry ekranu w dół."</string>
<string name="notification_polite_work" msgid="8823596456640216391">"Zastosuj do profili służbowych"</string>
<string name="notification_polite_work_summary" msgid="5014189280132951378">"Zastosuj w aplikacjach profilu służbowego"</string>
<string name="vr_listeners_title" msgid="4960357292472540964">"Usługi pomocnicze rzeczywistości wirtualnej"</string>
@@ -3811,7 +3802,9 @@
<string name="zen_mode_apps_priority_apps" msgid="7386196048313716076">"Wybrane aplikacje"</string>
<string name="zen_mode_apps_none_apps" msgid="2493642312793604327">"Brak"</string>
<string name="zen_mode_apps_subtext" msgid="1764211974662012877">"{count,plural,offset:2 =0{Żadna aplikacja nie może ignorować trybu Nie przeszkadzać}=1{Aplikacja {app_1} może ignorować tryb Nie przeszkadzać}=2{Aplikacje {app_1} i {app_2} mogą ignorować tryb Nie przeszkadzać}=3{Aplikacje {app_1}, {app_2} i {app_3} mogą ignorować tryb Nie przeszkadzać}few{Aplikacje {app_1}, {app_2} i jeszcze # inne mogą ignorować tryb Nie przeszkadzać}many{Aplikacje {app_1}, {app_2} i jeszcze # innych mogą ignorować tryb Nie przeszkadzać}other{Aplikacje {app_1}, {app_2} i jeszcze inne (#) mogą ignorować tryb Nie przeszkadzać}}"</string>
+ <string name="zen_mode_apps_work_app" msgid="8528767938316361588">"<xliff:g id="APP_LABEL">%s</xliff:g> (służbowa)"</string>
<string name="zen_mode_apps_calculating" msgid="5420121396943539286">"Obliczam…"</string>
+ <string name="zen_mode_plus_n_items" msgid="6136713354369243421">"+<xliff:g id="NUMBER">%d</xliff:g>"</string>
<string name="zen_mode_bypassing_apps" msgid="625309443389126481">"Zezwól na zastępowanie przez aplikacje"</string>
<string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"Aplikacje, które mogą ignorować tryb Nie przeszkadzać"</string>
<string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"Wybierz więcej aplikacji"</string>
@@ -3829,6 +3822,7 @@
<string name="zen_mode_sounds_none" msgid="6557474361948269420">"Nic nie może ignorować trybu Nie przeszkadzać"</string>
<string name="zen_mode_people_none" msgid="4613147461974255046">"Nikt nie może ignorować trybu Nie przeszkadzać"</string>
<string name="zen_mode_people_some" msgid="9101872681298810281">"Niektóre osoby mogą ignorować tryb Nie przeszkadzać"</string>
+ <string name="zen_mode_people_repeat_callers" msgid="4499084111069828761">"Powtórnie dzwoniący będą sygnalizowani"</string>
<string name="zen_mode_people_all" msgid="311036110283015205">"Wszyscy mogą ignorować tryb Nie przeszkadzać"</string>
<string name="zen_mode_repeat_callers" msgid="2270356100287792138">"Dzwoniący powtórnie"</string>
<string name="zen_mode_repeat_callers_title" msgid="8016699240338264781">"Zezwalaj na połączenia od dzwoniących powtórnie"</string>
@@ -3852,6 +3846,34 @@
<string name="zen_mode_new_custom_title" msgid="321750898430776191">"Dodaj tryb"</string>
<string name="zen_mode_new_custom_default_name" msgid="2778307946775085105">"Tryb niestandardowy"</string>
<string name="zen_mode_edit_name_hint" msgid="4584652062167540536">"Nazwa trybu"</string>
+ <string name="zen_mode_trigger_title_schedule_calendar" msgid="9206609438617550331">"Wydarzenia w kalendarzu"</string>
+ <string name="zen_mode_trigger_title_bedtime" msgid="5086070900588489978">"Harmonogram snu"</string>
+ <string name="zen_mode_trigger_title_driving" msgid="7890990983453164403">"Podczas jazdy"</string>
+ <string name="zen_mode_trigger_title_generic" msgid="601273385119550420">"Powiązany z aplikacją"</string>
+ <string name="zen_mode_trigger_summary_settings_in_app" msgid="4860667191183702601">"Informacje i ustawienia w aplikacji <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+ <string name="zen_mode_trigger_summary_managed_by_app" msgid="8631011868193102098">"Zarządzane przez aplikację <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+ <string name="zen_mode_confirm_disable_title" msgid="1232297660775719796">"Wyłącz tryb"</string>
+ <string name="zen_mode_confirm_disable_message" msgid="7315541221665718491">"Jeśli wyłączysz tę funkcję, tryb nie będzie już działać prawidłowo a jego ustawienia zostaną ukryte."</string>
+ <string name="zen_mode_action_disable" msgid="3552921561331044881">"Wyłącz"</string>
+ <string name="zen_mode_confirm_enable_title" msgid="5683371335847448595">"Włącz tryb"</string>
+ <string name="zen_mode_confirm_enable_message" msgid="7017879133260011419">"Jeśli włączysz tę funkcję, tryb będzie aktywować się automatycznie na podstawie harmonogramu."</string>
+ <string name="zen_mode_action_enable" msgid="1161480633223176531">"Włącz"</string>
+ <!-- no translation found for zen_mode_blurb_schedule_time (8223898702097484009) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_schedule_calendar (382177907856065945) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_bedtime (6155075956151013457) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_driving (1316054379000667305) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_immersive (5884004861848687869) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_theater (2999237960059524225) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_managed (5473921634985032149) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_generic (3041601339807075625) -->
+ <skip />
<string name="warning_button_text" msgid="1274234338874005639">"Ostrzeżenie"</string>
<string name="suggestion_button_close" msgid="6865170855573283759">"Zamknij"</string>
<string name="device_feedback" msgid="5351614458411688608">"Prześlij opinię o tym urządzeniu"</string>
@@ -4838,9 +4860,8 @@
<string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"Bateria"</string>
<string name="settings_panel_title" msgid="346363079938069215">"Panel ustawień"</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>
+ <!-- no translation found for enable_desktop_mode_on_secondary_display (2609567824593768780) -->
+ <skip />
<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>
@@ -5017,7 +5038,6 @@
<string name="default_active_sim_mobile_data" msgid="6798083892814045301">"mobilna transmisja danych"</string>
<string name="wifi_scan_notify_message" msgid="1331238142061476869">"Aby zwiększyć komfort korzystania z urządzenia, aplikacje i usługi mogą wyszukiwać sieci Wi-Fi w dowolnym momencie, nawet gdy Wi-Fi jest wyłączone. Może to np. pomóc usprawnić działanie funkcji i usług opartych na lokalizacji. Możesz zmienić tę opcję w ustawieniach skanowania Wi-Fi."</string>
<string name="wifi_scan_change" msgid="8438320311511852918">"Zmień"</string>
- <string name="preference_summary_default_combination" msgid="4643585915107796253">"<xliff:g id="STATE">%1$s</xliff:g> / <xliff:g id="NETWORKMODE">%2$s</xliff:g>"</string>
<string name="mobile_data_connection_active" msgid="2422223108911581552">"Połączono"</string>
<string name="mobile_data_temp_connection_active" msgid="3430470299756236413">"Tymczasowe połączenie"</string>
<string name="mobile_data_temp_using" msgid="5211002380149434155">"Tymczasowo z wykorzystaniem usługi <xliff:g id="SUBNAME">%1$s</xliff:g>"</string>
@@ -5163,9 +5183,11 @@
<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="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_enable_freeform_support" msgid="3697462756493543645">"Włączenie obsługi okien o dowolnym rozmiarze wymaga ponownego uruchomienia."</string>
+ <!-- no translation found for reboot_dialog_override_desktop_mode (7480950772574354130) -->
+ <skip />
+ <!-- no translation found for reboot_dialog_enable_desktop_mode_on_secondary_display (1153621881052401924) -->
+ <skip />
<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>
@@ -5283,10 +5305,8 @@
<string name="show_captions_enabled" msgid="7089043007924626">"Włączone"</string>
<string name="live_caption_disabled" msgid="3562035026547887366">"Wyłączono"</string>
<string name="live_caption_enabled" msgid="5269360946200718949">"Włączono"</string>
- <!-- no translation found for audio_seek_bar_state_left_first (8814986910920838972) -->
- <skip />
- <!-- no translation found for audio_seek_bar_state_right_first (1999368979633398876) -->
- <skip />
+ <string name="audio_seek_bar_state_left_first" msgid="8814986910920838972">"Dźwięk %1$d%% lewa strona, %2$d%% prawa strona"</string>
+ <string name="audio_seek_bar_state_right_first" msgid="1999368979633398876">"Dźwięk %1$d%% prawa strona, %2$d%% lewa strona"</string>
<string name="about_phone_device_name_warning" msgid="3243226572404472381">"Nazwa urządzenia jest widoczna dla zainstalowanych przez Ciebie aplikacji. Mogą ją też zobaczyć inne osoby, gdy łączysz się z urządzeniami przez Bluetooth, łączysz się z siecią Wi-Fi lub konfigurujesz hotspot Wi-Fi."</string>
<string name="grammatical_gender_title" msgid="8584242850477270828">"Rodzaj gramatyczny"</string>
<string name="grammatical_gender_dialog_title" msgid="8754048592099871587">"Wybierz rodzaj gramatyczny"</string>
@@ -5398,5 +5418,6 @@
<string name="audio_streams_main_page_password_dialog_join_button" msgid="2967747276379153408">"Posłuchaj strumienia"</string>
<string name="audio_streams_main_page_qr_code_scanner_summary" msgid="5312980105735143360">"Zeskanuj kod QR strumienia audio, aby słuchać na urządzeniu <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
<string name="audio_streams_main_page_password_dialog_cannot_edit" msgid="9020898619297520153">"Podczas udostępniania nie można edytować hasła. Aby je zmienić, najpierw wyłącz udostępnianie dźwięku."</string>
+ <string name="audio_streams_qr_code_scanner_label" msgid="8799703301071378034">"Skaner kodów QR"</string>
<string name="homepage_search" msgid="6759334912284663559">"Ustawienia wyszukiwania"</string>
</resources>
diff --git a/res/values-pt-rBR/strings.xml b/res/values-pt-rBR/strings.xml
index 5abc6ad..3744d47 100644
--- a/res/values-pt-rBR/strings.xml
+++ b/res/values-pt-rBR/strings.xml
@@ -41,6 +41,8 @@
<string name="radioInfo_data_suspended" msgid="2001254415431299603">"Suspenso"</string>
<string name="radioInfo_unknown" msgid="2892562356748600367">"Desconhecido"</string>
<string name="preview_pager_content_description" msgid="3762247188224576303">"Pré-visualização"</string>
+ <!-- no translation found for qr_code_content_description (1852208464419291347) -->
+ <skip />
<string name="font_size_make_smaller_desc" msgid="4978038055549590140">"Tornar menor"</string>
<string name="font_size_make_larger_desc" msgid="5583046033381722247">"Tornar maior"</string>
<string name="stay_awake_on_fold_title" msgid="6590454679898134221">"Sempre"</string>
@@ -283,7 +285,7 @@
<string name="location_settings_summary_location_off" msgid="4797932754681162262">"Configuração desativada"</string>
<string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{Ativada / # app tem acesso à localização}one{Ativada / # app tem acesso à localização}other{Ativada / # apps têm acesso à localização}}"</string>
<string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"Carregando…"</string>
- <string name="location_settings_footer_general" msgid="1040507068701188821">"Apps com permissão para encontrar dispositivos por perto podem determinar a posição relativa dos dispositivos conectados."</string>
+ <string name="location_settings_footer_general" msgid="3447585552176173502">"Apps com permissão para encontrar dispositivos próximos podem determinar a posição relativa dos dispositivos conectados."</string>
<string name="location_settings_footer_location_off" msgid="8568995909147566720">"O acesso à localização está desativado para apps e serviços. A localização do dispositivo ainda poderá ser enviada a socorristas quando você ligar ou enviar uma mensagem de texto para um número de emergência."</string>
<string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Saiba mais sobre as configurações de localização"</string>
<string name="location_settings_tooltip_text_for_chrome" msgid="5781821709250544575">"Para mudar, acesse \"Configurações do ChromeOS > Privacidade e segurança > Controles de privacidade > Acesso ao local\""</string>
@@ -850,7 +852,6 @@
<string name="nfc_reboot_dialog_title" msgid="2033983438635768169">"Reiniciar o dispositivo?"</string>
<string name="nfc_reboot_dialog_message" msgid="4929353168157966992">"O registro detalhado de NFC é destinado apenas a fins de desenvolvimento. Dados NFC extras estão incluídos em relatórios de bugs, que podem conter informações particulares. Reinicie o dispositivo para mudar essa configuração."</string>
<string name="nfc_reboot_dialog_confirm" msgid="4769763632008584567">"Reiniciar"</string>
- <string name="keywords_external_display" msgid="4181375057920134909">"espelhar, tela externa, tela conectada, tela usb, resolução, rotação"</string>
<string name="external_display_on" msgid="2560104443500154333">"Ligada"</string>
<string name="external_display_off" msgid="5634413756025351374">"Desligada"</string>
<string name="external_display_settings_title" msgid="6256884595821605779">"Tela externa"</string>
@@ -1918,6 +1919,8 @@
<string name="slow_keys_summary" msgid="1784371292745423292">"Ajusta o tempo que leva para um pressionamento de tecla ser ativado para <xliff:g id="SLOW_KEYS_THRESHOLD">%1$d</xliff:g> ms"</string>
<string name="sticky_keys" msgid="7317317044898161747">"Teclas de aderência"</string>
<string name="sticky_keys_summary" msgid="1844953803625480623">"Pressione uma tecla por vez para usar atalhos em vez de manter as teclas pressionadas juntas"</string>
+ <string name="mouse_keys" msgid="6237254627808525540">"Teclas do mouse"</string>
+ <string name="mouse_keys_summary" msgid="2396247040177734245">"Use o teclado físico para controlar o mouse."</string>
<string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"Atalhos do teclado"</string>
<string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"Mostrar lista de atalhos"</string>
<string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"Teclados e ferramentas de perfil de trabalho"</string>
@@ -1942,14 +1945,10 @@
<string name="pointer_fill_style_yellow_button" msgid="5025969961559379024">"Mudar preenchimento para amarelo"</string>
<string name="pointer_fill_style_pink_button" msgid="4106218142489635673">"Mudar preenchimento para rosa"</string>
<string name="pointer_fill_style_blue_button" msgid="5594958078854032785">"Mudar preenchimento para azul"</string>
- <!-- no translation found for pointer_stroke_style (1886986630216050665) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_white (673686194443825383) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_black (4655806167067437330) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_none (8953927511729800247) -->
- <skip />
+ <string name="pointer_stroke_style" msgid="1886986630216050665">"Estilo de traço do ponteiro"</string>
+ <string name="pointer_stroke_style_name_white" msgid="673686194443825383">"Branco"</string>
+ <string name="pointer_stroke_style_name_black" msgid="4655806167067437330">"Preto"</string>
+ <string name="pointer_stroke_style_name_none" msgid="8953927511729800247">"Nenhum"</string>
<string name="trackpad_touch_gesture" msgid="8641725062131922497">"Aprender gestos do touchpad"</string>
<string name="keywords_touchpad" msgid="8159846254066666032">"trackpad, track pad, mouse, cursor, rolar, deslizar, clicar com o botão direito do mouse, clicar, ponteiro"</string>
<string name="keywords_trackpad_bottom_right_tap" msgid="1285062446073929305">"clicar com o botão direito do mouse, tocar"</string>
@@ -2179,8 +2178,6 @@
<string name="accessibility_shortcut_edit_dialog_summary_floating_button" msgid="6266489864614886247">"Tocar no botão flutuante"</string>
<string name="accessibility_shortcut_edit_dialog_title_software_by_gesture" msgid="4775049370625630546">"Gesto de acessibilidade"</string>
<string name="accessibility_shortcut_edit_dialog_summary_software" msgid="8315934725362849788">"Toque no botão de acessibilidade <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g> na parte de baixo da tela. Para trocar de recurso, mantenha o botão de acessibilidade pressionado."</string>
- <string name="accessibility_shortcut_edit_dialog_summary_software_gesture" msgid="8292555254353761635">"Deslize de baixo para cima na tela com dois dedos.\n\nPara alternar entre recursos, deslize de baixo para cima na tela com dois dedos, sem soltar."</string>
- <string name="accessibility_shortcut_edit_dialog_summary_software_gesture_talkback" msgid="84483464524360845">"Deslize de baixo para cima na tela com três dedos.\n\nPara alternar entre recursos, deslize de baixo para cima na tela com três dedos, sem soltar."</string>
<string name="accessibility_shortcut_edit_dialog_summary_gesture" msgid="2081123009255579884">"{count,plural, =1{Deslize de baixo para cima na tela. Para trocar de recurso, deslize de baixo para cima e mantenha a tela pressionada.}one{Deslize com # dedo de baixo para cima na tela. Para trocar de recurso, deslize de baixo para cima com # dedo e mantenha a tela pressionada.}other{Deslize com # dedos de baixo para cima na tela. Para trocar de recurso, deslize de baixo para cima com # dedos e mantenha a tela pressionada.}}"</string>
<string name="accessibility_shortcut_edit_dialog_summary_software_floating" msgid="4459254227203203324"><annotation id="link">"Mais opções"</annotation></string>
<string name="footer_learn_more_content_description" msgid="8843798273152131341">"Saiba mais sobre <xliff:g id="SERVICE">%1$s</xliff:g>"</string>
@@ -2191,16 +2188,12 @@
<string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="844089763968552142">"Teclas de volume"</string>
<string name="accessibility_shortcut_hardware_keyword" msgid="2483152542320987022">"teclas de volume"</string>
<string name="accessibility_shortcut_edit_dialog_summary_hardware" msgid="2503134386397991634">"Tocar e manter as duas teclas de volume pressionadas"</string>
- <string name="accessibility_shortcut_edit_dialog_title_two_finger_double_tap" msgid="2271778556854020996">"Tocar duas vezes na tela com dois dedos"</string>
<string name="accessibility_shortcut_edit_screen_title_two_finger_double_tap" msgid="8952595692906527694">"Toque duplo com %1$d dedos"</string>
<string name="accessibility_shortcut_edit_screen_summary_two_finger_double_tap" msgid="385404127425496362">"Toque rapidamente na tela 2 vezes com %1$d dedos"</string>
<string name="accessibility_shortcut_edit_screen_title_triple_tap" msgid="3314488747597058942">"Toque triplo"</string>
<string name="accessibility_shortcut_edit_screen_summary_triple_tap" msgid="4839204951599629871">"Toque rapidamente na tela %1$d vezes. Isso pode deixar o dispositivo mais lento."</string>
<string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="6271718715836961167">"Tocar duas vezes com %1$d dedos na tela"</string>
- <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"Toque na tela {0,number,integer} vezes rapidamente com dois dedos"</string>
- <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"Tocar na tela três vezes"</string>
<string name="accessibility_shortcut_triple_tap_keyword" msgid="5359347130888464334">"tocar três vezes"</string>
- <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"Toque na tela {0,number,integer} vezes rapidamente. Esse atalho pode deixar o dispositivo mais lento"</string>
<string name="accessibility_shortcut_edit_dialog_title_advance" msgid="4567868630655591506">"Avançado"</string>
<string name="accessibility_screen_magnification_navbar_configuration_warning" msgid="266736851606791552">"O botão Acessibilidade está definido para <xliff:g id="SERVICE">%1$s</xliff:g>. Para usar a ampliação, toque nesse botão, mantenha-o pressionado e selecione a ampliação."</string>
<string name="accessibility_screen_magnification_gesture_navigation_warning" msgid="991017769735632046">"O gesto de acessibilidade está definido para <xliff:g id="SERVICE">%1$s</xliff:g>. Para usar a ampliação, deslize de baixo para cima com dois dedos e mantenha a tela pressionada. Em seguida, selecione \"Ampliação\"."</string>
@@ -2369,6 +2362,7 @@
<string name="daltonizer_mode_tritanomaly_title" msgid="2278786218762602022">"Azul-amarelo"</string>
<string name="daltonizer_mode_grayscale_title" msgid="152005391387952588">"Escala de cinza"</string>
<string name="daltonizer_saturation_title" msgid="2999486412114963068">"Intensidade"</string>
+ <string name="daltonizer_saturation_unavailable_summary" msgid="8319753055567798775">"Indisponível para o modo escala de cinza ou quando a correção de cor está desativada"</string>
<string name="daltonizer_mode_deuteranomaly_summary" msgid="2117727423019598455">"Dificuldade com a cor verde, deuteranomalia"</string>
<string name="daltonizer_mode_protanomaly_summary" msgid="4617032854982040748">"Dificuldade com a cor vermelha, protanomalia"</string>
<string name="daltonizer_mode_tritanomaly_summary" msgid="2428218320118180070">"Tritanomalia"</string>
@@ -2418,15 +2412,8 @@
<string name="color_cyan" msgid="4341758639597035927">"Ciano"</string>
<string name="color_yellow" msgid="5957551912912679058">"Amarelo"</string>
<string name="color_magenta" msgid="8943538189219528423">"Magenta"</string>
- <string name="enable_service_title" msgid="7231533866953706788">"Permitir que o <xliff:g id="SERVICE">%1$s</xliff:g> tenha controle total do seu dispositivo?"</string>
<string name="capabilities_list_title" msgid="1225853611983394386">"<xliff:g id="SERVICE">%1$s</xliff:g> precisa:"</string>
<string name="touch_filtered_warning" msgid="4225815157460318241">"Como um app está ocultando uma solicitação de permissão, as configurações não podem confirmar sua resposta."</string>
- <string name="accessibility_service_warning" msgid="6779187188736432618">"<xliff:g id="SERVICE">%1$s</xliff:g> está solicitando controle total deste dispositivo. O serviço pode ler a tela e realizar ações em nome de usuários com necessidades especiais. Esse nível de controle não é adequado para a maioria dos apps."</string>
- <string name="accessibility_service_warning_description" msgid="6573203795976134751">"O controle total é adequado para apps que ajudam você com as necessidades de acessibilidade, mas não para a maioria dos apps."</string>
- <string name="accessibility_service_screen_control_title" msgid="324795030658109870">"Ver e controlar tela"</string>
- <string name="accessibility_service_screen_control_description" msgid="8431940515157990426">"Pode ler todo o conteúdo na tela e mostrar conteúdo sobreposto a outros apps."</string>
- <string name="accessibility_service_action_perform_title" msgid="1449360056585337833">"Ver e realizar ações"</string>
- <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"Pode monitorar suas interações com um app ou um sensor de hardware e interagir com apps em seu nome."</string>
<string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Permitir"</string>
<string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Negar"</string>
<string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Desativar"</string>
@@ -3656,9 +3643,9 @@
<string name="notif_listener_not_migrated" msgid="6265206376374278226">"O app não é compatível com as configurações avançadas."</string>
<string name="notif_listener_more_settings" msgid="1348409392307208921">"Mais configurações"</string>
<string name="notif_listener_more_settings_desc" msgid="7995492074281663658">"Mais configurações estão disponíveis neste app"</string>
- <string name="notification_polite_title" msgid="4737150709382859870">"Notificações adaptáveis"</string>
- <string name="notification_polite_main_control_title" msgid="7267191551379543859">"Usar notificações adaptáveis"</string>
- <string name="notification_polite_description" msgid="7749280535620291610">"Se chegarem muitas notificações em um período curto de tempo, o smartphone vai diminuir o volume e minimizar pop-ups na tela por até dois minutos. Ligações, alarmes e conversas prioritárias ainda vão vibrar, emitir um som ou aparecer na tela. Todas as notificações podem ser acessadas ao puxar de cima para baixo na tela."</string>
+ <string name="notification_polite_title" msgid="6121016426991791557">"Período de espera para notificações"</string>
+ <string name="notification_polite_main_control_title" msgid="5812529809151927149">"Atenuar notificações"</string>
+ <string name="notification_polite_description" msgid="5497748284893832854">"Se chegarem muitas notificações em um curto período, o dispositivo vai diminuir o volume e minimizar alertas por até 2 minutos. Isso não afeta ligações, alarmes e conversas prioritárias. \n\nAs notificações recebidas durante a atenuação podem ser encontradas ao deslizar de cima para baixo na tela."</string>
<string name="notification_polite_work" msgid="8823596456640216391">"Aplicar a perfis de trabalho"</string>
<string name="notification_polite_work_summary" msgid="5014189280132951378">"Aplicar em apps do perfil de trabalho"</string>
<string name="vr_listeners_title" msgid="4960357292472540964">"Serviços de ajuda para RV"</string>
@@ -3815,7 +3802,9 @@
<string name="zen_mode_apps_priority_apps" msgid="7386196048313716076">"Apps selecionados"</string>
<string name="zen_mode_apps_none_apps" msgid="2493642312793604327">"Nenhum"</string>
<string name="zen_mode_apps_subtext" msgid="1764211974662012877">"{count,plural,offset:2 =0{Nenhum app pode interromper}=1{{app_1} pode interromper}=2{{app_1} e {app_2} podem interromper}=3{{app_1}, {app_2} e {app_3} podem interromper}one{{app_1}, {app_2} e mais # podem interromper}other{{app_1}, {app_2} e mais # podem interromper}}"</string>
+ <string name="zen_mode_apps_work_app" msgid="8528767938316361588">"<xliff:g id="APP_LABEL">%s</xliff:g> (trabalho)"</string>
<string name="zen_mode_apps_calculating" msgid="5420121396943539286">"Calculando…"</string>
+ <string name="zen_mode_plus_n_items" msgid="6136713354369243421">"+<xliff:g id="NUMBER">%d</xliff:g>"</string>
<string name="zen_mode_bypassing_apps" msgid="625309443389126481">"Permitir que apps modifiquem o \"Não perturbe\""</string>
<string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"Apps que podem fazer interrupções"</string>
<string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"Selecionar mais apps"</string>
@@ -3833,6 +3822,7 @@
<string name="zen_mode_sounds_none" msgid="6557474361948269420">"Nada pode interromper"</string>
<string name="zen_mode_people_none" msgid="4613147461974255046">"Ninguém pode interromper"</string>
<string name="zen_mode_people_some" msgid="9101872681298810281">"Algumas pessoas podem interromper"</string>
+ <string name="zen_mode_people_repeat_callers" msgid="4499084111069828761">"Autores de ligações repetidas podem interromper o modo"</string>
<string name="zen_mode_people_all" msgid="311036110283015205">"Todas as pessoas podem interromper"</string>
<string name="zen_mode_repeat_callers" msgid="2270356100287792138">"Autores de chamadas repetidas"</string>
<string name="zen_mode_repeat_callers_title" msgid="8016699240338264781">"Permitir autores de chamadas repetidas"</string>
@@ -3856,6 +3846,34 @@
<string name="zen_mode_new_custom_title" msgid="321750898430776191">"Modo de adição"</string>
<string name="zen_mode_new_custom_default_name" msgid="2778307946775085105">"Modo personalizado"</string>
<string name="zen_mode_edit_name_hint" msgid="4584652062167540536">"Nome do modo"</string>
+ <string name="zen_mode_trigger_title_schedule_calendar" msgid="9206609438617550331">"Eventos da agenda"</string>
+ <string name="zen_mode_trigger_title_bedtime" msgid="5086070900588489978">"Rotina de sono"</string>
+ <string name="zen_mode_trigger_title_driving" msgid="7890990983453164403">"Ao dirigir"</string>
+ <string name="zen_mode_trigger_title_generic" msgid="601273385119550420">"Vinculado ao app"</string>
+ <string name="zen_mode_trigger_summary_settings_in_app" msgid="4860667191183702601">"Informações e configurações em <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+ <string name="zen_mode_trigger_summary_managed_by_app" msgid="8631011868193102098">"Gerenciado por <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+ <string name="zen_mode_confirm_disable_title" msgid="1232297660775719796">"Desativar modo"</string>
+ <string name="zen_mode_confirm_disable_message" msgid="7315541221665718491">"Ao desativar o recurso, o modo não vai mais funcionar conforme esperado e suas configurações ficarão ocultas."</string>
+ <string name="zen_mode_action_disable" msgid="3552921561331044881">"Desativar"</string>
+ <string name="zen_mode_confirm_enable_title" msgid="5683371335847448595">"Ativar modo"</string>
+ <string name="zen_mode_confirm_enable_message" msgid="7017879133260011419">"Ao ativar o recurso, o modo será ativado automaticamente de acordo com a programação dele."</string>
+ <string name="zen_mode_action_enable" msgid="1161480633223176531">"Ativar"</string>
+ <!-- no translation found for zen_mode_blurb_schedule_time (8223898702097484009) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_schedule_calendar (382177907856065945) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_bedtime (6155075956151013457) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_driving (1316054379000667305) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_immersive (5884004861848687869) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_theater (2999237960059524225) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_managed (5473921634985032149) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_generic (3041601339807075625) -->
+ <skip />
<string name="warning_button_text" msgid="1274234338874005639">"Alerta"</string>
<string name="suggestion_button_close" msgid="6865170855573283759">"Fechar"</string>
<string name="device_feedback" msgid="5351614458411688608">"Enviar feedback sobre o dispositivo"</string>
@@ -4842,9 +4860,8 @@
<string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"Bateria"</string>
<string name="settings_panel_title" msgid="346363079938069215">"Painel de configurações"</string>
<string name="enable_desktop_mode" msgid="5644818402534562302">"Ativar janelas de forma livre"</string>
- <string name="enable_desktop_mode_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>
+ <!-- no translation found for enable_desktop_mode_on_secondary_display (2609567824593768780) -->
+ <skip />
<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>
@@ -5019,7 +5036,6 @@
<string name="default_active_sim_mobile_data" msgid="6798083892814045301">"dados móveis"</string>
<string name="wifi_scan_notify_message" msgid="1331238142061476869">"Para melhorar a experiência no dispositivo, os apps e serviços ainda podem procurar redes Wi-Fi a qualquer momento, mesmo quando essa conexão está desativada. Isso pode ser usado, por exemplo, para melhorar recursos e serviços baseados na localização. Você pode mudar essa opção nas configurações de busca por Wi-Fi."</string>
<string name="wifi_scan_change" msgid="8438320311511852918">"Mudar"</string>
- <string name="preference_summary_default_combination" msgid="4643585915107796253">"<xliff:g id="STATE">%1$s</xliff:g> / <xliff:g id="NETWORKMODE">%2$s</xliff:g>"</string>
<string name="mobile_data_connection_active" msgid="2422223108911581552">"Conectado"</string>
<string name="mobile_data_temp_connection_active" msgid="3430470299756236413">"Temporariamente conectado"</string>
<string name="mobile_data_temp_using" msgid="5211002380149434155">"Temporariamente usando: <xliff:g id="SUBNAME">%1$s</xliff:g>"</string>
@@ -5165,9 +5181,11 @@
<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="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_enable_freeform_support" msgid="3697462756493543645">"É necessário reiniciar o dispositivo para permitir as janelas em formato livre."</string>
+ <!-- no translation found for reboot_dialog_override_desktop_mode (7480950772574354130) -->
+ <skip />
+ <!-- no translation found for reboot_dialog_enable_desktop_mode_on_secondary_display (1153621881052401924) -->
+ <skip />
<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>
@@ -5398,5 +5416,6 @@
<string name="audio_streams_main_page_password_dialog_join_button" msgid="2967747276379153408">"Ouvir o stream"</string>
<string name="audio_streams_main_page_qr_code_scanner_summary" msgid="5312980105735143360">"Ler o QR code de um stream de áudio para ouvir com <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
<string name="audio_streams_main_page_password_dialog_cannot_edit" msgid="9020898619297520153">"Não é possível editar a senha enquanto compartilha. Para mudar a senha, primeiro desligue o compartilhamento de áudio."</string>
+ <string name="audio_streams_qr_code_scanner_label" msgid="8799703301071378034">"Leitor de QR code"</string>
<string name="homepage_search" msgid="6759334912284663559">"Pesquisar configurações"</string>
</resources>
diff --git a/res/values-pt-rPT/strings.xml b/res/values-pt-rPT/strings.xml
index 4c14e7c..d0195c7 100644
--- a/res/values-pt-rPT/strings.xml
+++ b/res/values-pt-rPT/strings.xml
@@ -41,6 +41,8 @@
<string name="radioInfo_data_suspended" msgid="2001254415431299603">"Suspenso"</string>
<string name="radioInfo_unknown" msgid="2892562356748600367">"Desconhecida"</string>
<string name="preview_pager_content_description" msgid="3762247188224576303">"Pré-visualizar"</string>
+ <!-- no translation found for qr_code_content_description (1852208464419291347) -->
+ <skip />
<string name="font_size_make_smaller_desc" msgid="4978038055549590140">"Diminuir"</string>
<string name="font_size_make_larger_desc" msgid="5583046033381722247">"Aumentar"</string>
<string name="stay_awake_on_fold_title" msgid="6590454679898134221">"Sempre"</string>
@@ -283,7 +285,7 @@
<string name="location_settings_summary_location_off" msgid="4797932754681162262">"Desativada"</string>
<string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{Ativada / # app tem acesso à localização}other{Ativada / # apps têm acesso à localização}}"</string>
<string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"A carregar…"</string>
- <string name="location_settings_footer_general" msgid="1040507068701188821">"As apps com a autorização Dispositivos próximos podem determinar a posição relativa dos dispositivos ligados."</string>
+ <string name="location_settings_footer_general" msgid="3447585552176173502">"As apps com a autorização Dispositivos próximos podem determinar a posição relativa dos dispositivos ligados."</string>
<string name="location_settings_footer_location_off" msgid="8568995909147566720">"O acesso à localização está desativado para apps e serviços. A localização do dispositivo ainda pode ser enviada para os contactos de resposta a emergências quando liga ou envia uma mensagem de texto para um número de emergência."</string>
<string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Saiba mais acerca das definições de localização"</string>
<string name="location_settings_tooltip_text_for_chrome" msgid="5781821709250544575">"Para alterar, aceda a Definições do ChromeOS > Privacidade e segurança > Controlos de privacidade > Acesso à localização"</string>
@@ -850,7 +852,6 @@
<string name="nfc_reboot_dialog_title" msgid="2033983438635768169">"Reiniciar o dispositivo?"</string>
<string name="nfc_reboot_dialog_message" msgid="4929353168157966992">"O registo detalhado de NFC destina-se apenas a fins de programação. Os dados de NFC são incluídos em relatórios de erros, que podem conter informações privadas. Reinicie o seu dispositivo para alterar esta definição."</string>
<string name="nfc_reboot_dialog_confirm" msgid="4769763632008584567">"Reiniciar"</string>
- <string name="keywords_external_display" msgid="4181375057920134909">"espelhar, ecrã externo, ecrã ligado, ecrã usb, resolução, rotação"</string>
<string name="external_display_on" msgid="2560104443500154333">"Ativado"</string>
<string name="external_display_off" msgid="5634413756025351374">"Desativado"</string>
<string name="external_display_settings_title" msgid="6256884595821605779">"Ecrã externo"</string>
@@ -1918,6 +1919,8 @@
<string name="slow_keys_summary" msgid="1784371292745423292">"Ajusta o tempo que demora a ativação de uma tecla pressionada para <xliff:g id="SLOW_KEYS_THRESHOLD">%1$d</xliff:g> ms"</string>
<string name="sticky_keys" msgid="7317317044898161747">"Teclas aderentes"</string>
<string name="sticky_keys_summary" msgid="1844953803625480623">"Prima uma tecla de cada vez para os atalhos em vez de manter as teclas premidas em simultâneo"</string>
+ <string name="mouse_keys" msgid="6237254627808525540">"Teclas do rato"</string>
+ <string name="mouse_keys_summary" msgid="2396247040177734245">"Use o teclado físico para controlar o rato."</string>
<string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"Atalhos de teclado"</string>
<string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"Mostre a lista de atalhos"</string>
<string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"Teclados e ferramentas do perfil de trabalho"</string>
@@ -2175,8 +2178,6 @@
<string name="accessibility_shortcut_edit_dialog_summary_floating_button" msgid="6266489864614886247">"Toque no botão flutuante"</string>
<string name="accessibility_shortcut_edit_dialog_title_software_by_gesture" msgid="4775049370625630546">"Gesto de acessibilidade"</string>
<string name="accessibility_shortcut_edit_dialog_summary_software" msgid="8315934725362849788">"Toque no botão Acessibilidade <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g> na parte inferior do ecrã. Para alternar entre funcionalidades, toque sem soltar no botão Acessibilidade."</string>
- <string name="accessibility_shortcut_edit_dialog_summary_software_gesture" msgid="8292555254353761635">"Deslize rapidamente com dois dedos para cima a partir da parte inferior do ecrã.\n\nPara alternar entre funcionalidades, deslize rapidamente com dois dedos para cima sem soltar."</string>
- <string name="accessibility_shortcut_edit_dialog_summary_software_gesture_talkback" msgid="84483464524360845">"Deslize rapidamente com três dedos para cima a partir da parte inferior do ecrã.\n\nPara alternar entre funcionalidades, deslize rapidamente com três dedos para cima sem soltar."</string>
<string name="accessibility_shortcut_edit_dialog_summary_gesture" msgid="2081123009255579884">"{count,plural, =1{Deslize rapidamente para cima a partir da parte inferior do ecrã. Para alternar entre funcionalidades, deslize rapidamente para cima sem soltar.}other{Deslize rapidamente para cima com # dedos a partir da parte inferior do ecrã. Para alternar entre funcionalidades, deslize rapidamente com # dedos para cima sem soltar.}}"</string>
<string name="accessibility_shortcut_edit_dialog_summary_software_floating" msgid="4459254227203203324"><annotation id="link">"Mais opções"</annotation></string>
<string name="footer_learn_more_content_description" msgid="8843798273152131341">"Saiba mais sobre <xliff:g id="SERVICE">%1$s</xliff:g>"</string>
@@ -2187,16 +2188,12 @@
<string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="844089763968552142">"Teclas de volume"</string>
<string name="accessibility_shortcut_hardware_keyword" msgid="2483152542320987022">"teclas de volume"</string>
<string name="accessibility_shortcut_edit_dialog_summary_hardware" msgid="2503134386397991634">"Prima sem soltar ambas as teclas de volume"</string>
- <string name="accessibility_shortcut_edit_dialog_title_two_finger_double_tap" msgid="2271778556854020996">"Toque duas vezes com dois dedos no ecrã"</string>
<string name="accessibility_shortcut_edit_screen_title_two_finger_double_tap" msgid="8952595692906527694">"Tocar duas vezes com %1$d dedos"</string>
<string name="accessibility_shortcut_edit_screen_summary_two_finger_double_tap" msgid="385404127425496362">"Toque rapidamente no ecrã duas vezes com %1$d dedos"</string>
<string name="accessibility_shortcut_edit_screen_title_triple_tap" msgid="3314488747597058942">"Tocar três vezes"</string>
<string name="accessibility_shortcut_edit_screen_summary_triple_tap" msgid="4839204951599629871">"Toque rapidamente no ecrã %1$d vezes. Esta ação pode tornar o dispositivo mais lento."</string>
<string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="6271718715836961167">"Tocar duas vezes com %1$d dedos"</string>
- <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"Toque rapidamente {0,number,integer} vezes no ecrã com dois dedos"</string>
- <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"Toque três vezes no ecrã"</string>
<string name="accessibility_shortcut_triple_tap_keyword" msgid="5359347130888464334">"tocar três vezes"</string>
- <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"Toque rapidamente {0,number,integer} vezes no ecrã. Este atalho pode tornar o dispositivo mais lento"</string>
<string name="accessibility_shortcut_edit_dialog_title_advance" msgid="4567868630655591506">"Avançadas"</string>
<string name="accessibility_screen_magnification_navbar_configuration_warning" msgid="266736851606791552">"O botão de acessibilidade está definido para o serviço <xliff:g id="SERVICE">%1$s</xliff:g>. Para utilizar a ampliação, toque sem soltar neste botão e, em seguida, selecione a ampliação."</string>
<string name="accessibility_screen_magnification_gesture_navigation_warning" msgid="991017769735632046">"O gesto de acessibilidade está definido para o serviço <xliff:g id="SERVICE">%1$s</xliff:g>. Para utilizar a ampliação, deslize rapidamente com dois dedos para cima sem soltar a partir da parte inferior do ecrã. Em seguida, selecione a ampliação."</string>
@@ -2365,6 +2362,7 @@
<string name="daltonizer_mode_tritanomaly_title" msgid="2278786218762602022">"Azul-amarelo"</string>
<string name="daltonizer_mode_grayscale_title" msgid="152005391387952588">"Escala de cinzentos"</string>
<string name="daltonizer_saturation_title" msgid="2999486412114963068">"Intensidade"</string>
+ <string name="daltonizer_saturation_unavailable_summary" msgid="8319753055567798775">"Indisponível para o modo de escala de cinzentos ou quando a correção da cor está desativada"</string>
<string name="daltonizer_mode_deuteranomaly_summary" msgid="2117727423019598455">"Verde fraco, deuteranomalia"</string>
<string name="daltonizer_mode_protanomaly_summary" msgid="4617032854982040748">"Vermelho fraco, protanomalia"</string>
<string name="daltonizer_mode_tritanomaly_summary" msgid="2428218320118180070">"Tritanomalia"</string>
@@ -2414,15 +2412,8 @@
<string name="color_cyan" msgid="4341758639597035927">"Ciano"</string>
<string name="color_yellow" msgid="5957551912912679058">"Amarelo"</string>
<string name="color_magenta" msgid="8943538189219528423">"Magenta"</string>
- <string name="enable_service_title" msgid="7231533866953706788">"Permitir que o serviço <xliff:g id="SERVICE">%1$s</xliff:g> tenha controlo total sobre o seu dispositivo?"</string>
<string name="capabilities_list_title" msgid="1225853611983394386">"<xliff:g id="SERVICE">%1$s</xliff:g> necessita de:"</string>
<string name="touch_filtered_warning" msgid="4225815157460318241">"Uma vez que uma aplicação está a ocultar um pedido de autorização, as Definições não conseguem validar a sua resposta."</string>
- <string name="accessibility_service_warning" msgid="6779187188736432618">"O serviço <xliff:g id="SERVICE">%1$s</xliff:g> está a solicitar o controlo total deste dispositivo. O serviço pode ler o ecrã e agir em nome de utilizadores com necessidades de acessibilidade. Este nível de controlo não é adequado para a maioria das aplicações."</string>
- <string name="accessibility_service_warning_description" msgid="6573203795976134751">"O controlo total é adequado para apps que ajudam nas necessidades de acessibilidade, mas não para a maioria das apps."</string>
- <string name="accessibility_service_screen_control_title" msgid="324795030658109870">"Ver e controlar o ecrã"</string>
- <string name="accessibility_service_screen_control_description" msgid="8431940515157990426">"Pode ler todo o conteúdo do ecrã e sobrepor conteúdo a outras apps."</string>
- <string name="accessibility_service_action_perform_title" msgid="1449360056585337833">"Ver e executar ações"</string>
- <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"Pode monitorizar as suas interações com uma app ou um sensor de hardware e interagir com apps em seu nome."</string>
<string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Permitir"</string>
<string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Recusar"</string>
<string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Desativar"</string>
@@ -3652,9 +3643,9 @@
<string name="notif_listener_not_migrated" msgid="6265206376374278226">"Esta app não suporta definições avançadas"</string>
<string name="notif_listener_more_settings" msgid="1348409392307208921">"Mais definições"</string>
<string name="notif_listener_more_settings_desc" msgid="7995492074281663658">"Estão disponíveis mais definições dentro desta app"</string>
- <string name="notification_polite_title" msgid="4737150709382859870">"Notificações adaptáveis"</string>
- <string name="notification_polite_main_control_title" msgid="7267191551379543859">"Use notificações adaptáveis"</string>
- <string name="notification_polite_description" msgid="7749280535620291610">"Quando recebe muitas notificações num curto espaço de tempo, o telemóvel baixa o volume e minimiza os pop-ups no ecrã durante um máximo de dois minutos. As chamadas, os alarmes e as conversas com prioridade continuam a vibrar, emitir um som ou aparecer no ecrã e todas as notificações são fáceis de encontrar quando puxa o painel para baixo a partir da parte superior do ecrã."</string>
+ <string name="notification_polite_title" msgid="6121016426991791557">"Repouso das notificações"</string>
+ <string name="notification_polite_main_control_title" msgid="5812529809151927149">"Use o repouso das notificações"</string>
+ <string name="notification_polite_description" msgid="5497748284893832854">"Quando recebe muitas notificações num curto espaço de tempo, o dispositivo diminui o volume e minimiza os alertas durante, no máximo, 2 minutos. As chamadas, os alarmes e as conversas com prioridade não são afetadas. \n\nPara encontrar as notificações recebidas durante o repouso, pode puxar o ecrã para baixo a partir da parte superior."</string>
<string name="notification_polite_work" msgid="8823596456640216391">"Aplicar aos perfis de trabalho"</string>
<string name="notification_polite_work_summary" msgid="5014189280132951378">"Aplique a apps de perfil de trabalho"</string>
<string name="vr_listeners_title" msgid="4960357292472540964">"Serviços de assistente de RV"</string>
@@ -3811,7 +3802,9 @@
<string name="zen_mode_apps_priority_apps" msgid="7386196048313716076">"Apps selecionadas"</string>
<string name="zen_mode_apps_none_apps" msgid="2493642312793604327">"Nenhuma"</string>
<string name="zen_mode_apps_subtext" msgid="1764211974662012877">"{count,plural,offset:2 =0{Nenhuma app pode interromper}=1{A app {app_1} pode interromper}=2{As apps {app_1} e {app_2} podem interromper}=3{As apps {app_1}, {app_2} e {app_3} podem interromper}other{As apps {app_1}, {app_2} e mais # podem interromper}}"</string>
+ <string name="zen_mode_apps_work_app" msgid="8528767938316361588">"<xliff:g id="APP_LABEL">%s</xliff:g> (trabalho)"</string>
<string name="zen_mode_apps_calculating" msgid="5420121396943539286">"A calcular…"</string>
+ <string name="zen_mode_plus_n_items" msgid="6136713354369243421">"+<xliff:g id="NUMBER">%d</xliff:g>"</string>
<string name="zen_mode_bypassing_apps" msgid="625309443389126481">"Permitir que as apps substituam"</string>
<string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"Apps que podem interromper"</string>
<string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"Selecione mais apps"</string>
@@ -3829,6 +3822,7 @@
<string name="zen_mode_sounds_none" msgid="6557474361948269420">"Nada pode interromper"</string>
<string name="zen_mode_people_none" msgid="4613147461974255046">"Ninguém pode interromper"</string>
<string name="zen_mode_people_some" msgid="9101872681298810281">"Algumas pessoas podem interromper"</string>
+ <string name="zen_mode_people_repeat_callers" msgid="4499084111069828761">"Os autores de chamadas repetentes podem interromper"</string>
<string name="zen_mode_people_all" msgid="311036110283015205">"Todas as pessoas podem interromper"</string>
<string name="zen_mode_repeat_callers" msgid="2270356100287792138">"Autores de chamadas repetentes"</string>
<string name="zen_mode_repeat_callers_title" msgid="8016699240338264781">"Permitir chamadas repetidas"</string>
@@ -3852,6 +3846,34 @@
<string name="zen_mode_new_custom_title" msgid="321750898430776191">"Adicione um modo"</string>
<string name="zen_mode_new_custom_default_name" msgid="2778307946775085105">"Modo personalizado"</string>
<string name="zen_mode_edit_name_hint" msgid="4584652062167540536">"Nome do modo"</string>
+ <string name="zen_mode_trigger_title_schedule_calendar" msgid="9206609438617550331">"Eventos de calendário"</string>
+ <string name="zen_mode_trigger_title_bedtime" msgid="5086070900588489978">"Horário de dormir"</string>
+ <string name="zen_mode_trigger_title_driving" msgid="7890990983453164403">"Durante a condução"</string>
+ <string name="zen_mode_trigger_title_generic" msgid="601273385119550420">"Associado à app"</string>
+ <string name="zen_mode_trigger_summary_settings_in_app" msgid="4860667191183702601">"Informações e definições na app <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+ <string name="zen_mode_trigger_summary_managed_by_app" msgid="8631011868193102098">"Gerido pela app <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+ <string name="zen_mode_confirm_disable_title" msgid="1232297660775719796">"Desative o modo"</string>
+ <string name="zen_mode_confirm_disable_message" msgid="7315541221665718491">"Se desativar esta funcionalidade, o modo deixa de funcionar conforme previsto e as definições são ocultadas."</string>
+ <string name="zen_mode_action_disable" msgid="3552921561331044881">"Desativar"</string>
+ <string name="zen_mode_confirm_enable_title" msgid="5683371335847448595">"Ative o modo"</string>
+ <string name="zen_mode_confirm_enable_message" msgid="7017879133260011419">"Se ativar esta funcionalidade, o modo é ativado automaticamente de acordo com o horário."</string>
+ <string name="zen_mode_action_enable" msgid="1161480633223176531">"Ativar"</string>
+ <!-- no translation found for zen_mode_blurb_schedule_time (8223898702097484009) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_schedule_calendar (382177907856065945) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_bedtime (6155075956151013457) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_driving (1316054379000667305) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_immersive (5884004861848687869) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_theater (2999237960059524225) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_managed (5473921634985032149) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_generic (3041601339807075625) -->
+ <skip />
<string name="warning_button_text" msgid="1274234338874005639">"Aviso"</string>
<string name="suggestion_button_close" msgid="6865170855573283759">"Fechar"</string>
<string name="device_feedback" msgid="5351614458411688608">"Enviar feedback do dispositivo"</string>
@@ -4838,9 +4860,8 @@
<string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"Bateria"</string>
<string name="settings_panel_title" msgid="346363079938069215">"Painel Definições"</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>
+ <!-- no translation found for enable_desktop_mode_on_secondary_display (2609567824593768780) -->
+ <skip />
<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>
@@ -5015,7 +5036,6 @@
<string name="default_active_sim_mobile_data" msgid="6798083892814045301">"dados móveis"</string>
<string name="wifi_scan_notify_message" msgid="1331238142061476869">"Para melhorar a experiência do dispositivo, as apps e os serviços podem continuar a procurar redes Wi-Fi em qualquer altura, mesmo quando o Wi-Fi está desativado. Pode usar esta opção, por exemplo, para melhorar as funcionalidades e os serviços baseados na localização. Pode alterar esta opção nas definições de procura de Wi-Fi."</string>
<string name="wifi_scan_change" msgid="8438320311511852918">"Alterar"</string>
- <string name="preference_summary_default_combination" msgid="4643585915107796253">"<xliff:g id="STATE">%1$s</xliff:g>/<xliff:g id="NETWORKMODE">%2$s</xliff:g>"</string>
<string name="mobile_data_connection_active" msgid="2422223108911581552">"Ligado"</string>
<string name="mobile_data_temp_connection_active" msgid="3430470299756236413">"Ligado temporariamente"</string>
<string name="mobile_data_temp_using" msgid="5211002380149434155">"A usar <xliff:g id="SUBNAME">%1$s</xliff:g> temporariamente"</string>
@@ -5161,9 +5181,11 @@
<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="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_enable_freeform_support" msgid="3697462756493543645">"É necessário reiniciar para ativar o suporte de janelas de formato livre."</string>
+ <!-- no translation found for reboot_dialog_override_desktop_mode (7480950772574354130) -->
+ <skip />
+ <!-- no translation found for reboot_dialog_enable_desktop_mode_on_secondary_display (1153621881052401924) -->
+ <skip />
<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>
@@ -5394,5 +5416,6 @@
<string name="audio_streams_main_page_password_dialog_join_button" msgid="2967747276379153408">"Ouvir stream"</string>
<string name="audio_streams_main_page_qr_code_scanner_summary" msgid="5312980105735143360">"Leia o código QR de uma stream de áudio para ouvir com <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
<string name="audio_streams_main_page_password_dialog_cannot_edit" msgid="9020898619297520153">"Não é possível editar a palavra-passe durante a partilha. Para alterar a palavra-passe, primeiro, desative a partilha de áudio."</string>
+ <string name="audio_streams_qr_code_scanner_label" msgid="8799703301071378034">"Leitor de códigos QR"</string>
<string name="homepage_search" msgid="6759334912284663559">"Pesquise definições"</string>
</resources>
diff --git a/res/values-pt/strings.xml b/res/values-pt/strings.xml
index 5abc6ad..3744d47 100644
--- a/res/values-pt/strings.xml
+++ b/res/values-pt/strings.xml
@@ -41,6 +41,8 @@
<string name="radioInfo_data_suspended" msgid="2001254415431299603">"Suspenso"</string>
<string name="radioInfo_unknown" msgid="2892562356748600367">"Desconhecido"</string>
<string name="preview_pager_content_description" msgid="3762247188224576303">"Pré-visualização"</string>
+ <!-- no translation found for qr_code_content_description (1852208464419291347) -->
+ <skip />
<string name="font_size_make_smaller_desc" msgid="4978038055549590140">"Tornar menor"</string>
<string name="font_size_make_larger_desc" msgid="5583046033381722247">"Tornar maior"</string>
<string name="stay_awake_on_fold_title" msgid="6590454679898134221">"Sempre"</string>
@@ -283,7 +285,7 @@
<string name="location_settings_summary_location_off" msgid="4797932754681162262">"Configuração desativada"</string>
<string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{Ativada / # app tem acesso à localização}one{Ativada / # app tem acesso à localização}other{Ativada / # apps têm acesso à localização}}"</string>
<string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"Carregando…"</string>
- <string name="location_settings_footer_general" msgid="1040507068701188821">"Apps com permissão para encontrar dispositivos por perto podem determinar a posição relativa dos dispositivos conectados."</string>
+ <string name="location_settings_footer_general" msgid="3447585552176173502">"Apps com permissão para encontrar dispositivos próximos podem determinar a posição relativa dos dispositivos conectados."</string>
<string name="location_settings_footer_location_off" msgid="8568995909147566720">"O acesso à localização está desativado para apps e serviços. A localização do dispositivo ainda poderá ser enviada a socorristas quando você ligar ou enviar uma mensagem de texto para um número de emergência."</string>
<string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Saiba mais sobre as configurações de localização"</string>
<string name="location_settings_tooltip_text_for_chrome" msgid="5781821709250544575">"Para mudar, acesse \"Configurações do ChromeOS > Privacidade e segurança > Controles de privacidade > Acesso ao local\""</string>
@@ -850,7 +852,6 @@
<string name="nfc_reboot_dialog_title" msgid="2033983438635768169">"Reiniciar o dispositivo?"</string>
<string name="nfc_reboot_dialog_message" msgid="4929353168157966992">"O registro detalhado de NFC é destinado apenas a fins de desenvolvimento. Dados NFC extras estão incluídos em relatórios de bugs, que podem conter informações particulares. Reinicie o dispositivo para mudar essa configuração."</string>
<string name="nfc_reboot_dialog_confirm" msgid="4769763632008584567">"Reiniciar"</string>
- <string name="keywords_external_display" msgid="4181375057920134909">"espelhar, tela externa, tela conectada, tela usb, resolução, rotação"</string>
<string name="external_display_on" msgid="2560104443500154333">"Ligada"</string>
<string name="external_display_off" msgid="5634413756025351374">"Desligada"</string>
<string name="external_display_settings_title" msgid="6256884595821605779">"Tela externa"</string>
@@ -1918,6 +1919,8 @@
<string name="slow_keys_summary" msgid="1784371292745423292">"Ajusta o tempo que leva para um pressionamento de tecla ser ativado para <xliff:g id="SLOW_KEYS_THRESHOLD">%1$d</xliff:g> ms"</string>
<string name="sticky_keys" msgid="7317317044898161747">"Teclas de aderência"</string>
<string name="sticky_keys_summary" msgid="1844953803625480623">"Pressione uma tecla por vez para usar atalhos em vez de manter as teclas pressionadas juntas"</string>
+ <string name="mouse_keys" msgid="6237254627808525540">"Teclas do mouse"</string>
+ <string name="mouse_keys_summary" msgid="2396247040177734245">"Use o teclado físico para controlar o mouse."</string>
<string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"Atalhos do teclado"</string>
<string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"Mostrar lista de atalhos"</string>
<string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"Teclados e ferramentas de perfil de trabalho"</string>
@@ -1942,14 +1945,10 @@
<string name="pointer_fill_style_yellow_button" msgid="5025969961559379024">"Mudar preenchimento para amarelo"</string>
<string name="pointer_fill_style_pink_button" msgid="4106218142489635673">"Mudar preenchimento para rosa"</string>
<string name="pointer_fill_style_blue_button" msgid="5594958078854032785">"Mudar preenchimento para azul"</string>
- <!-- no translation found for pointer_stroke_style (1886986630216050665) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_white (673686194443825383) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_black (4655806167067437330) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_none (8953927511729800247) -->
- <skip />
+ <string name="pointer_stroke_style" msgid="1886986630216050665">"Estilo de traço do ponteiro"</string>
+ <string name="pointer_stroke_style_name_white" msgid="673686194443825383">"Branco"</string>
+ <string name="pointer_stroke_style_name_black" msgid="4655806167067437330">"Preto"</string>
+ <string name="pointer_stroke_style_name_none" msgid="8953927511729800247">"Nenhum"</string>
<string name="trackpad_touch_gesture" msgid="8641725062131922497">"Aprender gestos do touchpad"</string>
<string name="keywords_touchpad" msgid="8159846254066666032">"trackpad, track pad, mouse, cursor, rolar, deslizar, clicar com o botão direito do mouse, clicar, ponteiro"</string>
<string name="keywords_trackpad_bottom_right_tap" msgid="1285062446073929305">"clicar com o botão direito do mouse, tocar"</string>
@@ -2179,8 +2178,6 @@
<string name="accessibility_shortcut_edit_dialog_summary_floating_button" msgid="6266489864614886247">"Tocar no botão flutuante"</string>
<string name="accessibility_shortcut_edit_dialog_title_software_by_gesture" msgid="4775049370625630546">"Gesto de acessibilidade"</string>
<string name="accessibility_shortcut_edit_dialog_summary_software" msgid="8315934725362849788">"Toque no botão de acessibilidade <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g> na parte de baixo da tela. Para trocar de recurso, mantenha o botão de acessibilidade pressionado."</string>
- <string name="accessibility_shortcut_edit_dialog_summary_software_gesture" msgid="8292555254353761635">"Deslize de baixo para cima na tela com dois dedos.\n\nPara alternar entre recursos, deslize de baixo para cima na tela com dois dedos, sem soltar."</string>
- <string name="accessibility_shortcut_edit_dialog_summary_software_gesture_talkback" msgid="84483464524360845">"Deslize de baixo para cima na tela com três dedos.\n\nPara alternar entre recursos, deslize de baixo para cima na tela com três dedos, sem soltar."</string>
<string name="accessibility_shortcut_edit_dialog_summary_gesture" msgid="2081123009255579884">"{count,plural, =1{Deslize de baixo para cima na tela. Para trocar de recurso, deslize de baixo para cima e mantenha a tela pressionada.}one{Deslize com # dedo de baixo para cima na tela. Para trocar de recurso, deslize de baixo para cima com # dedo e mantenha a tela pressionada.}other{Deslize com # dedos de baixo para cima na tela. Para trocar de recurso, deslize de baixo para cima com # dedos e mantenha a tela pressionada.}}"</string>
<string name="accessibility_shortcut_edit_dialog_summary_software_floating" msgid="4459254227203203324"><annotation id="link">"Mais opções"</annotation></string>
<string name="footer_learn_more_content_description" msgid="8843798273152131341">"Saiba mais sobre <xliff:g id="SERVICE">%1$s</xliff:g>"</string>
@@ -2191,16 +2188,12 @@
<string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="844089763968552142">"Teclas de volume"</string>
<string name="accessibility_shortcut_hardware_keyword" msgid="2483152542320987022">"teclas de volume"</string>
<string name="accessibility_shortcut_edit_dialog_summary_hardware" msgid="2503134386397991634">"Tocar e manter as duas teclas de volume pressionadas"</string>
- <string name="accessibility_shortcut_edit_dialog_title_two_finger_double_tap" msgid="2271778556854020996">"Tocar duas vezes na tela com dois dedos"</string>
<string name="accessibility_shortcut_edit_screen_title_two_finger_double_tap" msgid="8952595692906527694">"Toque duplo com %1$d dedos"</string>
<string name="accessibility_shortcut_edit_screen_summary_two_finger_double_tap" msgid="385404127425496362">"Toque rapidamente na tela 2 vezes com %1$d dedos"</string>
<string name="accessibility_shortcut_edit_screen_title_triple_tap" msgid="3314488747597058942">"Toque triplo"</string>
<string name="accessibility_shortcut_edit_screen_summary_triple_tap" msgid="4839204951599629871">"Toque rapidamente na tela %1$d vezes. Isso pode deixar o dispositivo mais lento."</string>
<string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="6271718715836961167">"Tocar duas vezes com %1$d dedos na tela"</string>
- <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"Toque na tela {0,number,integer} vezes rapidamente com dois dedos"</string>
- <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"Tocar na tela três vezes"</string>
<string name="accessibility_shortcut_triple_tap_keyword" msgid="5359347130888464334">"tocar três vezes"</string>
- <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"Toque na tela {0,number,integer} vezes rapidamente. Esse atalho pode deixar o dispositivo mais lento"</string>
<string name="accessibility_shortcut_edit_dialog_title_advance" msgid="4567868630655591506">"Avançado"</string>
<string name="accessibility_screen_magnification_navbar_configuration_warning" msgid="266736851606791552">"O botão Acessibilidade está definido para <xliff:g id="SERVICE">%1$s</xliff:g>. Para usar a ampliação, toque nesse botão, mantenha-o pressionado e selecione a ampliação."</string>
<string name="accessibility_screen_magnification_gesture_navigation_warning" msgid="991017769735632046">"O gesto de acessibilidade está definido para <xliff:g id="SERVICE">%1$s</xliff:g>. Para usar a ampliação, deslize de baixo para cima com dois dedos e mantenha a tela pressionada. Em seguida, selecione \"Ampliação\"."</string>
@@ -2369,6 +2362,7 @@
<string name="daltonizer_mode_tritanomaly_title" msgid="2278786218762602022">"Azul-amarelo"</string>
<string name="daltonizer_mode_grayscale_title" msgid="152005391387952588">"Escala de cinza"</string>
<string name="daltonizer_saturation_title" msgid="2999486412114963068">"Intensidade"</string>
+ <string name="daltonizer_saturation_unavailable_summary" msgid="8319753055567798775">"Indisponível para o modo escala de cinza ou quando a correção de cor está desativada"</string>
<string name="daltonizer_mode_deuteranomaly_summary" msgid="2117727423019598455">"Dificuldade com a cor verde, deuteranomalia"</string>
<string name="daltonizer_mode_protanomaly_summary" msgid="4617032854982040748">"Dificuldade com a cor vermelha, protanomalia"</string>
<string name="daltonizer_mode_tritanomaly_summary" msgid="2428218320118180070">"Tritanomalia"</string>
@@ -2418,15 +2412,8 @@
<string name="color_cyan" msgid="4341758639597035927">"Ciano"</string>
<string name="color_yellow" msgid="5957551912912679058">"Amarelo"</string>
<string name="color_magenta" msgid="8943538189219528423">"Magenta"</string>
- <string name="enable_service_title" msgid="7231533866953706788">"Permitir que o <xliff:g id="SERVICE">%1$s</xliff:g> tenha controle total do seu dispositivo?"</string>
<string name="capabilities_list_title" msgid="1225853611983394386">"<xliff:g id="SERVICE">%1$s</xliff:g> precisa:"</string>
<string name="touch_filtered_warning" msgid="4225815157460318241">"Como um app está ocultando uma solicitação de permissão, as configurações não podem confirmar sua resposta."</string>
- <string name="accessibility_service_warning" msgid="6779187188736432618">"<xliff:g id="SERVICE">%1$s</xliff:g> está solicitando controle total deste dispositivo. O serviço pode ler a tela e realizar ações em nome de usuários com necessidades especiais. Esse nível de controle não é adequado para a maioria dos apps."</string>
- <string name="accessibility_service_warning_description" msgid="6573203795976134751">"O controle total é adequado para apps que ajudam você com as necessidades de acessibilidade, mas não para a maioria dos apps."</string>
- <string name="accessibility_service_screen_control_title" msgid="324795030658109870">"Ver e controlar tela"</string>
- <string name="accessibility_service_screen_control_description" msgid="8431940515157990426">"Pode ler todo o conteúdo na tela e mostrar conteúdo sobreposto a outros apps."</string>
- <string name="accessibility_service_action_perform_title" msgid="1449360056585337833">"Ver e realizar ações"</string>
- <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"Pode monitorar suas interações com um app ou um sensor de hardware e interagir com apps em seu nome."</string>
<string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Permitir"</string>
<string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Negar"</string>
<string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Desativar"</string>
@@ -3656,9 +3643,9 @@
<string name="notif_listener_not_migrated" msgid="6265206376374278226">"O app não é compatível com as configurações avançadas."</string>
<string name="notif_listener_more_settings" msgid="1348409392307208921">"Mais configurações"</string>
<string name="notif_listener_more_settings_desc" msgid="7995492074281663658">"Mais configurações estão disponíveis neste app"</string>
- <string name="notification_polite_title" msgid="4737150709382859870">"Notificações adaptáveis"</string>
- <string name="notification_polite_main_control_title" msgid="7267191551379543859">"Usar notificações adaptáveis"</string>
- <string name="notification_polite_description" msgid="7749280535620291610">"Se chegarem muitas notificações em um período curto de tempo, o smartphone vai diminuir o volume e minimizar pop-ups na tela por até dois minutos. Ligações, alarmes e conversas prioritárias ainda vão vibrar, emitir um som ou aparecer na tela. Todas as notificações podem ser acessadas ao puxar de cima para baixo na tela."</string>
+ <string name="notification_polite_title" msgid="6121016426991791557">"Período de espera para notificações"</string>
+ <string name="notification_polite_main_control_title" msgid="5812529809151927149">"Atenuar notificações"</string>
+ <string name="notification_polite_description" msgid="5497748284893832854">"Se chegarem muitas notificações em um curto período, o dispositivo vai diminuir o volume e minimizar alertas por até 2 minutos. Isso não afeta ligações, alarmes e conversas prioritárias. \n\nAs notificações recebidas durante a atenuação podem ser encontradas ao deslizar de cima para baixo na tela."</string>
<string name="notification_polite_work" msgid="8823596456640216391">"Aplicar a perfis de trabalho"</string>
<string name="notification_polite_work_summary" msgid="5014189280132951378">"Aplicar em apps do perfil de trabalho"</string>
<string name="vr_listeners_title" msgid="4960357292472540964">"Serviços de ajuda para RV"</string>
@@ -3815,7 +3802,9 @@
<string name="zen_mode_apps_priority_apps" msgid="7386196048313716076">"Apps selecionados"</string>
<string name="zen_mode_apps_none_apps" msgid="2493642312793604327">"Nenhum"</string>
<string name="zen_mode_apps_subtext" msgid="1764211974662012877">"{count,plural,offset:2 =0{Nenhum app pode interromper}=1{{app_1} pode interromper}=2{{app_1} e {app_2} podem interromper}=3{{app_1}, {app_2} e {app_3} podem interromper}one{{app_1}, {app_2} e mais # podem interromper}other{{app_1}, {app_2} e mais # podem interromper}}"</string>
+ <string name="zen_mode_apps_work_app" msgid="8528767938316361588">"<xliff:g id="APP_LABEL">%s</xliff:g> (trabalho)"</string>
<string name="zen_mode_apps_calculating" msgid="5420121396943539286">"Calculando…"</string>
+ <string name="zen_mode_plus_n_items" msgid="6136713354369243421">"+<xliff:g id="NUMBER">%d</xliff:g>"</string>
<string name="zen_mode_bypassing_apps" msgid="625309443389126481">"Permitir que apps modifiquem o \"Não perturbe\""</string>
<string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"Apps que podem fazer interrupções"</string>
<string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"Selecionar mais apps"</string>
@@ -3833,6 +3822,7 @@
<string name="zen_mode_sounds_none" msgid="6557474361948269420">"Nada pode interromper"</string>
<string name="zen_mode_people_none" msgid="4613147461974255046">"Ninguém pode interromper"</string>
<string name="zen_mode_people_some" msgid="9101872681298810281">"Algumas pessoas podem interromper"</string>
+ <string name="zen_mode_people_repeat_callers" msgid="4499084111069828761">"Autores de ligações repetidas podem interromper o modo"</string>
<string name="zen_mode_people_all" msgid="311036110283015205">"Todas as pessoas podem interromper"</string>
<string name="zen_mode_repeat_callers" msgid="2270356100287792138">"Autores de chamadas repetidas"</string>
<string name="zen_mode_repeat_callers_title" msgid="8016699240338264781">"Permitir autores de chamadas repetidas"</string>
@@ -3856,6 +3846,34 @@
<string name="zen_mode_new_custom_title" msgid="321750898430776191">"Modo de adição"</string>
<string name="zen_mode_new_custom_default_name" msgid="2778307946775085105">"Modo personalizado"</string>
<string name="zen_mode_edit_name_hint" msgid="4584652062167540536">"Nome do modo"</string>
+ <string name="zen_mode_trigger_title_schedule_calendar" msgid="9206609438617550331">"Eventos da agenda"</string>
+ <string name="zen_mode_trigger_title_bedtime" msgid="5086070900588489978">"Rotina de sono"</string>
+ <string name="zen_mode_trigger_title_driving" msgid="7890990983453164403">"Ao dirigir"</string>
+ <string name="zen_mode_trigger_title_generic" msgid="601273385119550420">"Vinculado ao app"</string>
+ <string name="zen_mode_trigger_summary_settings_in_app" msgid="4860667191183702601">"Informações e configurações em <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+ <string name="zen_mode_trigger_summary_managed_by_app" msgid="8631011868193102098">"Gerenciado por <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+ <string name="zen_mode_confirm_disable_title" msgid="1232297660775719796">"Desativar modo"</string>
+ <string name="zen_mode_confirm_disable_message" msgid="7315541221665718491">"Ao desativar o recurso, o modo não vai mais funcionar conforme esperado e suas configurações ficarão ocultas."</string>
+ <string name="zen_mode_action_disable" msgid="3552921561331044881">"Desativar"</string>
+ <string name="zen_mode_confirm_enable_title" msgid="5683371335847448595">"Ativar modo"</string>
+ <string name="zen_mode_confirm_enable_message" msgid="7017879133260011419">"Ao ativar o recurso, o modo será ativado automaticamente de acordo com a programação dele."</string>
+ <string name="zen_mode_action_enable" msgid="1161480633223176531">"Ativar"</string>
+ <!-- no translation found for zen_mode_blurb_schedule_time (8223898702097484009) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_schedule_calendar (382177907856065945) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_bedtime (6155075956151013457) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_driving (1316054379000667305) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_immersive (5884004861848687869) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_theater (2999237960059524225) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_managed (5473921634985032149) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_generic (3041601339807075625) -->
+ <skip />
<string name="warning_button_text" msgid="1274234338874005639">"Alerta"</string>
<string name="suggestion_button_close" msgid="6865170855573283759">"Fechar"</string>
<string name="device_feedback" msgid="5351614458411688608">"Enviar feedback sobre o dispositivo"</string>
@@ -4842,9 +4860,8 @@
<string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"Bateria"</string>
<string name="settings_panel_title" msgid="346363079938069215">"Painel de configurações"</string>
<string name="enable_desktop_mode" msgid="5644818402534562302">"Ativar janelas de forma livre"</string>
- <string name="enable_desktop_mode_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>
+ <!-- no translation found for enable_desktop_mode_on_secondary_display (2609567824593768780) -->
+ <skip />
<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>
@@ -5019,7 +5036,6 @@
<string name="default_active_sim_mobile_data" msgid="6798083892814045301">"dados móveis"</string>
<string name="wifi_scan_notify_message" msgid="1331238142061476869">"Para melhorar a experiência no dispositivo, os apps e serviços ainda podem procurar redes Wi-Fi a qualquer momento, mesmo quando essa conexão está desativada. Isso pode ser usado, por exemplo, para melhorar recursos e serviços baseados na localização. Você pode mudar essa opção nas configurações de busca por Wi-Fi."</string>
<string name="wifi_scan_change" msgid="8438320311511852918">"Mudar"</string>
- <string name="preference_summary_default_combination" msgid="4643585915107796253">"<xliff:g id="STATE">%1$s</xliff:g> / <xliff:g id="NETWORKMODE">%2$s</xliff:g>"</string>
<string name="mobile_data_connection_active" msgid="2422223108911581552">"Conectado"</string>
<string name="mobile_data_temp_connection_active" msgid="3430470299756236413">"Temporariamente conectado"</string>
<string name="mobile_data_temp_using" msgid="5211002380149434155">"Temporariamente usando: <xliff:g id="SUBNAME">%1$s</xliff:g>"</string>
@@ -5165,9 +5181,11 @@
<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="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_enable_freeform_support" msgid="3697462756493543645">"É necessário reiniciar o dispositivo para permitir as janelas em formato livre."</string>
+ <!-- no translation found for reboot_dialog_override_desktop_mode (7480950772574354130) -->
+ <skip />
+ <!-- no translation found for reboot_dialog_enable_desktop_mode_on_secondary_display (1153621881052401924) -->
+ <skip />
<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>
@@ -5398,5 +5416,6 @@
<string name="audio_streams_main_page_password_dialog_join_button" msgid="2967747276379153408">"Ouvir o stream"</string>
<string name="audio_streams_main_page_qr_code_scanner_summary" msgid="5312980105735143360">"Ler o QR code de um stream de áudio para ouvir com <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
<string name="audio_streams_main_page_password_dialog_cannot_edit" msgid="9020898619297520153">"Não é possível editar a senha enquanto compartilha. Para mudar a senha, primeiro desligue o compartilhamento de áudio."</string>
+ <string name="audio_streams_qr_code_scanner_label" msgid="8799703301071378034">"Leitor de QR code"</string>
<string name="homepage_search" msgid="6759334912284663559">"Pesquisar configurações"</string>
</resources>
diff --git a/res/values-ro/strings.xml b/res/values-ro/strings.xml
index 8c68d10..407d8a6 100644
--- a/res/values-ro/strings.xml
+++ b/res/values-ro/strings.xml
@@ -41,6 +41,8 @@
<string name="radioInfo_data_suspended" msgid="2001254415431299603">"Suspendat"</string>
<string name="radioInfo_unknown" msgid="2892562356748600367">"Necunoscut"</string>
<string name="preview_pager_content_description" msgid="3762247188224576303">"Previzualizare"</string>
+ <!-- no translation found for qr_code_content_description (1852208464419291347) -->
+ <skip />
<string name="font_size_make_smaller_desc" msgid="4978038055549590140">"Micșorează"</string>
<string name="font_size_make_larger_desc" msgid="5583046033381722247">"Mărește"</string>
<string name="stay_awake_on_fold_title" msgid="6590454679898134221">"Întotdeauna"</string>
@@ -283,7 +285,7 @@
<string name="location_settings_summary_location_off" msgid="4797932754681162262">"Dezactivat"</string>
<string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{Activată / # aplicație are acces la locație}few{Activată / # aplicații au acces la locație}other{Activată / # de aplicații au acces la locație}}"</string>
<string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"Se încarcă…"</string>
- <string name="location_settings_footer_general" msgid="1040507068701188821">"Aplicațiile cu permisiunea pentru Dispozitive din apropiere pot stabili poziția relativă a dispozitivelor conectate."</string>
+ <string name="location_settings_footer_general" msgid="3447585552176173502">"Aplicațiile cu permisiunea Dispozitive din apropiere pot stabili poziția relativă a dispozitivelor conectate."</string>
<string name="location_settings_footer_location_off" msgid="8568995909147566720">"Accesul la locație este dezactivat pentru aplicații și servicii. Locația dispozitivului poate fi trimisă serviciilor de urgență atunci când suni sau trimiți un mesaj la un număr de urgență."</string>
<string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Află mai multe despre Setările privind locația"</string>
<string name="location_settings_tooltip_text_for_chrome" msgid="5781821709250544575">"Ca să schimbi, accesează Setările ChromeOS > Confidențialitate și securitate > Opțiuni de confidențialitate > Acces la locație"</string>
@@ -850,7 +852,6 @@
<string name="nfc_reboot_dialog_title" msgid="2033983438635768169">"Repornești dispozitivul?"</string>
<string name="nfc_reboot_dialog_message" msgid="4929353168157966992">"Înregistrarea NFC detaliată este menită exclusiv pentru dezvoltare Datele NFC suplimentare sunt incluse în rapoartele de eroare, care pot conține informații private. Repornește dispozitivul ca să schimbi setarea."</string>
<string name="nfc_reboot_dialog_confirm" msgid="4769763632008584567">"Repornește"</string>
- <string name="keywords_external_display" msgid="4181375057920134909">"oglindește, ecran extern, ecran conectat, ecran usb, rezoluție, rotire"</string>
<string name="external_display_on" msgid="2560104443500154333">"Activat"</string>
<string name="external_display_off" msgid="5634413756025351374">"Dezactivat"</string>
<string name="external_display_settings_title" msgid="6256884595821605779">"Ecran extern"</string>
@@ -1918,6 +1919,8 @@
<string name="slow_keys_summary" msgid="1784371292745423292">"Ajustează timpul necesar pentru ca o apăsare de tastă să se activeze la <xliff:g id="SLOW_KEYS_THRESHOLD">%1$d</xliff:g> ms"</string>
<string name="sticky_keys" msgid="7317317044898161747">"Taste adezive"</string>
<string name="sticky_keys_summary" msgid="1844953803625480623">"Apasă câte o tastă pentru comenzile rapide în loc să ții apăsate tastele împreună"</string>
+ <string name="mouse_keys" msgid="6237254627808525540">"Butoanele mouse-ului"</string>
+ <string name="mouse_keys_summary" msgid="2396247040177734245">"Folosește tastatura fizică pentru a controla mouse-ul."</string>
<string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"Comenzi rapide de la tastatură"</string>
<string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"Afișează lista de comenzi rapide"</string>
<string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"Tastaturi și instrumente pt. profilul de serviciu"</string>
@@ -1942,14 +1945,10 @@
<string name="pointer_fill_style_yellow_button" msgid="5025969961559379024">"Schimbă stilul de umplere în galben"</string>
<string name="pointer_fill_style_pink_button" msgid="4106218142489635673">"Schimbă stilul de umplere în roz"</string>
<string name="pointer_fill_style_blue_button" msgid="5594958078854032785">"Schimbă stilul de umplere în albastru"</string>
- <!-- no translation found for pointer_stroke_style (1886986630216050665) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_white (673686194443825383) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_black (4655806167067437330) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_none (8953927511729800247) -->
- <skip />
+ <string name="pointer_stroke_style" msgid="1886986630216050665">"Stilul pointerului"</string>
+ <string name="pointer_stroke_style_name_white" msgid="673686194443825383">"Alb"</string>
+ <string name="pointer_stroke_style_name_black" msgid="4655806167067437330">"Negru"</string>
+ <string name="pointer_stroke_style_name_none" msgid="8953927511729800247">"Niciunul"</string>
<string name="trackpad_touch_gesture" msgid="8641725062131922497">"Învață gesturi pentru touchpad"</string>
<string name="keywords_touchpad" msgid="8159846254066666032">"trackpad, track pad, mouse, cursor, derulează, glisează, dă clic dreapta, dă clic, indicator"</string>
<string name="keywords_trackpad_bottom_right_tap" msgid="1285062446073929305">"dă clic dreapta, atinge"</string>
@@ -2179,8 +2178,6 @@
<string name="accessibility_shortcut_edit_dialog_summary_floating_button" msgid="6266489864614886247">"Atinge butonul flotant"</string>
<string name="accessibility_shortcut_edit_dialog_title_software_by_gesture" msgid="4775049370625630546">"Gest de accesibilitate"</string>
<string name="accessibility_shortcut_edit_dialog_summary_software" msgid="8315934725362849788">"Atinge butonul de accesibilitate <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g> din partea de jos a ecranului. Pentru a comuta între funcții, atinge lung butonul de accesibilitate."</string>
- <string name="accessibility_shortcut_edit_dialog_summary_software_gesture" msgid="8292555254353761635">"Glisează în sus cu două degete din partea de jos a ecranului.\n\nPentru a comuta între funcții, glisează în sus cu două degete și ține apăsat."</string>
- <string name="accessibility_shortcut_edit_dialog_summary_software_gesture_talkback" msgid="84483464524360845">"Glisează în sus cu trei degete din partea de jos a ecranului.\n\nPentru a comuta între funcții, glisează în sus cu trei degete și ține apăsat."</string>
<string name="accessibility_shortcut_edit_dialog_summary_gesture" msgid="2081123009255579884">"{count,plural, =1{Glisează în sus din partea de jos a ecranului. Pentru a comuta între funcții, glisează în sus și apasă lung.}few{Glisează în sus cu # degete din partea de jos a ecranului. Pentru a comuta între funcții, glisează în sus cu # degete și apasă lung.}other{Glisează în sus cu # degete din partea de jos a ecranului. Pentru a comuta între funcții, glisează în sus cu # degete și apasă lung.}}"</string>
<string name="accessibility_shortcut_edit_dialog_summary_software_floating" msgid="4459254227203203324"><annotation id="link">"Mai multe opțiuni"</annotation></string>
<string name="footer_learn_more_content_description" msgid="8843798273152131341">"Află mai multe despre <xliff:g id="SERVICE">%1$s</xliff:g>"</string>
@@ -2191,16 +2188,12 @@
<string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="844089763968552142">"Butoane de volum"</string>
<string name="accessibility_shortcut_hardware_keyword" msgid="2483152542320987022">"butoane de volum"</string>
<string name="accessibility_shortcut_edit_dialog_summary_hardware" msgid="2503134386397991634">"Apasă lung ambele butoane de volum"</string>
- <string name="accessibility_shortcut_edit_dialog_title_two_finger_double_tap" msgid="2271778556854020996">"Atinge de două ori ecranul cu două degete"</string>
<string name="accessibility_shortcut_edit_screen_title_two_finger_double_tap" msgid="8952595692906527694">"Atinge de două ori cu %1$d degete"</string>
<string name="accessibility_shortcut_edit_screen_summary_two_finger_double_tap" msgid="385404127425496362">"Atinge rapid ecranul de două ori cu %1$d degete"</string>
<string name="accessibility_shortcut_edit_screen_title_triple_tap" msgid="3314488747597058942">"Atinge de trei ori"</string>
<string name="accessibility_shortcut_edit_screen_summary_triple_tap" msgid="4839204951599629871">"Atinge rapid ecranul de %1$d ori. Această acțiune poate încetini funcționarea dispozitivului."</string>
<string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="6271718715836961167">"Atinge de două ori cu %1$d degete"</string>
- <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"Atinge rapid ecranul de {0,number,integer} ori cu două degete"</string>
- <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"Atinge ecranul de trei ori"</string>
<string name="accessibility_shortcut_triple_tap_keyword" msgid="5359347130888464334">"atinge de trei ori"</string>
- <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"Atinge rapid ecranul de {0,number,integer} ori. Această comandă rapidă poate încetini funcționarea dispozitivului"</string>
<string name="accessibility_shortcut_edit_dialog_title_advance" msgid="4567868630655591506">"Avansate"</string>
<string name="accessibility_screen_magnification_navbar_configuration_warning" msgid="266736851606791552">"Butonul Accesibilitate este setat pe <xliff:g id="SERVICE">%1$s</xliff:g>. Pentru a folosi mărirea, atinge lung butonul Accesibilitate și apoi selectează mărirea."</string>
<string name="accessibility_screen_magnification_gesture_navigation_warning" msgid="991017769735632046">"Gestul de accesibilitate este setat la <xliff:g id="SERVICE">%1$s</xliff:g>. Pentru a folosi mărirea, glisează în sus cu două degete din partea de jos a ecranului și ține apăsat. Apoi selectează mărirea."</string>
@@ -2369,6 +2362,7 @@
<string name="daltonizer_mode_tritanomaly_title" msgid="2278786218762602022">"Albastru-galben"</string>
<string name="daltonizer_mode_grayscale_title" msgid="152005391387952588">"Tonuri de gri"</string>
<string name="daltonizer_saturation_title" msgid="2999486412114963068">"Intensitate"</string>
+ <string name="daltonizer_saturation_unavailable_summary" msgid="8319753055567798775">"Indisponibil pentru modul Tonuri de gri sau când corecția culorii este dezactivată"</string>
<string name="daltonizer_mode_deuteranomaly_summary" msgid="2117727423019598455">"Percepție slabă a culorii verde, deuteranomalie"</string>
<string name="daltonizer_mode_protanomaly_summary" msgid="4617032854982040748">"Percepție slabă a culorii roșu, protanomalie"</string>
<string name="daltonizer_mode_tritanomaly_summary" msgid="2428218320118180070">"Tritanomalie"</string>
@@ -2418,15 +2412,8 @@
<string name="color_cyan" msgid="4341758639597035927">"Cyan"</string>
<string name="color_yellow" msgid="5957551912912679058">"Galben"</string>
<string name="color_magenta" msgid="8943538189219528423">"Magenta"</string>
- <string name="enable_service_title" msgid="7231533866953706788">"Permiți serviciului <xliff:g id="SERVICE">%1$s</xliff:g> să aibă control total asupra dispozitivului tău?"</string>
<string name="capabilities_list_title" msgid="1225853611983394386">"<xliff:g id="SERVICE">%1$s</xliff:g> are funcțiile:"</string>
<string name="touch_filtered_warning" msgid="4225815157460318241">"Deoarece o aplicație acoperă o solicitare de permisiune, Setările nu îți pot verifica răspunsul."</string>
- <string name="accessibility_service_warning" msgid="6779187188736432618">"<xliff:g id="SERVICE">%1$s</xliff:g> solicită control total asupra acestui dispozitiv. Serviciul poate citi ecranul și poate acționa în numele utilizatorilor cu nevoi de accesibilitate. Acest nivel de control nu este adecvat pentru majoritatea aplicațiilor."</string>
- <string name="accessibility_service_warning_description" msgid="6573203795976134751">"Controlul total este adecvat pentru aplicații care te ajută cu accesibilitatea, însă nu pentru majoritatea aplicaților."</string>
- <string name="accessibility_service_screen_control_title" msgid="324795030658109870">"Te vede și-ți controlează ecranul"</string>
- <string name="accessibility_service_screen_control_description" msgid="8431940515157990426">"Poate citi tot conținutul de pe ecran și poate afișa conținut peste alte aplicații."</string>
- <string name="accessibility_service_action_perform_title" msgid="1449360056585337833">"Îți vede interacțiunile și le realizează"</string>
- <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"Poate urmări interacțiunile tale cu o aplicație sau cu un senzor hardware și poate interacționa cu aplicații în numele tău."</string>
<string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Permite"</string>
<string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Refuză"</string>
<string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Dezactivează"</string>
@@ -3368,10 +3355,8 @@
<string name="zen_mode_automation_settings_title" msgid="3709324184191870926">"Programe"</string>
<string name="zen_mode_delete_automatic_rules" msgid="5020468289267191765">"Șterge programele"</string>
<string name="zen_mode_schedule_delete" msgid="5383420576833765114">"Ștergeți"</string>
- <!-- no translation found for zen_mode_menu_rename_mode (4681802125016390837) -->
- <skip />
- <!-- no translation found for zen_mode_menu_delete_mode (5380084696402157428) -->
- <skip />
+ <string name="zen_mode_menu_rename_mode" msgid="4681802125016390837">"Redenumește"</string>
+ <string name="zen_mode_menu_delete_mode" msgid="5380084696402157428">"Șterge"</string>
<string name="zen_mode_delete_mode_confirmation" msgid="7594340592051947392">"Ștergi modul <xliff:g id="MODE">%1$s</xliff:g>?"</string>
<string name="zen_mode_rule_name_edit" msgid="1053237022416700481">"Editează"</string>
<string name="zen_mode_automation_settings_page_title" msgid="6217433860514433311">"Programe"</string>
@@ -3395,8 +3380,7 @@
<string name="zen_mode_visual_signals_settings_subtitle" msgid="7433077540895876672">"Permite semnale vizuale"</string>
<string name="mode_interruption_filter_title" msgid="3343846700214702347">"Concentrează-te"</string>
<string name="mode_device_effects_title" msgid="5857008332618433744">"Acțiuni suplimentare"</string>
- <!-- no translation found for modes_sound_summary_off (6972648204528227879) -->
- <skip />
+ <string name="modes_sound_summary_off" msgid="6972648204528227879">"{count,plural, =0{Dezactivat}=1{Dezactivat / Un mod se poate activa automat}few{Dezactivat / # moduri se pot activa automat}other{Dezactivat / # de moduri se pot activa automat}}"</string>
<string name="mode_display_settings_title" msgid="8132825978346535472">"Setări de afișare"</string>
<string name="mode_display_options_section" msgid="5151597748243866532">"Opțiuni de afișare"</string>
<string name="mode_grayscale_title" msgid="6027553257331235461">"Tonuri de gri"</string>
@@ -3659,9 +3643,9 @@
<string name="notif_listener_not_migrated" msgid="6265206376374278226">"Aplicația nu acceptă setările optimizate"</string>
<string name="notif_listener_more_settings" msgid="1348409392307208921">"Mai multe setări"</string>
<string name="notif_listener_more_settings_desc" msgid="7995492074281663658">"Mai multe setări sunt disponibile în această aplicație"</string>
- <string name="notification_polite_title" msgid="4737150709382859870">"Notificări adaptabile"</string>
- <string name="notification_polite_main_control_title" msgid="7267191551379543859">"Folosește notificări adaptabile"</string>
- <string name="notification_polite_description" msgid="7749280535620291610">"Când primești multe notificări într-un timp scurt, telefonul va reduce volumul și va minimiza ferestrele pop-up de pe ecran timp de până la două minute. Apelurile, alarmele și conversațiile prioritare vor declanșa în continuare vibrații sau alerte sonore ori vor apărea pe ecran. Găsești ușor toate notificările dacă tragi în jos din partea de sus a ecranului."</string>
+ <string name="notification_polite_title" msgid="6121016426991791557">"Reducerea sunetului notificărilor"</string>
+ <string name="notification_polite_main_control_title" msgid="5812529809151927149">"Folosește reducerea sunetului notificărilor"</string>
+ <string name="notification_polite_description" msgid="5497748284893832854">"Când primești multe notificări într-un timp scurt, dispozitivul va reduce volumul și va minimiza alertele timp de până la două minute. Apelurile, alarmele și conversațiile prioritare nu vor fi afectate. \n\nPoți accesa notificările primite în perioada de reducere a sunetului dacă tragi în jos din partea de sus a ecranului."</string>
<string name="notification_polite_work" msgid="8823596456640216391">"Aplică profilurilor de serviciu"</string>
<string name="notification_polite_work_summary" msgid="5014189280132951378">"Aplică pentru aplicațiile din profilul de serviciu"</string>
<string name="vr_listeners_title" msgid="4960357292472540964">"Servicii de ajutor pentru RV"</string>
@@ -3818,7 +3802,9 @@
<string name="zen_mode_apps_priority_apps" msgid="7386196048313716076">"Aplicațiile selectate"</string>
<string name="zen_mode_apps_none_apps" msgid="2493642312793604327">"Niciuna"</string>
<string name="zen_mode_apps_subtext" msgid="1764211974662012877">"{count,plural,offset:2 =0{Nicio aplicație nu îl poate întrerupe}=1{{app_1} îl poate întrerupe}=2{{app_1} și {app_2} îl pot întrerupe}=3{{app_1}, {app_2} și {app_3} îl pot întrerupe}few{{app_1}, {app_2} și încă # îl pot întrerupe}other{{app_1}, {app_2} și încă # îl pot întrerupe}}"</string>
+ <string name="zen_mode_apps_work_app" msgid="8528767938316361588">"<xliff:g id="APP_LABEL">%s</xliff:g> (Serviciu)"</string>
<string name="zen_mode_apps_calculating" msgid="5420121396943539286">"Se calculează..."</string>
+ <string name="zen_mode_plus_n_items" msgid="6136713354369243421">"+<xliff:g id="NUMBER">%d</xliff:g>"</string>
<string name="zen_mode_bypassing_apps" msgid="625309443389126481">"Permite aplicațiilor să ignore"</string>
<string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"Aplicații care pot întrerupe"</string>
<string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"Selectează mai multe aplicații"</string>
@@ -3836,6 +3822,7 @@
<string name="zen_mode_sounds_none" msgid="6557474361948269420">"Nimic nu îl poate întrerupe"</string>
<string name="zen_mode_people_none" msgid="4613147461974255046">"Nimeni nu îl poate întrerupe"</string>
<string name="zen_mode_people_some" msgid="9101872681298810281">"Anumite persoane îl pot întrerupe"</string>
+ <string name="zen_mode_people_repeat_callers" msgid="4499084111069828761">"Apelanții care revin pot întrerupe"</string>
<string name="zen_mode_people_all" msgid="311036110283015205">"Oricine îl poate întrerupe"</string>
<string name="zen_mode_repeat_callers" msgid="2270356100287792138">"Apelanți care revin"</string>
<string name="zen_mode_repeat_callers_title" msgid="8016699240338264781">"Permite apelanți care revin"</string>
@@ -3855,13 +3842,37 @@
<string name="zen_mode_summary_alarms_only_by_hour" msgid="7400910210950788163">"{count,plural, =1{Schimbă la Numai alarme pentru o oră, până la {time}}few{Schimbă la Numai alarme pentru # ore, până la {time}}other{Schimbă la Numai alarme pentru # de ore, până la {time}}}"</string>
<string name="zen_mode_summary_alarms_only_by_time" msgid="8140619669703968810">"Schimbă la „Numai alarme” până la <xliff:g id="FORMATTEDTIME">%1$s</xliff:g>"</string>
<string name="zen_mode_summary_always" msgid="722093064250082317">"Schimbă la „Întrerupe întotdeauna”"</string>
- <!-- no translation found for zen_mode_rename_title (8146882272966214558) -->
+ <string name="zen_mode_rename_title" msgid="8146882272966214558">"Editează modul"</string>
+ <string name="zen_mode_new_custom_title" msgid="321750898430776191">"Adaugă un mod"</string>
+ <string name="zen_mode_new_custom_default_name" msgid="2778307946775085105">"Mod personalizat"</string>
+ <string name="zen_mode_edit_name_hint" msgid="4584652062167540536">"Numele modului"</string>
+ <string name="zen_mode_trigger_title_schedule_calendar" msgid="9206609438617550331">"Evenimente din calendar"</string>
+ <string name="zen_mode_trigger_title_bedtime" msgid="5086070900588489978">"Program de somn"</string>
+ <string name="zen_mode_trigger_title_driving" msgid="7890990983453164403">"La volan"</string>
+ <string name="zen_mode_trigger_title_generic" msgid="601273385119550420">"Conectat la aplicație"</string>
+ <string name="zen_mode_trigger_summary_settings_in_app" msgid="4860667191183702601">"Informații și setări din <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+ <string name="zen_mode_trigger_summary_managed_by_app" msgid="8631011868193102098">"Gestionat de <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+ <string name="zen_mode_confirm_disable_title" msgid="1232297660775719796">"Dezactivează modul"</string>
+ <string name="zen_mode_confirm_disable_message" msgid="7315541221665718491">"Dacă dezactivezi funcția, modul nu va mai funcționa așa cum vrei și setările sale se vor ascunde."</string>
+ <string name="zen_mode_action_disable" msgid="3552921561331044881">"Dezactivează"</string>
+ <string name="zen_mode_confirm_enable_title" msgid="5683371335847448595">"Activează modul"</string>
+ <string name="zen_mode_confirm_enable_message" msgid="7017879133260011419">"Dacă activezi funcția, modul se va activa automat în funcție de program"</string>
+ <string name="zen_mode_action_enable" msgid="1161480633223176531">"Activează"</string>
+ <!-- no translation found for zen_mode_blurb_schedule_time (8223898702097484009) -->
<skip />
- <!-- no translation found for zen_mode_new_custom_title (321750898430776191) -->
+ <!-- no translation found for zen_mode_blurb_schedule_calendar (382177907856065945) -->
<skip />
- <!-- no translation found for zen_mode_new_custom_default_name (2778307946775085105) -->
+ <!-- no translation found for zen_mode_blurb_bedtime (6155075956151013457) -->
<skip />
- <!-- no translation found for zen_mode_edit_name_hint (4584652062167540536) -->
+ <!-- no translation found for zen_mode_blurb_driving (1316054379000667305) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_immersive (5884004861848687869) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_theater (2999237960059524225) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_managed (5473921634985032149) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_generic (3041601339807075625) -->
<skip />
<string name="warning_button_text" msgid="1274234338874005639">"Avertisment"</string>
<string name="suggestion_button_close" msgid="6865170855573283759">"Închide"</string>
@@ -4849,9 +4860,8 @@
<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="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>
+ <!-- no translation found for enable_desktop_mode_on_secondary_display (2609567824593768780) -->
+ <skip />
<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>
@@ -5027,7 +5037,6 @@
<string name="default_active_sim_mobile_data" msgid="6798083892814045301">"date mobile"</string>
<string name="wifi_scan_notify_message" msgid="1331238142061476869">"Pentru a îmbunătăți experiența cu dispozitivul, aplicațiile și serviciile pot să caute în continuare rețele Wi‑Fi chiar și atunci când conexiunea Wi-Fi este dezactivată. Această permisiune poate fi folosită, de exemplu, pentru a îmbunătăți funcțiile și serviciile bazate pe locație. Poți să modifici acest aspect din setările pentru căutarea de rețele Wi-Fi."</string>
<string name="wifi_scan_change" msgid="8438320311511852918">"Modifică"</string>
- <string name="preference_summary_default_combination" msgid="4643585915107796253">"<xliff:g id="STATE">%1$s</xliff:g> / <xliff:g id="NETWORKMODE">%2$s</xliff:g>"</string>
<string name="mobile_data_connection_active" msgid="2422223108911581552">"Conectat"</string>
<string name="mobile_data_temp_connection_active" msgid="3430470299756236413">"Conectat temporar"</string>
<string name="mobile_data_temp_using" msgid="5211002380149434155">"Folosește temporar <xliff:g id="SUBNAME">%1$s</xliff:g>"</string>
@@ -5173,9 +5182,11 @@
<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="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_enable_freeform_support" msgid="3697462756493543645">"Este nevoie de o repornire pentru a permite ferestrele cu formă liberă."</string>
+ <!-- no translation found for reboot_dialog_override_desktop_mode (7480950772574354130) -->
+ <skip />
+ <!-- no translation found for reboot_dialog_enable_desktop_mode_on_secondary_display (1153621881052401924) -->
+ <skip />
<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>
@@ -5293,10 +5304,8 @@
<string name="show_captions_enabled" msgid="7089043007924626">"Activată"</string>
<string name="live_caption_disabled" msgid="3562035026547887366">"Dezactivate"</string>
<string name="live_caption_enabled" msgid="5269360946200718949">"Activate"</string>
- <!-- no translation found for audio_seek_bar_state_left_first (8814986910920838972) -->
- <skip />
- <!-- no translation found for audio_seek_bar_state_right_first (1999368979633398876) -->
- <skip />
+ <string name="audio_seek_bar_state_left_first" msgid="8814986910920838972">"Audio %1$d%% stânga, %2$d%% dreapta"</string>
+ <string name="audio_seek_bar_state_right_first" msgid="1999368979633398876">"Audio %1$d%% dreapta, %2$d%% stânga"</string>
<string name="about_phone_device_name_warning" msgid="3243226572404472381">"Numele dispozitivului este vizibil pentru aplicațiile instalate. Poate fi văzut și de alte persoane când te conectezi la dispozitivele Bluetooth sau la o rețea Wi-Fi sau când configurezi un hotspot Wi-Fi."</string>
<string name="grammatical_gender_title" msgid="8584242850477270828">"Genul gramatical"</string>
<string name="grammatical_gender_dialog_title" msgid="8754048592099871587">"Selectează genul gramatical"</string>
@@ -5408,5 +5417,6 @@
<string name="audio_streams_main_page_password_dialog_join_button" msgid="2967747276379153408">"Ascultă streamul"</string>
<string name="audio_streams_main_page_qr_code_scanner_summary" msgid="5312980105735143360">"Scanează un cod QR de stream audio pentru a-l asculta folosind <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
<string name="audio_streams_main_page_password_dialog_cannot_edit" msgid="9020898619297520153">"Nu poți edita parola în timpul permiterii accesului. Pentru a schimba parola, mai întâi dezactivează permiterea accesului la audio."</string>
+ <string name="audio_streams_qr_code_scanner_label" msgid="8799703301071378034">"Scanner de coduri QR"</string>
<string name="homepage_search" msgid="6759334912284663559">"Caută în setări"</string>
</resources>
diff --git a/res/values-ru/strings.xml b/res/values-ru/strings.xml
index 4a65128..efb1c0b 100644
--- a/res/values-ru/strings.xml
+++ b/res/values-ru/strings.xml
@@ -41,6 +41,8 @@
<string name="radioInfo_data_suspended" msgid="2001254415431299603">"Приостановлено"</string>
<string name="radioInfo_unknown" msgid="2892562356748600367">"Неизвестно"</string>
<string name="preview_pager_content_description" msgid="3762247188224576303">"Просмотр"</string>
+ <!-- no translation found for qr_code_content_description (1852208464419291347) -->
+ <skip />
<string name="font_size_make_smaller_desc" msgid="4978038055549590140">"Уменьшить"</string>
<string name="font_size_make_larger_desc" msgid="5583046033381722247">"Увеличить"</string>
<string name="stay_awake_on_fold_title" msgid="6590454679898134221">"Всегда"</string>
@@ -278,12 +280,12 @@
<string name="owner_info_settings_title" msgid="3555626140700093017">"Текст на заблокированном экране"</string>
<string name="owner_info_settings_summary" msgid="347238313388083297">"Нет текста"</string>
<string name="owner_info_settings_edit_text_hint" msgid="841926875876050274">"Например, Android Саши"</string>
- <string name="location_settings_title" msgid="8375074508036087178">"Местоположение"</string>
- <string name="location_settings_primary_switch_title" msgid="8849081766644685127">"Определять местоположение"</string>
+ <string name="location_settings_title" msgid="8375074508036087178">"Геолокация"</string>
+ <string name="location_settings_primary_switch_title" msgid="8849081766644685127">"Включить геолокацию"</string>
<string name="location_settings_summary_location_off" msgid="4797932754681162262">"Откл."</string>
<string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{Включено. Доступ к данным о местоположении есть у # приложения.}one{Включено. Доступ к данным о местоположении есть у # приложения.}few{Включено. Доступ к данным о местоположении есть у # приложений.}many{Включено. Доступ к данным о местоположении есть у # приложений.}other{Включено. Доступ к данным о местоположении есть у # приложения.}}"</string>
<string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"Загрузка…"</string>
- <string name="location_settings_footer_general" msgid="1040507068701188821">"Приложения с доступом к устройствам поблизости могут определять относительное местоположение подключенных устройств."</string>
+ <string name="location_settings_footer_general" msgid="3447585552176173502">"Приложения, у которых есть разрешение \"Устройства поблизости\", могут определять относительное местоположение подключенных устройств."</string>
<string name="location_settings_footer_location_off" msgid="8568995909147566720">"Доступ к данным о местоположении для приложений и сервисов отключен. Если вы позвоните по номеру экстренной службы или отправите на него сообщение, данные о местоположении вашего устройства могут быть переданы спасателям."</string>
<string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Подробнее о настройках местоположения…"</string>
<string name="location_settings_tooltip_text_for_chrome" msgid="5781821709250544575">"Чтобы внести изменения, выберите \"Настройки ChromeOS > Конфиденциальность и безопасность > Настройки конфиденциальности > Доступ к геоданным\""</string>
@@ -850,7 +852,6 @@
<string name="nfc_reboot_dialog_title" msgid="2033983438635768169">"Перезапустить устройство?"</string>
<string name="nfc_reboot_dialog_message" msgid="4929353168157966992">"Подробный журнал NFC ведется только в целях разработки. Дополнительные данные NFC будут включены в отчеты об ошибках и могут содержать конфиденциальную информацию. Чтобы изменить этот параметр, перезапустите устройство."</string>
<string name="nfc_reboot_dialog_confirm" msgid="4769763632008584567">"Перезапустить"</string>
- <string name="keywords_external_display" msgid="4181375057920134909">"дублирование, внешний дисплей, подключенный дисплей, usb-дисплей, разрешение, положение"</string>
<string name="external_display_on" msgid="2560104443500154333">"Включено"</string>
<string name="external_display_off" msgid="5634413756025351374">"Отключено"</string>
<string name="external_display_settings_title" msgid="6256884595821605779">"Внешний дисплей"</string>
@@ -1579,10 +1580,10 @@
<string name="network_scorer_change_active_dialog_text" msgid="7006057749370850706">"Использовать приложение \"<xliff:g id="NEW_APP">%1$s</xliff:g>\" вместо приложения \"<xliff:g id="CURRENT_APP">%2$s</xliff:g>\" для управления сетевыми подключениями?"</string>
<string name="network_scorer_change_active_no_previous_dialog_text" msgid="680685773455072321">"Использовать приложение \"<xliff:g id="NEW_APP">%s</xliff:g>\" для управления сетевыми подключениями?"</string>
<string name="location_category_recent_location_requests" msgid="2205900488782832082">"Последние запросы местоположения"</string>
- <string name="managed_profile_location_switch_title" msgid="1265007506385460066">"Геоданные для рабочего профиля"</string>
+ <string name="managed_profile_location_switch_title" msgid="1265007506385460066">"Геолокация в рабочем профиле"</string>
<string name="private_profile_location_switch_title" msgid="4127119143109855789">"Местоположение личного пространства"</string>
<string name="location_app_level_permissions" msgid="907206607664629759">"Доступ приложений к геоданным"</string>
- <string name="location_app_permission_summary_location_off" msgid="2711822936853500335">"Доступ к геоданным отключен"</string>
+ <string name="location_app_permission_summary_location_off" msgid="2711822936853500335">"Геолокация отключена"</string>
<string name="location_app_permission_summary_location_on" msgid="7552095451731948984">"{count,plural, =1{# приложение из {total} имеет доступ к данным о местоположении}one{# приложение из {total} имеет доступ к данным о местоположении}few{# приложения из {total} имеют доступ к данным о местоположении}many{# приложений из {total} имеют доступ к данным о местоположении}other{# приложения из {total} имеют доступ к данным о местоположении}}"</string>
<string name="location_category_recent_location_access" msgid="2558063524482178146">"Доступ за последнее время"</string>
<string name="location_recent_location_access_see_all" msgid="4203102419355323325">"Показать все"</string>
@@ -1652,7 +1653,7 @@
<string name="lockpassword_confirm_your_work_pin_header" msgid="4229765521391960255">"Введите PIN-код рабочего профиля"</string>
<string name="lockpassword_confirm_passwords_dont_match" msgid="2100071354970605232">"Пароли не совпадают"</string>
<string name="lockpassword_confirm_pins_dont_match" msgid="1103699575489401030">"PIN-коды не совпадают"</string>
- <string name="lockpassword_draw_your_pattern_again_header" msgid="1045638030120803622">"Начертите\\n графический\\n ключ ещё раз"</string>
+ <string name="lockpassword_draw_your_pattern_again_header" msgid="1045638030120803622">"Начертите ключ ещё раз"</string>
<string name="lockpassword_choose_lock_generic_header" msgid="5669348379247148696">"Способ блокировки"</string>
<string name="lockpassword_password_set_toast" msgid="6615759749393973795">"Пароль был установлен"</string>
<string name="lockpassword_pin_set_toast" msgid="5415783847198570890">"PIN-код был установлен"</string>
@@ -1706,7 +1707,7 @@
<string name="lockpattern_recording_inprogress" msgid="7268008332694009191">"По завершении отпустите палец."</string>
<string name="lockpattern_recording_incorrect_too_short" msgid="3351522018450593723">"Соедините не менее <xliff:g id="NUMBER">%d</xliff:g> точек."</string>
<string name="lockpattern_pattern_entered_header" msgid="7709618312713127249">"Графический ключ сохранен."</string>
- <string name="lockpattern_need_to_confirm" msgid="6489499109451714360">"Начертите ключ ещё раз."</string>
+ <string name="lockpattern_need_to_confirm" msgid="6489499109451714360">"Подтвердите графический ключ."</string>
<string name="lockpattern_pattern_confirmed_header" msgid="2969990617475456153">"Ваш новый ключ разблокировки."</string>
<string name="lockpattern_confirm_button_text" msgid="6122815520373044089">"Подтвердить"</string>
<string name="lockpattern_restart_button_text" msgid="255339375151895998">"Воспроизвести повторно"</string>
@@ -1918,6 +1919,8 @@
<string name="slow_keys_summary" msgid="1784371292745423292">"Нажатие клавиши регистрируется по истечении заданного времени: <xliff:g id="SLOW_KEYS_THRESHOLD">%1$d</xliff:g> мс"</string>
<string name="sticky_keys" msgid="7317317044898161747">"Залипание клавиш"</string>
<string name="sticky_keys_summary" msgid="1844953803625480623">"Вместо того чтобы удерживать вместе все клавиши из сочетания, нажимайте их по одной"</string>
+ <string name="mouse_keys" msgid="6237254627808525540">"Клавиши и мышь"</string>
+ <string name="mouse_keys_summary" msgid="2396247040177734245">"Управлять мышью с помощью физической клавиатуры"</string>
<string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"Быстрые клавиши"</string>
<string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"Показывать список сочетаний клавиш"</string>
<string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"Клавиатуры и инструменты рабочего профиля"</string>
@@ -1942,14 +1945,10 @@
<string name="pointer_fill_style_yellow_button" msgid="5025969961559379024">"Изменить стиль заливки на желтый"</string>
<string name="pointer_fill_style_pink_button" msgid="4106218142489635673">"Изменить стиль заливки на розовый"</string>
<string name="pointer_fill_style_blue_button" msgid="5594958078854032785">"Изменить стиль заливки на синий"</string>
- <!-- no translation found for pointer_stroke_style (1886986630216050665) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_white (673686194443825383) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_black (4655806167067437330) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_none (8953927511729800247) -->
- <skip />
+ <string name="pointer_stroke_style" msgid="1886986630216050665">"Стиль указателя"</string>
+ <string name="pointer_stroke_style_name_white" msgid="673686194443825383">"Белый"</string>
+ <string name="pointer_stroke_style_name_black" msgid="4655806167067437330">"Черный"</string>
+ <string name="pointer_stroke_style_name_none" msgid="8953927511729800247">"Нет"</string>
<string name="trackpad_touch_gesture" msgid="8641725062131922497">"Узнать о жестах на сенсорной панели"</string>
<string name="keywords_touchpad" msgid="8159846254066666032">"сенсорная панель, мышь, указатель мыши, прокрутить, провести по экрану, нажать правую кнопку мыши, нажать"</string>
<string name="keywords_trackpad_bottom_right_tap" msgid="1285062446073929305">"нажать правую кнопку мыши, нажать"</string>
@@ -2087,7 +2086,7 @@
<string name="select_to_speak_summary" msgid="1995285446766920925">"Чтобы услышать описание элемента, нажмите на него"</string>
<string name="accessibility_captioning_title" msgid="4561871958958925225">"Настройки субтитров"</string>
<string name="accessibility_captioning_about_title" msgid="3542171637334191563">"О настройках субтитров"</string>
- <string name="accessibility_captioning_footer_learn_more_content_description" msgid="5730040700677017706">"Подробнее о настройках субтитров…"</string>
+ <string name="accessibility_captioning_footer_learn_more_content_description" msgid="5730040700677017706">"Подробнее о настройках субтитров"</string>
<string name="accessibility_screen_magnification_title" msgid="1211169976144629087">"Увеличение"</string>
<string name="accessibility_screen_magnification_shortcut_title" msgid="2387963646377987780">"Быстрый запуск увеличения"</string>
<string name="accessibility_screen_magnification_follow_typing_title" msgid="6379517513916651560">"Лупа при вводе текста"</string>
@@ -2179,8 +2178,6 @@
<string name="accessibility_shortcut_edit_dialog_summary_floating_button" msgid="6266489864614886247">"Нажмите плавающую кнопку"</string>
<string name="accessibility_shortcut_edit_dialog_title_software_by_gesture" msgid="4775049370625630546">"Жест специальных возможностей"</string>
<string name="accessibility_shortcut_edit_dialog_summary_software" msgid="8315934725362849788">"Нажмите кнопку специальных возможностей <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g> внизу экрана. Чтобы переключиться между функциями, нажмите и удерживайте эту кнопку."</string>
- <string name="accessibility_shortcut_edit_dialog_summary_software_gesture" msgid="8292555254353761635">"Проведите двумя пальцами вверх от нижнего края экрана.\n\nДля переключения между функциями проведите двумя пальцами по экрану вверх и удерживайте их."</string>
- <string name="accessibility_shortcut_edit_dialog_summary_software_gesture_talkback" msgid="84483464524360845">"Проведите вверх от нижнего края экрана тремя пальцами.\n\nДля переключения между функциями проведите по экрану вверх тремя пальцами и задержите их."</string>
<string name="accessibility_shortcut_edit_dialog_summary_gesture" msgid="2081123009255579884">"{count,plural, =1{Проведите вверх от нижнего края экрана. Чтобы переключиться между функциями, проведите снизу вверх и задержите палец на экране.}one{Проведите вверх от нижнего края экрана # пальцем. Чтобы переключиться между функциями, проведите снизу вверх # пальцем и задержите их на экране.}few{Проведите вверх от нижнего края экрана # пальцами. Чтобы переключиться между функциями, проведите снизу вверх # пальцами и задержите их на экране.}many{Проведите вверх от нижнего края экрана # пальцами. Чтобы переключиться между функциями, проведите снизу вверх # пальцами и задержите их на экране.}other{Проведите вверх от нижнего края экрана # пальца. Чтобы переключиться между функциями, проведите снизу вверх # пальца и задержите их на экране.}}"</string>
<string name="accessibility_shortcut_edit_dialog_summary_software_floating" msgid="4459254227203203324"><annotation id="link">"Другие настройки"</annotation></string>
<string name="footer_learn_more_content_description" msgid="8843798273152131341">"Подробнее о сервисе \"<xliff:g id="SERVICE">%1$s</xliff:g>\""</string>
@@ -2191,16 +2188,12 @@
<string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="844089763968552142">"Кнопки регулировки громкости"</string>
<string name="accessibility_shortcut_hardware_keyword" msgid="2483152542320987022">"кнопки регулировки громкости"</string>
<string name="accessibility_shortcut_edit_dialog_summary_hardware" msgid="2503134386397991634">"Нажмите и удерживайте обе кнопки регулировки громкости"</string>
- <string name="accessibility_shortcut_edit_dialog_title_two_finger_double_tap" msgid="2271778556854020996">"Двойное нажатие двумя пальцами"</string>
<string name="accessibility_shortcut_edit_screen_title_two_finger_double_tap" msgid="8952595692906527694">"Двойное нажатие %1$d пальцами"</string>
<string name="accessibility_shortcut_edit_screen_summary_two_finger_double_tap" msgid="385404127425496362">"Быстро нажмите на экран дважды %1$d пальцами"</string>
<string name="accessibility_shortcut_edit_screen_title_triple_tap" msgid="3314488747597058942">"Тройное нажатие"</string>
<string name="accessibility_shortcut_edit_screen_summary_triple_tap" msgid="4839204951599629871">"Быстро нажмите на экран %1$d раза. Это может замедлить работу устройства."</string>
<string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="6271718715836961167">"двойное нажатие %1$d пальцами"</string>
- <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"Быстро нажмите на экран двумя пальцами {0,number,integer} раза"</string>
- <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"Тройное нажатие на экран"</string>
<string name="accessibility_shortcut_triple_tap_keyword" msgid="5359347130888464334">"тройное нажатие"</string>
- <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"Быстро коснитесь экрана {0,number,integer} раза (этот жест может замедлить работу устройства)."</string>
<string name="accessibility_shortcut_edit_dialog_title_advance" msgid="4567868630655591506">"Ещё"</string>
<string name="accessibility_screen_magnification_navbar_configuration_warning" msgid="266736851606791552">"Кнопка специальных возможностей настроена на сервис \"<xliff:g id="SERVICE">%1$s</xliff:g>\". Чтобы использовать увеличение, удерживайте ее, а затем выберите \"Увеличение изображения на экране\"."</string>
<string name="accessibility_screen_magnification_gesture_navigation_warning" msgid="991017769735632046">"Для этого жеста задана команда \"<xliff:g id="SERVICE">%1$s</xliff:g>\". Чтобы увеличить масштаб, проведите двумя пальцами снизу вверх и задержите их на экране. Затем выберите пункт \"Увеличение\"."</string>
@@ -2369,6 +2362,7 @@
<string name="daltonizer_mode_tritanomaly_title" msgid="2278786218762602022">"Синий и желтый"</string>
<string name="daltonizer_mode_grayscale_title" msgid="152005391387952588">"Оттенки серого"</string>
<string name="daltonizer_saturation_title" msgid="2999486412114963068">"Интенсивность"</string>
+ <string name="daltonizer_saturation_unavailable_summary" msgid="8319753055567798775">"Недоступно, если выбран режим оттенков серого или отключена коррекция цвета."</string>
<string name="daltonizer_mode_deuteranomaly_summary" msgid="2117727423019598455">"Дейтераномалия (нарушено восприятие зеленого)"</string>
<string name="daltonizer_mode_protanomaly_summary" msgid="4617032854982040748">"Протаномалия (нарушено восприятие красного)"</string>
<string name="daltonizer_mode_tritanomaly_summary" msgid="2428218320118180070">"Тританомалия"</string>
@@ -2418,15 +2412,8 @@
<string name="color_cyan" msgid="4341758639597035927">"Голубой"</string>
<string name="color_yellow" msgid="5957551912912679058">"Желтый"</string>
<string name="color_magenta" msgid="8943538189219528423">"Пурпурный"</string>
- <string name="enable_service_title" msgid="7231533866953706788">"Разрешить сервису \"<xliff:g id="SERVICE">%1$s</xliff:g>\" контролировать ваше устройство?"</string>
<string name="capabilities_list_title" msgid="1225853611983394386">"<xliff:g id="SERVICE">%1$s</xliff:g> будет:"</string>
<string name="touch_filtered_warning" msgid="4225815157460318241">"Невозможно принять ваше согласие, поскольку запрос скрыт другим приложением."</string>
- <string name="accessibility_service_warning" msgid="6779187188736432618">"<xliff:g id="SERVICE">%1$s</xliff:g> запрашивает полный доступ к устройству. Сервис может считывать данные с экрана и действовать от имени пользователей, которым требуются специальные возможности. Этот уровень доступа не подходит для большинства приложений."</string>
- <string name="accessibility_service_warning_description" msgid="6573203795976134751">"Полный контроль нужен приложениям для реализации специальных возможностей и не нужен большинству остальных."</string>
- <string name="accessibility_service_screen_control_title" msgid="324795030658109870">"Просмотр и контроль экрана"</string>
- <string name="accessibility_service_screen_control_description" msgid="8431940515157990426">"Сервис может читать весь контент на экране и отображать контент поверх других приложений"</string>
- <string name="accessibility_service_action_perform_title" msgid="1449360056585337833">"Просмотр и выполнение действий"</string>
- <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"Сервис может отслеживать ваше взаимодействие с приложениями и датчиками устройства и давать приложениям команды от вашего имени"</string>
<string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Разрешить"</string>
<string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Отклонить"</string>
<string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Отключить"</string>
@@ -2469,7 +2456,7 @@
<string name="print_menu_item_add_printers" msgid="7958192149202584039">"Добавить принтеры"</string>
<string name="print_feature_state_on" msgid="7132063461008624685">"Включено"</string>
<string name="print_feature_state_off" msgid="1466195699995209446">"Отключено"</string>
- <string name="print_menu_item_add_service" msgid="1549091062463044676">"Добавить службу"</string>
+ <string name="print_menu_item_add_service" msgid="1549091062463044676">"Добавить сервис"</string>
<string name="print_menu_item_add_printer" msgid="8711630848324870892">"Добавить принтер"</string>
<string name="print_menu_item_search" msgid="5989979785203603169">"Поиск"</string>
<string name="print_searching_for_printers" msgid="5401413178028348800">"Поиск принтеров…"</string>
@@ -2519,8 +2506,8 @@
<string name="history_details_title" msgid="8628584613889559355">"Подробная история"</string>
<string name="advanced_battery_preference_title" msgid="3790901207877260883">"Расход заряда батареи"</string>
<string name="advanced_battery_preference_summary_with_hours" msgid="954091349133320955">"Расход заряда за последние 24 часа"</string>
- <string name="advanced_battery_preference_summary" msgid="2372763700477268393">"Данные об исп. с момента полной зарядки"</string>
- <string name="battery_details_title" msgid="3289680399291090588">"Расход заряда батареи приложениями"</string>
+ <string name="advanced_battery_preference_summary" msgid="2372763700477268393">"Данные с момента полной зарядки"</string>
+ <string name="battery_details_title" msgid="3289680399291090588">"Расход заряда приложением"</string>
<string name="details_subtitle" msgid="2550872569652785527">"Расход батареи"</string>
<string name="controls_subtitle" msgid="3759606830916441564">"Режим энергопотребления"</string>
<string name="packages_subtitle" msgid="8687690644931499428">"Пакеты"</string>
@@ -2614,8 +2601,8 @@
<string name="battery_saver_schedule_settings_title" msgid="3688019979950082237">"Задать расписание"</string>
<string name="battery_saver_turn_on_summary" msgid="1433919417587171160">"Продление времени работы от батареи"</string>
<string name="battery_saver_sticky_title_new" msgid="5942813274115684599">"Отключать при полном заряде"</string>
- <string name="battery_saver_sticky_title_percentage" msgid="1178162022087559148">"Отключать, когда уровень заряда достигает <xliff:g id="BATTERY_PERCENTAGE">%1$s</xliff:g>"</string>
- <string name="battery_saver_sticky_description_new" msgid="8543277078136947874">"Режим энергосбережения отключается, когда уровень заряда батареи выше <xliff:g id="BATTERY_PERCENTAGE">%1$s</xliff:g>."</string>
+ <string name="battery_saver_sticky_title_percentage" msgid="1178162022087559148">"Отключать при <xliff:g id="BATTERY_PERCENTAGE">%1$s</xliff:g>"</string>
+ <string name="battery_saver_sticky_description_new" msgid="8543277078136947874">"Режим энергосбережения отключается, когда батарея заряжается больше чем на <xliff:g id="BATTERY_PERCENTAGE">%1$s</xliff:g>"</string>
<!-- no translation found for battery_saver_seekbar_title (3712266470054006641) -->
<skip />
<string name="battery_saver_seekbar_title_placeholder" msgid="7141264642540687540">"Включить"</string>
@@ -3345,7 +3332,7 @@
<string name="spatial_summary_off" msgid="8272678804629774378">"Отключено"</string>
<string name="spatial_summary_on_one" msgid="6239933399496282994">"Включено/<xliff:g id="OUTPUT_DEVICE">%1$s</xliff:g>"</string>
<string name="spatial_summary_on_two" msgid="4526919818832483883">"Включено/<xliff:g id="OUTPUT_DEVICE_0">%1$s</xliff:g> и <xliff:g id="OUTPUT_DEVICE_1">%2$s</xliff:g>"</string>
- <string name="spatial_audio_footer_title" msgid="8775010547623606088">"Функцию пространственного звучания можно также включить для устройств Bluetooth."</string>
+ <string name="spatial_audio_footer_title" msgid="8775010547623606088">"Пространственное звучание можно также включить для устройств Bluetooth."</string>
<string name="spatial_audio_footer_learn_more_text" msgid="3826811708094366301">"Настройки подключенных устройств"</string>
<string name="zen_mode_settings_schedules_summary" msgid="2047688589286811617">"{count,plural, =0{Нет настроенных расписаний}=1{Настроено 1 расписание}one{Настроено # расписание}few{Настроено # расписания}many{Настроено # расписаний}other{Настроено # расписания}}"</string>
<string name="zen_mode_settings_title" msgid="682676757791334259">"Не беспокоить"</string>
@@ -3459,13 +3446,13 @@
<string name="zen_mode_and_condition" msgid="8580896862841920031">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>. <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>."</string>
<string name="zen_mode_sound_summary_on_with_info" msgid="4803606180235742003">"Включено/<xliff:g id="ID_1">%1$s</xliff:g>"</string>
<string name="zen_mode_sound_summary_on" msgid="9077659040104989899">"Включено"</string>
- <string name="zen_mode_duration_summary_always_prompt" msgid="7658172853423383037">"Всегда спрашивать"</string>
+ <string name="zen_mode_duration_summary_always_prompt" msgid="7658172853423383037">"Спрашивать каждый раз"</string>
<string name="zen_mode_duration_summary_forever" msgid="5551992961329998606">"Пока вы не отключите"</string>
<string name="zen_mode_duration_summary_time_hours" msgid="2602655749780428308">"{count,plural, =1{1 час}one{# час}few{# часа}many{# часов}other{# часа}}"</string>
<string name="zen_mode_duration_summary_time_minutes" msgid="5755536844016835693">"{count,plural, =1{1 минута}one{# минута}few{# минуты}many{# минут}other{# минуты}}"</string>
<string name="zen_mode_sound_summary_off" msgid="7350437977839985836">"{count,plural, =0{Выключено}=1{Выключено/Автоматическое включение по 1 расписанию}one{Выключено/Автоматическое включение по # расписанию}few{Выключено/Автоматическое включение по # расписаниям}many{Выключено/Автоматическое включение по # расписаниям}other{Выключено/Автоматическое включение по # расписания}}"</string>
<string name="zen_category_behavior" msgid="3214056473947178507">"Исключения для режима \"Не беспокоить\""</string>
- <string name="zen_category_people" msgid="8252926021894933047">"Пользователи"</string>
+ <string name="zen_category_people" msgid="8252926021894933047">"Люди"</string>
<string name="zen_category_apps" msgid="1167374545618451925">"Приложения"</string>
<string name="zen_category_exceptions" msgid="1316097981052752811">"Будильники и другие звуки"</string>
<string name="zen_category_schedule" msgid="2003707171924226212">"Расписания"</string>
@@ -3656,9 +3643,9 @@
<string name="notif_listener_not_migrated" msgid="6265206376374278226">"В этом приложении не поддерживаются расширенные настройки."</string>
<string name="notif_listener_more_settings" msgid="1348409392307208921">"Дополнительные настройки"</string>
<string name="notif_listener_more_settings_desc" msgid="7995492074281663658">"Дополнительные настройки доступны в приложении"</string>
- <string name="notification_polite_title" msgid="4737150709382859870">"Адаптивные уведомления"</string>
- <string name="notification_polite_main_control_title" msgid="7267191551379543859">"Использовать адаптивные уведомления"</string>
- <string name="notification_polite_description" msgid="7749280535620291610">"Если вам будет поступать много уведомлений за короткое время, ваш телефон на две минуты понизит уровень громкости и сократит количество всплывающих уведомлений. Это не коснется звонков, будильников и важных разговоров. Чтобы увидеть все уведомления, достаточно будет провести вниз от верхнего края экрана."</string>
+ <string name="notification_polite_title" msgid="6121016426991791557">"Снижение громкости уведомлений"</string>
+ <string name="notification_polite_main_control_title" msgid="5812529809151927149">"Использовать снижение громкости уведомлений"</string>
+ <string name="notification_polite_description" msgid="5497748284893832854">"Если вам будет поступать много уведомлений за короткое время, то устройство на две минуты понизит уровень громкости и сократит количество оповещений. Это не распространяется на звонки, будильники и важные разговоры. \n\nЧтобы увидеть уведомления, полученные в этом режиме, проведите пальцем вниз от верхнего края экрана."</string>
<string name="notification_polite_work" msgid="8823596456640216391">"Применить к рабочим профилям"</string>
<string name="notification_polite_work_summary" msgid="5014189280132951378">"Применить для приложений в рабочем профиле"</string>
<string name="vr_listeners_title" msgid="4960357292472540964">"Вспомогательные VR-сервисы"</string>
@@ -3815,11 +3802,13 @@
<string name="zen_mode_apps_priority_apps" msgid="7386196048313716076">"Выбранные приложения"</string>
<string name="zen_mode_apps_none_apps" msgid="2493642312793604327">"Нет"</string>
<string name="zen_mode_apps_subtext" msgid="1764211974662012877">"{count,plural,offset:2 =0{Режим \"Не беспокоить\" действует для всех приложений}=1{Режим \"Не беспокоить\" не действует для приложения \"{app_1}\"}=2{Режим \"Не беспокоить\" не действует для приложений \"{app_1}\" и \"{app_2}\"}=3{Режим \"Не беспокоить\" не действует для приложений \"{app_1}\", \"{app_2}\" и \"{app_3}\"}one{Режим \"Не беспокоить\" не действует для приложений \"{app_1}\", \"{app_2}\" и ещё #}few{Режим \"Не беспокоить\" не действует для приложений \"{app_1}\", \"{app_2}\" и ещё #}many{Режим \"Не беспокоить\" не действует для приложений \"{app_1}\", \"{app_2}\" и ещё #}other{Режим \"Не беспокоить\" не действует для приложений \"{app_1}\", \"{app_2}\" и ещё #}}"</string>
+ <string name="zen_mode_apps_work_app" msgid="8528767938316361588">"<xliff:g id="APP_LABEL">%s</xliff:g> (работа)"</string>
<string name="zen_mode_apps_calculating" msgid="5420121396943539286">"Подождите…"</string>
+ <string name="zen_mode_plus_n_items" msgid="6136713354369243421">"+<xliff:g id="NUMBER">%d</xliff:g>"</string>
<string name="zen_mode_bypassing_apps" msgid="625309443389126481">"Разрешить приложениям переопределять \"Не беспокоить\""</string>
<string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"Приложения, для которых не действует режим \"Не беспокоить\""</string>
<string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"Другие приложения"</string>
- <string name="zen_mode_bypassing_apps_none" msgid="7944221631721778096">"Приложения не выбраны."</string>
+ <string name="zen_mode_bypassing_apps_none" msgid="7944221631721778096">"Приложения не выбраны"</string>
<string name="zen_mode_bypassing_apps_subtext_none" msgid="5128770411598722200">"Режим \"Не беспокоить\" действует для всех приложений"</string>
<string name="zen_mode_bypassing_apps_add" msgid="5031919618521327102">"Добавить приложения"</string>
<string name="zen_mode_bypassing_apps_summary_all" msgid="4684544706511555744">"Все уведомления"</string>
@@ -3833,6 +3822,7 @@
<string name="zen_mode_sounds_none" msgid="6557474361948269420">"Все звуки запрещены"</string>
<string name="zen_mode_people_none" msgid="4613147461974255046">"Режим \"Не беспокоить\" действует для всех звонков и сообщений"</string>
<string name="zen_mode_people_some" msgid="9101872681298810281">"Режим \"Не беспокоить\" не действует для звонков и сообщений от некоторых пользователей"</string>
+ <string name="zen_mode_people_repeat_callers" msgid="4499084111069828761">"Функция повторного вызова может прерываться"</string>
<string name="zen_mode_people_all" msgid="311036110283015205">"Режим \"Не беспокоить\" не действует для звонков и сообщений от любых пользователей"</string>
<string name="zen_mode_repeat_callers" msgid="2270356100287792138">"Повторные вызовы"</string>
<string name="zen_mode_repeat_callers_title" msgid="8016699240338264781">"Повторные вызовы"</string>
@@ -3856,6 +3846,34 @@
<string name="zen_mode_new_custom_title" msgid="321750898430776191">"Добавление режима"</string>
<string name="zen_mode_new_custom_default_name" msgid="2778307946775085105">"Пользовательский режим"</string>
<string name="zen_mode_edit_name_hint" msgid="4584652062167540536">"Название режима"</string>
+ <string name="zen_mode_trigger_title_schedule_calendar" msgid="9206609438617550331">"Мероприятия из календаря"</string>
+ <string name="zen_mode_trigger_title_bedtime" msgid="5086070900588489978">"Расписание сна"</string>
+ <string name="zen_mode_trigger_title_driving" msgid="7890990983453164403">"Во время вождения"</string>
+ <string name="zen_mode_trigger_title_generic" msgid="601273385119550420">"Связано с приложением"</string>
+ <string name="zen_mode_trigger_summary_settings_in_app" msgid="4860667191183702601">"Данные и настройки приложения \"<xliff:g id="APP_NAME">%1$s</xliff:g>\""</string>
+ <string name="zen_mode_trigger_summary_managed_by_app" msgid="8631011868193102098">"Под управлением приложения \"<xliff:g id="APP_NAME">%1$s</xliff:g>\""</string>
+ <string name="zen_mode_confirm_disable_title" msgid="1232297660775719796">"Отключить режим"</string>
+ <string name="zen_mode_confirm_disable_message" msgid="7315541221665718491">"Если отключить эту функцию, режим перестанет работать так, как предполагалось, а его настройки будут скрыты."</string>
+ <string name="zen_mode_action_disable" msgid="3552921561331044881">"Отключить"</string>
+ <string name="zen_mode_confirm_enable_title" msgid="5683371335847448595">"Включить режим"</string>
+ <string name="zen_mode_confirm_enable_message" msgid="7017879133260011419">"Если включить эту функцию, режим активируется автоматически по расписанию."</string>
+ <string name="zen_mode_action_enable" msgid="1161480633223176531">"Включить"</string>
+ <!-- no translation found for zen_mode_blurb_schedule_time (8223898702097484009) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_schedule_calendar (382177907856065945) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_bedtime (6155075956151013457) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_driving (1316054379000667305) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_immersive (5884004861848687869) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_theater (2999237960059524225) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_managed (5473921634985032149) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_generic (3041601339807075625) -->
+ <skip />
<string name="warning_button_text" msgid="1274234338874005639">"Уведомление"</string>
<string name="suggestion_button_close" msgid="6865170855573283759">"Закрыть"</string>
<string name="device_feedback" msgid="5351614458411688608">"Отправить отзыв об устройстве"</string>
@@ -4510,7 +4528,7 @@
<string name="credman_app_list_preference_none" msgid="2509646651254971448">"Ничего не выбрано"</string>
<string name="autofill_confirmation_message" msgid="4888767934273494272">"<b>Подтвердите, что вы доверяете этому приложению</b> <br/> <br/> <xliff:g id=app_name example=Google Autofill>%1$s</xliff:g> анализирует содержимое экрана и находит поля, которые можно заполнить автоматически."</string>
<string name="credman_autofill_confirmation_message" msgid="843829628024668466">"<b>Использовать приложение \"<xliff:g id=app_name example=Provider>%1$s</xliff:g>\"?</b> <br/> <br/> С этого момента в нем будут сохраняться новые пароли, ключи доступа и другие данные. Приложение \"<xliff:g id=app_name example=Provider>%1$s</xliff:g>\" может анализировать содержимое экрана и находить поля, для которых доступно автозаполнение."</string>
- <string name="credman_picker_title" msgid="8442086614222006564">"Предпочтительный сервис для хранения паролей, ключей доступа и данных автозаполнения"</string>
+ <string name="credman_picker_title" msgid="8442086614222006564">"Приоритетный сервис для паролей, ключей доступа и автозаполнения"</string>
<string name="credman_confirmation_message_title" msgid="8847900085593880729">"Отключить %1$s?"</string>
<string name="credman_confirmation_message" msgid="2357324543658635239">"<b>Отключить этот сервис?</b> <br/> <br/>Пароли, ключи доступа, способы оплаты и другая сохраненная информация не будут подставляться при входе. Чтобы использовать эти данные, выберите пароль, ключ доступа или сервис."</string>
<string name="account_dashboard_title_with_passkeys" msgid="648242372086733541">"Пароли, ключи доступа и аккаунты"</string>
@@ -4596,7 +4614,7 @@
<string name="change_nfc_tag_apps_detail_summary" msgid="3338220223868942195">"Разрешить этому приложению запускаться при сканировании NFC-метки.\nЕсли разрешение предоставлено, это приложение можно выбирать для обработки NFC-меток."</string>
<string name="media_output_title" msgid="8283629315159510680">"Где воспроизводить"</string>
<string name="media_output_label_title" msgid="4139048973886819148">"<xliff:g id="LABEL">%s</xliff:g>: где воспроизводить"</string>
- <string name="media_output_title_without_playing" msgid="3339321669132875821">"Где будет воспроизводиться аудио:"</string>
+ <string name="media_output_title_without_playing" msgid="3339321669132875821">"Где будет воспроизводиться аудио"</string>
<string name="media_output_default_summary" msgid="4200343059396412376">"Это устройство"</string>
<string name="media_output_audio_sharing" msgid="8169294522817470115">"Передает аудио"</string>
<string name="media_out_summary_ongoing_call_state" msgid="475188726850090363">"Недоступно во время вызовов"</string>
@@ -4842,9 +4860,8 @@
<string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"Батарея"</string>
<string name="settings_panel_title" msgid="346363079938069215">"Панель настроек"</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>
+ <!-- no translation found for enable_desktop_mode_on_secondary_display (2609567824593768780) -->
+ <skip />
<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>
@@ -5021,7 +5038,6 @@
<string name="default_active_sim_mobile_data" msgid="6798083892814045301">"Мобильный интернет"</string>
<string name="wifi_scan_notify_message" msgid="1331238142061476869">"Чтобы улучшать работу устройства (например, для более точного определения вашего местоположения), приложения и сервисы могут искать беспроводные сети в любое время, даже если вы отключили Wi‑Fi. Запретить это можно в настройках поиска сетей Wi-Fi."</string>
<string name="wifi_scan_change" msgid="8438320311511852918">"Изменить настройки"</string>
- <string name="preference_summary_default_combination" msgid="4643585915107796253">"<xliff:g id="STATE">%1$s</xliff:g>/<xliff:g id="NETWORKMODE">%2$s</xliff:g>"</string>
<string name="mobile_data_connection_active" msgid="2422223108911581552">"Подключено"</string>
<string name="mobile_data_temp_connection_active" msgid="3430470299756236413">"Временное подключение"</string>
<string name="mobile_data_temp_using" msgid="5211002380149434155">"Временно используется сеть оператора \"<xliff:g id="SUBNAME">%1$s</xliff:g>\""</string>
@@ -5053,7 +5069,7 @@
<string name="app_pinning_main_switch_title" msgid="5465506660064032876">"Закрепление приложений"</string>
<string name="developer_options_main_switch_title" msgid="1720074589554152501">"Режим разработчика"</string>
<string name="default_print_service_main_switch_title" msgid="4697133737128324036">"Использовать службу печати"</string>
- <string name="multiple_users_main_switch_title" msgid="9158796544835843201">"Разрешить переключение пользователей"</string>
+ <string name="multiple_users_main_switch_title" msgid="9158796544835843201">"Разрешить смену пользователя"</string>
<string name="multiple_users_main_switch_keywords" msgid="4845954458094134356">"разрешить, несколько, пользователь, разрешение, много"</string>
<string name="multiple_users_title_keywords" msgid="2395593167746225172">"несколько, пользователи, профили, люди, аккаунты, переключиться, много"</string>
<string name="wireless_debugging_main_switch_title" msgid="8463499572781441719">"Использовать отладку по Wi-Fi"</string>
@@ -5167,9 +5183,11 @@
<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="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_enable_freeform_support" msgid="3697462756493543645">"Чтобы включить поддержку создания окон произвольной формы, требуется перезагрузка."</string>
+ <!-- no translation found for reboot_dialog_override_desktop_mode (7480950772574354130) -->
+ <skip />
+ <!-- no translation found for reboot_dialog_enable_desktop_mode_on_secondary_display (1153621881052401924) -->
+ <skip />
<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>
@@ -5244,8 +5262,8 @@
<string name="flash_notifications_about_title" msgid="9004351252928121214">"Об уведомлениях со вспышкой"</string>
<string name="flash_notifications_summary_off" msgid="6056282996770691461">"Выключено"</string>
<string name="flash_notifications_summary_on_camera" msgid="3286405833586333730">"Вкл. (вспышка камеры)"</string>
- <string name="flash_notifications_summary_on_screen" msgid="9040640799633336219">"Вкл. (подсветка экрана)"</string>
- <string name="flash_notifications_summary_on_camera_and_screen" msgid="2326268141063768701">"Вкл. (вспышка камеры и подсветка экрана)"</string>
+ <string name="flash_notifications_summary_on_screen" msgid="9040640799633336219">"Включено (подсветка экрана)"</string>
+ <string name="flash_notifications_summary_on_camera_and_screen" msgid="2326268141063768701">"Включено (вспышка камеры и подсветка экрана)"</string>
<string name="flash_notifications_intro" msgid="8409873413480928249">"Вспышка камеры или экран замигают, когда придет уведомление или зазвучит будильник."</string>
<string name="flash_notifications_intro_without_camera_flash" msgid="6297337174487793891">"Экран замигает, когда придет уведомление или зазвучит будильник."</string>
<string name="flash_notifications_note" msgid="2426125248448055075">"Используйте уведомление с подсветкой осторожно, если вы чувствительны к свету."</string>
@@ -5287,10 +5305,8 @@
<string name="show_captions_enabled" msgid="7089043007924626">"Включено"</string>
<string name="live_caption_disabled" msgid="3562035026547887366">"Отключено"</string>
<string name="live_caption_enabled" msgid="5269360946200718949">"Включено"</string>
- <!-- no translation found for audio_seek_bar_state_left_first (8814986910920838972) -->
- <skip />
- <!-- no translation found for audio_seek_bar_state_right_first (1999368979633398876) -->
- <skip />
+ <string name="audio_seek_bar_state_left_first" msgid="8814986910920838972">"Аудио: %1$d %% слева, %2$d %% справа"</string>
+ <string name="audio_seek_bar_state_right_first" msgid="1999368979633398876">"Аудио: %1$d %% справа, %2$d %% слева"</string>
<string name="about_phone_device_name_warning" msgid="3243226572404472381">"Название устройства доступно установленным приложениям. Его также могут видеть другие пользователи, когда вы подключаетесь к устройствам Bluetooth и сетям Wi-Fi или настраиваете точку доступа Wi-Fi."</string>
<string name="grammatical_gender_title" msgid="8584242850477270828">"Грамматический род"</string>
<string name="grammatical_gender_dialog_title" msgid="8754048592099871587">"Выберите грамматический род"</string>
@@ -5402,5 +5418,6 @@
<string name="audio_streams_main_page_password_dialog_join_button" msgid="2967747276379153408">"Подключиться к потоку"</string>
<string name="audio_streams_main_page_qr_code_scanner_summary" msgid="5312980105735143360">"Отсканируйте QR-код аудиопотока для прослушивания на устройстве (<xliff:g id="DEVICE_NAME">%1$s</xliff:g>)"</string>
<string name="audio_streams_main_page_password_dialog_cannot_edit" msgid="9020898619297520153">"Нельзя изменить пароль во время отправки аудио. Сначала отключите ее."</string>
+ <string name="audio_streams_qr_code_scanner_label" msgid="8799703301071378034">"Сканер QR-кодов"</string>
<string name="homepage_search" msgid="6759334912284663559">"Поиск по настройкам"</string>
</resources>
diff --git a/res/values-si/strings.xml b/res/values-si/strings.xml
index d8e838f..53018e5 100644
--- a/res/values-si/strings.xml
+++ b/res/values-si/strings.xml
@@ -41,6 +41,8 @@
<string name="radioInfo_data_suspended" msgid="2001254415431299603">"තහනම් කරන ලදී"</string>
<string name="radioInfo_unknown" msgid="2892562356748600367">"නොදනී"</string>
<string name="preview_pager_content_description" msgid="3762247188224576303">"පෙරදසුන"</string>
+ <!-- no translation found for qr_code_content_description (1852208464419291347) -->
+ <skip />
<string name="font_size_make_smaller_desc" msgid="4978038055549590140">"වඩා කුඩා කරන්න"</string>
<string name="font_size_make_larger_desc" msgid="5583046033381722247">"වඩා විශාල කරන්න"</string>
<string name="stay_awake_on_fold_title" msgid="6590454679898134221">"සැම විට"</string>
@@ -283,7 +285,7 @@
<string name="location_settings_summary_location_off" msgid="4797932754681162262">"ක්රියාවිරහිතයි"</string>
<string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{ක්රියාත්මකයි / # යෙදුමකට ස්ථානයට ප්රවේශය ඇත}one{ක්රියාත්මකයි / යෙදුම් #කට ස්ථානයට ප්රවේශය ඇත}other{ක්රියාත්මකයි / යෙදුම් #කට ස්ථානයට ප්රවේශය ඇත}}"</string>
<string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"පූරණය වේ…"</string>
- <string name="location_settings_footer_general" msgid="1040507068701188821">"අවට උපාංගවල සාපේක්ෂ පිහිටීම තීරණය කිරීමට අවට උපාංග අවසරය ඇති යෙදුම්වලට හැකිය."</string>
+ <string name="location_settings_footer_general" msgid="3447585552176173502">"සම්බන්ධිත උපාංගවල සාපේක්ෂ පිහිටීම තීරණය කිරීමට අවට උපාංග අවසරය ඇති යෙදුම්වලට හැක."</string>
<string name="location_settings_footer_location_off" msgid="8568995909147566720">"යෙදුම් සහ සේවා සඳහා ස්ථාන ප්රවේශය ක්රියාවිරහිතයි. ඔබ හදිසි අවස්ථා අංකයක් අමතන විට හෝ කෙටි පණිවිඩයක් යැවීමේදී ඔබගේ උපාංගයේ ස්ථානය හදිසි අවස්ථා ප්රතිචාර දක්වන්නන්ට තවම යැවිය හැකිය."</string>
<string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"ස්ථාන සැකසීම් පිළිබඳව තව දැන ගන්න"</string>
<string name="location_settings_tooltip_text_for_chrome" msgid="5781821709250544575">"වෙනස් කිරීමට ChromeOS සැකසීම් > පෞද්ගලිකත්වය සහ ආරක්ෂාව > පෞද්ගලිකත්ව පාලන > ස්ථාන ප්රවේශය වෙත යන්න"</string>
@@ -850,7 +852,6 @@
<string name="nfc_reboot_dialog_title" msgid="2033983438635768169">"උපාංගය යළි අරඹන්න ද?"</string>
<string name="nfc_reboot_dialog_message" msgid="4929353168157966992">"විස්තර NFC ලොග් කිරීම සංවර්ධන අරමුණු සඳහා පමණක් අදහස් කරයි. පෞද්ගලික තොරතුරු අඩංගු විය හැකි, දෝෂ වාර්තාවල අතිරේක NFC දත්ත ඇතුළත් වේ. මෙම සැකසීම වෙනස් කිරීමට ඔබේ උපාංගය යළි අරඹන්න."</string>
<string name="nfc_reboot_dialog_confirm" msgid="4769763632008584567">"යළි අරඹන්න"</string>
- <string name="keywords_external_display" msgid="4181375057920134909">"දර්පණය, බාහිර සංදර්ශකය, සම්බන්ධිත සංදර්ශකය, usb සංදර්ශකය, විභේදනය, කරකැවීම"</string>
<string name="external_display_on" msgid="2560104443500154333">"ක්රියාත්මකයි"</string>
<string name="external_display_off" msgid="5634413756025351374">"ක්රියාවිරහිතයි"</string>
<string name="external_display_settings_title" msgid="6256884595821605779">"බාහිර සංදර්ශකය"</string>
@@ -1918,6 +1919,8 @@
<string name="slow_keys_summary" msgid="1784371292745423292">"යතුරු එබීම සඳහා ගතවන කාලය <xliff:g id="SLOW_KEYS_THRESHOLD">%1$d</xliff:g> ms දක්වා සකසයි"</string>
<string name="sticky_keys" msgid="7317317044898161747">"ඇලෙන යතුරු"</string>
<string name="sticky_keys_summary" msgid="1844953803625480623">"කෙටිමං සඳහා යතුරු එකට තබා ගැනීම වෙනුවට වරකට යතුරක් ඔබන්න"</string>
+ <string name="mouse_keys" msgid="6237254627808525540">"මූසික යතුරු"</string>
+ <string name="mouse_keys_summary" msgid="2396247040177734245">"මූසිකය පාලනය කිරීමට භෞතික යතුරු පුවරුව භාවිතා කරන්න."</string>
<string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"යතුරු පුවරු කෙටිමං"</string>
<string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"කෙටිමං ලැයිස්තුව පෙන්වන්න"</string>
<string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"කාර්යාල පැතිකඩ යතුරු පුවරු සහ මෙවලම්"</string>
@@ -1942,14 +1945,10 @@
<string name="pointer_fill_style_yellow_button" msgid="5025969961559379024">"දර්ශක පිරවුම් විලාසය කහ පැහැයට වෙනස් කරන්න"</string>
<string name="pointer_fill_style_pink_button" msgid="4106218142489635673">"දර්ශක පිරවුම් විලාසය රෝස පැහැයට වෙනස් කරන්න"</string>
<string name="pointer_fill_style_blue_button" msgid="5594958078854032785">"දර්ශක පිරවුම් විලාසය නිල් පැහැයට වෙනස් කරන්න"</string>
- <!-- no translation found for pointer_stroke_style (1886986630216050665) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_white (673686194443825383) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_black (4655806167067437330) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_none (8953927511729800247) -->
- <skip />
+ <string name="pointer_stroke_style" msgid="1886986630216050665">"දර්ශක පහර විලාසය"</string>
+ <string name="pointer_stroke_style_name_white" msgid="673686194443825383">"සුදු"</string>
+ <string name="pointer_stroke_style_name_black" msgid="4655806167067437330">"කළු"</string>
+ <string name="pointer_stroke_style_name_none" msgid="8953927511729800247">"කිසිවක් නැත"</string>
<string name="trackpad_touch_gesture" msgid="8641725062131922497">"ස්පර්ශක පුවරු අභිනයන් ඉගෙන ගන්න"</string>
<string name="keywords_touchpad" msgid="8159846254066666032">"ට්රැක්පෑඩ්, ට්රැක් පෑඩ්, මූසිකය, කර්සරය, අනුචලනය, ස්වයිප්, දකුණු ක්ලික්, ක්ලික්, දර්ශකය"</string>
<string name="keywords_trackpad_bottom_right_tap" msgid="1285062446073929305">"දකුණු ක්ලික් කරන්න, තට්ටු කරන්න"</string>
@@ -2179,8 +2178,6 @@
<string name="accessibility_shortcut_edit_dialog_summary_floating_button" msgid="6266489864614886247">"පාවෙන බොත්තම තට්ටු කරන්න"</string>
<string name="accessibility_shortcut_edit_dialog_title_software_by_gesture" msgid="4775049370625630546">"ප්රවේශ්යතා ඉංගිතය"</string>
<string name="accessibility_shortcut_edit_dialog_summary_software" msgid="8315934725362849788">"ඔබේ තිරයෙහි පහළ ඇති <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g> ප්රවේශ්යතා බොත්තම තට්ටු කරන්න. විශේෂාංග අතර මාරු වීමට, ප්රවේශ්යතා බොත්තම ස්පර්ශ කර සිටින්න."</string>
- <string name="accessibility_shortcut_edit_dialog_summary_software_gesture" msgid="8292555254353761635">"ඇඟිලි 2කින් තිරයේ පහළ සිට ඉහළට ස්වයිප් කරන්න.\n\nවිශේෂාංග අතර මාරු වීමට, ඇඟිලි 2කින් ඉහළට ස්වයිප් කර අල්ලාගෙන සිටින්න."</string>
- <string name="accessibility_shortcut_edit_dialog_summary_software_gesture_talkback" msgid="84483464524360845">"ඇඟිලි 3කින් තිරයේ පහළ සිට ඉහළට ස්වයිප් කරන්න.\n\nවිශේෂාංග අතර මාරු වීමට, ඇඟිලි 3කින් ඉහළට ස්වයිප් කර අල්ලාගෙන සිටින්න."</string>
<string name="accessibility_shortcut_edit_dialog_summary_gesture" msgid="2081123009255579884">"{count,plural, =1{ඔබේ තිරයෙහි පහළින් උඩට ස්වයිප් කරන්න. විශේෂාංග අතර මාරු වීමට, ඉහළට ස්වයිප් කර සිටින්න.}one{ඔබේ තිරයෙහි පහළ සිට ඇඟිලි #ක් සමග ඉහළට ස්වයිප් කරන්න. විශේෂාංග අතර මාරු වීමට, ඇඟිලි #ක් සමග ඉහළට ස්වයිප් කර සිටින්න.}other{ඔබේ තිරයෙහි පහළ සිට ඇඟිලි #ක් සමග ඉහළට ස්වයිප් කරන්න. විශේෂාංග අතර මාරු වීමට, ඇඟිලි #ක් සමග ඉහළට ස්වයිප් කර සිටින්න.}}"</string>
<string name="accessibility_shortcut_edit_dialog_summary_software_floating" msgid="4459254227203203324"><annotation id="link">"තව විකල්ප"</annotation></string>
<string name="footer_learn_more_content_description" msgid="8843798273152131341">"<xliff:g id="SERVICE">%1$s</xliff:g> ගැන තව දැන ගන්න"</string>
@@ -2191,16 +2188,12 @@
<string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="844089763968552142">"හඬ පරිමා යතුරු"</string>
<string name="accessibility_shortcut_hardware_keyword" msgid="2483152542320987022">"හඬ පරිමා යතුරු"</string>
<string name="accessibility_shortcut_edit_dialog_summary_hardware" msgid="2503134386397991634">"හඬ පරිමා යතුරු දෙකම ඔබා අල්ලාගෙන සිටින්න"</string>
- <string name="accessibility_shortcut_edit_dialog_title_two_finger_double_tap" msgid="2271778556854020996">"ඇඟිලි දෙකේ ද්විත්ව තට්ටු තිරය"</string>
<string name="accessibility_shortcut_edit_screen_title_two_finger_double_tap" msgid="8952595692906527694">"ඇඟිලි %1$d දෙවරක් තට්ටු කිරීම"</string>
<string name="accessibility_shortcut_edit_screen_summary_two_finger_double_tap" msgid="385404127425496362">"ඉක්මනින් ඇඟිලි %1$dක් සමග තිරය දෙවරක් තට්ටු කරන්න"</string>
<string name="accessibility_shortcut_edit_screen_title_triple_tap" msgid="3314488747597058942">"තුන්වරක් තට්ටු කිරීම"</string>
<string name="accessibility_shortcut_edit_screen_summary_triple_tap" msgid="4839204951599629871">"තිරය %1$d වරක් ඉක්මනින් තට්ටු කරන්න. මෙය ඔබේ උපාංගය මන්දගාමී කිරීමට හැක."</string>
<string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="6271718715836961167">"ඇඟිලි %1$d දෙවරක් තට්ටු කිරීම"</string>
- <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"ඇඟිලි දෙකකින් තිරය {0,number,integer} වාරයක් ඉක්මනින් තට්ටු කරන්න"</string>
- <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"තිරය තෙවරක් තට්ටු කරන්න"</string>
<string name="accessibility_shortcut_triple_tap_keyword" msgid="5359347130888464334">"තුන්වරක් තට්ටු කිරීම"</string>
- <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"තිරය ඉක්මනින් වාර {0,number,integer}ක් තට්ටු කරන්න. මෙම කෙටි මග ඔබගේ උපාංගය මන්දගාමී කළ හැකිය"</string>
<string name="accessibility_shortcut_edit_dialog_title_advance" msgid="4567868630655591506">"උසස්"</string>
<string name="accessibility_screen_magnification_navbar_configuration_warning" msgid="266736851606791552">"ප්රවේශ්යතා බොත්තම <xliff:g id="SERVICE">%1$s</xliff:g> වෙත සකසා ඇත. විශාලනය භාවිතා කිරීමට ප්රවේශ්යතා බොත්තම ස්පර්ශ කරගෙන විශාලනය තෝරන්න."</string>
<string name="accessibility_screen_magnification_gesture_navigation_warning" msgid="991017769735632046">"ප්රවේශ්යතා ඉංගිතය <xliff:g id="SERVICE">%1$s</xliff:g> ලෙස සකසා ඇත. විශාලනය භාවිත කිරීමට, ඔබේ තිරයේ පහළ සිට ඇඟිලලි දෙකකින් උඩට ස්වයිප් කර අල්ලා ගෙන සිටින්න. අනතුරුව විශාලනය තෝරන්න."</string>
@@ -2369,6 +2362,7 @@
<string name="daltonizer_mode_tritanomaly_title" msgid="2278786218762602022">"නිල්-කහ"</string>
<string name="daltonizer_mode_grayscale_title" msgid="152005391387952588">"Grayscale"</string>
<string name="daltonizer_saturation_title" msgid="2999486412114963068">"ත්රීවතාවය"</string>
+ <string name="daltonizer_saturation_unavailable_summary" msgid="8319753055567798775">"අළු පරිමාණ ප්රකාරය සඳහා හෝ වර්ණ නිවැරදි කිරීම අබල කර ඇති විට ලබා ගත නොහැක"</string>
<string name="daltonizer_mode_deuteranomaly_summary" msgid="2117727423019598455">"කොළ දුර්වල, රතු කොළ වර්ණ අන්ධතාව"</string>
<string name="daltonizer_mode_protanomaly_summary" msgid="4617032854982040748">"රතු දුර්වල, රතු-කොළ වර්ණ අන්ධතාව"</string>
<string name="daltonizer_mode_tritanomaly_summary" msgid="2428218320118180070">"වර්ණ අන්ධතාව"</string>
@@ -2418,15 +2412,8 @@
<string name="color_cyan" msgid="4341758639597035927">"මයුර නිල්"</string>
<string name="color_yellow" msgid="5957551912912679058">"කහ"</string>
<string name="color_magenta" msgid="8943538189219528423">"දම්පාට තද රතු"</string>
- <string name="enable_service_title" msgid="7231533866953706788">"<xliff:g id="SERVICE">%1$s</xliff:g> හට ඔබේ උපාංගයේ සම්පූර්ණ පාලනය තබා ගැනීමට ඉඩ දෙන්නද?"</string>
<string name="capabilities_list_title" msgid="1225853611983394386">"<xliff:g id="SERVICE">%1$s</xliff:g> හට අවශ්යයි:"</string>
<string name="touch_filtered_warning" msgid="4225815157460318241">"යෙදුම අවසර ඉල්ලීමක් කරන නිසා, සැකසීම් හට ඔබගේ ප්රතිචාරය සත්යාපනය කළ නොහැක."</string>
- <string name="accessibility_service_warning" msgid="6779187188736432618">"<xliff:g id="SERVICE">%1$s</xliff:g> මෙම උපාංගයේ සම්පූර්ණ පාලනය ඉල්ලමින්. සේවාවට තිරය කියවීමට සහ ප්රවේශ්යතා අවශ්යතා ඇති පරිශීලකයන් වෙනුවෙන් ක්රියා කිරීමට හැකිය. මෙම මට්ටමේ පාලනය බොහොමයක් යෙදුම් සඳහා සුදුසු නැත."</string>
- <string name="accessibility_service_warning_description" msgid="6573203795976134751">"පූර්ණ පාලනය ඔබට ප්රවේශ්යතා අවශ්යතා සමඟ උදවු කරන යෙදුම් සඳහා සුදුසු වන නමුත් බොහෝ යෙදුම් සඳහා සුදුසු නොවේ."</string>
- <string name="accessibility_service_screen_control_title" msgid="324795030658109870">"තිරය බලන්න සහ පාලන කරන්න"</string>
- <string name="accessibility_service_screen_control_description" msgid="8431940515157990426">"එයට තිරයේ සියලුම අන්තර්ගත කියවිය හැකි අතර අනෙකුත් යෙදුම් මත අන්තර්ගතය සංදර්ශන කළ හැක."</string>
- <string name="accessibility_service_action_perform_title" msgid="1449360056585337833">"බලන්න සහ ක්රියා කරන්න"</string>
- <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"මෙයට යෙදුමක් හෝ දෘඪාංග සංවේදකයක් සමඟ ඔබේ අන්තර්ක්රියා හඹා යෑමට, සහ ඔබ වෙනුවෙන් යෙදුම් සමඟ අන්තර්ක්රියාවේ යෙදීමට හැකි ය."</string>
<string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"ඉඩ දෙන්න"</string>
<string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"ප්රතික්ෂේප කරන්න"</string>
<string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"ක්රියාවිරහිත කරන්න"</string>
@@ -3368,10 +3355,8 @@
<string name="zen_mode_automation_settings_title" msgid="3709324184191870926">"කාල සටහන්"</string>
<string name="zen_mode_delete_automatic_rules" msgid="5020468289267191765">"කාල සටහන් මකන්න"</string>
<string name="zen_mode_schedule_delete" msgid="5383420576833765114">"මකන්න"</string>
- <!-- no translation found for zen_mode_menu_rename_mode (4681802125016390837) -->
- <skip />
- <!-- no translation found for zen_mode_menu_delete_mode (5380084696402157428) -->
- <skip />
+ <string name="zen_mode_menu_rename_mode" msgid="4681802125016390837">"යළි නම් කරන්න"</string>
+ <string name="zen_mode_menu_delete_mode" msgid="5380084696402157428">"මකන්න"</string>
<string name="zen_mode_delete_mode_confirmation" msgid="7594340592051947392">"\"<xliff:g id="MODE">%1$s</xliff:g>\" ප්රකාරය මකන්න ද?"</string>
<string name="zen_mode_rule_name_edit" msgid="1053237022416700481">"සංස්කරණය කරන්න"</string>
<string name="zen_mode_automation_settings_page_title" msgid="6217433860514433311">"කාල සටහන්"</string>
@@ -3395,8 +3380,7 @@
<string name="zen_mode_visual_signals_settings_subtitle" msgid="7433077540895876672">"දෘශ්ය සංඥාවලට ඉඩ දෙන්න"</string>
<string name="mode_interruption_filter_title" msgid="3343846700214702347">"අවධානයෙන් සිටින්න"</string>
<string name="mode_device_effects_title" msgid="5857008332618433744">"අමතර ක්රියා"</string>
- <!-- no translation found for modes_sound_summary_off (6972648204528227879) -->
- <skip />
+ <string name="modes_sound_summary_off" msgid="6972648204528227879">"{count,plural, =0{ක්රියාවිරහිතයි}=1{ක්රියාවිරහිතයි / 1 ප්රකාරයක් ස්වයංක්රියව ක්රියාත්මක කළ හැක}one{ක්රියාවිරහිතයි / ප්රකාර #ක් ස්වයංක්රියව ක්රියාත්මක කළ හැක}other{ක්රියාවිරහිතයි / ප්රකාර #ක් ස්වයංක්රියව ක්රියාත්මක කළ හැක}}"</string>
<string name="mode_display_settings_title" msgid="8132825978346535472">"සංදර්ශක සැකසීම්"</string>
<string name="mode_display_options_section" msgid="5151597748243866532">"සංදර්ශක විකල්ප"</string>
<string name="mode_grayscale_title" msgid="6027553257331235461">"අළු පැහැය"</string>
@@ -3659,9 +3643,9 @@
<string name="notif_listener_not_migrated" msgid="6265206376374278226">"මෙම යෙදුම වැඩිදියුණු කළ සැකසීම් සඳහා සහාය නොදක්වයි"</string>
<string name="notif_listener_more_settings" msgid="1348409392307208921">"තව සැකසීම්"</string>
<string name="notif_listener_more_settings_desc" msgid="7995492074281663658">"මෙම යෙදුම තුළ තවත් සැකසීම් තිබේ"</string>
- <string name="notification_polite_title" msgid="4737150709382859870">"අනුවර්තී දැනුම්දීම්"</string>
- <string name="notification_polite_main_control_title" msgid="7267191551379543859">"අනුවර්තී දැනුම්දීම් භාවිතා කරන්න"</string>
- <string name="notification_polite_description" msgid="7749280535620291610">"ඔබට කෙටි කාලයක් තුළ බොහෝ දැනුම්දීම් ලැබෙන විට, ඔබේ දුරකථනය ශබ්දය අඩු කර විනාඩි දෙකක් දක්වා තිරය මත උත්පතන අවම කරනු ඇත. ඇමතුම්, එලාම්, සහ ප්රමුඛතා සංවාද තවමත් කම්පනය වේ, ශබ්දයක් ඇති කරයි, හෝ තිරය මත පෙන්වයි, ඔබ තිරයේ ඉහළ සිට පහළට අදින විට සියලු දැනුම්දීම් සොයා ගැනීමට පහසු වේ."</string>
+ <string name="notification_polite_title" msgid="6121016426991791557">"දැනුම්දීම් සිසිල් කිරීම"</string>
+ <string name="notification_polite_main_control_title" msgid="5812529809151927149">"දැනුම්දීම් සිසිල් කිරීම භාවිත කරන්න"</string>
+ <string name="notification_polite_description" msgid="5497748284893832854">"ඔබට කෙටි කාලයක් තුළ බොහෝ දැනුම්දීම් ලැබෙන විට, ඔබේ උපාංගය එහි ශබ්දය අඩු කර විනාඩි 2ක් දක්වා ඇඟවීම් අවම කරයි. ඇමතුම්, එලාම්, සහ ප්රමුඛතා සංවාදවලට බලපෑමක් නැත. \n\nසන්සුන් කිරීම අතරතුර ලැබෙන දැනුම්දීම් තිරයේ ඉහළ සිට පහළට ඇදීමෙන් සොයා ගත හැක."</string>
<string name="notification_polite_work" msgid="8823596456640216391">"කාර්යාල පැතිකඩ සඳහා යොදන්න"</string>
<string name="notification_polite_work_summary" msgid="5014189280132951378">"කාර්යාල පැතිකඩ යෙදුම්වලට යොදන්න"</string>
<string name="vr_listeners_title" msgid="4960357292472540964">"VR උදවුකරු සේවා"</string>
@@ -3818,7 +3802,9 @@
<string name="zen_mode_apps_priority_apps" msgid="7386196048313716076">"තෝරාගත් යෙදුම"</string>
<string name="zen_mode_apps_none_apps" msgid="2493642312793604327">"කිසිවක් නැත"</string>
<string name="zen_mode_apps_subtext" msgid="1764211974662012877">"{count,plural,offset:2 =0{යෙදුම් කිසිවකට බාධා කළ නොහැක}=1{{app_1} හට බාධා කළ හැක}=2{{app_1} සහ {app_2} හට බාධා කළ හැක}=3{{app_1}, {app_2}, සහ {app_3} හට බාධා කළ හැක}one{{app_1}, {app_2}, සහ තවත් #ක් හට බාධා කළ හැක}other{{app_1}, {app_2}, සහ තවත් #ක් හට බාධා කළ හැක}}"</string>
+ <string name="zen_mode_apps_work_app" msgid="8528767938316361588">"<xliff:g id="APP_LABEL">%s</xliff:g> (කාර්යාලය)"</string>
<string name="zen_mode_apps_calculating" msgid="5420121396943539286">"ගණනය කරමින්…"</string>
+ <string name="zen_mode_plus_n_items" msgid="6136713354369243421">"+<xliff:g id="NUMBER">%d</xliff:g>"</string>
<string name="zen_mode_bypassing_apps" msgid="625309443389126481">"ප්රතික්ෂේප කිරිමට යෙදුම්වලට ඉඩ දෙන්න"</string>
<string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"බාධා කළ හැකි යෙදුම්"</string>
<string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"තවත් යෙදුම් තෝරන්න"</string>
@@ -3836,6 +3822,7 @@
<string name="zen_mode_sounds_none" msgid="6557474361948269420">"කිසිවකට බාධා කළ නොහැකිය"</string>
<string name="zen_mode_people_none" msgid="4613147461974255046">"කිසි කෙනෙකුට බාධා කළ නොහැකිය"</string>
<string name="zen_mode_people_some" msgid="9101872681298810281">"සමහර පුද්ගලයන්ට බාධා කළ හැකිය"</string>
+ <string name="zen_mode_people_repeat_callers" msgid="4499084111069828761">"නැවත නැවතත් අමතන්නන්ට බාධා කළ හැක"</string>
<string name="zen_mode_people_all" msgid="311036110283015205">"සියලු පුද්ගලයන්ට බාධා කළ හැකිය"</string>
<string name="zen_mode_repeat_callers" msgid="2270356100287792138">"නැවත අමතන්නන්"</string>
<string name="zen_mode_repeat_callers_title" msgid="8016699240338264781">"යළි අමතන්නන්ට ඉඩ දෙන්න"</string>
@@ -3855,13 +3842,37 @@
<string name="zen_mode_summary_alarms_only_by_hour" msgid="7400910210950788163">"{count,plural, =1{{time} දක්වා පැයක් සඳහා පමණක් එලාම වෙත වෙනස් කරන්න}one{{time} දක්වා පැය #ක් සඳහා පමණක් එලාම වෙත වෙනස් කරන්න}other{{time} දක්වා පැය #ක් සඳහා පමණක් එලාම වෙත වෙනස් කරන්න}}"</string>
<string name="zen_mode_summary_alarms_only_by_time" msgid="8140619669703968810">"<xliff:g id="FORMATTEDTIME">%1$s</xliff:g> පමණක් දක්වා ඇති සීනු වෙත මාරු වෙන්න"</string>
<string name="zen_mode_summary_always" msgid="722093064250082317">"සෑම විටම බාධා කිරීම වෙත මාරු වෙන්න"</string>
- <!-- no translation found for zen_mode_rename_title (8146882272966214558) -->
+ <string name="zen_mode_rename_title" msgid="8146882272966214558">"සංස්කරණ ප්රකාරය"</string>
+ <string name="zen_mode_new_custom_title" msgid="321750898430776191">"ප්රකාරය එක් කරන්න"</string>
+ <string name="zen_mode_new_custom_default_name" msgid="2778307946775085105">"අභිරුචි ප්රකාරය"</string>
+ <string name="zen_mode_edit_name_hint" msgid="4584652062167540536">"ප්රකාරයේ නම"</string>
+ <string name="zen_mode_trigger_title_schedule_calendar" msgid="9206609438617550331">"දින දර්ශන සිදුවීම්"</string>
+ <string name="zen_mode_trigger_title_bedtime" msgid="5086070900588489978">"නිදා ගැනීමේ කාල සටහන"</string>
+ <string name="zen_mode_trigger_title_driving" msgid="7890990983453164403">"ධාවනය කරන අතරතුර"</string>
+ <string name="zen_mode_trigger_title_generic" msgid="601273385119550420">"යෙදුමට සම්බන්ධයි"</string>
+ <string name="zen_mode_trigger_summary_settings_in_app" msgid="4860667191183702601">"<xliff:g id="APP_NAME">%1$s</xliff:g> තුළ තතු සහ සැකසීම්"</string>
+ <string name="zen_mode_trigger_summary_managed_by_app" msgid="8631011868193102098">"<xliff:g id="APP_NAME">%1$s</xliff:g> මගින් කළමනාකරණය කෙරේ"</string>
+ <string name="zen_mode_confirm_disable_title" msgid="1232297660775719796">"ප්රකාරය අබල කරන්න"</string>
+ <string name="zen_mode_confirm_disable_message" msgid="7315541221665718491">"ඔබ මෙම විශේෂාංගය අබල කරන්නේ නම්, ප්රකාරය තවදුරටත් අපේක්ෂිත පරිදි ක්රියා නොකරන අතර එහි සැකසීම් සැඟවෙනු ඇත."</string>
+ <string name="zen_mode_action_disable" msgid="3552921561331044881">"අබල කරන්න"</string>
+ <string name="zen_mode_confirm_enable_title" msgid="5683371335847448595">"ප්රකාරය සබල කරන්න"</string>
+ <string name="zen_mode_confirm_enable_message" msgid="7017879133260011419">"ඔබ මෙම විශේෂාංගය සබල කරන්නේ නම්, එහි කාලසටහනට අනුව ප්රකාරය ස්වයංක්රීයව සක්රිය වනු ඇත."</string>
+ <string name="zen_mode_action_enable" msgid="1161480633223176531">"සබල කරන්න"</string>
+ <!-- no translation found for zen_mode_blurb_schedule_time (8223898702097484009) -->
<skip />
- <!-- no translation found for zen_mode_new_custom_title (321750898430776191) -->
+ <!-- no translation found for zen_mode_blurb_schedule_calendar (382177907856065945) -->
<skip />
- <!-- no translation found for zen_mode_new_custom_default_name (2778307946775085105) -->
+ <!-- no translation found for zen_mode_blurb_bedtime (6155075956151013457) -->
<skip />
- <!-- no translation found for zen_mode_edit_name_hint (4584652062167540536) -->
+ <!-- no translation found for zen_mode_blurb_driving (1316054379000667305) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_immersive (5884004861848687869) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_theater (2999237960059524225) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_managed (5473921634985032149) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_generic (3041601339807075625) -->
<skip />
<string name="warning_button_text" msgid="1274234338874005639">"අවවාදයයි"</string>
<string name="suggestion_button_close" msgid="6865170855573283759">"වසන්න"</string>
@@ -4849,9 +4860,8 @@
<string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"බැටරිය"</string>
<string name="settings_panel_title" msgid="346363079938069215">"සැකසීම් පුවරුව"</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>
+ <!-- no translation found for enable_desktop_mode_on_secondary_display (2609567824593768780) -->
+ <skip />
<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>
@@ -5026,7 +5036,6 @@
<string name="default_active_sim_mobile_data" msgid="6798083892814045301">"ජංගම දත්ත"</string>
<string name="wifi_scan_notify_message" msgid="1331238142061476869">"උපාංග අත්දැකීම වැඩි දියුණු කිරිමට, Wi‑Fi ක්රියාවිරහිත විට පවා, ඕනෑම අවස්ථාවක Wi‑Fi ජාල සඳහා ස්කෑන් කිරීමට යෙදුම් සහ සේවාවලට හැකිය. උදාහරණයක් ලෙස, ස්ථානය-පදනම් වූ විශේෂාංග සහ සේවා වැඩි දියුණු කිරීම සඳහා මෙය භාවිත කළ හැකිය. ඔබට මෙය Wi‑Fi ස්කෑන් කිරීමේ සැකසීම් තුළ වෙනස් කළ හැකිය."</string>
<string name="wifi_scan_change" msgid="8438320311511852918">"වෙනස් කරන්න"</string>
- <string name="preference_summary_default_combination" msgid="4643585915107796253">"<xliff:g id="STATE">%1$s</xliff:g> / <xliff:g id="NETWORKMODE">%2$s</xliff:g>"</string>
<string name="mobile_data_connection_active" msgid="2422223108911581552">"සම්බන්ධයි"</string>
<string name="mobile_data_temp_connection_active" msgid="3430470299756236413">"තාවකාලිකව සම්බන්ධ කළා"</string>
<string name="mobile_data_temp_using" msgid="5211002380149434155">"<xliff:g id="SUBNAME">%1$s</xliff:g> තාවකාලිකව භාවිත කරනු ලැබේ"</string>
@@ -5172,9 +5181,11 @@
<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="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_enable_freeform_support" msgid="3697462756493543645">"නිදහස් ආකෘති කවුළු සහාය සබල කිරීමට නැවත පණ ගැන්වීමක් අවශ්ය වේ."</string>
+ <!-- no translation found for reboot_dialog_override_desktop_mode (7480950772574354130) -->
+ <skip />
+ <!-- no translation found for reboot_dialog_enable_desktop_mode_on_secondary_display (1153621881052401924) -->
+ <skip />
<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>
@@ -5292,10 +5303,8 @@
<string name="show_captions_enabled" msgid="7089043007924626">"ක්රියාත්මකයි"</string>
<string name="live_caption_disabled" msgid="3562035026547887366">"ක්රියාවිරහිතයි"</string>
<string name="live_caption_enabled" msgid="5269360946200718949">"ක්රියාත්මකයි"</string>
- <!-- no translation found for audio_seek_bar_state_left_first (8814986910920838972) -->
- <skip />
- <!-- no translation found for audio_seek_bar_state_right_first (1999368979633398876) -->
- <skip />
+ <string name="audio_seek_bar_state_left_first" msgid="8814986910920838972">"ශ්රව්ය %1$d%% වම, %2$d%% දකුණ"</string>
+ <string name="audio_seek_bar_state_right_first" msgid="1999368979633398876">"ශ්රව්ය %1$d%% දකුණ, %2$d%% වම"</string>
<string name="about_phone_device_name_warning" msgid="3243226572404472381">"ඔබේ උපාංගයේ නම ඔබ ස්ථාපනය කර ඇති යෙදුම්වලට දෘශ්යමාන වේ. ඔබ බ්ලූටූත් උපාංග වෙත සම්බන්ධ වන විට, Wi-Fi ජාලයකට සම්බන්ධ වන විට හෝ Wi-Fi හොට්ස්පොට් එකක් පිහිටුවන විට එය වෙනත් පුද්ගලයන් විසින් ද දැකිය හැක."</string>
<string name="grammatical_gender_title" msgid="8584242850477270828">"ව්යාකරණමය ලිංගභේදය"</string>
<string name="grammatical_gender_dialog_title" msgid="8754048592099871587">"ව්යාකරණමය ලිංගභේදය තෝරන්න"</string>
@@ -5407,5 +5416,6 @@
<string name="audio_streams_main_page_password_dialog_join_button" msgid="2967747276379153408">"ප්රවාහයට සවන් දෙන්න"</string>
<string name="audio_streams_main_page_qr_code_scanner_summary" msgid="5312980105735143360">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> සමග සවන් දීමට ශ්රව්ය ප්රවාහ QR කේතයක් ස්කෑන් කරන්න"</string>
<string name="audio_streams_main_page_password_dialog_cannot_edit" msgid="9020898619297520153">"බෙදා ගන්නා අතරේ මුරපදය සංස්කරණය කළ නොහැක. මුරපදය වෙනස් කිරීමට, පළමුව ශ්රව්ය බෙදා ගැනීම ක්රියාවිරහිත කරන්න."</string>
+ <string name="audio_streams_qr_code_scanner_label" msgid="8799703301071378034">"QR කේත ස්කෑනරය"</string>
<string name="homepage_search" msgid="6759334912284663559">"සෙවීමේ සැකසීම්"</string>
</resources>
diff --git a/res/values-sk/strings.xml b/res/values-sk/strings.xml
index c5518a5..4a23bbe 100644
--- a/res/values-sk/strings.xml
+++ b/res/values-sk/strings.xml
@@ -41,6 +41,8 @@
<string name="radioInfo_data_suspended" msgid="2001254415431299603">"Pozastavená"</string>
<string name="radioInfo_unknown" msgid="2892562356748600367">"Neznáme"</string>
<string name="preview_pager_content_description" msgid="3762247188224576303">"Ukážka"</string>
+ <!-- no translation found for qr_code_content_description (1852208464419291347) -->
+ <skip />
<string name="font_size_make_smaller_desc" msgid="4978038055549590140">"Zmenšiť"</string>
<string name="font_size_make_larger_desc" msgid="5583046033381722247">"Zväčšiť"</string>
<string name="stay_awake_on_fold_title" msgid="6590454679898134221">"Vždy"</string>
@@ -283,7 +285,7 @@
<string name="location_settings_summary_location_off" msgid="4797932754681162262">"Vypnuté"</string>
<string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{Zapnuté / # aplikácia má prístup k polohe}few{Zapnuté / # aplikácie majú prístup k polohe}many{On / # apps have access to location}other{Zapnuté / # aplikácií má prístup k polohe}}"</string>
<string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"Načítava sa…"</string>
- <string name="location_settings_footer_general" msgid="1040507068701188821">"Aplikácie s povolením pre zariadenia v okolí môžu rozpoznať relatívnu pozíciu pripojených zariadení."</string>
+ <string name="location_settings_footer_general" msgid="3447585552176173502">"Aplikácie s povolením pre zariadenia v okolí môžu rozpoznať relatívnu pozíciu pripojených zariadení."</string>
<string name="location_settings_footer_location_off" msgid="8568995909147566720">"Prístup aplikácií a služieb k polohe je vypnutý. Poloha zariadenia však stále môže byť odoslaná záchranárom, keď zavoláte na tiesňovú linku alebo na ňu pošlete textovú správu."</string>
<string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Ďalšie informácie o nastaveniach polohy"</string>
<string name="location_settings_tooltip_text_for_chrome" msgid="5781821709250544575">"Ak chcete vykonať zmenu, prejdite do sekcie Nastavenia systému ChromeOS > Ochrana súkromia a zabezpečenie > Nastavenia ochrany súkromia > Prístup k polohe"</string>
@@ -850,7 +852,6 @@
<string name="nfc_reboot_dialog_title" msgid="2033983438635768169">"Chcete zariadenie reštartovať?"</string>
<string name="nfc_reboot_dialog_message" msgid="4929353168157966992">"Podrobné zaznamenávanie údajov NFC je určené iba na účely vývoja. Ďalšie údaje NFC sú zahrnuté v hláseniach chýb, ktoré môžu obsahovať súkromné informácie. Ak chcete toto nastavenie zmeniť, reštartujte zariadenie."</string>
<string name="nfc_reboot_dialog_confirm" msgid="4769763632008584567">"Reštartovať"</string>
- <string name="keywords_external_display" msgid="4181375057920134909">"zrkadliť, externá obrazovka, pripojená obrazovka, obrazovka usb, rozlíšenie, otočenie"</string>
<string name="external_display_on" msgid="2560104443500154333">"Zapnuté"</string>
<string name="external_display_off" msgid="5634413756025351374">"Vypnuté"</string>
<string name="external_display_settings_title" msgid="6256884595821605779">"Externá obrazovka"</string>
@@ -1918,6 +1919,8 @@
<string name="slow_keys_summary" msgid="1784371292745423292">"Upraví čas aktivácie po stlačení klávesa na <xliff:g id="SLOW_KEYS_THRESHOLD">%1$d</xliff:g> ms"</string>
<string name="sticky_keys" msgid="7317317044898161747">"Režim uzamknutia klávesa"</string>
<string name="sticky_keys_summary" msgid="1844953803625480623">"Používať skratky stlačením jedného klávesa namiesto viacerých"</string>
+ <string name="mouse_keys" msgid="6237254627808525540">"Klávesy myši"</string>
+ <string name="mouse_keys_summary" msgid="2396247040177734245">"Ovládať myš pomocou fyzickej klávesnice."</string>
<string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"Klávesové skratky"</string>
<string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"Zobraziť zoznam skratiek"</string>
<string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"Klávesnice a nástroje pracovného profilu"</string>
@@ -1942,14 +1945,10 @@
<string name="pointer_fill_style_yellow_button" msgid="5025969961559379024">"Zmena farby kurzora na žltú"</string>
<string name="pointer_fill_style_pink_button" msgid="4106218142489635673">"Zmena farby kurzora na ružovú"</string>
<string name="pointer_fill_style_blue_button" msgid="5594958078854032785">"Zmena farby kurzora na modrú"</string>
- <!-- no translation found for pointer_stroke_style (1886986630216050665) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_white (673686194443825383) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_black (4655806167067437330) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_none (8953927511729800247) -->
- <skip />
+ <string name="pointer_stroke_style" msgid="1886986630216050665">"Štýl čiary kurzora"</string>
+ <string name="pointer_stroke_style_name_white" msgid="673686194443825383">"Biely"</string>
+ <string name="pointer_stroke_style_name_black" msgid="4655806167067437330">"Čierny"</string>
+ <string name="pointer_stroke_style_name_none" msgid="8953927511729800247">"Žiadny"</string>
<string name="trackpad_touch_gesture" msgid="8641725062131922497">"Naučiť sa gestá touchpadu"</string>
<string name="keywords_touchpad" msgid="8159846254066666032">"trackpad, myš, kurzor, posúvať, potiahnuť, kliknúť pravým tlačidlom, kliknúť, ukazovateľ"</string>
<string name="keywords_trackpad_bottom_right_tap" msgid="1285062446073929305">"kliknúť pravým tlačidlom, klepnúť"</string>
@@ -2179,8 +2178,6 @@
<string name="accessibility_shortcut_edit_dialog_summary_floating_button" msgid="6266489864614886247">"Klepnite na plávajúce tlačidlo"</string>
<string name="accessibility_shortcut_edit_dialog_title_software_by_gesture" msgid="4775049370625630546">"Gesto dostupnosti"</string>
<string name="accessibility_shortcut_edit_dialog_summary_software" msgid="8315934725362849788">"Klepnite na tlačidlo dostupnosti <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g> dole na obrazovke. Medzi jednotlivými funkciami môžete prepínať jeho pridržaním."</string>
- <string name="accessibility_shortcut_edit_dialog_summary_software_gesture" msgid="8292555254353761635">"Potiahnite dvoma prstami z dolnej časti obrazovky nahor.\n\nFunkcie prepnete potiahnutím dvoma prstami smerom nahor a pridržaním."</string>
- <string name="accessibility_shortcut_edit_dialog_summary_software_gesture_talkback" msgid="84483464524360845">"Potiahnite troma prstami z dolnej časti obrazovky nahor.\n\nFunkcie prepnete potiahnutím troma prstami smerom nahor a pridržaním."</string>
<string name="accessibility_shortcut_edit_dialog_summary_gesture" msgid="2081123009255579884">"{count,plural, =1{Potiahnite zdola obrazovky nahor. Funkcie prepnete potiahnutím nahor a pridržaním.}few{Potiahnite # prstami zdola obrazovky nahor. Funkcie prepnete potiahnutím # prstami nahor a pridržaním.}many{Swipe up with # fingers from the bottom of your screen. To switch between features, swipe up with # fingers and hold.}other{Potiahnite # prstami zdola obrazovky nahor. Funkcie prepnete potiahnutím # prstami nahor a pridržaním.}}"</string>
<string name="accessibility_shortcut_edit_dialog_summary_software_floating" msgid="4459254227203203324"><annotation id="link">"Ďalšie možnosti"</annotation></string>
<string name="footer_learn_more_content_description" msgid="8843798273152131341">"Ďalšie informácie o funkcii <xliff:g id="SERVICE">%1$s</xliff:g>"</string>
@@ -2191,16 +2188,12 @@
<string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="844089763968552142">"Tlačidlá hlasitosti"</string>
<string name="accessibility_shortcut_hardware_keyword" msgid="2483152542320987022">"tlačidlá hlasitosti"</string>
<string name="accessibility_shortcut_edit_dialog_summary_hardware" msgid="2503134386397991634">"Pridržte obe tlačidlá hlasitosti"</string>
- <string name="accessibility_shortcut_edit_dialog_title_two_finger_double_tap" msgid="2271778556854020996">"Dvojité klepnutie dvoma prstami na obrazovku"</string>
<string name="accessibility_shortcut_edit_screen_title_two_finger_double_tap" msgid="8952595692906527694">"Dvojité klepnutie %1$d prstami"</string>
<string name="accessibility_shortcut_edit_screen_summary_two_finger_double_tap" msgid="385404127425496362">"Rýchlo 2‑krát klepnite na obrazovku %1$d prstami"</string>
<string name="accessibility_shortcut_edit_screen_title_triple_tap" msgid="3314488747597058942">"Trojité klepnutie"</string>
<string name="accessibility_shortcut_edit_screen_summary_triple_tap" msgid="4839204951599629871">"Rýchlo %1$d-krát klepnite na obrazovku. Môže to zariadenie spomaliť."</string>
<string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="6271718715836961167">"Dvojité klepnutie %1$d prstami"</string>
- <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"Rýchlo {0,number,integer}-krát klepnite dvoma prstami na obrazovku"</string>
- <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"Tri klepnutia na obrazovku"</string>
<string name="accessibility_shortcut_triple_tap_keyword" msgid="5359347130888464334">"trojité klepnutie"</string>
- <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"{0,number,integer}‑krát rýchlo klepnite na obrazovku. Táto skratka môže zariadenie spomaliť."</string>
<string name="accessibility_shortcut_edit_dialog_title_advance" msgid="4567868630655591506">"Rozšírené"</string>
<string name="accessibility_screen_magnification_navbar_configuration_warning" msgid="266736851606791552">"Tlačidlo dostupnosti je nastavené na službu <xliff:g id="SERVICE">%1$s</xliff:g>. Ak chcete použiť priblíženie, klepnite na tlačidlo dostupnosti, podržte ho a potom vyberte priblíženie."</string>
<string name="accessibility_screen_magnification_gesture_navigation_warning" msgid="991017769735632046">"Gesto dostupnosti je nastavené na službu <xliff:g id="SERVICE">%1$s</xliff:g>. Ak chcete použiť priblíženie, potiahnite dvoma prstami nahor zo spodnej časti obrazovky a pridržte ich. Potom vyberte priblíženie."</string>
@@ -2369,6 +2362,7 @@
<string name="daltonizer_mode_tritanomaly_title" msgid="2278786218762602022">"Modrá a žltá"</string>
<string name="daltonizer_mode_grayscale_title" msgid="152005391387952588">"Odfarbenie"</string>
<string name="daltonizer_saturation_title" msgid="2999486412114963068">"Intenzita"</string>
+ <string name="daltonizer_saturation_unavailable_summary" msgid="8319753055567798775">"Nie je k dispozícii pre režim odfarbenia alebo keď je úprava farieb vypnutá"</string>
<string name="daltonizer_mode_deuteranomaly_summary" msgid="2117727423019598455">"Porucha vnímania zelenej, deuteranomália"</string>
<string name="daltonizer_mode_protanomaly_summary" msgid="4617032854982040748">"Porucha vnímania červenej, protanomália"</string>
<string name="daltonizer_mode_tritanomaly_summary" msgid="2428218320118180070">"Tritanomália"</string>
@@ -2418,15 +2412,8 @@
<string name="color_cyan" msgid="4341758639597035927">"Azúrová"</string>
<string name="color_yellow" msgid="5957551912912679058">"Žltá"</string>
<string name="color_magenta" msgid="8943538189219528423">"Purpurová"</string>
- <string name="enable_service_title" msgid="7231533866953706788">"Chcete povoliť službe <xliff:g id="SERVICE">%1$s</xliff:g> úplnú kontrolu nad zariadením?"</string>
<string name="capabilities_list_title" msgid="1225853611983394386">"<xliff:g id="SERVICE">%1$s</xliff:g> potrebuje:"</string>
<string name="touch_filtered_warning" msgid="4225815157460318241">"Nastavenia nemôžu overiť vašu odpoveď, pretože určitá aplikácia blokuje žiadosť o povolenie."</string>
- <string name="accessibility_service_warning" msgid="6779187188736432618">"Služba <xliff:g id="SERVICE">%1$s</xliff:g> vyžaduje úplnú kontrolu nad týmto zariadením. Táto služba môže čítať obrazovku a konať v mene používateľov, ktorí vyžadujú funkcie dostupnosti. Pre väčšinu aplikácií nie je táto úroveň kontroly primeraná."</string>
- <string name="accessibility_service_warning_description" msgid="6573203795976134751">"Úplná kontrola je vhodná pre aplikácie, ktoré vám pomáhajú s dostupnosťou, ale nie pre väčšinu aplikácií."</string>
- <string name="accessibility_service_screen_control_title" msgid="324795030658109870">"Zobrazenie a ovládanie obrazovky"</string>
- <string name="accessibility_service_screen_control_description" msgid="8431940515157990426">"Môže čítať všetok obsah na obrazovke a zobrazovať obsah cez ďalšie aplikácie."</string>
- <string name="accessibility_service_action_perform_title" msgid="1449360056585337833">"Zobrazenie a vykonávanie akcií"</string>
- <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"Môže sledovať vaše interakcie s aplikáciou alebo hardvérovým senzorom a interagovať s aplikáciami za vás."</string>
<string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Povoliť"</string>
<string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Zamietnuť"</string>
<string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Vypnúť"</string>
@@ -3368,10 +3355,8 @@
<string name="zen_mode_automation_settings_title" msgid="3709324184191870926">"Plány"</string>
<string name="zen_mode_delete_automatic_rules" msgid="5020468289267191765">"Odstrániť plány"</string>
<string name="zen_mode_schedule_delete" msgid="5383420576833765114">"Odstrániť"</string>
- <!-- no translation found for zen_mode_menu_rename_mode (4681802125016390837) -->
- <skip />
- <!-- no translation found for zen_mode_menu_delete_mode (5380084696402157428) -->
- <skip />
+ <string name="zen_mode_menu_rename_mode" msgid="4681802125016390837">"Premenovať"</string>
+ <string name="zen_mode_menu_delete_mode" msgid="5380084696402157428">"Odstrániť"</string>
<string name="zen_mode_delete_mode_confirmation" msgid="7594340592051947392">"Chcete odstrániť režim <xliff:g id="MODE">%1$s</xliff:g>?"</string>
<string name="zen_mode_rule_name_edit" msgid="1053237022416700481">"Upraviť"</string>
<string name="zen_mode_automation_settings_page_title" msgid="6217433860514433311">"Plány"</string>
@@ -3395,8 +3380,7 @@
<string name="zen_mode_visual_signals_settings_subtitle" msgid="7433077540895876672">"Povoliť vizuálne signály"</string>
<string name="mode_interruption_filter_title" msgid="3343846700214702347">"Nerozptyľujte sa"</string>
<string name="mode_device_effects_title" msgid="5857008332618433744">"Ďalšie akcie"</string>
- <!-- no translation found for modes_sound_summary_off (6972648204528227879) -->
- <skip />
+ <string name="modes_sound_summary_off" msgid="6972648204528227879">"{count,plural, =0{Vypnuté}=1{Vypnuté / 1 režim sa môže zapínať automaticky}few{Vypnuté / # režimy sa môžu zapínať automaticky}many{Off / # modes can turn on automatically}other{Vypnuté / # režimov sa môže zapínať automaticky}}"</string>
<string name="mode_display_settings_title" msgid="8132825978346535472">"Nastavenia obrazovky"</string>
<string name="mode_display_options_section" msgid="5151597748243866532">"Možnosti zobrazenia"</string>
<string name="mode_grayscale_title" msgid="6027553257331235461">"Odfarbenie"</string>
@@ -3659,9 +3643,9 @@
<string name="notif_listener_not_migrated" msgid="6265206376374278226">"Táto aplikácia nepodporuje zlepšené nastavenia"</string>
<string name="notif_listener_more_settings" msgid="1348409392307208921">"Ďalšie nastavenia"</string>
<string name="notif_listener_more_settings_desc" msgid="7995492074281663658">"V tejto aplikácii sú k dispozícii ďalšie nastavenia"</string>
- <string name="notification_polite_title" msgid="4737150709382859870">"Adaptívne upozornenia"</string>
- <string name="notification_polite_main_control_title" msgid="7267191551379543859">"Používať adaptívne upozornenia"</string>
- <string name="notification_polite_description" msgid="7749280535620291610">"Keď v krátkom čase dostanete priveľa upozornení, telefón maximálne na dve minúty zníži hlasitosť a minimalizuje vyskakovacie okná na obrazovke. Hovory, budíky a prioritné konverzácie budú naďalej vibrovať, vydávať zvuky alebo sa zobrazovať na obrazovke. Všetky upozornenia ľahko vyhľadáte potiahnutím zhora obrazovky nadol."</string>
+ <string name="notification_polite_title" msgid="6121016426991791557">"Stlmenie upozornení"</string>
+ <string name="notification_polite_main_control_title" msgid="5812529809151927149">"Používanie stlmenia upozornení"</string>
+ <string name="notification_polite_description" msgid="5497748284893832854">"Keď dostanete v krátkom čase priveľa upozornení, zariadenie až na dve minúty zníži hlasitosť a minimalizuje počet upozornení. Netýka sa to hovorov, budíkov a prioritných konverzácií. \n\nUpozornenia prijaté počas režimu stlmenia zobrazíte potiahnutím zhora obrazovky nadol."</string>
<string name="notification_polite_work" msgid="8823596456640216391">"Použiť na pracovné profily"</string>
<string name="notification_polite_work_summary" msgid="5014189280132951378">"Platí pre aplikácie v pracovnom profile"</string>
<string name="vr_listeners_title" msgid="4960357292472540964">"Pomocné služby VR"</string>
@@ -3818,7 +3802,9 @@
<string name="zen_mode_apps_priority_apps" msgid="7386196048313716076">"Vybrané aplikácie"</string>
<string name="zen_mode_apps_none_apps" msgid="2493642312793604327">"Žiadne"</string>
<string name="zen_mode_apps_subtext" msgid="1764211974662012877">"{count,plural,offset:2 =0{Žiadne aplikácie nemôžu vyrušiť}=1{{app_1} môže vyrušiť}=2{{app_1} a {app_2} môžu vyrušiť}=3{{app_1}, {app_2} a {app_3} môžu vyrušiť}few{{app_1}, {app_2} a # ďalšie aplikácie môžu vyrušiť}many{{app_1}, {app_2}, and # more can interrupt}other{{app_1}, {app_2} a # ďalších aplikácií môžu vyrušiť}}"</string>
+ <string name="zen_mode_apps_work_app" msgid="8528767938316361588">"<xliff:g id="APP_LABEL">%s</xliff:g> (práca)"</string>
<string name="zen_mode_apps_calculating" msgid="5420121396943539286">"Prebieha výpočet..."</string>
+ <string name="zen_mode_plus_n_items" msgid="6136713354369243421">"+<xliff:g id="NUMBER">%d</xliff:g>"</string>
<string name="zen_mode_bypassing_apps" msgid="625309443389126481">"Povoľte aplikáciám prekonávať nastavenia"</string>
<string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"Aplikácie, ktoré môžu vyrušiť"</string>
<string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"Vyberte ďalšie aplikácie"</string>
@@ -3836,6 +3822,7 @@
<string name="zen_mode_sounds_none" msgid="6557474361948269420">"Žiadne zvuky nemôžu vyrušiť"</string>
<string name="zen_mode_people_none" msgid="4613147461974255046">"Nikto nemôže vyrušiť"</string>
<string name="zen_mode_people_some" msgid="9101872681298810281">"Niektorí ľudia môžu vyrušiť"</string>
+ <string name="zen_mode_people_repeat_callers" msgid="4499084111069828761">"Opakované volania môžu rušiť"</string>
<string name="zen_mode_people_all" msgid="311036110283015205">"Všetci ľudia môžu vyrušiť"</string>
<string name="zen_mode_repeat_callers" msgid="2270356100287792138">"Opakované volania"</string>
<string name="zen_mode_repeat_callers_title" msgid="8016699240338264781">"Povoliť opakované volania"</string>
@@ -3855,13 +3842,37 @@
<string name="zen_mode_summary_alarms_only_by_hour" msgid="7400910210950788163">"{count,plural, =1{Zmena v budíkoch iba na hodinu do {time}}few{Zmena v budíkoch iba na # hodiny do {time}}many{Change to alarms only for # hours until {time}}other{Zmena v budíkoch iba na # hodín do {time}}}"</string>
<string name="zen_mode_summary_alarms_only_by_time" msgid="8140619669703968810">"Zmena na možnosť Iba budíky platná do <xliff:g id="FORMATTEDTIME">%1$s</xliff:g>"</string>
<string name="zen_mode_summary_always" msgid="722093064250082317">"Zmena na možnosť Vždy prerušiť"</string>
- <!-- no translation found for zen_mode_rename_title (8146882272966214558) -->
+ <string name="zen_mode_rename_title" msgid="8146882272966214558">"Úprava režimu"</string>
+ <string name="zen_mode_new_custom_title" msgid="321750898430776191">"Pridanie režimu"</string>
+ <string name="zen_mode_new_custom_default_name" msgid="2778307946775085105">"Vlastný režim"</string>
+ <string name="zen_mode_edit_name_hint" msgid="4584652062167540536">"Názov režimu"</string>
+ <string name="zen_mode_trigger_title_schedule_calendar" msgid="9206609438617550331">"Udalosti v kalendári"</string>
+ <string name="zen_mode_trigger_title_bedtime" msgid="5086070900588489978">"Spánkový režim"</string>
+ <string name="zen_mode_trigger_title_driving" msgid="7890990983453164403">"Počas jazdy"</string>
+ <string name="zen_mode_trigger_title_generic" msgid="601273385119550420">"Pripojené k aplikácii"</string>
+ <string name="zen_mode_trigger_summary_settings_in_app" msgid="4860667191183702601">"Informácie a nastavenia v aplikácii <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+ <string name="zen_mode_trigger_summary_managed_by_app" msgid="8631011868193102098">"Spravované aplikáciou <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+ <string name="zen_mode_confirm_disable_title" msgid="1232297660775719796">"Vypnutie režimu"</string>
+ <string name="zen_mode_confirm_disable_message" msgid="7315541221665718491">"Ak túto funkciu vypnete, režim už nebude fungovať podľa očakávaní a jeho nastavenia budú skryté."</string>
+ <string name="zen_mode_action_disable" msgid="3552921561331044881">"Vypnúť"</string>
+ <string name="zen_mode_confirm_enable_title" msgid="5683371335847448595">"Zapnutie režimu"</string>
+ <string name="zen_mode_confirm_enable_message" msgid="7017879133260011419">"Ak túto funkciu zapnete, režim sa bude aktivovať automaticky podľa plánu."</string>
+ <string name="zen_mode_action_enable" msgid="1161480633223176531">"Povoliť"</string>
+ <!-- no translation found for zen_mode_blurb_schedule_time (8223898702097484009) -->
<skip />
- <!-- no translation found for zen_mode_new_custom_title (321750898430776191) -->
+ <!-- no translation found for zen_mode_blurb_schedule_calendar (382177907856065945) -->
<skip />
- <!-- no translation found for zen_mode_new_custom_default_name (2778307946775085105) -->
+ <!-- no translation found for zen_mode_blurb_bedtime (6155075956151013457) -->
<skip />
- <!-- no translation found for zen_mode_edit_name_hint (4584652062167540536) -->
+ <!-- no translation found for zen_mode_blurb_driving (1316054379000667305) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_immersive (5884004861848687869) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_theater (2999237960059524225) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_managed (5473921634985032149) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_generic (3041601339807075625) -->
<skip />
<string name="warning_button_text" msgid="1274234338874005639">"Upozornenie"</string>
<string name="suggestion_button_close" msgid="6865170855573283759">"Zavrieť"</string>
@@ -4849,9 +4860,8 @@
<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="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>
+ <!-- no translation found for enable_desktop_mode_on_secondary_display (2609567824593768780) -->
+ <skip />
<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>
@@ -5028,7 +5038,6 @@
<string name="default_active_sim_mobile_data" msgid="6798083892814045301">"mobilné dáta"</string>
<string name="wifi_scan_notify_message" msgid="1331238142061476869">"Aplikácie a služby môžu kedykoľvek vyhľadávať siete Wi‑Fi (a to aj vtedy, keď je pripojenie Wi‑Fi vypnuté), čím zlepšujú prostredie v zariadení. Môžu tak napríklad zlepšovať fungovanie funkcií a služieb podmienených polohou. Toto nastavenie môžete zmeniť v nastaveniach vyhľadávania sietí Wi‑Fi."</string>
<string name="wifi_scan_change" msgid="8438320311511852918">"Zmeniť"</string>
- <string name="preference_summary_default_combination" msgid="4643585915107796253">"<xliff:g id="STATE">%1$s</xliff:g> / <xliff:g id="NETWORKMODE">%2$s</xliff:g>"</string>
<string name="mobile_data_connection_active" msgid="2422223108911581552">"Pripojené"</string>
<string name="mobile_data_temp_connection_active" msgid="3430470299756236413">"Dočasne pripojené"</string>
<string name="mobile_data_temp_using" msgid="5211002380149434155">"Dočasne sa používa <xliff:g id="SUBNAME">%1$s</xliff:g>"</string>
@@ -5060,7 +5069,7 @@
<string name="app_pinning_main_switch_title" msgid="5465506660064032876">"Používať pripnutie aplikácie"</string>
<string name="developer_options_main_switch_title" msgid="1720074589554152501">"Používať nastavenia pre vývojárov"</string>
<string name="default_print_service_main_switch_title" msgid="4697133737128324036">"Používať tlačovú službu"</string>
- <string name="multiple_users_main_switch_title" msgid="9158796544835843201">"Povoliť prepnutie používateľom"</string>
+ <string name="multiple_users_main_switch_title" msgid="9158796544835843201">"Povoliť prepínanie používateľov"</string>
<string name="multiple_users_main_switch_keywords" msgid="4845954458094134356">"povoliť, viacero, používateľ, povolenie, veľa"</string>
<string name="multiple_users_title_keywords" msgid="2395593167746225172">"viacerí, používatelia, profily, ľudia, účty, prepnúť, mnoho"</string>
<string name="wireless_debugging_main_switch_title" msgid="8463499572781441719">"Používať bezdrôtové ladenie"</string>
@@ -5174,9 +5183,11 @@
<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="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_enable_freeform_support" msgid="3697462756493543645">"Zapnutie podpory meniteľných okien vyžaduje reštart."</string>
+ <!-- no translation found for reboot_dialog_override_desktop_mode (7480950772574354130) -->
+ <skip />
+ <!-- no translation found for reboot_dialog_enable_desktop_mode_on_secondary_display (1153621881052401924) -->
+ <skip />
<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>
@@ -5294,10 +5305,8 @@
<string name="show_captions_enabled" msgid="7089043007924626">"Zapnuté"</string>
<string name="live_caption_disabled" msgid="3562035026547887366">"Vypnuté"</string>
<string name="live_caption_enabled" msgid="5269360946200718949">"Zapnuté"</string>
- <!-- no translation found for audio_seek_bar_state_left_first (8814986910920838972) -->
- <skip />
- <!-- no translation found for audio_seek_bar_state_right_first (1999368979633398876) -->
- <skip />
+ <string name="audio_seek_bar_state_left_first" msgid="8814986910920838972">"Zvuk – ľavé: %1$d%%, pravé: %2$d%%"</string>
+ <string name="audio_seek_bar_state_right_first" msgid="1999368979633398876">"Zvuk – pravé: %1$d%%, ľavé: %2$d%%"</string>
<string name="about_phone_device_name_warning" msgid="3243226572404472381">"Názov zariadenia je viditeľný pre aplikácie, ktoré ste nainštalovali. Keď sa pripojíte k zariadeniam s rozhraním Bluetooth alebo sieti Wi‑Fi, prípadne nastavíte hotspot Wi‑Fi, môžu ho uvidieť aj ďalší ľudia."</string>
<string name="grammatical_gender_title" msgid="8584242850477270828">"Gramatický rod"</string>
<string name="grammatical_gender_dialog_title" msgid="8754048592099871587">"Výber gramatického rodu"</string>
@@ -5409,5 +5418,6 @@
<string name="audio_streams_main_page_password_dialog_join_button" msgid="2967747276379153408">"Počúvať stream"</string>
<string name="audio_streams_main_page_qr_code_scanner_summary" msgid="5312980105735143360">"Naskenujte QR kód zvukového streamu a počúvajte pomocou zariadenia <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
<string name="audio_streams_main_page_password_dialog_cannot_edit" msgid="9020898619297520153">"Heslo sa nedá upraviť počas zdieľania. Ak ho chcete zmeniť, najprv vypnite zdieľanie zvuku."</string>
+ <string name="audio_streams_qr_code_scanner_label" msgid="8799703301071378034">"Skener QR kódov"</string>
<string name="homepage_search" msgid="6759334912284663559">"Nastavenia vyhľadávania"</string>
</resources>
diff --git a/res/values-sl/strings.xml b/res/values-sl/strings.xml
index 191ded6..60f5fbe 100644
--- a/res/values-sl/strings.xml
+++ b/res/values-sl/strings.xml
@@ -41,6 +41,8 @@
<string name="radioInfo_data_suspended" msgid="2001254415431299603">"Začasno ustavljeno"</string>
<string name="radioInfo_unknown" msgid="2892562356748600367">"Neznano"</string>
<string name="preview_pager_content_description" msgid="3762247188224576303">"Predogled"</string>
+ <!-- no translation found for qr_code_content_description (1852208464419291347) -->
+ <skip />
<string name="font_size_make_smaller_desc" msgid="4978038055549590140">"Pomanjšanje"</string>
<string name="font_size_make_larger_desc" msgid="5583046033381722247">"Povečanje"</string>
<string name="stay_awake_on_fold_title" msgid="6590454679898134221">"Vedno"</string>
@@ -283,7 +285,7 @@
<string name="location_settings_summary_location_off" msgid="4797932754681162262">"Izklopljeno"</string>
<string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{Vklopljeno/dostop do lokacije ima # aplikacija}one{Vklopljeno/dostop do lokacije ima # aplikacija}two{Vklopljeno/dostop do lokacije imata # aplikaciji}few{Vklopljeno/dostop do lokacije imajo # aplikacije}other{Vklopljeno/dostop do lokacije ima # aplikacij}}"</string>
<string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"Nalaganje …"</string>
- <string name="location_settings_footer_general" msgid="1040507068701188821">"Aplikacije z dovoljenjem za naprave v bližini lahko določijo relativno lokacijo povezanih naprav."</string>
+ <string name="location_settings_footer_general" msgid="3447585552176173502">"Aplikacije z dovoljenjem za naprave v bližini lahko določijo relativno lokacijo povezanih naprav."</string>
<string name="location_settings_footer_location_off" msgid="8568995909147566720">"Dostop do lokacije je izklopljen za aplikacije in storitve. Lokacija naprave bo morda kljub temu poslana službam za nujne primere, ko pokličete številko za klic v sili ali nanjo pošljete sporočilo SMS."</string>
<string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Preberite več o nastavitvah lokacije"</string>
<string name="location_settings_tooltip_text_for_chrome" msgid="5781821709250544575">"Če želite spremeniti, odprite nastavitve sistema ChromeOS > Zasebnost in varnost > Nastavitve zasebnosti > Dostop do lokacije"</string>
@@ -850,7 +852,6 @@
<string name="nfc_reboot_dialog_title" msgid="2033983438635768169">"Vnovični zagon?"</string>
<string name="nfc_reboot_dialog_message" msgid="4929353168157966992">"Podrobno zapisovanje dnevnika za NFC je namenjeno samo za razvoj. Dodatni podatki NFC so vključeni v poročilih o napakah, ki morda vsebujejo zasebne podatke. Če želite spremeniti to nastavitev, znova zaženite napravo."</string>
<string name="nfc_reboot_dialog_confirm" msgid="4769763632008584567">"Zaženi znova"</string>
- <string name="keywords_external_display" msgid="4181375057920134909">"zrcaljenje, zunanji zaslon, povezan zaslon, zaslon prek usb, ločljivost, vrtenje"</string>
<string name="external_display_on" msgid="2560104443500154333">"Vklopljeno"</string>
<string name="external_display_off" msgid="5634413756025351374">"Izklopljeno"</string>
<string name="external_display_settings_title" msgid="6256884595821605779">"Zunanji zaslon"</string>
@@ -1918,6 +1919,8 @@
<string name="slow_keys_summary" msgid="1784371292745423292">"Čas, potreben za aktiviranje pritiska tipke, prilagodi na <xliff:g id="SLOW_KEYS_THRESHOLD">%1$d</xliff:g> ms"</string>
<string name="sticky_keys" msgid="7317317044898161747">"Zaklepanje tipk"</string>
<string name="sticky_keys_summary" msgid="1844953803625480623">"Za bližnjice pritisnite eno tipko hkrati namesto več tipk hkrati"</string>
+ <string name="mouse_keys" msgid="6237254627808525540">"Tipke za miško"</string>
+ <string name="mouse_keys_summary" msgid="2396247040177734245">"Upravljanje miške s fizično tipkovnico."</string>
<string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"Bližnjične tipke"</string>
<string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"Prikaz seznama bližnjic"</string>
<string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"Tipkovnice in orodja delovnega profila"</string>
@@ -2175,8 +2178,6 @@
<string name="accessibility_shortcut_edit_dialog_summary_floating_button" msgid="6266489864614886247">"Dotaknite se plavajočega gumba."</string>
<string name="accessibility_shortcut_edit_dialog_title_software_by_gesture" msgid="4775049370625630546">"Poteza za dostopnost"</string>
<string name="accessibility_shortcut_edit_dialog_summary_software" msgid="8315934725362849788">"Dotaknite se gumba za dostopnost <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g> na dnu zaslona. Če želite preklopiti med funkcijami, pridržite gumb za dostopnost."</string>
- <string name="accessibility_shortcut_edit_dialog_summary_software_gesture" msgid="8292555254353761635">"Z dvema prstoma povlecite z dna zaslona navzgor.\n\nČe želite preklopiti med funkcijami, z dvema prstoma povlecite navzgor in pridržite."</string>
- <string name="accessibility_shortcut_edit_dialog_summary_software_gesture_talkback" msgid="84483464524360845">"S tremi prsti povlecite z dna zaslona navzgor.\n\nČe želite preklopiti med funkcijami, s tremi prsti povlecite navzgor in pridržite."</string>
<string name="accessibility_shortcut_edit_dialog_summary_gesture" msgid="2081123009255579884">"{count,plural, =1{S prstom povlecite navzgor z dna zaslona. Če želite preklopiti med funkcijami, povlecite navzgor in pridržite.}one{Z # prstom povlecite navzgor z dna zaslona. Če želite preklopiti med funkcijami, z # prstom povlecite navzgor in pridržite.}two{Z # prstoma povlecite navzgor z dna zaslona. Če želite preklopiti med funkcijami, z # prstoma povlecite navzgor in pridržite.}few{S # prsti povlecite navzgor z dna zaslona. Če želite preklopiti med funkcijami, s # prsti povlecite navzgor in pridržite.}other{S # prsti povlecite navzgor z dna zaslona. Če želite preklopiti med funkcijami, s # prsti povlecite navzgor in pridržite.}}"</string>
<string name="accessibility_shortcut_edit_dialog_summary_software_floating" msgid="4459254227203203324"><annotation id="link">"Več možnosti"</annotation></string>
<string name="footer_learn_more_content_description" msgid="8843798273152131341">"Več o storitvi <xliff:g id="SERVICE">%1$s</xliff:g>"</string>
@@ -2187,16 +2188,12 @@
<string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="844089763968552142">"Gumba za glasnost"</string>
<string name="accessibility_shortcut_hardware_keyword" msgid="2483152542320987022">"gumba za glasnost"</string>
<string name="accessibility_shortcut_edit_dialog_summary_hardware" msgid="2503134386397991634">"Pritisnite in pridržite obe tipki za glasnost."</string>
- <string name="accessibility_shortcut_edit_dialog_title_two_finger_double_tap" msgid="2271778556854020996">"Dvakratni dotik zaslona z dvema prstoma"</string>
<string name="accessibility_shortcut_edit_screen_title_two_finger_double_tap" msgid="8952595692906527694">"Dvakratni dotik z %1$d prstoma"</string>
<string name="accessibility_shortcut_edit_screen_summary_two_finger_double_tap" msgid="385404127425496362">"Z %1$d prstoma se dvakrat hitro dotaknite zaslona."</string>
<string name="accessibility_shortcut_edit_screen_title_triple_tap" msgid="3314488747597058942">"Trikratni dotik"</string>
<string name="accessibility_shortcut_edit_screen_summary_triple_tap" msgid="4839204951599629871">"%1$d-krat se hitro dotaknite zaslona. To bo morda upočasnilo delovanje naprave."</string>
<string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="6271718715836961167">"Dvakratni dotik z %1$d prstoma"</string>
- <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"Z dvema prstoma se {0,number,integer}-krat hitro dotaknite zaslona"</string>
- <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"Trikratni dotik zaslona"</string>
<string name="accessibility_shortcut_triple_tap_keyword" msgid="5359347130888464334">"trikratni dotik"</string>
- <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"{0,number,integer}-krat se hitro dotaknite zaslona. Ta bližnjica bo morda upočasnila delovanje naprave."</string>
<string name="accessibility_shortcut_edit_dialog_title_advance" msgid="4567868630655591506">"Dodatno"</string>
<string name="accessibility_screen_magnification_navbar_configuration_warning" msgid="266736851606791552">"Gumb »Dostopnost« je nastavljen na <xliff:g id="SERVICE">%1$s</xliff:g>. Če želite uporabiti povečavo, se dotaknite gumba »Dostopnost« in ga pridržite, nato pa izberite povečavo."</string>
<string name="accessibility_screen_magnification_gesture_navigation_warning" msgid="991017769735632046">"Poteza za dostopnost je nastavljena na <xliff:g id="SERVICE">%1$s</xliff:g>. Če želite uporabiti povečavo, z dvema prstoma povlecite z dna zaslona navzgor in pridržite. Nato izberite povečavo."</string>
@@ -2365,6 +2362,7 @@
<string name="daltonizer_mode_tritanomaly_title" msgid="2278786218762602022">"Modra-rumena"</string>
<string name="daltonizer_mode_grayscale_title" msgid="152005391387952588">"Sivine"</string>
<string name="daltonizer_saturation_title" msgid="2999486412114963068">"Intenzivnost"</string>
+ <string name="daltonizer_saturation_unavailable_summary" msgid="8319753055567798775">"Ni na voljo v načinu sivin ali pri onemogočenem popravljanju barv"</string>
<string name="daltonizer_mode_deuteranomaly_summary" msgid="2117727423019598455">"Šibka zelena, devteranomalija"</string>
<string name="daltonizer_mode_protanomaly_summary" msgid="4617032854982040748">"Šibka rdeča, protanomalija"</string>
<string name="daltonizer_mode_tritanomaly_summary" msgid="2428218320118180070">"Tritanomalija"</string>
@@ -2414,15 +2412,8 @@
<string name="color_cyan" msgid="4341758639597035927">"Cijan"</string>
<string name="color_yellow" msgid="5957551912912679058">"Rumena"</string>
<string name="color_magenta" msgid="8943538189219528423">"Magenta"</string>
- <string name="enable_service_title" msgid="7231533866953706788">"Ali storitvi <xliff:g id="SERVICE">%1$s</xliff:g> dovolite popoln nadzor nad svojo napravo?"</string>
<string name="capabilities_list_title" msgid="1225853611983394386">"<xliff:g id="SERVICE">%1$s</xliff:g> mora:"</string>
<string name="touch_filtered_warning" msgid="4225815157460318241">"Ker aplikacija zakriva zahtevo za dovoljenje, z nastavitvami ni mogoče preveriti vašega odziva."</string>
- <string name="accessibility_service_warning" msgid="6779187188736432618">"<xliff:g id="SERVICE">%1$s</xliff:g> zahteva popoln nadzor nad to napravo. Storitev lahko prebere zaslon in deluje v imenu uporabnikov s posebnimi potrebami. Ta raven nadzora za večino aplikacij ni primerna."</string>
- <string name="accessibility_service_warning_description" msgid="6573203795976134751">"Popoln nadzor je ustrezen za aplikacije, ki vam pomagajo pri funkcijah dostopnosti, vendar ne za večino aplikacij."</string>
- <string name="accessibility_service_screen_control_title" msgid="324795030658109870">"Ogledovanje in upravljanje zaslona"</string>
- <string name="accessibility_service_screen_control_description" msgid="8431940515157990426">"Bere lahko vso vsebino na zaslonu ter prikaže vsebino prek drugih aplikacij."</string>
- <string name="accessibility_service_action_perform_title" msgid="1449360056585337833">"Ogledovanje in izvajanje dejanj"</string>
- <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"Spremlja lahko vaše interakcije z aplikacijo ali tipalom ter komunicira z aplikacijami v vašem imenu."</string>
<string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Dovoli"</string>
<string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Zavrni"</string>
<string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Izklopi"</string>
@@ -3652,9 +3643,9 @@
<string name="notif_listener_not_migrated" msgid="6265206376374278226">"Ta aplikacija ne podpira naprednih nastavitev."</string>
<string name="notif_listener_more_settings" msgid="1348409392307208921">"Več nastavitev"</string>
<string name="notif_listener_more_settings_desc" msgid="7995492074281663658">"Več nastavitev je na voljo v tej aplikaciji."</string>
- <string name="notification_polite_title" msgid="4737150709382859870">"Prilagodljiva obvestila"</string>
- <string name="notification_polite_main_control_title" msgid="7267191551379543859">"Uporaba prilagodljivih obvestil"</string>
- <string name="notification_polite_description" msgid="7749280535620291610">"Ko v kratkem času prejmete veliko obvestil, telefon zmanjša glasnost in minimira pojavne elemente na zaslonu za največ dve minuti. Klici, alarmi in prednostni pogovori bodo še vedno vibrirali, zvonili ali se prikazali na zaslonu, vsa obvestila pa zlahka najdete, ko povlečete navzdol z vrha zaslona."</string>
+ <string name="notification_polite_title" msgid="6121016426991791557">"Zmanjševanje glasnosti za obvestila"</string>
+ <string name="notification_polite_main_control_title" msgid="5812529809151927149">"Uporaba utišanja obvestil"</string>
+ <string name="notification_polite_description" msgid="5497748284893832854">"Ko v kratkem času prejmete veliko obvestil, naprava zmanjša glasnost in minimira opozorila za največ dve minuti. To ne vpliva na klice, alarme in prednostne pogovore. \n\nObvestila, ki jih prejmete med utišanjem, si lahko ogledate tako, da z vrha zaslona povlečete navzdol."</string>
<string name="notification_polite_work" msgid="8823596456640216391">"Uporaba za delovne profile"</string>
<string name="notification_polite_work_summary" msgid="5014189280132951378">"Uporabi za aplikacije v delovnem profilu"</string>
<string name="vr_listeners_title" msgid="4960357292472540964">"Storitve za pomoč za VR"</string>
@@ -3811,7 +3802,9 @@
<string name="zen_mode_apps_priority_apps" msgid="7386196048313716076">"Izbrane aplikacije"</string>
<string name="zen_mode_apps_none_apps" msgid="2493642312793604327">"Nobena"</string>
<string name="zen_mode_apps_subtext" msgid="1764211974662012877">"{count,plural,offset:2 =0{Preglasitev ni dovoljena za nobeno aplikacijo}=1{Preglasitev je dovoljena za aplikacijo {app_1}}=2{Preglasitev je dovoljena za aplikaciji {app_1} in {app_2}}=3{Preglasitev je dovoljena za aplikacije {app_1}, {app_2} in {app_3}}one{Preglasitev je dovoljena za aplikaciji {app_1} in {app_2} ter še # aplikacijo}two{Preglasitev je dovoljena za aplikaciji {app_1} in {app_2} ter še # aplikaciji}few{Preglasitev je dovoljena za aplikaciji {app_1} in {app_2} ter še # aplikacije}other{Preglasitev je dovoljena za aplikaciji {app_1} in {app_2} ter še # aplikacij}}"</string>
+ <string name="zen_mode_apps_work_app" msgid="8528767938316361588">"<xliff:g id="APP_LABEL">%s</xliff:g> (delo)"</string>
<string name="zen_mode_apps_calculating" msgid="5420121396943539286">"Izračunavanje …"</string>
+ <string name="zen_mode_plus_n_items" msgid="6136713354369243421">"+<xliff:g id="NUMBER">%d</xliff:g>"</string>
<string name="zen_mode_bypassing_apps" msgid="625309443389126481">"Aplikacijam dovoli preglasitev"</string>
<string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"Aplikacije, ki lahko preglasijo"</string>
<string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"Izberite več aplikacij"</string>
@@ -3829,6 +3822,7 @@
<string name="zen_mode_sounds_none" msgid="6557474361948269420">"Nič ne sme preglasiti"</string>
<string name="zen_mode_people_none" msgid="4613147461974255046">"Nihče ne sme preglasiti"</string>
<string name="zen_mode_people_some" msgid="9101872681298810281">"Nekatere osebe lahko preglasijo"</string>
+ <string name="zen_mode_people_repeat_callers" msgid="4499084111069828761">"Klicatelji, ki večkrat kličejo, lahko preglasijo"</string>
<string name="zen_mode_people_all" msgid="311036110283015205">"Vsakdo lahko preglasi"</string>
<string name="zen_mode_repeat_callers" msgid="2270356100287792138">"Klicatelji, ki večkrat kličejo"</string>
<string name="zen_mode_repeat_callers_title" msgid="8016699240338264781">"Dovoli večkratne klicatelje"</string>
@@ -3852,6 +3846,34 @@
<string name="zen_mode_new_custom_title" msgid="321750898430776191">"Dodajanje načina"</string>
<string name="zen_mode_new_custom_default_name" msgid="2778307946775085105">"Način po meri"</string>
<string name="zen_mode_edit_name_hint" msgid="4584652062167540536">"Ime načina"</string>
+ <string name="zen_mode_trigger_title_schedule_calendar" msgid="9206609438617550331">"Dogodki na koledarju"</string>
+ <string name="zen_mode_trigger_title_bedtime" msgid="5086070900588489978">"Razpored spanja"</string>
+ <string name="zen_mode_trigger_title_driving" msgid="7890990983453164403">"Med vožnjo"</string>
+ <string name="zen_mode_trigger_title_generic" msgid="601273385119550420">"Povezano z aplikacijo"</string>
+ <string name="zen_mode_trigger_summary_settings_in_app" msgid="4860667191183702601">"Informacije in nastavitve v aplikaciji <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+ <string name="zen_mode_trigger_summary_managed_by_app" msgid="8631011868193102098">"Upravlja <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+ <string name="zen_mode_confirm_disable_title" msgid="1232297660775719796">"Onemogočanje načina"</string>
+ <string name="zen_mode_confirm_disable_message" msgid="7315541221665718491">"Če onemogočite to funkcijo, način ne bo več deloval, kot je predvideno, in njegove nastavitve bodo skrite."</string>
+ <string name="zen_mode_action_disable" msgid="3552921561331044881">"Onemogoči"</string>
+ <string name="zen_mode_confirm_enable_title" msgid="5683371335847448595">"Omogočanje načina"</string>
+ <string name="zen_mode_confirm_enable_message" msgid="7017879133260011419">"Če omogočite to funkcijo, se bo način samodejno aktiviral v skladu z razporedom."</string>
+ <string name="zen_mode_action_enable" msgid="1161480633223176531">"Omogoči"</string>
+ <!-- no translation found for zen_mode_blurb_schedule_time (8223898702097484009) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_schedule_calendar (382177907856065945) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_bedtime (6155075956151013457) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_driving (1316054379000667305) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_immersive (5884004861848687869) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_theater (2999237960059524225) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_managed (5473921634985032149) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_generic (3041601339807075625) -->
+ <skip />
<string name="warning_button_text" msgid="1274234338874005639">"Opozorilo"</string>
<string name="suggestion_button_close" msgid="6865170855573283759">"Zapri"</string>
<string name="device_feedback" msgid="5351614458411688608">"Povratne informacije o tej napravi"</string>
@@ -4838,9 +4860,8 @@
<string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"Baterija"</string>
<string name="settings_panel_title" msgid="346363079938069215">"Podokno nastavitev"</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>
+ <!-- no translation found for enable_desktop_mode_on_secondary_display (2609567824593768780) -->
+ <skip />
<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>
@@ -5017,7 +5038,6 @@
<string name="default_active_sim_mobile_data" msgid="6798083892814045301">"prenos podatkov v mobilnem omrežju"</string>
<string name="wifi_scan_notify_message" msgid="1331238142061476869">"Za izboljšano izkušnjo pri uporabi naprave lahko aplikacije in storitve kadar koli iščejo omrežja Wi‑Fi, tudi ko je Wi‑Fi izklopljen. To funkcijo lahko na primer uporabite, če želite izboljšati funkcije in storitve, ki pri delovanju uporabljajo lokacijo. To lahko spremenite v nastavitvah iskanja omrežij Wi-Fi."</string>
<string name="wifi_scan_change" msgid="8438320311511852918">"Spremeni"</string>
- <string name="preference_summary_default_combination" msgid="4643585915107796253">"<xliff:g id="STATE">%1$s</xliff:g>/<xliff:g id="NETWORKMODE">%2$s</xliff:g>"</string>
<string name="mobile_data_connection_active" msgid="2422223108911581552">"Povezano"</string>
<string name="mobile_data_temp_connection_active" msgid="3430470299756236413">"Začasno vzpostavljena povezava"</string>
<string name="mobile_data_temp_using" msgid="5211002380149434155">"Začasna uporaba storitve <xliff:g id="SUBNAME">%1$s</xliff:g>"</string>
@@ -5049,7 +5069,7 @@
<string name="app_pinning_main_switch_title" msgid="5465506660064032876">"Uporabi pripenjanje aplikacije"</string>
<string name="developer_options_main_switch_title" msgid="1720074589554152501">"Uporabi možnosti za razvijalce"</string>
<string name="default_print_service_main_switch_title" msgid="4697133737128324036">"Uporabi storitev tiskanja"</string>
- <string name="multiple_users_main_switch_title" msgid="9158796544835843201">"Dovoli preklop uporabnikov"</string>
+ <string name="multiple_users_main_switch_title" msgid="9158796544835843201">"Dovoli preklop med uporabniki"</string>
<string name="multiple_users_main_switch_keywords" msgid="4845954458094134356">"dovoli, več, uporabnik, dovoljenje"</string>
<string name="multiple_users_title_keywords" msgid="2395593167746225172">"več, uporabniki, profili, osebe, računi, preklopi, veliko"</string>
<string name="wireless_debugging_main_switch_title" msgid="8463499572781441719">"Uporabi brezžično odpravljanje napak"</string>
@@ -5082,7 +5102,7 @@
<string name="all_apps" msgid="3054120149509114789">"Vse aplikacije"</string>
<string name="request_manage_bluetooth_permission_dont_allow" msgid="8798061333407581300">"Ne dovoli"</string>
<string name="uwb_settings_title" msgid="8578498712312002231">"Izjemno širok pas (UWB)"</string>
- <string name="uwb_settings_summary" msgid="3074271396764672268">"Pomaga določiti relativni položaj naprav v bližini, ki imajo UWB."</string>
+ <string name="uwb_settings_summary" msgid="3074271396764672268">"Pomaga določiti relativni položaj naprav v bližini, ki imajo UWB"</string>
<string name="uwb_settings_summary_airplane_mode" msgid="1328864888135086484">"Če želite uporabljati UWB, izklopite način za letalo."</string>
<string name="uwb_settings_summary_no_uwb_regulatory" msgid="3465456428217979428">"Na trenutni lokaciji UWB ni na voljo."</string>
<string name="thread_network_settings_title" msgid="4212301030523859220">"Thread"</string>
@@ -5163,9 +5183,11 @@
<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="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_enable_freeform_support" msgid="3697462756493543645">"Če želite omogočiti podporo za okna proste oblike, morate znova zagnati napravo."</string>
+ <!-- no translation found for reboot_dialog_override_desktop_mode (7480950772574354130) -->
+ <skip />
+ <!-- no translation found for reboot_dialog_enable_desktop_mode_on_secondary_display (1153621881052401924) -->
+ <skip />
<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>
@@ -5396,5 +5418,6 @@
<string name="audio_streams_main_page_password_dialog_join_button" msgid="2967747276379153408">"Poslušaj pretočno predvajanje"</string>
<string name="audio_streams_main_page_qr_code_scanner_summary" msgid="5312980105735143360">"Optično preberite kodo QR pretočnega predvajanja zvoka, če želite poslušati z napravo <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
<string name="audio_streams_main_page_password_dialog_cannot_edit" msgid="9020898619297520153">"Gesla ni mogoče urejati med deljenjem. Če želite spremeniti geslo, najprej izklopite deljenje zvoka."</string>
+ <string name="audio_streams_qr_code_scanner_label" msgid="8799703301071378034">"Optični bralnik kod QR"</string>
<string name="homepage_search" msgid="6759334912284663559">"Iskanje po nastavitvah"</string>
</resources>
diff --git a/res/values-sq/strings.xml b/res/values-sq/strings.xml
index 6af22be..580a074 100644
--- a/res/values-sq/strings.xml
+++ b/res/values-sq/strings.xml
@@ -41,6 +41,8 @@
<string name="radioInfo_data_suspended" msgid="2001254415431299603">"I pezulluar"</string>
<string name="radioInfo_unknown" msgid="2892562356748600367">"E panjohur"</string>
<string name="preview_pager_content_description" msgid="3762247188224576303">"Pamja paraprake"</string>
+ <!-- no translation found for qr_code_content_description (1852208464419291347) -->
+ <skip />
<string name="font_size_make_smaller_desc" msgid="4978038055549590140">"Zvogëlo"</string>
<string name="font_size_make_larger_desc" msgid="5583046033381722247">"Zmadho"</string>
<string name="stay_awake_on_fold_title" msgid="6590454679898134221">"Gjithmonë"</string>
@@ -283,7 +285,7 @@
<string name="location_settings_summary_location_off" msgid="4797932754681162262">"Joaktiv"</string>
<string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{Aktive / # aplikacion ka qasje te vendndodhja}other{Aktive / # aplikacione kanë qasje te vendndodhja}}"</string>
<string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"Po ngarkohet…"</string>
- <string name="location_settings_footer_general" msgid="1040507068701188821">"Aplikacionet me lejen \"Pajisjet në afërsi\" mund të përcaktojnë pozicionin e përafërt të pajisjeve të lidhura."</string>
+ <string name="location_settings_footer_general" msgid="3447585552176173502">"Aplikacionet me lejen për pajisjet në afërsi mund të përcaktojnë pozicionin e përafërt të pajisjeve të lidhura."</string>
<string name="location_settings_footer_location_off" msgid="8568995909147566720">"Qasja te vendndodhja është joaktive për aplikacionet dhe shërbimet. Vendndodhja e pajisjes sate mund t\'u dërgohet përsëri personave që përgjigjen në rast urgjence kur telefonon ose dërgon mesazh te një numër urgjence."</string>
<string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Mëso më shumë për \"Cilësimet e vendndodhjes\""</string>
<string name="location_settings_tooltip_text_for_chrome" msgid="5781821709250544575">"Për ta ndryshuar, shko te Cilësimet e ChromeOS > Privatësia dhe siguria > Kontrollet e privatësisë > Qasja te vendndodhja"</string>
@@ -850,7 +852,6 @@
<string name="nfc_reboot_dialog_title" msgid="2033983438635768169">"Të riniset pajisja?"</string>
<string name="nfc_reboot_dialog_message" msgid="4929353168157966992">"Regjistrimi i detajuar i lidhjes NFC është i planifikuar vetëm për qëllime zhvillimi. Të dhënat shtesë të lidhjes NFC përfshihen në raportet e defekteve në kod, të cilat mund të përmbajnë informacione private. Rinise pajisjen tënde për ta ndryshuar këtë cilësim."</string>
<string name="nfc_reboot_dialog_confirm" msgid="4769763632008584567">"Rinis"</string>
- <string name="keywords_external_display" msgid="4181375057920134909">"pasqyro, ekrani i jashtëm, ekrani i lidhur, ekrani me usb, rezolucioni, rrotullimi"</string>
<string name="external_display_on" msgid="2560104443500154333">"Aktiv"</string>
<string name="external_display_off" msgid="5634413756025351374">"Joaktiv"</string>
<string name="external_display_settings_title" msgid="6256884595821605779">"Ekrani i jashtëm"</string>
@@ -1918,6 +1919,8 @@
<string name="slow_keys_summary" msgid="1784371292745423292">"Rregullon kohën që duhet për aktivizimin e një shtypjeje tasti në <xliff:g id="SLOW_KEYS_THRESHOLD">%1$d</xliff:g> ms"</string>
<string name="sticky_keys" msgid="7317317044898161747">"Tastet e përhershme"</string>
<string name="sticky_keys_summary" msgid="1844953803625480623">"Shtyp vetëm një tast në një moment për shkurtoret në vend që t\'i mbash shtypur bashkë tastet"</string>
+ <string name="mouse_keys" msgid="6237254627808525540">"Butonat e miut"</string>
+ <string name="mouse_keys_summary" msgid="2396247040177734245">"Përdor tastierën fizike për të kontrolluar miun."</string>
<string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"Shkurtoret e tastierës"</string>
<string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"Shfaq listën e shkurtoreve"</string>
<string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"Tastierat dhe veglat e profilit të punës"</string>
@@ -1942,14 +1945,10 @@
<string name="pointer_fill_style_yellow_button" msgid="5025969961559379024">"Ndrysho stilin e mbushjes së treguesit në të verdhë"</string>
<string name="pointer_fill_style_pink_button" msgid="4106218142489635673">"Ndrysho stilin e mbushjes së treguesit në rozë"</string>
<string name="pointer_fill_style_blue_button" msgid="5594958078854032785">"Ndrysho stilin e mbushjes së treguesit në blu"</string>
- <!-- no translation found for pointer_stroke_style (1886986630216050665) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_white (673686194443825383) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_black (4655806167067437330) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_none (8953927511729800247) -->
- <skip />
+ <string name="pointer_stroke_style" msgid="1886986630216050665">"Stili i lëvizjes së treguesit"</string>
+ <string name="pointer_stroke_style_name_white" msgid="673686194443825383">"E bardhë"</string>
+ <string name="pointer_stroke_style_name_black" msgid="4655806167067437330">"E zezë"</string>
+ <string name="pointer_stroke_style_name_none" msgid="8953927511729800247">"Asnjë"</string>
<string name="trackpad_touch_gesture" msgid="8641725062131922497">"Mëso gjestet e bllokut me prekje"</string>
<string name="keywords_touchpad" msgid="8159846254066666032">"blloku i prekjes, bllok i prekjes, miu, kursori, lëviz, rrëshqit shpejt, kliko më të djathtin, kliko, treguesi"</string>
<string name="keywords_trackpad_bottom_right_tap" msgid="1285062446073929305">"kliko me të djathtin, trokit"</string>
@@ -2179,8 +2178,6 @@
<string name="accessibility_shortcut_edit_dialog_summary_floating_button" msgid="6266489864614886247">"Trokit te butoni pluskues"</string>
<string name="accessibility_shortcut_edit_dialog_title_software_by_gesture" msgid="4775049370625630546">"Gjesti i qasshmërisë"</string>
<string name="accessibility_shortcut_edit_dialog_summary_software" msgid="8315934725362849788">"Trokit te butoni i qasshmërisë <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g> në fund të ekranit. Për të ndërruar mes veçorive, prek dhe mbaj të shtypur butonin e qasshmërisë."</string>
- <string name="accessibility_shortcut_edit_dialog_summary_software_gesture" msgid="8292555254353761635">"Rrëshqit shpejt lart nga fundi i ekranit me 2 gishta.\n\nPër të kaluar mes veçorive, rrëshqit shpejt lart me 2 gishta dhe mbaje të shtypur."</string>
- <string name="accessibility_shortcut_edit_dialog_summary_software_gesture_talkback" msgid="84483464524360845">"Rrëshqit shpejt lart nga fundi i ekranit me 3 gishta.\n\nPër të kaluar mes veçorive, rrëshqit shpejt lart me 3 gishta dhe mbaje të shtypur."</string>
<string name="accessibility_shortcut_edit_dialog_summary_gesture" msgid="2081123009255579884">"{count,plural, =1{Rrëshqit shpejt lart nga fundi i ekranit tënd. Për të ndërruar mes veçorive, rrëshqit shpejt lart dhe mbaj shtypur.}other{Rrëshqit shpejt lart me # gishta nga fundi i ekranit. Për të ndërruar mes veçorive, rrëshqit shpejt lart me # gishta dhe mbaj shtypur.}}"</string>
<string name="accessibility_shortcut_edit_dialog_summary_software_floating" msgid="4459254227203203324"><annotation id="link">"Opsione të tjera"</annotation></string>
<string name="footer_learn_more_content_description" msgid="8843798273152131341">"Mëso më shumë për <xliff:g id="SERVICE">%1$s</xliff:g>"</string>
@@ -2191,16 +2188,12 @@
<string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="844089763968552142">"Tastet e volumit"</string>
<string name="accessibility_shortcut_hardware_keyword" msgid="2483152542320987022">"tastet e volumit"</string>
<string name="accessibility_shortcut_edit_dialog_summary_hardware" msgid="2503134386397991634">"Shtyp dhe mbaj shtypur të dyja tastet e volumit"</string>
- <string name="accessibility_shortcut_edit_dialog_title_two_finger_double_tap" msgid="2271778556854020996">"Trokit dy herë me dy gishta në ekran"</string>
<string name="accessibility_shortcut_edit_screen_title_two_finger_double_tap" msgid="8952595692906527694">"Trokit dy herë me %1$d gishta"</string>
<string name="accessibility_shortcut_edit_screen_summary_two_finger_double_tap" msgid="385404127425496362">"Trokit me shpejtësi tek ekrani dy herë me %1$d gishta"</string>
<string name="accessibility_shortcut_edit_screen_title_triple_tap" msgid="3314488747597058942">"Trokit tri herë"</string>
<string name="accessibility_shortcut_edit_screen_summary_triple_tap" msgid="4839204951599629871">"Trokit me shpejtësi tek ekrani %1$d herë. Kjo mund ta ngadalësojë pajisjen."</string>
<string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="6271718715836961167">"Trokit dy herë me %1$d gishta"</string>
- <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"Trokit shpejt {0,number,integer} herë me dy gishta në ekran"</string>
- <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"Trokit tri herë mbi ekran"</string>
<string name="accessibility_shortcut_triple_tap_keyword" msgid="5359347130888464334">"trokit tri herë"</string>
- <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"Trokit me shpejtësi {0,number,integer} herë në ekran. Kjo shkurtore mund të ngadalësojë pajisjen tënde"</string>
<string name="accessibility_shortcut_edit_dialog_title_advance" msgid="4567868630655591506">"Të përparuara"</string>
<string name="accessibility_screen_magnification_navbar_configuration_warning" msgid="266736851606791552">"Butoni i \"Qasshmërisë\" është caktuar te <xliff:g id="SERVICE">%1$s</xliff:g>. Për të përdorur zmadhimin, prek dhe mbaj butonin e \"Qasshmërisë\" dhe më pas zgjidh zmadhimin."</string>
<string name="accessibility_screen_magnification_gesture_navigation_warning" msgid="991017769735632046">"Gjesti i qasshmërisë është caktuar në <xliff:g id="SERVICE">%1$s</xliff:g>. Për të përdorur zmadhimin, rrëshqit lart me dy gishta nga fundi i ekranit dhe mbaje. Më pas zgjidh zmadhimin."</string>
@@ -2369,6 +2362,7 @@
<string name="daltonizer_mode_tritanomaly_title" msgid="2278786218762602022">"E kaltër - e verdhë"</string>
<string name="daltonizer_mode_grayscale_title" msgid="152005391387952588">"Nuancat e grisë"</string>
<string name="daltonizer_saturation_title" msgid="2999486412114963068">"Intensiteti"</string>
+ <string name="daltonizer_saturation_unavailable_summary" msgid="8319753055567798775">"Nuk ofrohet për modalitetin e nuancave të grisë ose kur është çaktivizuar korrigjimi i ngjyrës"</string>
<string name="daltonizer_mode_deuteranomaly_summary" msgid="2117727423019598455">"E gjelbër e dobët, deuteranomali"</string>
<string name="daltonizer_mode_protanomaly_summary" msgid="4617032854982040748">"E kuqe e dobët, protanomali"</string>
<string name="daltonizer_mode_tritanomaly_summary" msgid="2428218320118180070">"Tritanomali"</string>
@@ -2418,15 +2412,8 @@
<string name="color_cyan" msgid="4341758639597035927">"Gurkali"</string>
<string name="color_yellow" msgid="5957551912912679058">"E verdhë"</string>
<string name="color_magenta" msgid="8943538189219528423">"E purpurt"</string>
- <string name="enable_service_title" msgid="7231533866953706788">"Të lejohet \"<xliff:g id="SERVICE">%1$s</xliff:g>\" që të ketë kontroll të plotë të pajisjes sate?"</string>
<string name="capabilities_list_title" msgid="1225853611983394386">"\"<xliff:g id="SERVICE">%1$s</xliff:g>\" ka nevojë të:"</string>
<string name="touch_filtered_warning" msgid="4225815157460318241">"Duke qenë se një aplikacion po bllokon një kërkesë për leje, \"Cilësimet\" nuk mund të verifikojnë përgjigjen tënde."</string>
- <string name="accessibility_service_warning" msgid="6779187188736432618">"<xliff:g id="SERVICE">%1$s</xliff:g> po kërkon kontroll të plotë të kësaj pajisjeje. Shërbimi mund të lexojë ekranin dhe të veprojë në emër të përdoruesve me nevoja qasshmërie. Ky nivel kontrolli nuk është i përshtatshëm për shumicën e aplikacioneve."</string>
- <string name="accessibility_service_warning_description" msgid="6573203795976134751">"Kontrolli i plotë është i përshtatshëm për aplikacionet që të ndihmojnë me nevojat e qasshmërisë, por jo për shumicën e aplikacioneve."</string>
- <string name="accessibility_service_screen_control_title" msgid="324795030658109870">"Shiko dhe kontrollo ekranin"</string>
- <string name="accessibility_service_screen_control_description" msgid="8431940515157990426">"Mund të lexojë të gjithë përmbajtjen në ekran dhe të shfaqë përmbajtjen mbi aplikacione të tjera."</string>
- <string name="accessibility_service_action_perform_title" msgid="1449360056585337833">"Shiko dhe kryej veprimet"</string>
- <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"Mund të monitorojë ndërveprimet me një aplikacion ose një sensor hardueri dhe të ndërveprojë me aplikacionet në emrin tënd."</string>
<string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Lejo"</string>
<string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Refuzo"</string>
<string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Çaktivizo"</string>
@@ -3368,10 +3355,8 @@
<string name="zen_mode_automation_settings_title" msgid="3709324184191870926">"Oraret"</string>
<string name="zen_mode_delete_automatic_rules" msgid="5020468289267191765">"Fshi oraret"</string>
<string name="zen_mode_schedule_delete" msgid="5383420576833765114">"Fshi"</string>
- <!-- no translation found for zen_mode_menu_rename_mode (4681802125016390837) -->
- <skip />
- <!-- no translation found for zen_mode_menu_delete_mode (5380084696402157428) -->
- <skip />
+ <string name="zen_mode_menu_rename_mode" msgid="4681802125016390837">"Riemërto"</string>
+ <string name="zen_mode_menu_delete_mode" msgid="5380084696402157428">"Fshi"</string>
<string name="zen_mode_delete_mode_confirmation" msgid="7594340592051947392">"Të fshihet modaliteti \"<xliff:g id="MODE">%1$s</xliff:g>\"?"</string>
<string name="zen_mode_rule_name_edit" msgid="1053237022416700481">"Redakto"</string>
<string name="zen_mode_automation_settings_page_title" msgid="6217433860514433311">"Oraret"</string>
@@ -3395,8 +3380,7 @@
<string name="zen_mode_visual_signals_settings_subtitle" msgid="7433077540895876672">"Lejo sinjalet vizuale"</string>
<string name="mode_interruption_filter_title" msgid="3343846700214702347">"Ruaj përqendrimin"</string>
<string name="mode_device_effects_title" msgid="5857008332618433744">"Veprime të tjera"</string>
- <!-- no translation found for modes_sound_summary_off (6972648204528227879) -->
- <skip />
+ <string name="modes_sound_summary_off" msgid="6972648204528227879">"{count,plural, =0{Joaktiv}=1{Joaktiv / 1 modalitet mund të aktivizohet automatikisht}other{Joaktiv / # modalitete mund të aktivizohen automatikisht}}"</string>
<string name="mode_display_settings_title" msgid="8132825978346535472">"Cilësimet e ekranit"</string>
<string name="mode_display_options_section" msgid="5151597748243866532">"Opsionet e paraqitjes"</string>
<string name="mode_grayscale_title" msgid="6027553257331235461">"Nuancat e grisë"</string>
@@ -3659,9 +3643,9 @@
<string name="notif_listener_not_migrated" msgid="6265206376374278226">"Ky aplikacion nuk i mbështet cilësimet e përmirësuara"</string>
<string name="notif_listener_more_settings" msgid="1348409392307208921">"Cilësime të tjera"</string>
<string name="notif_listener_more_settings_desc" msgid="7995492074281663658">"Brenda këtij aplikacioni ofrohen cilësime të tjera"</string>
- <string name="notification_polite_title" msgid="4737150709382859870">"Njoftimet me përshtatje"</string>
- <string name="notification_polite_main_control_title" msgid="7267191551379543859">"Përdor njoftimet me përshtatje"</string>
- <string name="notification_polite_description" msgid="7749280535620291610">"Kur merr shumë njoftime brenda një kohe të shkurtër, telefoni yt do të ulë volumin dhe do të minimizojë dritaret kërcyese në ekran për deri në dy minuta. Telefonatat, alarmet dhe bisedat me përparësi do të lëshojnë përsëri dridhje ose tinguj ose do të shfaqen në ekran dhe të gjitha njoftimet mund t\'i gjesh me lehtësi kur tërheq poshtë nga kreu i ekranit."</string>
+ <string name="notification_polite_title" msgid="6121016426991791557">"Reduktimi i njoftimeve"</string>
+ <string name="notification_polite_main_control_title" msgid="5812529809151927149">"Përdor reduktimin e njoftimeve"</string>
+ <string name="notification_polite_description" msgid="5497748284893832854">"Kur merr shumë njoftime brenda një kohe të shkurtër, pajisja jote do të ulë volumin dhe do të minimizojë sinjalizimet për deri në 2 minuta. Telefonatat, alarmet dhe bisedat me përparësi nuk do të ndikohen. \n\nNjoftimet e marra gjatë reduktimit mund të gjenden duke tërhequr poshtë nga kreu i ekranit."</string>
<string name="notification_polite_work" msgid="8823596456640216391">"Zbato në profilet e punës"</string>
<string name="notification_polite_work_summary" msgid="5014189280132951378">"Zbato për aplikacionet e profilit të punës"</string>
<string name="vr_listeners_title" msgid="4960357292472540964">"Shërbimet e ndihmësit VR"</string>
@@ -3818,7 +3802,9 @@
<string name="zen_mode_apps_priority_apps" msgid="7386196048313716076">"Aplikacionet e zgjedhura"</string>
<string name="zen_mode_apps_none_apps" msgid="2493642312793604327">"Asnjë"</string>
<string name="zen_mode_apps_subtext" msgid="1764211974662012877">"{count,plural,offset:2 =0{Asnjë aplikacion nuk mund të ndërpresë}=1{{app_1} mund të ndërpresë}=2{{app_1} dhe {app_2} mund të ndërpresin}=3{{app_1}, {app_2} dhe {app_3} mund të ndërpresin}other{{app_1}, {app_2} dhe # aplikacione të tjera mund të ndërpresin}}"</string>
+ <string name="zen_mode_apps_work_app" msgid="8528767938316361588">"<xliff:g id="APP_LABEL">%s</xliff:g> (Puna)"</string>
<string name="zen_mode_apps_calculating" msgid="5420121396943539286">"Po llogaritet…"</string>
+ <string name="zen_mode_plus_n_items" msgid="6136713354369243421">"+<xliff:g id="NUMBER">%d</xliff:g>"</string>
<string name="zen_mode_bypassing_apps" msgid="625309443389126481">"Lejo aplikacionet ta anulojnë"</string>
<string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"Aplikacionet që mund ta ndërpresin"</string>
<string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"Zgjidh më shumë aplikacione"</string>
@@ -3836,6 +3822,7 @@
<string name="zen_mode_sounds_none" msgid="6557474361948269420">"Asgjë nuk mund ta ndërpresë"</string>
<string name="zen_mode_people_none" msgid="4613147461974255046">"Askush nuk mund ta ndërpresë"</string>
<string name="zen_mode_people_some" msgid="9101872681298810281">"Disa persona mund ta ndërpresin"</string>
+ <string name="zen_mode_people_repeat_callers" msgid="4499084111069828761">"Telefonuesit e përsëritur mund të ndërpresin"</string>
<string name="zen_mode_people_all" msgid="311036110283015205">"Të gjithë kontaktet mund ta ndërpresin"</string>
<string name="zen_mode_repeat_callers" msgid="2270356100287792138">"Telefonuesit e përsëritur"</string>
<string name="zen_mode_repeat_callers_title" msgid="8016699240338264781">"Lejo telefonuesit e përsëritur"</string>
@@ -3855,13 +3842,37 @@
<string name="zen_mode_summary_alarms_only_by_hour" msgid="7400910210950788163">"{count,plural, =1{Ndrysho vetëm tek alarmet për një orë deri në {time}}other{Ndrysho vetëm tek alarmet për # orë deri në {time}}}"</string>
<string name="zen_mode_summary_alarms_only_by_time" msgid="8140619669703968810">"Ndrysho në gjendjen \"vetëm alarmet\" deri në <xliff:g id="FORMATTEDTIME">%1$s</xliff:g>"</string>
<string name="zen_mode_summary_always" msgid="722093064250082317">"Ndrysho te \"ndërprit gjithmonë\""</string>
- <!-- no translation found for zen_mode_rename_title (8146882272966214558) -->
+ <string name="zen_mode_rename_title" msgid="8146882272966214558">"Modifiko modalitetin"</string>
+ <string name="zen_mode_new_custom_title" msgid="321750898430776191">"Shto modalitetin"</string>
+ <string name="zen_mode_new_custom_default_name" msgid="2778307946775085105">"Modaliteti i personalizuar"</string>
+ <string name="zen_mode_edit_name_hint" msgid="4584652062167540536">"Emri i modalitetit"</string>
+ <string name="zen_mode_trigger_title_schedule_calendar" msgid="9206609438617550331">"Ngjarjet e kalendarit"</string>
+ <string name="zen_mode_trigger_title_bedtime" msgid="5086070900588489978">"Orari i gjumit"</string>
+ <string name="zen_mode_trigger_title_driving" msgid="7890990983453164403">"Kur lëviz me makinë"</string>
+ <string name="zen_mode_trigger_title_generic" msgid="601273385119550420">"Lidhur me aoplikacionin"</string>
+ <string name="zen_mode_trigger_summary_settings_in_app" msgid="4860667191183702601">"Informacione dhe cilësime në <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+ <string name="zen_mode_trigger_summary_managed_by_app" msgid="8631011868193102098">"Menaxhohet nga <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+ <string name="zen_mode_confirm_disable_title" msgid="1232297660775719796">"Çaktivizo modalitetin"</string>
+ <string name="zen_mode_confirm_disable_message" msgid="7315541221665718491">"Nëse e çaktivizon këtë veçori, modaliteti nuk do të funksionojë më siç pritet dhe cilësimet e tij do të fshihen."</string>
+ <string name="zen_mode_action_disable" msgid="3552921561331044881">"Çaktivizo"</string>
+ <string name="zen_mode_confirm_enable_title" msgid="5683371335847448595">"Aktivizo modalitetin"</string>
+ <string name="zen_mode_confirm_enable_message" msgid="7017879133260011419">"Nëse e aktivizon këtë veçori, modaliteti do të aktivizohet automatikisht sipas orarit të tij."</string>
+ <string name="zen_mode_action_enable" msgid="1161480633223176531">"Aktivizo"</string>
+ <!-- no translation found for zen_mode_blurb_schedule_time (8223898702097484009) -->
<skip />
- <!-- no translation found for zen_mode_new_custom_title (321750898430776191) -->
+ <!-- no translation found for zen_mode_blurb_schedule_calendar (382177907856065945) -->
<skip />
- <!-- no translation found for zen_mode_new_custom_default_name (2778307946775085105) -->
+ <!-- no translation found for zen_mode_blurb_bedtime (6155075956151013457) -->
<skip />
- <!-- no translation found for zen_mode_edit_name_hint (4584652062167540536) -->
+ <!-- no translation found for zen_mode_blurb_driving (1316054379000667305) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_immersive (5884004861848687869) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_theater (2999237960059524225) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_managed (5473921634985032149) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_generic (3041601339807075625) -->
<skip />
<string name="warning_button_text" msgid="1274234338874005639">"Paralajmërim"</string>
<string name="suggestion_button_close" msgid="6865170855573283759">"Mbyll"</string>
@@ -4849,9 +4860,8 @@
<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="enable_desktop_mode" msgid="5644818402534562302">"Aktivizo dritaret me formë të lirë"</string>
- <string name="enable_desktop_mode_summary" msgid="7606643229185242771">"Aktivizo mbështetjen për dritaret me formë të lirë."</string>
- <string name="force_desktop_mode" msgid="8292039809783522466">"Aktivizo dritare me formë të lirë në ekran të dytë"</string>
- <string name="force_desktop_mode_summary" msgid="6534513232678335875">"Aktivizo dritaret me formë të lirë vetëm në ekranin e dytë."</string>
+ <!-- no translation found for enable_desktop_mode_on_secondary_display (2609567824593768780) -->
+ <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>
@@ -5026,7 +5036,6 @@
<string name="default_active_sim_mobile_data" msgid="6798083892814045301">"të dhënat celulare"</string>
<string name="wifi_scan_notify_message" msgid="1331238142061476869">"Për të përmirësuar përvojën e pajisjes, aplikacionet dhe shërbimet mund të vazhdojnë të skanojnë për rrjete Wi‑Fi në çdo kohë, edhe kur Wi‑Fi është joaktiv. Kjo mund të përdoret, për shembull, për të përmirësuar veçoritë dhe shërbimet e bazuara te vendndodhja. Mund ta ndryshosh këtë te cilësimet e skanimit të Wi-Fi."</string>
<string name="wifi_scan_change" msgid="8438320311511852918">"Ndrysho"</string>
- <string name="preference_summary_default_combination" msgid="4643585915107796253">"<xliff:g id="STATE">%1$s</xliff:g> / <xliff:g id="NETWORKMODE">%2$s</xliff:g>"</string>
<string name="mobile_data_connection_active" msgid="2422223108911581552">"Lidhur"</string>
<string name="mobile_data_temp_connection_active" msgid="3430470299756236413">"Lidhur përkohësisht"</string>
<string name="mobile_data_temp_using" msgid="5211002380149434155">"Po përdor përkohësisht <xliff:g id="SUBNAME">%1$s</xliff:g>"</string>
@@ -5172,9 +5181,11 @@
<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="5526979569538289810">"Kërkohet rindezja për të aktivizuar mbështetjen për dritaret me formë të lirë të versionit të vjetër."</string>
- <string name="reboot_dialog_override_desktop_mode" msgid="1557714416232280288">"Kërkohet rindezja për të ndryshuar mbështetjen për dritaret me formë të lirë."</string>
- <string name="reboot_dialog_force_desktop_mode" msgid="3647484086248450029">"Kërkohet rindezja për të detyruar dritaret me formë të lirë në ekranet dytësore."</string>
+ <string name="reboot_dialog_enable_freeform_support" msgid="3697462756493543645">"Kërkohet rindezja për të aktivizuar mbështetjen për dritaret me formë të lirë."</string>
+ <!-- no translation found for reboot_dialog_override_desktop_mode (7480950772574354130) -->
+ <skip />
+ <!-- no translation found for reboot_dialog_enable_desktop_mode_on_secondary_display (1153621881052401924) -->
+ <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>
@@ -5292,10 +5303,8 @@
<string name="show_captions_enabled" msgid="7089043007924626">"Aktivizuar"</string>
<string name="live_caption_disabled" msgid="3562035026547887366">"Çaktivizuar"</string>
<string name="live_caption_enabled" msgid="5269360946200718949">"Aktivizuar"</string>
- <!-- no translation found for audio_seek_bar_state_left_first (8814986910920838972) -->
- <skip />
- <!-- no translation found for audio_seek_bar_state_right_first (1999368979633398876) -->
- <skip />
+ <string name="audio_seek_bar_state_left_first" msgid="8814986910920838972">"Audioja %1$d%% majtas, %2$d%% djathtas"</string>
+ <string name="audio_seek_bar_state_right_first" msgid="1999368979633398876">"Audioja %1$d%% djathtas, %2$d%% majtas"</string>
<string name="about_phone_device_name_warning" msgid="3243226572404472381">"Emri i pajisjes sate është i dukshëm për aplikacionet që ke instaluar. Ai mund të shikohet po ashtu nga persona të tjerë kur lidhesh me pajisje me Bluetooth, kur lidhesh me një rrjet Wi-Fi ose kur konfiguron një zonë të qasjes për internet me Wi-Fi."</string>
<string name="grammatical_gender_title" msgid="8584242850477270828">"Gjinia gramatikore"</string>
<string name="grammatical_gender_dialog_title" msgid="8754048592099871587">"Zgjidh gjininë gramatikore"</string>
@@ -5407,5 +5416,6 @@
<string name="audio_streams_main_page_password_dialog_join_button" msgid="2967747276379153408">"Dëgjo transmetimin"</string>
<string name="audio_streams_main_page_qr_code_scanner_summary" msgid="5312980105735143360">"Skano një kod QR të transmetimit audio për të dëgjuar me <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
<string name="audio_streams_main_page_password_dialog_cannot_edit" msgid="9020898619297520153">"Fjalëkalimi nuk mund të modifikohet gjatë ndarjes. Për të ndryshuar fjalëkalimin, në fillim çaktivizo ndarjen e audios."</string>
+ <string name="audio_streams_qr_code_scanner_label" msgid="8799703301071378034">"Skaneri i kodeve QR"</string>
<string name="homepage_search" msgid="6759334912284663559">"Kërko te cilësimet"</string>
</resources>
diff --git a/res/values-sr/strings.xml b/res/values-sr/strings.xml
index aa55421..0668caf 100644
--- a/res/values-sr/strings.xml
+++ b/res/values-sr/strings.xml
@@ -41,6 +41,8 @@
<string name="radioInfo_data_suspended" msgid="2001254415431299603">"Обустављено"</string>
<string name="radioInfo_unknown" msgid="2892562356748600367">"Непознато"</string>
<string name="preview_pager_content_description" msgid="3762247188224576303">"Преглед"</string>
+ <!-- no translation found for qr_code_content_description (1852208464419291347) -->
+ <skip />
<string name="font_size_make_smaller_desc" msgid="4978038055549590140">"Умањи"</string>
<string name="font_size_make_larger_desc" msgid="5583046033381722247">"Увећај"</string>
<string name="stay_awake_on_fold_title" msgid="6590454679898134221">"Увек"</string>
@@ -283,7 +285,7 @@
<string name="location_settings_summary_location_off" msgid="4797932754681162262">"Искључено"</string>
<string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{Укључено/# апликација има приступ локацији}one{Укључено/# апликација има приступ локацији}few{Укључено/# апликације имају приступ локацији}other{Укључено/# апликација има приступ локацији}}"</string>
<string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"Учитава се…"</string>
- <string name="location_settings_footer_general" msgid="1040507068701188821">"Апликације са дозволом за уређаје у близини могу да одреде приближан положај повезаних уређаја."</string>
+ <string name="location_settings_footer_general" msgid="3447585552176173502">"Апликације са дозволом за уређаје у близини могу да одреде приближни положај повезаних уређаја."</string>
<string name="location_settings_footer_location_off" msgid="8568995909147566720">"Приступ локацији је искључен за апликације и услуге. Локација уређаја може и даље да се шаље екипама хитних служби када позовете број за хитне случајеве или пошаљете SMS на њега."</string>
<string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Сазнајте више о подешавањима локације"</string>
<string name="location_settings_tooltip_text_for_chrome" msgid="5781821709250544575">"Да бисте то променили, на ChromeOS-у отворите Подешавања > Безбедност и приватност > Контроле приватности > Приступ локацији"</string>
@@ -666,7 +668,7 @@
<string name="lock_settings_picker_admin_restricted_personal_message" msgid="3532653662159888328">"Ако заборавите откључавање екрана, администратор не може да га ресетује."</string>
<string name="lock_settings_picker_admin_restricted_personal_message_action" msgid="5956615234246626264">"Подесите засебно закључавање за пословне апликације"</string>
<string name="lock_settings_picker_profile_message" msgid="9142379549980873478">"Ако заборавите како да откључате, затражите од ИТ администратора да то ресетује"</string>
- <string name="setup_lock_settings_options_button_label" msgid="6098297461618298505">"Опције закључавања екрана"</string>
+ <string name="setup_lock_settings_options_button_label" msgid="6098297461618298505">"Опције откључавања екрана"</string>
<string name="setup_lock_settings_options_dialog_title" msgid="7985107300517468569">"Опције откључавања екрана"</string>
<string name="lock_screen_auto_pin_confirm_title" msgid="3012128112186088375">"Откључавање које се аутоматски потврђује"</string>
<string name="lock_screen_auto_pin_confirm_summary" msgid="9050818870806580819">"Откључава се аутоматски ако унесете PIN са 6 или више цифара. То је мало мање поуздано него да додирнете Enter да бисте потврдили."</string>
@@ -850,7 +852,6 @@
<string name="nfc_reboot_dialog_title" msgid="2033983438635768169">"Желите да рестартујете уређај?"</string>
<string name="nfc_reboot_dialog_message" msgid="4929353168157966992">"NFC евидентирање детаља је намењено само у сврхе програмирања. Додатни NFC подаци уврштени су у извештаје о грешкама, који могу да садрже приватне податке. Рестартујте уређај да бисте променили ово подешавање."</string>
<string name="nfc_reboot_dialog_confirm" msgid="4769763632008584567">"Рестартуј"</string>
- <string name="keywords_external_display" msgid="4181375057920134909">"пресликати, спољни екран, повезани екран, usb екран, резолуција, ротација"</string>
<string name="external_display_on" msgid="2560104443500154333">"Укључено"</string>
<string name="external_display_off" msgid="5634413756025351374">"Искључено"</string>
<string name="external_display_settings_title" msgid="6256884595821605779">"Спољни екран"</string>
@@ -1918,6 +1919,8 @@
<string name="slow_keys_summary" msgid="1784371292745423292">"Приладите време потребно да се тастер активира после притиска на <xliff:g id="SLOW_KEYS_THRESHOLD">%1$d</xliff:g> ms"</string>
<string name="sticky_keys" msgid="7317317044898161747">"Лепљиви тастери"</string>
<string name="sticky_keys_summary" msgid="1844953803625480623">"Притискајте један по један тастер да бисте користили пречице уместо да истовремено држите тастере"</string>
+ <string name="mouse_keys" msgid="6237254627808525540">"Тастери миша"</string>
+ <string name="mouse_keys_summary" msgid="2396247040177734245">"Користите физичку тастатуру да бисте управљали мишем."</string>
<string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"Тастерске пречице"</string>
<string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"Приказује листу пречица"</string>
<string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"Тастатуре и алатке за пословни профил"</string>
@@ -1942,14 +1945,10 @@
<string name="pointer_fill_style_yellow_button" msgid="5025969961559379024">"Промените стил попуне у жуто"</string>
<string name="pointer_fill_style_pink_button" msgid="4106218142489635673">"Промените стил попуне у розе"</string>
<string name="pointer_fill_style_blue_button" msgid="5594958078854032785">"Промените стил попуне у плаво"</string>
- <!-- no translation found for pointer_stroke_style (1886986630216050665) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_white (673686194443825383) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_black (4655806167067437330) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_none (8953927511729800247) -->
- <skip />
+ <string name="pointer_stroke_style" msgid="1886986630216050665">"Стил потеза показивача"</string>
+ <string name="pointer_stroke_style_name_white" msgid="673686194443825383">"Бело"</string>
+ <string name="pointer_stroke_style_name_black" msgid="4655806167067437330">"Црно"</string>
+ <string name="pointer_stroke_style_name_none" msgid="8953927511729800247">"Ништа"</string>
<string name="trackpad_touch_gesture" msgid="8641725062131922497">"Научите покрете за тачпед"</string>
<string name="keywords_touchpad" msgid="8159846254066666032">"додирна табла, миш, курсор, скроловање, превлачење, десни клик, клик, показивач"</string>
<string name="keywords_trackpad_bottom_right_tap" msgid="1285062446073929305">"десни клик, додир"</string>
@@ -2179,8 +2178,6 @@
<string name="accessibility_shortcut_edit_dialog_summary_floating_button" msgid="6266489864614886247">"Додирните плутајуће дугме"</string>
<string name="accessibility_shortcut_edit_dialog_title_software_by_gesture" msgid="4775049370625630546">"Покрет за приступачност"</string>
<string name="accessibility_shortcut_edit_dialog_summary_software" msgid="8315934725362849788">"Додирните дугме Приступачност <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g> у дну екрана. Да бисте прелазили са једне функције на другу, додирните и задржите дугме Приступачност."</string>
- <string name="accessibility_shortcut_edit_dialog_summary_software_gesture" msgid="8292555254353761635">"Превуците нагоре од дна екрана помоћу 2 прста.\n\nДа бисте прелазили са једне функције на другу, превуците нагоре помоћу 2 прста и задржите."</string>
- <string name="accessibility_shortcut_edit_dialog_summary_software_gesture_talkback" msgid="84483464524360845">"Превуците нагоре од дна екрана помоћу 3 прста.\n\nДа бисте прелазили са једне функције на другу, превуците нагоре помоћу 3 прста и задржите."</string>
<string name="accessibility_shortcut_edit_dialog_summary_gesture" msgid="2081123009255579884">"{count,plural, =1{Превуците нагоре од дна екрана. Да бисте прелазили са једне функције на другу, превуците нагоре и задржите.}one{Превуците нагоре од дна екрана помоћу # прста. Да бисте прелазили са једне функције на другу, превуците нагоре помоћу # прста и задржите.}few{Превуците нагоре од дна екрана помоћу # прста. Да бисте прелазили са једне функције на другу, превуците нагоре помоћу # прста и задржите.}other{Превуците нагоре од дна екрана помоћу # прстију. Да бисте прелазили са једне функције на другу, превуците нагоре помоћу # прстију и задржите.}}"</string>
<string name="accessibility_shortcut_edit_dialog_summary_software_floating" msgid="4459254227203203324"><annotation id="link">"Још опција"</annotation></string>
<string name="footer_learn_more_content_description" msgid="8843798273152131341">"Сазнајте више о: <xliff:g id="SERVICE">%1$s</xliff:g>"</string>
@@ -2191,16 +2188,12 @@
<string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="844089763968552142">"Тастери за јачину звука"</string>
<string name="accessibility_shortcut_hardware_keyword" msgid="2483152542320987022">"тастери за јачину звука"</string>
<string name="accessibility_shortcut_edit_dialog_summary_hardware" msgid="2503134386397991634">"Притисните и задржите оба тастера за јачину звука"</string>
- <string name="accessibility_shortcut_edit_dialog_title_two_finger_double_tap" msgid="2271778556854020996">"Двапут додирните екран помоћу два прста"</string>
<string name="accessibility_shortcut_edit_screen_title_two_finger_double_tap" msgid="8952595692906527694">"Двапут додирните помоћу %1$d прста"</string>
<string name="accessibility_shortcut_edit_screen_summary_two_finger_double_tap" msgid="385404127425496362">"Брзо додирните екран двапут помоћу %1$d прста"</string>
<string name="accessibility_shortcut_edit_screen_title_triple_tap" msgid="3314488747597058942">"Додирните трипут"</string>
<string name="accessibility_shortcut_edit_screen_summary_triple_tap" msgid="4839204951599629871">"Брзо додирните екран %1$d пута. Ово може да успори уређај."</string>
<string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="6271718715836961167">"двапут додирните помоћу %1$d прста"</string>
- <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"Брзо додирните екран {0,number,integer} пута помоћу два прста"</string>
- <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"Додирните екран трипут"</string>
<string name="accessibility_shortcut_triple_tap_keyword" msgid="5359347130888464334">"додирните трипут"</string>
- <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"Брзо додирните екран {0,number,integer} пута. Ова пречица може да успори уређај"</string>
<string name="accessibility_shortcut_edit_dialog_title_advance" msgid="4567868630655591506">"Напредно"</string>
<string name="accessibility_screen_magnification_navbar_configuration_warning" msgid="266736851606791552">"Дугме за приступачност је подешено на <xliff:g id="SERVICE">%1$s</xliff:g>. Да бисте користили увећање, додирните и задржите дугме за приступачност, па изаберите увећање."</string>
<string name="accessibility_screen_magnification_gesture_navigation_warning" msgid="991017769735632046">"Покрет за приступачност је подешен на функцију <xliff:g id="SERVICE">%1$s</xliff:g>. Да бисте користили увећање, превлачите нагоре од дна екрана помоћу два прста и задржите. Затим одаберите увећање."</string>
@@ -2369,6 +2362,7 @@
<string name="daltonizer_mode_tritanomaly_title" msgid="2278786218762602022">"Плаво-жуто"</string>
<string name="daltonizer_mode_grayscale_title" msgid="152005391387952588">"Сивило"</string>
<string name="daltonizer_saturation_title" msgid="2999486412114963068">"Интензитет"</string>
+ <string name="daltonizer_saturation_unavailable_summary" msgid="8319753055567798775">"Није доступно за режим сивила или када је онемогућена корекција боја"</string>
<string name="daltonizer_mode_deuteranomaly_summary" msgid="2117727423019598455">"Делимично слепило за зелену, деутераномалија"</string>
<string name="daltonizer_mode_protanomaly_summary" msgid="4617032854982040748">"Делимично слепило за црвену, протаномалија"</string>
<string name="daltonizer_mode_tritanomaly_summary" msgid="2428218320118180070">"Тританомалија"</string>
@@ -2418,15 +2412,8 @@
<string name="color_cyan" msgid="4341758639597035927">"Тиркизна"</string>
<string name="color_yellow" msgid="5957551912912679058">"Жута"</string>
<string name="color_magenta" msgid="8943538189219528423">"Магента"</string>
- <string name="enable_service_title" msgid="7231533866953706788">"Желите ли да дозволите да <xliff:g id="SERVICE">%1$s</xliff:g> има потпуну контролу над уређајем?"</string>
<string name="capabilities_list_title" msgid="1225853611983394386">"<xliff:g id="SERVICE">%1$s</xliff:g> треба:"</string>
<string name="touch_filtered_warning" msgid="4225815157460318241">"Пошто апликација скрива захтев за дозволу, Подешавања не могу да верификују одговор."</string>
- <string name="accessibility_service_warning" msgid="6779187188736432618">"<xliff:g id="SERVICE">%1$s</xliff:g> тражи потпуну контролу над овим уређајем. Услуга може да чита садржај са екрана и да обавља разне задатке за кориснике услуга приступачности. Овај ниво контроле није одговарајући за већину апликација."</string>
- <string name="accessibility_service_warning_description" msgid="6573203795976134751">"Потпуна контрола је примерена за апликације које вам помажу код услуга приступачности, али не и за већину апликација."</string>
- <string name="accessibility_service_screen_control_title" msgid="324795030658109870">"Прегледај и контролиши екран"</string>
- <string name="accessibility_service_screen_control_description" msgid="8431940515157990426">"Може да чита сав садржај на екрану и приказује га у другим апликацијама."</string>
- <string name="accessibility_service_action_perform_title" msgid="1449360056585337833">"Прегледај и обављај радње"</string>
- <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"Може да прати интеракције са апликацијом или сензором хардвера и користи апликације уместо вас."</string>
<string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Дозволи"</string>
<string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Одбиј"</string>
<string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Искључи"</string>
@@ -3656,9 +3643,9 @@
<string name="notif_listener_not_migrated" msgid="6265206376374278226">"Ова апликација не подржава побољшана подешавања"</string>
<string name="notif_listener_more_settings" msgid="1348409392307208921">"Још подешавања"</string>
<string name="notif_listener_more_settings_desc" msgid="7995492074281663658">"Доступно је још подешавања у апликацији"</string>
- <string name="notification_polite_title" msgid="4737150709382859870">"Прилагодљива обавештења"</string>
- <string name="notification_polite_main_control_title" msgid="7267191551379543859">"Користите прилагодљива обавештења"</string>
- <string name="notification_polite_description" msgid="7749280535620291610">"Када добијете много обавештења у кратком периоду, телефон ће утишати звук и смањити број искачућих прозора на екрану на највише два минута. За позиве, аларме и приоритетне конверзације ћете и даље добијати обавештења путем вибрације, звука или приказа на екрану, а сва обавештења можете лако да пронађете када превучете надоле са врха екрана."</string>
+ <string name="notification_polite_title" msgid="6121016426991791557">"Утишавање обавештења"</string>
+ <string name="notification_polite_main_control_title" msgid="5812529809151927149">"Користи утишавање обавештења"</string>
+ <string name="notification_polite_description" msgid="5497748284893832854">"Када примите много обавештења у кратком периоду, уређај ће утишати звук и смањити број упозорења на највише два минута. То не утиче на позиве, аларме ни приоритетне конверзације. \n\nОбавештења која добијете током утишавања можете да пронађете повлачењем надоле од врха екрана."</string>
<string name="notification_polite_work" msgid="8823596456640216391">"Примени на пословне профиле"</string>
<string name="notification_polite_work_summary" msgid="5014189280132951378">"Примените на апликације пословног профила"</string>
<string name="vr_listeners_title" msgid="4960357292472540964">"Услуге помагача за виртуелну реалност"</string>
@@ -3815,7 +3802,9 @@
<string name="zen_mode_apps_priority_apps" msgid="7386196048313716076">"Изабране апликације"</string>
<string name="zen_mode_apps_none_apps" msgid="2493642312793604327">"Ниједна"</string>
<string name="zen_mode_apps_subtext" msgid="1764211974662012877">"{count,plural,offset:2 =0{Ниједна апликација не може да прекине}=1{{app_1} може да прекине}=2{{app_1} и {app_2} могу да прекину}=3{{app_1}, {app_2} и {app_3} могу да прекину}one{{app_1}, {app_2} и још # могу да прекину}few{{app_1}, {app_2} и још # могу да прекину}other{{app_1}, {app_2} и још # могу да прекину}}"</string>
+ <string name="zen_mode_apps_work_app" msgid="8528767938316361588">"<xliff:g id="APP_LABEL">%s</xliff:g> (посао)"</string>
<string name="zen_mode_apps_calculating" msgid="5420121396943539286">"Израчунава се…"</string>
+ <string name="zen_mode_plus_n_items" msgid="6136713354369243421">"+<xliff:g id="NUMBER">%d</xliff:g>"</string>
<string name="zen_mode_bypassing_apps" msgid="625309443389126481">"Дозволи да апликације занемарују"</string>
<string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"Апликације које могу да прекидају"</string>
<string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"Изаберите још апликација"</string>
@@ -3833,6 +3822,7 @@
<string name="zen_mode_sounds_none" msgid="6557474361948269420">"Ништа не може да прекине"</string>
<string name="zen_mode_people_none" msgid="4613147461974255046">"Нико не може да прекине"</string>
<string name="zen_mode_people_some" msgid="9101872681298810281">"Неки људи могу да прекину"</string>
+ <string name="zen_mode_people_repeat_callers" msgid="4499084111069828761">"Поновни позиваоци могу да прекидају"</string>
<string name="zen_mode_people_all" msgid="311036110283015205">"Сви људи могу да прекину"</string>
<string name="zen_mode_repeat_callers" msgid="2270356100287792138">"Поновни позиваоци"</string>
<string name="zen_mode_repeat_callers_title" msgid="8016699240338264781">"Дозволи поновне позиваоце"</string>
@@ -3856,6 +3846,34 @@
<string name="zen_mode_new_custom_title" msgid="321750898430776191">"Додајте режим"</string>
<string name="zen_mode_new_custom_default_name" msgid="2778307946775085105">"Прилагођени режим"</string>
<string name="zen_mode_edit_name_hint" msgid="4584652062167540536">"Назив режима"</string>
+ <string name="zen_mode_trigger_title_schedule_calendar" msgid="9206609438617550331">"Догађаји у календару"</string>
+ <string name="zen_mode_trigger_title_bedtime" msgid="5086070900588489978">"Распоред спавања"</string>
+ <string name="zen_mode_trigger_title_driving" msgid="7890990983453164403">"Током вожње"</string>
+ <string name="zen_mode_trigger_title_generic" msgid="601273385119550420">"Повезано са апликацијом"</string>
+ <string name="zen_mode_trigger_summary_settings_in_app" msgid="4860667191183702601">"Информације и подешавања у апликацији <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+ <string name="zen_mode_trigger_summary_managed_by_app" msgid="8631011868193102098">"Управља <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+ <string name="zen_mode_confirm_disable_title" msgid="1232297660775719796">"Онемогућите режим"</string>
+ <string name="zen_mode_confirm_disable_message" msgid="7315541221665718491">"Ако онемогућите ову функцију, режим више неће исправно радити и подешавања ће бити скривена."</string>
+ <string name="zen_mode_action_disable" msgid="3552921561331044881">"Онемогући"</string>
+ <string name="zen_mode_confirm_enable_title" msgid="5683371335847448595">"Омогућите режим"</string>
+ <string name="zen_mode_confirm_enable_message" msgid="7017879133260011419">"Ако омогућите ову функцију, режим ће се аутоматски активирати према распореду."</string>
+ <string name="zen_mode_action_enable" msgid="1161480633223176531">"Омогући"</string>
+ <!-- no translation found for zen_mode_blurb_schedule_time (8223898702097484009) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_schedule_calendar (382177907856065945) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_bedtime (6155075956151013457) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_driving (1316054379000667305) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_immersive (5884004861848687869) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_theater (2999237960059524225) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_managed (5473921634985032149) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_generic (3041601339807075625) -->
+ <skip />
<string name="warning_button_text" msgid="1274234338874005639">"Упозорење"</string>
<string name="suggestion_button_close" msgid="6865170855573283759">"Затвори"</string>
<string name="device_feedback" msgid="5351614458411688608">"Шаљи повратне информације о уређају"</string>
@@ -4842,9 +4860,8 @@
<string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"Батерија"</string>
<string name="settings_panel_title" msgid="346363079938069215">"Табла са подешавањима"</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>
+ <!-- no translation found for enable_desktop_mode_on_secondary_display (2609567824593768780) -->
+ <skip />
<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>
@@ -5020,7 +5037,6 @@
<string name="default_active_sim_mobile_data" msgid="6798083892814045301">"мобилни подаци"</string>
<string name="wifi_scan_notify_message" msgid="1331238142061476869">"Ради бољег доживљаја, апликације и услуге могу и даље да траже WiFi мреже у било ком тренутку, чак и када је WiFi искључен. То може да се користи, на пример, за побољшавање функција и услуга заснованих на локацији. То можете да промените у подешавањима WiFi скенирања."</string>
<string name="wifi_scan_change" msgid="8438320311511852918">"Промени"</string>
- <string name="preference_summary_default_combination" msgid="4643585915107796253">"<xliff:g id="STATE">%1$s</xliff:g>/<xliff:g id="NETWORKMODE">%2$s</xliff:g>"</string>
<string name="mobile_data_connection_active" msgid="2422223108911581552">"Повезано"</string>
<string name="mobile_data_temp_connection_active" msgid="3430470299756236413">"Привремено повезано"</string>
<string name="mobile_data_temp_using" msgid="5211002380149434155">"Привремено се користи <xliff:g id="SUBNAME">%1$s</xliff:g>"</string>
@@ -5052,7 +5068,7 @@
<string name="app_pinning_main_switch_title" msgid="5465506660064032876">"Користи качење апликација"</string>
<string name="developer_options_main_switch_title" msgid="1720074589554152501">"Користи опције за програмере"</string>
<string name="default_print_service_main_switch_title" msgid="4697133737128324036">"Користи услугу штампања"</string>
- <string name="multiple_users_main_switch_title" msgid="9158796544835843201">"Омогућите промену корисника"</string>
+ <string name="multiple_users_main_switch_title" msgid="9158796544835843201">"Омогући промену корисника"</string>
<string name="multiple_users_main_switch_keywords" msgid="4845954458094134356">"омогућити, више, корисник, дозволити, много"</string>
<string name="multiple_users_title_keywords" msgid="2395593167746225172">"више, корисници, профили, људи, налози, промена, велики број"</string>
<string name="wireless_debugging_main_switch_title" msgid="8463499572781441719">"Користи бежично отклањање грешака"</string>
@@ -5166,9 +5182,11 @@
<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="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_enable_freeform_support" msgid="3697462756493543645">"Морате да рестартујете да бисте омогућили подршку за прозоре произвољног формата."</string>
+ <!-- no translation found for reboot_dialog_override_desktop_mode (7480950772574354130) -->
+ <skip />
+ <!-- no translation found for reboot_dialog_enable_desktop_mode_on_secondary_display (1153621881052401924) -->
+ <skip />
<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>
@@ -5399,5 +5417,6 @@
<string name="audio_streams_main_page_password_dialog_join_button" msgid="2967747276379153408">"Слушајте стрим"</string>
<string name="audio_streams_main_page_qr_code_scanner_summary" msgid="5312980105735143360">"Скенирајте QR кôд аудио стрима да бисте слушали помоћу: <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
<string name="audio_streams_main_page_password_dialog_cannot_edit" msgid="9020898619297520153">"Лозинка не може да се мења током дељења. Да бисте променили лозинку, прво искључите дељење звука."</string>
+ <string name="audio_streams_qr_code_scanner_label" msgid="8799703301071378034">"Скенер QR кода"</string>
<string name="homepage_search" msgid="6759334912284663559">"Подешавања претраге"</string>
</resources>
diff --git a/res/values-sv/strings.xml b/res/values-sv/strings.xml
index 938115e..b144b95 100644
--- a/res/values-sv/strings.xml
+++ b/res/values-sv/strings.xml
@@ -41,6 +41,8 @@
<string name="radioInfo_data_suspended" msgid="2001254415431299603">"Pausad"</string>
<string name="radioInfo_unknown" msgid="2892562356748600367">"Ingen uppgift"</string>
<string name="preview_pager_content_description" msgid="3762247188224576303">"Förhandsgranskning"</string>
+ <!-- no translation found for qr_code_content_description (1852208464419291347) -->
+ <skip />
<string name="font_size_make_smaller_desc" msgid="4978038055549590140">"Förminska"</string>
<string name="font_size_make_larger_desc" msgid="5583046033381722247">"Förstora"</string>
<string name="stay_awake_on_fold_title" msgid="6590454679898134221">"Alltid"</string>
@@ -283,7 +285,7 @@
<string name="location_settings_summary_location_off" msgid="4797932754681162262">"Av"</string>
<string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{På – # app har platsåtkomst}other{På – # appar har platsåtkomst}}"</string>
<string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"Läser in …"</string>
- <string name="location_settings_footer_general" msgid="1040507068701188821">"Appar med behörighet att upptäcka enheter i närheten kan beräkna anslutna enheters relativa position."</string>
+ <string name="location_settings_footer_general" msgid="3447585552176173502">"Appar med behörighet att upptäcka enheter i närheten kan beräkna anslutna enheters relativa position."</string>
<string name="location_settings_footer_location_off" msgid="8568995909147566720">"Platsåtkomst har inaktiverats för appar och tjänster. Enhetens plats kan fortfarande skickas till räddningstjänst när du ringer eller skickar sms till ett nödnummer."</string>
<string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Läs mer om platsinställningar"</string>
<string name="location_settings_tooltip_text_for_chrome" msgid="5781821709250544575">"Om du vill ändra detta öppnar du ChromeOS-inställningar > Integritet och säkerhet > Integritetsinställningar > Platsåtkomst"</string>
@@ -850,7 +852,6 @@
<string name="nfc_reboot_dialog_title" msgid="2033983438635768169">"Vill du starta om enheten?"</string>
<string name="nfc_reboot_dialog_message" msgid="4929353168157966992">"Detaljerad NFC-loggning är endast avsedd för utvecklingssyfte. Ytterligare NFC-data ingår i felrapporterna, vilka kan innehålla privata uppgifter. Starta om enheten för att ändra den här inställningen."</string>
<string name="nfc_reboot_dialog_confirm" msgid="4769763632008584567">"Starta om"</string>
- <string name="keywords_external_display" msgid="4181375057920134909">"spegla, extern skärm, ansluten skärm, usb-skärm, upplösning, rotation"</string>
<string name="external_display_on" msgid="2560104443500154333">"På"</string>
<string name="external_display_off" msgid="5634413756025351374">"Av"</string>
<string name="external_display_settings_title" msgid="6256884595821605779">"Extern skärm"</string>
@@ -1918,6 +1919,8 @@
<string name="slow_keys_summary" msgid="1784371292745423292">"Justera tiden det tar innan ett tryck på en tangent aktiveras till <xliff:g id="SLOW_KEYS_THRESHOLD">%1$d</xliff:g> ms"</string>
<string name="sticky_keys" msgid="7317317044898161747">"Låstangentsläge"</string>
<string name="sticky_keys_summary" msgid="1844953803625480623">"Tryck ned en tangent i taget för kortkommandon i stället för att hålla ned flera tangenter samtidigt"</string>
+ <string name="mouse_keys" msgid="6237254627808525540">"Musknappar"</string>
+ <string name="mouse_keys_summary" msgid="2396247040177734245">"Använd det fysiska tangentbordet för att styra musen."</string>
<string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"Kortkommandon"</string>
<string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"Visa en lista över genvägar"</string>
<string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"Tangentbord och verktyg för jobbprofilen"</string>
@@ -1942,14 +1945,10 @@
<string name="pointer_fill_style_yellow_button" msgid="5025969961559379024">"Ändra markörfyllningen till gul"</string>
<string name="pointer_fill_style_pink_button" msgid="4106218142489635673">"Ändra markörfyllningen till rosa"</string>
<string name="pointer_fill_style_blue_button" msgid="5594958078854032785">"Ändra markörfyllningen till blå"</string>
- <!-- no translation found for pointer_stroke_style (1886986630216050665) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_white (673686194443825383) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_black (4655806167067437330) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_none (8953927511729800247) -->
- <skip />
+ <string name="pointer_stroke_style" msgid="1886986630216050665">"Stil på pekardrag"</string>
+ <string name="pointer_stroke_style_name_white" msgid="673686194443825383">"Vit"</string>
+ <string name="pointer_stroke_style_name_black" msgid="4655806167067437330">"Svart"</string>
+ <string name="pointer_stroke_style_name_none" msgid="8953927511729800247">"Ingen"</string>
<string name="trackpad_touch_gesture" msgid="8641725062131922497">"Lär dig rörelser för styrplattan"</string>
<string name="keywords_touchpad" msgid="8159846254066666032">"styrplatta, styr platta, mus, markör, scrolla, svep, högerklicka, klicka, pekare"</string>
<string name="keywords_trackpad_bottom_right_tap" msgid="1285062446073929305">"högerklicka, tryck"</string>
@@ -2179,8 +2178,6 @@
<string name="accessibility_shortcut_edit_dialog_summary_floating_button" msgid="6266489864614886247">"Tryck på den flytande knappen"</string>
<string name="accessibility_shortcut_edit_dialog_title_software_by_gesture" msgid="4775049370625630546">"Tillgänglighetsrörelse"</string>
<string name="accessibility_shortcut_edit_dialog_summary_software" msgid="8315934725362849788">"Tryck på tillgänglighetsknappen <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g> längst ned på skärmen. Tryck länge på tillgänglighetsknappen för att byta funktion."</string>
- <string name="accessibility_shortcut_edit_dialog_summary_software_gesture" msgid="8292555254353761635">"Svep uppåt med två fingrar från skärmens nederkant.\n\nByt funktion genom att svepa uppåt med två fingrar och hålla kvar dem."</string>
- <string name="accessibility_shortcut_edit_dialog_summary_software_gesture_talkback" msgid="84483464524360845">"Svep uppåt med tre fingrar från skärmens nederkant.\n\nByt funktion genom att svepa uppåt med två fingrar och hålla kvar dem."</string>
<string name="accessibility_shortcut_edit_dialog_summary_gesture" msgid="2081123009255579884">"{count,plural, =1{Svep uppåt från skärmens nederkant. Svep uppåt och håll kvar fingret för att byta funktion.}other{Svep uppåt med # fingrar från skärmens nederkant. Svep uppåt med # fingrar och håll kvar för att byta funktion.}}"</string>
<string name="accessibility_shortcut_edit_dialog_summary_software_floating" msgid="4459254227203203324"><annotation id="link">"Fler alternativ"</annotation></string>
<string name="footer_learn_more_content_description" msgid="8843798273152131341">"Läs mer om <xliff:g id="SERVICE">%1$s</xliff:g>"</string>
@@ -2191,16 +2188,12 @@
<string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="844089763968552142">"Volymknappar"</string>
<string name="accessibility_shortcut_hardware_keyword" msgid="2483152542320987022">"volymknappar"</string>
<string name="accessibility_shortcut_edit_dialog_summary_hardware" msgid="2503134386397991634">"Håll båda volymknapparna nedtryckta"</string>
- <string name="accessibility_shortcut_edit_dialog_title_two_finger_double_tap" msgid="2271778556854020996">"Tryck snabbt två gånger på skärmen med två fingrar"</string>
<string name="accessibility_shortcut_edit_screen_title_two_finger_double_tap" msgid="8952595692906527694">"Tryck snabbt två gånger med %1$d fingrar"</string>
<string name="accessibility_shortcut_edit_screen_summary_two_finger_double_tap" msgid="385404127425496362">"Tryck snabbt två gånger med %1$d fingrar på skärmen"</string>
<string name="accessibility_shortcut_edit_screen_title_triple_tap" msgid="3314488747597058942">"Tryck snabbt tre gånger"</string>
<string name="accessibility_shortcut_edit_screen_summary_triple_tap" msgid="4839204951599629871">"Tryck snabbt %1$d gånger på skärmen. Detta kan göra enheten långsammare."</string>
<string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="6271718715836961167">"Tryck snabbt två gånger med %1$d fingrar"</string>
- <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"Tryck snabbt {0,number,integer} gånger på skärmen med två fingrar"</string>
- <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"Tryck snabbt tre gånger på skärmen"</string>
<string name="accessibility_shortcut_triple_tap_keyword" msgid="5359347130888464334">"tryck snabbt tre gånger"</string>
- <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"Tryck snabbt {0,number,integer} gånger på skärmen. Detta kortkommando kan göra enheten långsammare"</string>
<string name="accessibility_shortcut_edit_dialog_title_advance" msgid="4567868630655591506">"Avancerat"</string>
<string name="accessibility_screen_magnification_navbar_configuration_warning" msgid="266736851606791552">"<xliff:g id="SERVICE">%1$s</xliff:g> har angetts för tillgänglighetsknappen. Om du vill använda förstoring trycker du länge på tillgänglighetsknappen och väljer förstoring."</string>
<string name="accessibility_screen_magnification_gesture_navigation_warning" msgid="991017769735632046">"Tillgänglighetsrörelsen är inställd på <xliff:g id="SERVICE">%1$s</xliff:g>. Om du vill använda förstoring sveper du uppåt med två fingrar från skärmens nederkant och håller kvar fingret. Välj sedan Förstoring."</string>
@@ -2369,6 +2362,7 @@
<string name="daltonizer_mode_tritanomaly_title" msgid="2278786218762602022">"Gul–blå"</string>
<string name="daltonizer_mode_grayscale_title" msgid="152005391387952588">"Gråskala"</string>
<string name="daltonizer_saturation_title" msgid="2999486412114963068">"Intensitet"</string>
+ <string name="daltonizer_saturation_unavailable_summary" msgid="8319753055567798775">"Inte tillgängligt för gråskalaläget eller om färgkorrigering har inaktiverats"</string>
<string name="daltonizer_mode_deuteranomaly_summary" msgid="2117727423019598455">"Nedsatt känslighet för grönt, deuteranomali"</string>
<string name="daltonizer_mode_protanomaly_summary" msgid="4617032854982040748">"Nedsatt känslighet för rött, protanomali"</string>
<string name="daltonizer_mode_tritanomaly_summary" msgid="2428218320118180070">"Tritanopi"</string>
@@ -2418,15 +2412,8 @@
<string name="color_cyan" msgid="4341758639597035927">"Cyan"</string>
<string name="color_yellow" msgid="5957551912912679058">"Gul"</string>
<string name="color_magenta" msgid="8943538189219528423">"Magenta"</string>
- <string name="enable_service_title" msgid="7231533866953706788">"Vill du tillåta att <xliff:g id="SERVICE">%1$s</xliff:g> har fullständig kontroll över enheten?"</string>
<string name="capabilities_list_title" msgid="1225853611983394386">"<xliff:g id="SERVICE">%1$s</xliff:g> behöver:"</string>
<string name="touch_filtered_warning" msgid="4225815157460318241">"Svaret kan inte verifieras av Inställningar, eftersom en app skymmer en begäran om behörighet."</string>
- <string name="accessibility_service_warning" msgid="6779187188736432618">"<xliff:g id="SERVICE">%1$s</xliff:g> begär fullständig kontroll över den här enheten. Tjänsten kan läsa på skärmen och utföra åtgärder åt användare med behov av tillgänglighet. Den här kontrollnivån är olämplig för de flesta appar."</string>
- <string name="accessibility_service_warning_description" msgid="6573203795976134751">"Fullständig kontroll lämpar sig för appar med tillgänglighetsfunktioner, men är inte lämplig för de flesta appar."</string>
- <string name="accessibility_service_screen_control_title" msgid="324795030658109870">"Visa och styra skärmen"</string>
- <string name="accessibility_service_screen_control_description" msgid="8431940515157990426">"Den kan läsa allt innehåll på skärmen och visa innehåll över andra appar."</string>
- <string name="accessibility_service_action_perform_title" msgid="1449360056585337833">"Visa och vidta åtgärder"</string>
- <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"Den kan registrera din användning av en app eller hårdvarusensor och interagera med appar åt dig."</string>
<string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Tillåt"</string>
<string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Neka"</string>
<string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Inaktivera"</string>
@@ -3368,10 +3355,8 @@
<string name="zen_mode_automation_settings_title" msgid="3709324184191870926">"Scheman"</string>
<string name="zen_mode_delete_automatic_rules" msgid="5020468289267191765">"Radera scheman"</string>
<string name="zen_mode_schedule_delete" msgid="5383420576833765114">"Radera"</string>
- <!-- no translation found for zen_mode_menu_rename_mode (4681802125016390837) -->
- <skip />
- <!-- no translation found for zen_mode_menu_delete_mode (5380084696402157428) -->
- <skip />
+ <string name="zen_mode_menu_rename_mode" msgid="4681802125016390837">"Byt namn"</string>
+ <string name="zen_mode_menu_delete_mode" msgid="5380084696402157428">"Radera"</string>
<string name="zen_mode_delete_mode_confirmation" msgid="7594340592051947392">"Vill du radera läget <xliff:g id="MODE">%1$s</xliff:g>?"</string>
<string name="zen_mode_rule_name_edit" msgid="1053237022416700481">"Redigera"</string>
<string name="zen_mode_automation_settings_page_title" msgid="6217433860514433311">"Scheman"</string>
@@ -3395,8 +3380,7 @@
<string name="zen_mode_visual_signals_settings_subtitle" msgid="7433077540895876672">"Tillåt synliga signaler"</string>
<string name="mode_interruption_filter_title" msgid="3343846700214702347">"Håll ett öga på omgivningen"</string>
<string name="mode_device_effects_title" msgid="5857008332618433744">"Fler åtgärder"</string>
- <!-- no translation found for modes_sound_summary_off (6972648204528227879) -->
- <skip />
+ <string name="modes_sound_summary_off" msgid="6972648204528227879">"{count,plural, =0{Av}=1{Av/1 läge kan aktiveras automatiskt}other{Av/# lägen kan aktiveras automatiskt}}"</string>
<string name="mode_display_settings_title" msgid="8132825978346535472">"Visningsinställningar"</string>
<string name="mode_display_options_section" msgid="5151597748243866532">"Skärmalternativ"</string>
<string name="mode_grayscale_title" msgid="6027553257331235461">"Gråskala"</string>
@@ -3659,9 +3643,9 @@
<string name="notif_listener_not_migrated" msgid="6265206376374278226">"Den här appen har inte stöd för avancerade inställningar"</string>
<string name="notif_listener_more_settings" msgid="1348409392307208921">"Fler inställningar"</string>
<string name="notif_listener_more_settings_desc" msgid="7995492074281663658">"Fler inställningar är tillgängliga i appen"</string>
- <string name="notification_polite_title" msgid="4737150709382859870">"Anpassade aviseringar"</string>
- <string name="notification_polite_main_control_title" msgid="7267191551379543859">"Använd anpassade aviseringar"</string>
- <string name="notification_polite_description" msgid="7749280535620291610">"När du får många aviseringar på kort tid kommer din telefon att sänka volymen och minimera popup-fönster på skärmen i upp till två minuter. Samtal, alarm och prioriterade konversationer kommer fortfarande att vibrera, låta eller visas på skärmen, och alla aviseringar är lätta att hitta när du drar ned från skärmens överkant."</string>
+ <string name="notification_polite_title" msgid="6121016426991791557">"Gradvis sänkning – aviseringar"</string>
+ <string name="notification_polite_main_control_title" msgid="5812529809151927149">"Använd gradvis sänkning för aviseringar"</string>
+ <string name="notification_polite_description" msgid="5497748284893832854">"När du får många aviseringar på kort tid kommer enheten att sänka volymen och minimera aviseringar i upp till två minuter. Samtal, alarm och prioriterade konversationer påverkas inte. \n\nDu kan hitta aviseringarna som tas emot under den gradvisa sänkningen genom att dra nedåt från skärmens överkant."</string>
<string name="notification_polite_work" msgid="8823596456640216391">"Använd för jobbprofiler"</string>
<string name="notification_polite_work_summary" msgid="5014189280132951378">"Tillämpa på jobbprofilappar"</string>
<string name="vr_listeners_title" msgid="4960357292472540964">"Hjälptjänster för VR"</string>
@@ -3818,7 +3802,9 @@
<string name="zen_mode_apps_priority_apps" msgid="7386196048313716076">"Valda appar"</string>
<string name="zen_mode_apps_none_apps" msgid="2493642312793604327">"Ingen"</string>
<string name="zen_mode_apps_subtext" msgid="1764211974662012877">"{count,plural,offset:2 =0{Inga appar får avbryta}=1{{app_1} får avbryta}=2{{app_1} och {app_2} får avbryta}=3{{app_1}, {app_2} och {app_3} får avbryta}other{{app_1}, {app_2} och # till får avbryta}}"</string>
+ <string name="zen_mode_apps_work_app" msgid="8528767938316361588">"<xliff:g id="APP_LABEL">%s</xliff:g> (jobbet)"</string>
<string name="zen_mode_apps_calculating" msgid="5420121396943539286">"Beräknar …"</string>
+ <string name="zen_mode_plus_n_items" msgid="6136713354369243421">"+<xliff:g id="NUMBER">%d</xliff:g>"</string>
<string name="zen_mode_bypassing_apps" msgid="625309443389126481">"Tillåt att appar åsidosätter funktionen"</string>
<string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"Appar som får störa dig"</string>
<string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"Välj fler appar"</string>
@@ -3836,6 +3822,7 @@
<string name="zen_mode_sounds_none" msgid="6557474361948269420">"Inget får avbryta"</string>
<string name="zen_mode_people_none" msgid="4613147461974255046">"Ingen får avbryta"</string>
<string name="zen_mode_people_some" msgid="9101872681298810281">"Vissa får avbryta"</string>
+ <string name="zen_mode_people_repeat_callers" msgid="4499084111069828761">"Upprepade samtal från samma nummer får avbryta"</string>
<string name="zen_mode_people_all" msgid="311036110283015205">"Alla får avbryta"</string>
<string name="zen_mode_repeat_callers" msgid="2270356100287792138">"Återuppringning"</string>
<string name="zen_mode_repeat_callers_title" msgid="8016699240338264781">"Tillåt upprepade samtal"</string>
@@ -3855,13 +3842,37 @@
<string name="zen_mode_summary_alarms_only_by_hour" msgid="7400910210950788163">"{count,plural, =1{Ändra till endast alarm i en timme tills {time}}other{Ändra till endast alarm i # timmar tills {time}}}"</string>
<string name="zen_mode_summary_alarms_only_by_time" msgid="8140619669703968810">"Ändra till endast alarm fram till kl. <xliff:g id="FORMATTEDTIME">%1$s</xliff:g>"</string>
<string name="zen_mode_summary_always" msgid="722093064250082317">"Ändra till avbryt alltid"</string>
- <!-- no translation found for zen_mode_rename_title (8146882272966214558) -->
+ <string name="zen_mode_rename_title" msgid="8146882272966214558">"Redigera läge"</string>
+ <string name="zen_mode_new_custom_title" msgid="321750898430776191">"Lägg till läge"</string>
+ <string name="zen_mode_new_custom_default_name" msgid="2778307946775085105">"Anpassat läge"</string>
+ <string name="zen_mode_edit_name_hint" msgid="4584652062167540536">"Lägesnamn"</string>
+ <string name="zen_mode_trigger_title_schedule_calendar" msgid="9206609438617550331">"Kalenderhändelser"</string>
+ <string name="zen_mode_trigger_title_bedtime" msgid="5086070900588489978">"Sömnschema"</string>
+ <string name="zen_mode_trigger_title_driving" msgid="7890990983453164403">"När du kör"</string>
+ <string name="zen_mode_trigger_title_generic" msgid="601273385119550420">"Länkat till app"</string>
+ <string name="zen_mode_trigger_summary_settings_in_app" msgid="4860667191183702601">"Information och inställningar för <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+ <string name="zen_mode_trigger_summary_managed_by_app" msgid="8631011868193102098">"Hanteras av <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+ <string name="zen_mode_confirm_disable_title" msgid="1232297660775719796">"Inaktivera läge"</string>
+ <string name="zen_mode_confirm_disable_message" msgid="7315541221665718491">"Om du inaktiverar funktionen fungerar inte läget längre och dess inställningar döljs."</string>
+ <string name="zen_mode_action_disable" msgid="3552921561331044881">"Inaktivera"</string>
+ <string name="zen_mode_confirm_enable_title" msgid="5683371335847448595">"Aktivera läge"</string>
+ <string name="zen_mode_confirm_enable_message" msgid="7017879133260011419">"Om du aktiverar funktionen aktiveras läget automatiskt enligt schemat."</string>
+ <string name="zen_mode_action_enable" msgid="1161480633223176531">"Aktivera"</string>
+ <!-- no translation found for zen_mode_blurb_schedule_time (8223898702097484009) -->
<skip />
- <!-- no translation found for zen_mode_new_custom_title (321750898430776191) -->
+ <!-- no translation found for zen_mode_blurb_schedule_calendar (382177907856065945) -->
<skip />
- <!-- no translation found for zen_mode_new_custom_default_name (2778307946775085105) -->
+ <!-- no translation found for zen_mode_blurb_bedtime (6155075956151013457) -->
<skip />
- <!-- no translation found for zen_mode_edit_name_hint (4584652062167540536) -->
+ <!-- no translation found for zen_mode_blurb_driving (1316054379000667305) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_immersive (5884004861848687869) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_theater (2999237960059524225) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_managed (5473921634985032149) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_generic (3041601339807075625) -->
<skip />
<string name="warning_button_text" msgid="1274234338874005639">"Varning"</string>
<string name="suggestion_button_close" msgid="6865170855573283759">"Stäng"</string>
@@ -4849,9 +4860,8 @@
<string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"Batteri"</string>
<string name="settings_panel_title" msgid="346363079938069215">"Panelen Inställningar"</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>
+ <!-- no translation found for enable_desktop_mode_on_secondary_display (2609567824593768780) -->
+ <skip />
<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>
@@ -5026,7 +5036,6 @@
<string name="default_active_sim_mobile_data" msgid="6798083892814045301">"mobildata"</string>
<string name="wifi_scan_notify_message" msgid="1331238142061476869">"I syfte att förbättra upplevelsen med enheten kan appar och tjänster fortfarande söka efter wifi-nätverk när som helst, även om wifi har inaktiverats. Funktionen kan till exempel användas till att förbättra platsbaserade funktioner och tjänster. Du kan ändra detta i inställningarna för wifi-sökning."</string>
<string name="wifi_scan_change" msgid="8438320311511852918">"Ändra"</string>
- <string name="preference_summary_default_combination" msgid="4643585915107796253">"<xliff:g id="STATE">%1$s</xliff:g>/<xliff:g id="NETWORKMODE">%2$s</xliff:g>"</string>
<string name="mobile_data_connection_active" msgid="2422223108911581552">"Ansluten"</string>
<string name="mobile_data_temp_connection_active" msgid="3430470299756236413">"Tillfälligt ansluten"</string>
<string name="mobile_data_temp_using" msgid="5211002380149434155">"<xliff:g id="SUBNAME">%1$s</xliff:g> används tillfälligt"</string>
@@ -5058,7 +5067,7 @@
<string name="app_pinning_main_switch_title" msgid="5465506660064032876">"Använd fästa appar"</string>
<string name="developer_options_main_switch_title" msgid="1720074589554152501">"Använd utvecklaralternativ"</string>
<string name="default_print_service_main_switch_title" msgid="4697133737128324036">"Använd utskriftstjänst"</string>
- <string name="multiple_users_main_switch_title" msgid="9158796544835843201">"Tillåt att användaren byter"</string>
+ <string name="multiple_users_main_switch_title" msgid="9158796544835843201">"Tillåt byte av användare"</string>
<string name="multiple_users_main_switch_keywords" msgid="4845954458094134356">"tillåt, flera, användare, godkänn, många"</string>
<string name="multiple_users_title_keywords" msgid="2395593167746225172">"flera, användare, profiler, personer, konton, byta, många"</string>
<string name="wireless_debugging_main_switch_title" msgid="8463499572781441719">"Använd trådlös felsökning"</string>
@@ -5172,9 +5181,11 @@
<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="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_enable_freeform_support" msgid="3697462756493543645">"Du måste starta om enheten för att aktivera stöd för frihandsfönster."</string>
+ <!-- no translation found for reboot_dialog_override_desktop_mode (7480950772574354130) -->
+ <skip />
+ <!-- no translation found for reboot_dialog_enable_desktop_mode_on_secondary_display (1153621881052401924) -->
+ <skip />
<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>
@@ -5292,10 +5303,8 @@
<string name="show_captions_enabled" msgid="7089043007924626">"På"</string>
<string name="live_caption_disabled" msgid="3562035026547887366">"Av"</string>
<string name="live_caption_enabled" msgid="5269360946200718949">"På"</string>
- <!-- no translation found for audio_seek_bar_state_left_first (8814986910920838972) -->
- <skip />
- <!-- no translation found for audio_seek_bar_state_right_first (1999368979633398876) -->
- <skip />
+ <string name="audio_seek_bar_state_left_first" msgid="8814986910920838972">"Ljud %1$d%% vänster, %2$d%% höger"</string>
+ <string name="audio_seek_bar_state_right_first" msgid="1999368979633398876">"Ljud %1$d%% höger, %2$d%% vänster"</string>
<string name="about_phone_device_name_warning" msgid="3243226572404472381">"Enhetens namn är synligt för appar du har installerat. Det kan också vara synligt för andra personer när du ansluter till Bluetooth-enheter eller ett wifi-nätverk, eller om du skapar en wifi-surfzon."</string>
<string name="grammatical_gender_title" msgid="8584242850477270828">"Genus"</string>
<string name="grammatical_gender_dialog_title" msgid="8754048592099871587">"Välj genus"</string>
@@ -5407,5 +5416,6 @@
<string name="audio_streams_main_page_password_dialog_join_button" msgid="2967747276379153408">"Lyssna på streamen"</string>
<string name="audio_streams_main_page_qr_code_scanner_summary" msgid="5312980105735143360">"Skanna QR-koden för en ljudstream om du vill lyssna med <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
<string name="audio_streams_main_page_password_dialog_cannot_edit" msgid="9020898619297520153">"Det går inte att redigera lösenordet medan delning pågår. Om du vill byta lösenord måste du först stänga av ljuddelningen."</string>
+ <string name="audio_streams_qr_code_scanner_label" msgid="8799703301071378034">"QR-skanner"</string>
<string name="homepage_search" msgid="6759334912284663559">"Sökinställningar"</string>
</resources>
diff --git a/res/values-sw/strings.xml b/res/values-sw/strings.xml
index 413d23e..b2fa097 100644
--- a/res/values-sw/strings.xml
+++ b/res/values-sw/strings.xml
@@ -41,6 +41,8 @@
<string name="radioInfo_data_suspended" msgid="2001254415431299603">"Imetanguliwa"</string>
<string name="radioInfo_unknown" msgid="2892562356748600367">"Haijulikani"</string>
<string name="preview_pager_content_description" msgid="3762247188224576303">"Kagua kwanza"</string>
+ <!-- no translation found for qr_code_content_description (1852208464419291347) -->
+ <skip />
<string name="font_size_make_smaller_desc" msgid="4978038055549590140">"Punguza"</string>
<string name="font_size_make_larger_desc" msgid="5583046033381722247">"Kuza"</string>
<string name="stay_awake_on_fold_title" msgid="6590454679898134221">"Kila wakati"</string>
@@ -283,7 +285,7 @@
<string name="location_settings_summary_location_off" msgid="4797932754681162262">"Umezima"</string>
<string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{Imewashwa / programu # ina idhini ya kufikia data ya mahali}other{Imewashwa / programu # zina idhini ya kufikia data ya mahali}}"</string>
<string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"Inapakia…"</string>
- <string name="location_settings_footer_general" msgid="1040507068701188821">"Programu zenye ruhusa ya Uhamishaji wa Karibu zinaweza kubainisha mahali vilipo vifaa vilivyounganishwa."</string>
+ <string name="location_settings_footer_general" msgid="3447585552176173502">"Programu zenye ruhusa za kufikia vifaa vilivyo karibu zinaweza kubainisha mahali vilipo vifaa vilivyounganishwa."</string>
<string name="location_settings_footer_location_off" msgid="8568995909147566720">"Ruhusa za kufikia mahali zimezimwa kwenye programu na huduma. Bado maelezo ya mahali kilipo kifaa chako yanaweza kutumwa kwa wanaoshughulikia matukio ya dharura unapopiga simu au kutuma SMS kwa namba ya dharura."</string>
<string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Pata maelezo zaidi kuhusu Mipangilio ya mahali"</string>
<string name="location_settings_tooltip_text_for_chrome" msgid="5781821709250544575">"Ili ubadilishe nenda kwenye Mipangilio ya ChromeOS > Faragha na usalama > Vidhibiti vya faragha > Ufikiaji wa maelezo ya mahali"</string>
@@ -850,7 +852,6 @@
<string name="nfc_reboot_dialog_title" msgid="2033983438635768169">"Ungependa kuzima kisha uwashe kifaa?"</string>
<string name="nfc_reboot_dialog_message" msgid="4929353168157966992">"Uwekaji maelezo ya kumbukumbu ya NFC ni kwa madhumuni ya usanidi pekee. Vilevile data ya NFC inajumuishwa katika ripoti za hitilafu ambazo huenda zikawa na taarifa ya faragha. Zima kisha uwashe kifaa chako ili ubadili mipangilio hii."</string>
<string name="nfc_reboot_dialog_confirm" msgid="4769763632008584567">"Zima kisha uwashe"</string>
- <string name="keywords_external_display" msgid="4181375057920134909">"akisi, skrini ya nje, skrini iliyounganishwa, skrini ya USB, ubora, mzunguko"</string>
<string name="external_display_on" msgid="2560104443500154333">"Imewashwa"</string>
<string name="external_display_off" msgid="5634413756025351374">"Imezimwa"</string>
<string name="external_display_settings_title" msgid="6256884595821605779">"Skrini ya Nje"</string>
@@ -1918,6 +1919,8 @@
<string name="slow_keys_summary" msgid="1784371292745423292">"Hurekebisha muda unaochukua kitendo cha kubofya kitufe ili kuwasha uwe milisekunde <xliff:g id="SLOW_KEYS_THRESHOLD">%1$d</xliff:g>"</string>
<string name="sticky_keys" msgid="7317317044898161747">"Vitufe vinavyonata"</string>
<string name="sticky_keys_summary" msgid="1844953803625480623">"Bonyeza kitufe kimoja baada ya kingine ili upate njia za mkato badala ya kubonyeza na kushikilia vitufe kwa pamoja"</string>
+ <string name="mouse_keys" msgid="6237254627808525540">"Vitufe vya kipanya"</string>
+ <string name="mouse_keys_summary" msgid="2396247040177734245">"Tumia kibodi halisi kudhibiti kipanya."</string>
<string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"Mikato ya kibodi"</string>
<string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"Onyesha orodha ya njia za mkato"</string>
<string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"Zana na kibodi za wasifu wa kazini"</string>
@@ -1942,14 +1945,10 @@
<string name="pointer_fill_style_yellow_button" msgid="5025969961559379024">"Badilisha kielekezi kiwe cha njano"</string>
<string name="pointer_fill_style_pink_button" msgid="4106218142489635673">"Badilisha kielekezi kiwe cha waridi"</string>
<string name="pointer_fill_style_blue_button" msgid="5594958078854032785">"Badilisha kielekezi kiwe cha buluu"</string>
- <!-- no translation found for pointer_stroke_style (1886986630216050665) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_white (673686194443825383) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_black (4655806167067437330) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_none (8953927511729800247) -->
- <skip />
+ <string name="pointer_stroke_style" msgid="1886986630216050665">"Muundo wa mcharazo wa kielekezi"</string>
+ <string name="pointer_stroke_style_name_white" msgid="673686194443825383">"Nyeupe"</string>
+ <string name="pointer_stroke_style_name_black" msgid="4655806167067437330">"Nyeusi"</string>
+ <string name="pointer_stroke_style_name_none" msgid="8953927511729800247">"Hamna"</string>
<string name="trackpad_touch_gesture" msgid="8641725062131922497">"Jifunze ishara za padi ya kugusa"</string>
<string name="keywords_touchpad" msgid="8159846254066666032">"padi ya kusogeza, padi ya kusogeza, kipanya, kiteuzi, nenda, telezesha kidole, bofya kulia, bofya, kishale"</string>
<string name="keywords_trackpad_bottom_right_tap" msgid="1285062446073929305">"bofya kulia, gusa"</string>
@@ -2179,8 +2178,6 @@
<string name="accessibility_shortcut_edit_dialog_summary_floating_button" msgid="6266489864614886247">"Gusa kitufe kinachoelea"</string>
<string name="accessibility_shortcut_edit_dialog_title_software_by_gesture" msgid="4775049370625630546">"Ishara ya ufikivu"</string>
<string name="accessibility_shortcut_edit_dialog_summary_software" msgid="8315934725362849788">"Gusa kitufe cha zana za ufikivu <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g> katika sehemu ya chini ya skrini yako. Ili ubadili kati ya vipengele, gusa na ushikilie kitufe cha zana za ufikivu."</string>
- <string name="accessibility_shortcut_edit_dialog_summary_software_gesture" msgid="8292555254353761635">"Telezesha vidole viwili juu kutoka sehemu ya chini ya skrini.\n\nIli ubadilishe kati ya vipengele, telezesha vidole viwili juu na ushikilie."</string>
- <string name="accessibility_shortcut_edit_dialog_summary_software_gesture_talkback" msgid="84483464524360845">"Telezesha vidole vitatu juu kutoka sehemu ya chini ya skrini.\n\nIli ubadilishe kati ya vipengele, telezesha vidole vitatu juu na ushikilie."</string>
<string name="accessibility_shortcut_edit_dialog_summary_gesture" msgid="2081123009255579884">"{count,plural, =1{Telezesha kidole kuanzia sehemu ya chini ya skrini yako kwenda juu. Ili ubadili kati ya vipengele, telezesha kidole juu na ushikilie.}other{Telezesha vidole # kuanzia sehemu ya chini ya skrini yako kwenda juu. Ili ubadili kati ya vipengele, telezesha vidole # juu na ushikilie.}}"</string>
<string name="accessibility_shortcut_edit_dialog_summary_software_floating" msgid="4459254227203203324"><annotation id="link">"Chaguo zaidi"</annotation></string>
<string name="footer_learn_more_content_description" msgid="8843798273152131341">"Pata maelezo zaidi kuhusu <xliff:g id="SERVICE">%1$s</xliff:g>"</string>
@@ -2191,16 +2188,12 @@
<string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="844089763968552142">"Vitufe vya sauti"</string>
<string name="accessibility_shortcut_hardware_keyword" msgid="2483152542320987022">"vitufe vya sauti"</string>
<string name="accessibility_shortcut_edit_dialog_summary_hardware" msgid="2503134386397991634">"Bonyeza na ushikilie vitufe vyote viwili vya sauti"</string>
- <string name="accessibility_shortcut_edit_dialog_title_two_finger_double_tap" msgid="2271778556854020996">"Gusa skrini mara mbili kwa vidole viwili"</string>
<string name="accessibility_shortcut_edit_screen_title_two_finger_double_tap" msgid="8952595692906527694">"Kugusa mara mbili ukitumia vidole %1$d"</string>
<string name="accessibility_shortcut_edit_screen_summary_two_finger_double_tap" msgid="385404127425496362">"Gusa skrini mara mbili haraka ukitumia vidole %1$d"</string>
<string name="accessibility_shortcut_edit_screen_title_triple_tap" msgid="3314488747597058942">"Kugusa mara tatu"</string>
<string name="accessibility_shortcut_edit_screen_summary_triple_tap" msgid="4839204951599629871">"Gusa skrini mara %1$d haraka. Huenda hali hii ikasababisha kifaa chako kifanye kazi polepole."</string>
<string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="6271718715836961167">"Kugusa mara mbili ukitumia vidole %1$d"</string>
- <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"Gusa skrini kwa haraka mara {0,number,integer} kwa vidole viwili"</string>
- <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"Gusa skrini mara tatu"</string>
<string name="accessibility_shortcut_triple_tap_keyword" msgid="5359347130888464334">"kugusa mara tatu"</string>
- <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"Gusa skrini mara {0,number,integer} kwa haraka. Huenda njia hii ya mkato ikapunguza kasi ya kifaa chako"</string>
<string name="accessibility_shortcut_edit_dialog_title_advance" msgid="4567868630655591506">"Mipangilio ya kina"</string>
<string name="accessibility_screen_magnification_navbar_configuration_warning" msgid="266736851606791552">"Kitufe cha zana za walio na matatizo ya kuona au kusikia kimewekwa kuwa <xliff:g id="SERVICE">%1$s</xliff:g>. Gusa na ushikilie Kitufe cha zana za walio na matatizo ya kuona au kusikia, kisha uchague ukuzaji ili utumie kipengele cha ukuzaji."</string>
<string name="accessibility_screen_magnification_gesture_navigation_warning" msgid="991017769735632046">"Ishara ya zana za walio na matatizo ya kuona au kusikia imewekwa kwenye <xliff:g id="SERVICE">%1$s</xliff:g>. Ili utumie ukuzaji, telezesha vidole viwili kutoka chini kwenda juu kwenye skrini na ushikilie. Kisha uchague ukuzaji."</string>
@@ -2369,6 +2362,7 @@
<string name="daltonizer_mode_tritanomaly_title" msgid="2278786218762602022">"Bluu-manjano"</string>
<string name="daltonizer_mode_grayscale_title" msgid="152005391387952588">"Kijivu"</string>
<string name="daltonizer_saturation_title" msgid="2999486412114963068">"Ukolezaji"</string>
+ <string name="daltonizer_saturation_unavailable_summary" msgid="8319753055567798775">"Haipatikani kwa hali ya kijivu au wakati kipengele cha usahihishaji wa rangi kimezimwa"</string>
<string name="daltonizer_mode_deuteranomaly_summary" msgid="2117727423019598455">"Kijani hafifu, upofu wa kutoona rangi kijani"</string>
<string name="daltonizer_mode_protanomaly_summary" msgid="4617032854982040748">"Nyekundu hafifu, upofu wa kutoona rangi nyekundu"</string>
<string name="daltonizer_mode_tritanomaly_summary" msgid="2428218320118180070">"Upofu wa kutoona rangi ya bluu"</string>
@@ -2418,15 +2412,8 @@
<string name="color_cyan" msgid="4341758639597035927">"Samawati-Kijani"</string>
<string name="color_yellow" msgid="5957551912912679058">"Manjano"</string>
<string name="color_magenta" msgid="8943538189219528423">"Majenta"</string>
- <string name="enable_service_title" msgid="7231533866953706788">"Ungependa kuruhusu <xliff:g id="SERVICE">%1$s</xliff:g> iwe na udhibiti kamili wa kifaa chako?"</string>
<string name="capabilities_list_title" msgid="1225853611983394386">"<xliff:g id="SERVICE">%1$s</xliff:g> inahitaji:"</string>
<string name="touch_filtered_warning" msgid="4225815157460318241">"Kwa sababu programu yako inazuia ombi la ruhusa, Mipangilio haiwezi kuthibitisha majibu yako."</string>
- <string name="accessibility_service_warning" msgid="6779187188736432618">"<xliff:g id="SERVICE">%1$s</xliff:g> inaomba udhibiti kamili wa kifaa hiki. Huduma hii inaweza kusoma skrini na ichukue hatua kwa niaba ya watumiaji walio na matatizo ya kuona au kusikia. Kiwango hiki cha udhibiti hakifai kwa programu nyingi."</string>
- <string name="accessibility_service_warning_description" msgid="6573203795976134751">"Udhibiti kamili unafaa kwa programu zinazokusaidia kwa mahitaji ya ufikivu, ila si kwa programu nyingi."</string>
- <string name="accessibility_service_screen_control_title" msgid="324795030658109870">"Kuangalia na kudhibiti skrini"</string>
- <string name="accessibility_service_screen_control_description" msgid="8431940515157990426">"Inaweza kusoma maudhui yote kwenye skrini na kuonyesha maudhui kwenye programu zingine."</string>
- <string name="accessibility_service_action_perform_title" msgid="1449360056585337833">"Kuangalia na kutekeleza vitendo"</string>
- <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"Inaweza kufuatilia mawasiliano yako na programu au kitambuzi cha maunzi na kuwasiliana na programu zingine kwa niaba yako."</string>
<string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Ruhusu"</string>
<string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Kataa"</string>
<string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Zima"</string>
@@ -3368,10 +3355,8 @@
<string name="zen_mode_automation_settings_title" msgid="3709324184191870926">"Ratiba"</string>
<string name="zen_mode_delete_automatic_rules" msgid="5020468289267191765">"Futa kanuni"</string>
<string name="zen_mode_schedule_delete" msgid="5383420576833765114">"Futa"</string>
- <!-- no translation found for zen_mode_menu_rename_mode (4681802125016390837) -->
- <skip />
- <!-- no translation found for zen_mode_menu_delete_mode (5380084696402157428) -->
- <skip />
+ <string name="zen_mode_menu_rename_mode" msgid="4681802125016390837">"Badilisha jina"</string>
+ <string name="zen_mode_menu_delete_mode" msgid="5380084696402157428">"Futa"</string>
<string name="zen_mode_delete_mode_confirmation" msgid="7594340592051947392">"Ungependa kufuta hali ya \"<xliff:g id="MODE">%1$s</xliff:g>\"?"</string>
<string name="zen_mode_rule_name_edit" msgid="1053237022416700481">"Badilisha"</string>
<string name="zen_mode_automation_settings_page_title" msgid="6217433860514433311">"Ratiba"</string>
@@ -3395,8 +3380,7 @@
<string name="zen_mode_visual_signals_settings_subtitle" msgid="7433077540895876672">"Ruhusu ishara zinazoonekena"</string>
<string name="mode_interruption_filter_title" msgid="3343846700214702347">"Kuwa makini"</string>
<string name="mode_device_effects_title" msgid="5857008332618433744">"Vitendo vya ziada"</string>
- <!-- no translation found for modes_sound_summary_off (6972648204528227879) -->
- <skip />
+ <string name="modes_sound_summary_off" msgid="6972648204528227879">"{count,plural, =0{Imezimwa}=1{Imezimwa au Hali 1 inaweza kuwashwa kiotomatiki}other{Imezimwa au Hali # zinaweza kuwashwa kiotomatiki}}"</string>
<string name="mode_display_settings_title" msgid="8132825978346535472">"Mipangilio ya kuonyesha"</string>
<string name="mode_display_options_section" msgid="5151597748243866532">"Chaguo za kuonyesha"</string>
<string name="mode_grayscale_title" msgid="6027553257331235461">"Kijivu"</string>
@@ -3659,9 +3643,9 @@
<string name="notif_listener_not_migrated" msgid="6265206376374278226">"Programu hii haitumii mipangilio iliyoboreshwa"</string>
<string name="notif_listener_more_settings" msgid="1348409392307208921">"Mipangilio zaidi"</string>
<string name="notif_listener_more_settings_desc" msgid="7995492074281663658">"Mipangilio zaidi inapatikana ndani ya programu hii"</string>
- <string name="notification_polite_title" msgid="4737150709382859870">"Arifa Zinazojirekebisha"</string>
- <string name="notification_polite_main_control_title" msgid="7267191551379543859">"Tumia arifa zinazojirekebisha"</string>
- <string name="notification_polite_description" msgid="7749280535620291610">"Ukipokea arifa nyingi ndani ya muda mfupi, simu yako itapunguza kiwango cha sauti na idadi ya madirisha ibukizi kwenye skrini kwa hadi dakika mbili. Simu, kengele na mazungumzo ya kipaumbele bado yatafanya simu iteteme, kutoa sauti au kuonekana kwenye skrini na ni rahisi kupata arifa zote ukitelezesha kidole chini kutoka sehemu ya juu ya skrini."</string>
+ <string name="notification_polite_title" msgid="6121016426991791557">"Kupungua kwa shughuli ya arifa"</string>
+ <string name="notification_polite_main_control_title" msgid="5812529809151927149">"Tumia mipangilio ya kutuliza arifa"</string>
+ <string name="notification_polite_description" msgid="5497748284893832854">"Unapopokea arifa nyingi ndani ya muda mfupi, kifaa chako kitapunguza sauti na arifa kwa hadi dakika 2. Hali hii haitaathiri simu, kengele na mazungumzo ya kipaumbele. \n\nUnaweza kupata arifa ulizopokea wakati wa kupungua kwa shughuli kwa kutelezesha kidole chini kutoka sehemu ya juu ya skrini."</string>
<string name="notification_polite_work" msgid="8823596456640216391">"Tumia kwenye wasifu wa kazini"</string>
<string name="notification_polite_work_summary" msgid="5014189280132951378">"Inatumika kwa programu zenye wasifu wa kazini"</string>
<string name="vr_listeners_title" msgid="4960357292472540964">"Huduma za kisaidizi cha Uhalisia Pepe"</string>
@@ -3818,7 +3802,9 @@
<string name="zen_mode_apps_priority_apps" msgid="7386196048313716076">"Programu zilizochaguliwa"</string>
<string name="zen_mode_apps_none_apps" msgid="2493642312793604327">"Hamna"</string>
<string name="zen_mode_apps_subtext" msgid="1764211974662012877">"{count,plural,offset:2 =0{Hakuna programu zinazoweza kukatiza}=1{{app_1} inaweza kukatiza}=2{{app_1} na {app_2} zinaweza kukatiza}=3{{app_1}, {app_2} na {app_3} zinaweza kukatiza}other{{app_1}, {app_2} na nyingine # zinaweza kukatiza}}"</string>
+ <string name="zen_mode_apps_work_app" msgid="8528767938316361588">"<xliff:g id="APP_LABEL">%s</xliff:g> (Kazini)"</string>
<string name="zen_mode_apps_calculating" msgid="5420121396943539286">"Inahesabu…"</string>
+ <string name="zen_mode_plus_n_items" msgid="6136713354369243421">"+<xliff:g id="NUMBER">%d</xliff:g>"</string>
<string name="zen_mode_bypassing_apps" msgid="625309443389126481">"Ruhusu programu zibatilishe hali"</string>
<string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"Programu zinazoweza kukatiza"</string>
<string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"Chagua programu zaidi"</string>
@@ -3836,6 +3822,7 @@
<string name="zen_mode_sounds_none" msgid="6557474361948269420">"Hakuna kinachoweza kukatiza"</string>
<string name="zen_mode_people_none" msgid="4613147461974255046">"Hakuna mtu anayeweza kukatiza"</string>
<string name="zen_mode_people_some" msgid="9101872681298810281">"Baadhi ya watu wanaweza kukatiza"</string>
+ <string name="zen_mode_people_repeat_callers" msgid="4499084111069828761">"Wanaorudia kupiga simu wanaweza kukatiza"</string>
<string name="zen_mode_people_all" msgid="311036110283015205">"Watu wote wanaweza kukatiza"</string>
<string name="zen_mode_repeat_callers" msgid="2270356100287792138">"Wanaorudia kupiga simu"</string>
<string name="zen_mode_repeat_callers_title" msgid="8016699240338264781">"Ruhusu wanaorudia kupiga simu"</string>
@@ -3855,13 +3842,37 @@
<string name="zen_mode_summary_alarms_only_by_hour" msgid="7400910210950788163">"{count,plural, =1{Badilisha utumie kengele pekee kwa saa moja hadi {time}}other{Badilisha utumie kengele pekee kwa saa # hadi {time}}}"</string>
<string name="zen_mode_summary_alarms_only_by_time" msgid="8140619669703968810">"Badilisha utumie kengele pekee hadi <xliff:g id="FORMATTEDTIME">%1$s</xliff:g>"</string>
<string name="zen_mode_summary_always" msgid="722093064250082317">"Badilisha utumie hali ya katiza wakati wote"</string>
- <!-- no translation found for zen_mode_rename_title (8146882272966214558) -->
+ <string name="zen_mode_rename_title" msgid="8146882272966214558">"Badilisha hali"</string>
+ <string name="zen_mode_new_custom_title" msgid="321750898430776191">"Weka hali"</string>
+ <string name="zen_mode_new_custom_default_name" msgid="2778307946775085105">"Hali maalum"</string>
+ <string name="zen_mode_edit_name_hint" msgid="4584652062167540536">"Jina la hali"</string>
+ <string name="zen_mode_trigger_title_schedule_calendar" msgid="9206609438617550331">"Matukio ya kalenda"</string>
+ <string name="zen_mode_trigger_title_bedtime" msgid="5086070900588489978">"Ratiba ya wakati wa kulala"</string>
+ <string name="zen_mode_trigger_title_driving" msgid="7890990983453164403">"Unapoendesha gari"</string>
+ <string name="zen_mode_trigger_title_generic" msgid="601273385119550420">"Imeunganishwa na programu"</string>
+ <string name="zen_mode_trigger_summary_settings_in_app" msgid="4860667191183702601">"Maelezo na mipangilio katika <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+ <string name="zen_mode_trigger_summary_managed_by_app" msgid="8631011868193102098">"Inadhibitiwa na <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+ <string name="zen_mode_confirm_disable_title" msgid="1232297660775719796">"Zima Hali"</string>
+ <string name="zen_mode_confirm_disable_message" msgid="7315541221665718491">"Ukizima kipengele hiki, hali yake haitafanya kazi tena kama ilivyokusudiwa na mipangilio yake itafichwa."</string>
+ <string name="zen_mode_action_disable" msgid="3552921561331044881">"Zima"</string>
+ <string name="zen_mode_confirm_enable_title" msgid="5683371335847448595">"Washa Hali"</string>
+ <string name="zen_mode_confirm_enable_message" msgid="7017879133260011419">"Ukiwasha kipengele hiki, hali yake itawashwa kiotomatiki kulingana na ratiba iliyowekewa."</string>
+ <string name="zen_mode_action_enable" msgid="1161480633223176531">"Washa"</string>
+ <!-- no translation found for zen_mode_blurb_schedule_time (8223898702097484009) -->
<skip />
- <!-- no translation found for zen_mode_new_custom_title (321750898430776191) -->
+ <!-- no translation found for zen_mode_blurb_schedule_calendar (382177907856065945) -->
<skip />
- <!-- no translation found for zen_mode_new_custom_default_name (2778307946775085105) -->
+ <!-- no translation found for zen_mode_blurb_bedtime (6155075956151013457) -->
<skip />
- <!-- no translation found for zen_mode_edit_name_hint (4584652062167540536) -->
+ <!-- no translation found for zen_mode_blurb_driving (1316054379000667305) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_immersive (5884004861848687869) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_theater (2999237960059524225) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_managed (5473921634985032149) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_generic (3041601339807075625) -->
<skip />
<string name="warning_button_text" msgid="1274234338874005639">"Onyo"</string>
<string name="suggestion_button_close" msgid="6865170855573283759">"Funga"</string>
@@ -4849,9 +4860,8 @@
<string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"Betri"</string>
<string name="settings_panel_title" msgid="346363079938069215">"Kidirisha cha Mipangilio"</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>
+ <!-- no translation found for enable_desktop_mode_on_secondary_display (2609567824593768780) -->
+ <skip />
<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>
@@ -5026,7 +5036,6 @@
<string name="default_active_sim_mobile_data" msgid="6798083892814045301">"data ya mtandao wa simu"</string>
<string name="wifi_scan_notify_message" msgid="1331238142061476869">"Ili kuboresha hali ya matumizi ya kifaa, programu na huduma zinaweza kutafuta mitandao ya Wi‑Fi wakati wowote, hata wakati umezima Wi‑Fi. Hali hii inaweza kutumika, kwa mfano, kuboresha huduma na vipengele vinavyohusiana na mahali. Unaweza kubadilisha hali hii katika mipangilio ya kutafuta Wi-Fi."</string>
<string name="wifi_scan_change" msgid="8438320311511852918">"Badilisha"</string>
- <string name="preference_summary_default_combination" msgid="4643585915107796253">"<xliff:g id="STATE">%1$s</xliff:g> / <xliff:g id="NETWORKMODE">%2$s</xliff:g>"</string>
<string name="mobile_data_connection_active" msgid="2422223108911581552">"Imeunganishwa"</string>
<string name="mobile_data_temp_connection_active" msgid="3430470299756236413">"Imeunganishwa kwa muda"</string>
<string name="mobile_data_temp_using" msgid="5211002380149434155">"Inatumia <xliff:g id="SUBNAME">%1$s</xliff:g> kwa muda"</string>
@@ -5172,9 +5181,11 @@
<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="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_enable_freeform_support" msgid="3697462756493543645">"Unahitaji kuwasha tena ili kuruhusu matumizi ya dirisha lenye muundo huru."</string>
+ <!-- no translation found for reboot_dialog_override_desktop_mode (7480950772574354130) -->
+ <skip />
+ <!-- no translation found for reboot_dialog_enable_desktop_mode_on_secondary_display (1153621881052401924) -->
+ <skip />
<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>
@@ -5292,10 +5303,8 @@
<string name="show_captions_enabled" msgid="7089043007924626">"Imewashwa"</string>
<string name="live_caption_disabled" msgid="3562035026547887366">"Imezimwa"</string>
<string name="live_caption_enabled" msgid="5269360946200718949">"Imewashwa"</string>
- <!-- no translation found for audio_seek_bar_state_left_first (8814986910920838972) -->
- <skip />
- <!-- no translation found for audio_seek_bar_state_right_first (1999368979633398876) -->
- <skip />
+ <string name="audio_seek_bar_state_left_first" msgid="8814986910920838972">"Sauti, kushoto ni %1$d%%, kulia ni %2$d%%"</string>
+ <string name="audio_seek_bar_state_right_first" msgid="1999368979633398876">"Sauti, kulia ni %1$d%%, kushoto ni %2$d%%"</string>
<string name="about_phone_device_name_warning" msgid="3243226572404472381">"Jina la kifaa chako litaonekana kwa programu ambazo umesakinisha. Huenda likaonekana pia na watu wengine unapooanisha na vifaa vyenye Bluetooth, unapounganisha kwenye mtandao wa Wi-Fi au unapoweka mipangilio ya mtandao pepe wa Wi-Fi."</string>
<string name="grammatical_gender_title" msgid="8584242850477270828">"Jinsia ya kisarufi"</string>
<string name="grammatical_gender_dialog_title" msgid="8754048592099871587">"Chagua Jinsia ya kisarufi"</string>
@@ -5407,5 +5416,6 @@
<string name="audio_streams_main_page_password_dialog_join_button" msgid="2967747276379153408">"Sikiliza mtiririko"</string>
<string name="audio_streams_main_page_qr_code_scanner_summary" msgid="5312980105735143360">"Changanua msimbo wa QR wa mtiririko wa maudhui ya sauti ili usikilize kupitia <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
<string name="audio_streams_main_page_password_dialog_cannot_edit" msgid="9020898619297520153">"Huwezi kubadilisha nenosiri mposikiliza pamoja. Ili ubadilishe nenosiri, zima kwanza kipengele cha kusikiliza pamoja."</string>
+ <string name="audio_streams_qr_code_scanner_label" msgid="8799703301071378034">"Kichanganuzi cha msimbo wa QR"</string>
<string name="homepage_search" msgid="6759334912284663559">"Mipangilio ya Utafutaji"</string>
</resources>
diff --git a/res/values-ta/strings.xml b/res/values-ta/strings.xml
index 7e8e3b1..c018665 100644
--- a/res/values-ta/strings.xml
+++ b/res/values-ta/strings.xml
@@ -41,6 +41,8 @@
<string name="radioInfo_data_suspended" msgid="2001254415431299603">"இடைநீக்கப்பட்டது"</string>
<string name="radioInfo_unknown" msgid="2892562356748600367">"தெரியவில்லை"</string>
<string name="preview_pager_content_description" msgid="3762247188224576303">"மாதிரிக்காட்சி"</string>
+ <!-- no translation found for qr_code_content_description (1852208464419291347) -->
+ <skip />
<string name="font_size_make_smaller_desc" msgid="4978038055549590140">"சிறிதாக்கு"</string>
<string name="font_size_make_larger_desc" msgid="5583046033381722247">"பெரிதாக்கு"</string>
<string name="stay_awake_on_fold_title" msgid="6590454679898134221">"எப்போதும்"</string>
@@ -283,7 +285,7 @@
<string name="location_settings_summary_location_off" msgid="4797932754681162262">"ஆஃப்"</string>
<string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{ஆன் / # ஆப்ஸ் இருப்பிடத்திற்கான அணுகலைக் கொண்டுள்ளது}other{ஆன் / # ஆப்ஸ் இருப்பிடத்திற்கான அணுகலைக் கொண்டுள்ளன}}"</string>
<string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"ஏற்றுகிறது…"</string>
- <string name="location_settings_footer_general" msgid="1040507068701188821">"இணைக்கப்பட்டுள்ள சாதனங்களின் தூரத்தை \'அருகிலுள்ள சாதனங்களுக்கான\' அனுமதியைப் பெற்ற ஆப்ஸால் தீர்மானிக்க முடியும்."</string>
+ <string name="location_settings_footer_general" msgid="3447585552176173502">"இணைக்கப்பட்டுள்ள சாதனங்கள் எவ்வளவு தூரத்தில், எந்தத் திசையில் உள்ளன என்பதை அருகிலுள்ள சாதனங்களைக் கண்டறிவதற்கான அனுமதியைப் பெற்றுள்ள ஆப்ஸால் தீர்மானிக்க முடியும்."</string>
<string name="location_settings_footer_location_off" msgid="8568995909147566720">"ஆப்ஸுக்கும் சேவைகளுக்கும் இருப்பிட அணுகல் முடக்கப்பட்டுள்ளது. எனினும் அவசர உதவி எண்ணை அழைத்தாலோ அதற்கு மெசேஜ் அனுப்பினாலோ, சாதனத்தின் இருப்பிடம் அவசரக் காலத்தில் உதவிபுரிவோருக்கு அனுப்பப்படக்கூடும்."</string>
<string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"இருப்பிட அமைப்புகள் குறித்து மேலும் அறிக"</string>
<string name="location_settings_tooltip_text_for_chrome" msgid="5781821709250544575">"மாற்ற, ChromeOS அமைப்புகள் > தனியுரிமை மற்றும் பாதுகாப்பு > தனியுரிமைக் கட்டுப்பாடுகள் > இருப்பிட அணுகல் என்பதற்குச் செல்லவும்"</string>
@@ -850,7 +852,6 @@
<string name="nfc_reboot_dialog_title" msgid="2033983438635768169">"சாதனத்தை மீண்டும் தொடங்கவா?"</string>
<string name="nfc_reboot_dialog_message" msgid="4929353168157966992">"விரிவான NFC பதிவானது மேம்பாட்டு நோக்கங்களுக்காக மட்டுமே உருவாக்கப்பட்டது. பிழை அறிக்கைகளில் கூடுதல் NFC தரவு சேர்க்கப்பட்டுள்ளது. இவற்றில் தனிப்பட்ட தகவல்கள் இருக்கக்கூடும். இந்த அமைப்பை மாற்ற உங்கள் சாதனத்தை மீண்டும் தொடங்கவும்."</string>
<string name="nfc_reboot_dialog_confirm" msgid="4769763632008584567">"மீண்டும் தொடங்கு"</string>
- <string name="keywords_external_display" msgid="4181375057920134909">"மிரர், வெளிப்புற டிஸ்ப்ளே, இணைக்கப்பட்ட டிஸ்ப்ளே, USB டிஸ்ப்ளே, தெளிவுத்திறன், சுழற்சி"</string>
<string name="external_display_on" msgid="2560104443500154333">"இயக்கப்பட்டுள்ளது"</string>
<string name="external_display_off" msgid="5634413756025351374">"முடக்கப்பட்டுள்ளது"</string>
<string name="external_display_settings_title" msgid="6256884595821605779">"வெளிப்புற டிஸ்ப்ளே"</string>
@@ -1918,6 +1919,8 @@
<string name="slow_keys_summary" msgid="1784371292745423292">"ஒரு பட்டனை அழுத்துவதற்கு எடுக்கும் நேரத்தை <xliff:g id="SLOW_KEYS_THRESHOLD">%1$d</xliff:g> மில்லி வினாடியாகச் சரிசெய்துகொள்கிறது"</string>
<string name="sticky_keys" msgid="7317317044898161747">"ஸ்டிக்கி கீஸ்"</string>
<string name="sticky_keys_summary" msgid="1844953803625480623">"ஷார்ட்கட்களுக்கு பட்டன்களை ஒன்றாகப் பிடிப்பதற்குப் பதிலாக ஒரு நேரத்தில் ஒரு பட்டனை அழுத்தலாம்"</string>
+ <string name="mouse_keys" msgid="6237254627808525540">"மவுஸ் பட்டன்கள்"</string>
+ <string name="mouse_keys_summary" msgid="2396247040177734245">"மவுஸைக் கட்டுப்படுத்த கீபோர்டைப் பயன்படுத்தவும்."</string>
<string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"கீபோர்டு ஷார்ட்கட்கள்"</string>
<string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"ஷார்ட்கட்களின் பட்டியலைக் காட்டும்"</string>
<string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"பணிக் கணக்கிற்கான கீபோர்டுகள் & கருவிகள்"</string>
@@ -1942,14 +1945,10 @@
<string name="pointer_fill_style_yellow_button" msgid="5025969961559379024">"பாயிண்ட்டர் ஃபில் ஸ்டைலை மஞ்சளாக மாற்றலாம்"</string>
<string name="pointer_fill_style_pink_button" msgid="4106218142489635673">"பாயிண்ட்டர் ஃபில் ஸ்டைலை இளஞ்சிவப்பாக மாற்றலாம்"</string>
<string name="pointer_fill_style_blue_button" msgid="5594958078854032785">"பாயிண்ட்டர் ஃபில் ஸ்டைலை நீலமாக மாற்றலாம்"</string>
- <!-- no translation found for pointer_stroke_style (1886986630216050665) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_white (673686194443825383) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_black (4655806167067437330) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_none (8953927511729800247) -->
- <skip />
+ <string name="pointer_stroke_style" msgid="1886986630216050665">"பாயிண்டர் ஸ்ட்ரோக் ஸ்டைல்"</string>
+ <string name="pointer_stroke_style_name_white" msgid="673686194443825383">"வெள்ளை"</string>
+ <string name="pointer_stroke_style_name_black" msgid="4655806167067437330">"கருப்பு"</string>
+ <string name="pointer_stroke_style_name_none" msgid="8953927511729800247">"ஏதுமில்லை"</string>
<string name="trackpad_touch_gesture" msgid="8641725062131922497">"டச்பேட் சைகைகளை அறிந்துகொள்ளுங்கள்"</string>
<string name="keywords_touchpad" msgid="8159846254066666032">"டிராக்பேட், டிராக் பேட், மவுஸ், கர்சர், ஸ்க்ரோல், ஸ்வைப், வலது கிளிக், கிளிக், பாயிண்ட்டர்"</string>
<string name="keywords_trackpad_bottom_right_tap" msgid="1285062446073929305">"வலது கிளிக், தட்டு"</string>
@@ -2179,8 +2178,6 @@
<string name="accessibility_shortcut_edit_dialog_summary_floating_button" msgid="6266489864614886247">"மிதக்கும் பட்டனைத் தட்டவும்"</string>
<string name="accessibility_shortcut_edit_dialog_title_software_by_gesture" msgid="4775049370625630546">"அணுகல்தன்மை சைகை"</string>
<string name="accessibility_shortcut_edit_dialog_summary_software" msgid="8315934725362849788">"திரையின் கீழ்ப்பகுதியில் உள்ள அணுகல்தன்மை பட்டனை <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g> தட்டுங்கள். அம்சங்களுக்கு இடையே மாற, அணுகல்தன்மை பட்டனைத் தொட்டுப் பிடியுங்கள்."</string>
- <string name="accessibility_shortcut_edit_dialog_summary_software_gesture" msgid="8292555254353761635">"திரையின் கீழிருந்து மேலாக 2 விரல்களால் ஸ்வைப் செய்யவும்.\n\nஅம்சங்களுக்கு இடையே மாற, திரையின் கீழ்ப்பகுதியில் இருந்து 2 விரல்களால் ஸ்வைப் செய்து பிடித்திருக்கவும்."</string>
- <string name="accessibility_shortcut_edit_dialog_summary_software_gesture_talkback" msgid="84483464524360845">"திரையின் கீழிருந்து மேலாக 3 விரல்களால் ஸ்வைப் செய்யவும்.\n\nஅம்சங்களுக்கு இடையே மாற, 3 விரல்களால் மேல்நோக்கி ஸ்வைப் செய்து பிடித்திருக்கவும்."</string>
<string name="accessibility_shortcut_edit_dialog_summary_gesture" msgid="2081123009255579884">"{count,plural, =1{திரையின் கீழிருந்து மேல்நோக்கி ஸ்வைப் செய்யுங்கள். அம்சங்களுக்கு இடையே மாற, மேல்நோக்கி ஸ்வைப் செய்து பிடியுங்கள்.}other{உங்கள் திரையின் கீழ்ப்பகுதியில் இருந்து # விரல்களால் மேல்நோக்கி ஸ்வைப் செய்யுங்கள். அம்சங்களுக்கு இடையே மாற, # விரல்களால் மேல்நோக்கி ஸ்வைப் செய்து பிடியுங்கள்.}}"</string>
<string name="accessibility_shortcut_edit_dialog_summary_software_floating" msgid="4459254227203203324"><annotation id="link">"கூடுதல் விருப்பங்கள்"</annotation></string>
<string name="footer_learn_more_content_description" msgid="8843798273152131341">"<xliff:g id="SERVICE">%1$s</xliff:g> பற்றி மேலும் அறிக"</string>
@@ -2191,16 +2188,12 @@
<string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="844089763968552142">"ஒலியளவு விசைகள்"</string>
<string name="accessibility_shortcut_hardware_keyword" msgid="2483152542320987022">"ஒலியளவு விசைகள்"</string>
<string name="accessibility_shortcut_edit_dialog_summary_hardware" msgid="2503134386397991634">"இரண்டு ஒலியளவு விசைகளையும் அழுத்திப் பிடித்திருக்கவும்"</string>
- <string name="accessibility_shortcut_edit_dialog_title_two_finger_double_tap" msgid="2271778556854020996">"இரண்டு விரல்களால் திரையை இருமுறை தட்டுதல்"</string>
<string name="accessibility_shortcut_edit_screen_title_two_finger_double_tap" msgid="8952595692906527694">"%1$d விரல்களால் இருமுறை தட்டுதல்"</string>
<string name="accessibility_shortcut_edit_screen_summary_two_finger_double_tap" msgid="385404127425496362">"%1$d விரல்களால் திரையில் இருமுறை விரைவாகத் தட்டுங்கள்"</string>
<string name="accessibility_shortcut_edit_screen_title_triple_tap" msgid="3314488747597058942">"மூன்று முறை தட்டுதல்"</string>
<string name="accessibility_shortcut_edit_screen_summary_triple_tap" msgid="4839204951599629871">"திரையில் %1$d முறை விரைவாகத் தட்டுங்கள். இது உங்கள் சாதனத்தின் வேகத்தைக் குறைக்கக்கூடும்."</string>
<string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="6271718715836961167">"%1$d விரல்களால் இருமுறை தட்டுதல்"</string>
- <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"இரண்டு விரல்களால் திரையில் {0,number,integer} முறை விரைவாகத் தட்டுங்கள்"</string>
- <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"திரையில் மூன்று முறை தட்டுதல்"</string>
<string name="accessibility_shortcut_triple_tap_keyword" msgid="5359347130888464334">"மூன்று முறை தட்டுதல்"</string>
- <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"திரையை விரைவாக {0,number,integer} முறை தட்டவும். இந்த ஷார்ட்கட் உங்கள் சாதனத்தின் வேகத்தைக் குறைக்கக்கூடும்"</string>
<string name="accessibility_shortcut_edit_dialog_title_advance" msgid="4567868630655591506">"மேம்பட்டவை"</string>
<string name="accessibility_screen_magnification_navbar_configuration_warning" msgid="266736851606791552">"அணுகல்தன்மை பட்டன், <xliff:g id="SERVICE">%1$s</xliff:g> என்பதற்கு அமைக்கப்பட்டுள்ளது. பெரிதாக்குதலைப் பயன்படுத்த, அணுகல்தன்மை பட்டனைத் தொட்டுப் பிடித்து, பெரிதாக்குதலைத் தேர்ந்தெடுக்கவும்."</string>
<string name="accessibility_screen_magnification_gesture_navigation_warning" msgid="991017769735632046">"இந்த அணுகல்தன்மை சைகை <xliff:g id="SERVICE">%1$s</xliff:g> சேவைக்கு அமைக்கப்பட்டுள்ளது. பெரிதாக்க திரையின் கீழிருந்து மேலே இரண்டு விரல்களால் ஸ்வைப் செய்துப் பிடிக்கவும். பிறகு \'பெரிதாக்குதல்\' என்பதைத் தேர்வுசெய்யவும்."</string>
@@ -2369,6 +2362,7 @@
<string name="daltonizer_mode_tritanomaly_title" msgid="2278786218762602022">"நீலம்-மஞ்சள்"</string>
<string name="daltonizer_mode_grayscale_title" msgid="152005391387952588">"கிரே ஸ்கேல்"</string>
<string name="daltonizer_saturation_title" msgid="2999486412114963068">"வண்ணத்தின் அடர்த்தி"</string>
+ <string name="daltonizer_saturation_unavailable_summary" msgid="8319753055567798775">"கிரேஸ்கேல் பயன்முறையில் அல்லது கலர் கரெக்ஷன் முடக்கப்பட்டுள்ளபோது கிடைக்காது"</string>
<string name="daltonizer_mode_deuteranomaly_summary" msgid="2117727423019598455">"இளஞ்சிவப்பு, டியூட்டரானாமலி"</string>
<string name="daltonizer_mode_protanomaly_summary" msgid="4617032854982040748">"இளம்பச்சை, புரோட்டனாமலி"</string>
<string name="daltonizer_mode_tritanomaly_summary" msgid="2428218320118180070">"ட்ரைடானோமலி"</string>
@@ -2418,15 +2412,8 @@
<string name="color_cyan" msgid="4341758639597035927">"சியான்"</string>
<string name="color_yellow" msgid="5957551912912679058">"மஞ்சள்"</string>
<string name="color_magenta" msgid="8943538189219528423">"மெஜந்தா"</string>
- <string name="enable_service_title" msgid="7231533866953706788">"உங்கள் சாதனத்தை முழுமையாகக் கட்டுப்படுத்த <xliff:g id="SERVICE">%1$s</xliff:g> சேவையை அனுமதிக்கவா?"</string>
<string name="capabilities_list_title" msgid="1225853611983394386">"<xliff:g id="SERVICE">%1$s</xliff:g> செய்வது:"</string>
<string name="touch_filtered_warning" msgid="4225815157460318241">"அனுமதிக் கோரிக்கையை ஆப்ஸ் மறைப்பதால், அமைப்புகளால் உங்கள் பதிலைச் சரிபார்க்க முடியாது."</string>
- <string name="accessibility_service_warning" msgid="6779187188736432618">"இந்தச் சாதனத்திற்கான முழுக் கட்டுப்பாட்டையும் <xliff:g id="SERVICE">%1$s</xliff:g> கோருகிறது. இந்தச் சேவை உங்கள் திரையில் தோன்றுவதைப் படித்து, பயனர்களுக்குத் தேவையான அணுகல்களைப் பெற அவர்களின் சார்பில் செயல்படும். இப்போதுள்ள கட்டுப்பாடு பெரும்பாலான ஆப்ஸுக்குப் பொருந்தவில்லை."</string>
- <string name="accessibility_service_warning_description" msgid="6573203795976134751">"அணுகல்தன்மை அம்சங்களைக் கொண்டு உங்களுக்கு உதவக்கூடிய ஆப்ஸுக்கு முழுக் கட்டுப்பாட்டையும் அளிப்பது பொருத்தமாக இருக்கும், ஆனால் பெரும்பாலான ஆப்ஸுக்கு இது தேவையில்லை."</string>
- <string name="accessibility_service_screen_control_title" msgid="324795030658109870">"திரையைப் பார்த்தலும் நிர்வகித்தலும்"</string>
- <string name="accessibility_service_screen_control_description" msgid="8431940515157990426">"இந்த அம்சத்தால் திரையில் உள்ள அனைத்தையும் படிக்க முடிவதோடு பிற ஆப்ஸின் மேல் உள்ளடக்கத்தைக் காட்டும்."</string>
- <string name="accessibility_service_action_perform_title" msgid="1449360056585337833">"செயல்பாடுகளைப் பார்த்தலும் செயல்படுத்தலும்"</string>
- <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"ஏதேனும் ஆப்ஸ் அல்லது வன்பொருள் சென்சாரின் உதவியுடன் உரையாடல்களைக் கண்காணித்து உங்கள் சார்பாக ஆப்ஸுடன் உரையாட இச்சேவையால் இயலும்."</string>
<string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"அனுமதி"</string>
<string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"நிராகரி"</string>
<string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"முடக்கு"</string>
@@ -3368,10 +3355,8 @@
<string name="zen_mode_automation_settings_title" msgid="3709324184191870926">"நேர அட்டவணைகள்"</string>
<string name="zen_mode_delete_automatic_rules" msgid="5020468289267191765">"திட்டமிட்டவைகளை நீக்கு"</string>
<string name="zen_mode_schedule_delete" msgid="5383420576833765114">"நீக்கு"</string>
- <!-- no translation found for zen_mode_menu_rename_mode (4681802125016390837) -->
- <skip />
- <!-- no translation found for zen_mode_menu_delete_mode (5380084696402157428) -->
- <skip />
+ <string name="zen_mode_menu_rename_mode" msgid="4681802125016390837">"பெயர் மாற்று"</string>
+ <string name="zen_mode_menu_delete_mode" msgid="5380084696402157428">"நீக்கு"</string>
<string name="zen_mode_delete_mode_confirmation" msgid="7594340592051947392">"\"<xliff:g id="MODE">%1$s</xliff:g>\" பயன்முறையை நீக்கவா?"</string>
<string name="zen_mode_rule_name_edit" msgid="1053237022416700481">"மாற்று"</string>
<string name="zen_mode_automation_settings_page_title" msgid="6217433860514433311">"திட்டமிடல்"</string>
@@ -3395,8 +3380,7 @@
<string name="zen_mode_visual_signals_settings_subtitle" msgid="7433077540895876672">"விஷுவல் சிக்னல்களை அனுமதி"</string>
<string name="mode_interruption_filter_title" msgid="3343846700214702347">"கவனமாக இருங்கள்"</string>
<string name="mode_device_effects_title" msgid="5857008332618433744">"கூடுதல் செயல்கள்"</string>
- <!-- no translation found for modes_sound_summary_off (6972648204528227879) -->
- <skip />
+ <string name="modes_sound_summary_off" msgid="6972648204528227879">"{count,plural, =0{ஆஃப்}=1{ஆஃப் / 1 பயன்முறை தானாக ஆன் ஆகலாம்}other{ஆஃப் / # பயன்முறைகள் தானாக ஆன் ஆகலாம்}}"</string>
<string name="mode_display_settings_title" msgid="8132825978346535472">"டிஸ்பிளே அமைப்புகள்"</string>
<string name="mode_display_options_section" msgid="5151597748243866532">"டிஸ்பிளே விருப்பங்கள்"</string>
<string name="mode_grayscale_title" msgid="6027553257331235461">"கிரேஸ்கேல்"</string>
@@ -3659,9 +3643,9 @@
<string name="notif_listener_not_migrated" msgid="6265206376374278226">"இந்த ஆப்ஸ் மேம்படுத்தப்பட்ட அமைப்புகளை ஆதரிக்காது"</string>
<string name="notif_listener_more_settings" msgid="1348409392307208921">"கூடுதல் அமைப்புகள்"</string>
<string name="notif_listener_more_settings_desc" msgid="7995492074281663658">"இந்த ஆப்ஸில் கூடுதல் அமைப்புகள் உள்ளன"</string>
- <string name="notification_polite_title" msgid="4737150709382859870">"சூழல்சார் அறிவிப்புகள்"</string>
- <string name="notification_polite_main_control_title" msgid="7267191551379543859">"சூழல்சார் அறிவிப்புகளைப் பயன்படுத்துதல்"</string>
- <string name="notification_polite_description" msgid="7749280535620291610">"குறுகிய காலத்தில் பல அறிவிப்புகளைப் பெறும்போது, இரண்டு நிமிடங்கள் வரை ஒலியளவையும் திரையில் தோன்றும் பாப்-அப்களையும் உங்கள் மொபைல் குறைக்கும். அழைப்புகள், அலாரங்கள், முக்கியமான உரையாடல்கள் ஆகியவற்றுக்குத் தொடர்ந்து அதிர்வுறும், ஒலி எழுப்பும் அல்லது அவற்றைத் திரையில் காட்டும். மேலும் அனைத்து அறிவிப்புகளையும் திரையின் மேல் பகுதியில் இருந்து கீழே இழுக்கும்போது எளிதாகக் கண்டறியலாம்."</string>
+ <string name="notification_polite_title" msgid="6121016426991791557">"அறிவிப்புக்கான கூல்டவுன்"</string>
+ <string name="notification_polite_main_control_title" msgid="5812529809151927149">"குறைந்த ஒலியளவில் அறிவிப்புகள் அமைப்பைப் பயன்படுத்துதல்"</string>
+ <string name="notification_polite_description" msgid="5497748284893832854">"குறுகிய காலத்தில் பல அறிவிப்புகளைப் பெறும்போது, 2 நிமிடங்கள் வரை உங்கள் சாதனம் அதன் ஒலியளவைக் குறைத்து விழிப்பூட்டல்கள் பெறுவதை நிறுத்திவைக்கும். அழைப்புகள், அலாரங்கள் மற்றும் முக்கியமான உரையாடல்கள் பாதிக்கப்படாது. \n\nதிரையின் மேலிருந்து கீழே இழுப்பதன் மூலம் குறைந்த ஒலியளவில் இருக்கும்போது பெற்ற அறிவிப்புகளைப் பார்க்கலாம்."</string>
<string name="notification_polite_work" msgid="8823596456640216391">"பணிக் கணக்குகளுக்குப் பயன்படுத்துதல்"</string>
<string name="notification_polite_work_summary" msgid="5014189280132951378">"பணிக் கணக்கு ஆப்ஸுக்குப் பயன்படுத்தும்"</string>
<string name="vr_listeners_title" msgid="4960357292472540964">"VR உதவிச் சேவைகள்"</string>
@@ -3818,7 +3802,9 @@
<string name="zen_mode_apps_priority_apps" msgid="7386196048313716076">"தேர்ந்தெடுக்கப்பட்ட ஆப்ஸ்"</string>
<string name="zen_mode_apps_none_apps" msgid="2493642312793604327">"எதுவுமில்லை"</string>
<string name="zen_mode_apps_subtext" msgid="1764211974662012877">"{count,plural,offset:2 =0{எந்த ஆப்ஸும் குறுக்கிட முடியாது}=1{{app_1} குறுக்கிட முடியும்}=2{{app_1}, {app_2} ஆகியவை குறுக்கிட முடியும்}=3{{app_1}, {app_2}, {app_3} ஆகியவை குறுக்கிட முடியும்}other{{app_1}, {app_2} மற்றும் # ஆப்ஸ் குறுக்கிட முடியும்}}"</string>
+ <string name="zen_mode_apps_work_app" msgid="8528767938316361588">"<xliff:g id="APP_LABEL">%s</xliff:g> (பணி)"</string>
<string name="zen_mode_apps_calculating" msgid="5420121396943539286">"கணக்கிடுகிறது…"</string>
+ <string name="zen_mode_plus_n_items" msgid="6136713354369243421">"+<xliff:g id="NUMBER">%d</xliff:g>"</string>
<string name="zen_mode_bypassing_apps" msgid="625309443389126481">"ஆப்ஸை மீறிச் செயல்பட அனுமதிக்கின்றன"</string>
<string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"குறுக்கிட முடிகின்ற ஆப்ஸ்"</string>
<string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"கூடுதல் ஆப்ஸைத் தேர்ந்தெடுங்கள்"</string>
@@ -3836,6 +3822,7 @@
<string name="zen_mode_sounds_none" msgid="6557474361948269420">"எதுவும் குறுக்கிட முடியாது"</string>
<string name="zen_mode_people_none" msgid="4613147461974255046">"யாரும் குறுக்கிட முடியாது"</string>
<string name="zen_mode_people_some" msgid="9101872681298810281">"சிலரால் குறுக்கிட முடியும்"</string>
+ <string name="zen_mode_people_repeat_callers" msgid="4499084111069828761">"மீண்டும் மீண்டும் அழைப்பவர்கள் குறுக்கிடலாம்"</string>
<string name="zen_mode_people_all" msgid="311036110283015205">"அனைவரும் குறுக்கிட முடியும்"</string>
<string name="zen_mode_repeat_callers" msgid="2270356100287792138">"மீண்டும் மீண்டும் அழைப்பவர்கள்"</string>
<string name="zen_mode_repeat_callers_title" msgid="8016699240338264781">"மீண்டும் அழைப்பவர்களை அனுமதி"</string>
@@ -3855,13 +3842,37 @@
<string name="zen_mode_summary_alarms_only_by_hour" msgid="7400910210950788163">"{count,plural, =1{{time} வரை ஒரு மணிநேரத்திற்கு மட்டும் அலாரங்கள் என மாற்றும்}other{{time} வரை # மணிநேரத்திற்கு மட்டும் அலாரங்கள் என மாற்றும்}}"</string>
<string name="zen_mode_summary_alarms_only_by_time" msgid="8140619669703968810">"<xliff:g id="FORMATTEDTIME">%1$s</xliff:g> வரை அலாரங்கள் மட்டும் என மாற்று"</string>
<string name="zen_mode_summary_always" msgid="722093064250082317">"எப்போதும் குறுக்கிடு என மாற்று"</string>
- <!-- no translation found for zen_mode_rename_title (8146882272966214558) -->
+ <string name="zen_mode_rename_title" msgid="8146882272966214558">"திருத்துதல் பயன்முறை"</string>
+ <string name="zen_mode_new_custom_title" msgid="321750898430776191">"சேர்த்தல் பயன்முறை"</string>
+ <string name="zen_mode_new_custom_default_name" msgid="2778307946775085105">"பிரத்தியேகப் பயன்முறை"</string>
+ <string name="zen_mode_edit_name_hint" msgid="4584652062167540536">"பயன்முறையின் பெயர்"</string>
+ <string name="zen_mode_trigger_title_schedule_calendar" msgid="9206609438617550331">"கேலெண்டர் நிகழ்வுகள்"</string>
+ <string name="zen_mode_trigger_title_bedtime" msgid="5086070900588489978">"உறக்க ஒழுங்கு"</string>
+ <string name="zen_mode_trigger_title_driving" msgid="7890990983453164403">"வாகனம் ஓட்டும்போது"</string>
+ <string name="zen_mode_trigger_title_generic" msgid="601273385119550420">"ஆப்ஸுடன் இணைக்கப்பட்டது"</string>
+ <string name="zen_mode_trigger_summary_settings_in_app" msgid="4860667191183702601">"<xliff:g id="APP_NAME">%1$s</xliff:g> ஆப்ஸில் உள்ள தகவல்களும் அமைப்புகளும்"</string>
+ <string name="zen_mode_trigger_summary_managed_by_app" msgid="8631011868193102098">"நிர்வகிப்பது: <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+ <string name="zen_mode_confirm_disable_title" msgid="1232297660775719796">"பயன்முறையை முடக்குதல்"</string>
+ <string name="zen_mode_confirm_disable_message" msgid="7315541221665718491">"இந்த அம்சத்தை நீங்கள் முடக்கினால், பயன்முறை எதிர்பார்த்தபடி செயல்படாது மற்றும் அதன் அமைப்புகள் மறைக்கப்படும்."</string>
+ <string name="zen_mode_action_disable" msgid="3552921561331044881">"முடக்கு"</string>
+ <string name="zen_mode_confirm_enable_title" msgid="5683371335847448595">"பயன்முறையை இயக்குதல்"</string>
+ <string name="zen_mode_confirm_enable_message" msgid="7017879133260011419">"இந்த அம்சத்தை நீங்கள் இயக்கினால், பயன்முறை அதன் திட்ட அட்டவணைப்படித் தானாகவே செயல்படுத்தப்படும்."</string>
+ <string name="zen_mode_action_enable" msgid="1161480633223176531">"இயக்கு"</string>
+ <!-- no translation found for zen_mode_blurb_schedule_time (8223898702097484009) -->
<skip />
- <!-- no translation found for zen_mode_new_custom_title (321750898430776191) -->
+ <!-- no translation found for zen_mode_blurb_schedule_calendar (382177907856065945) -->
<skip />
- <!-- no translation found for zen_mode_new_custom_default_name (2778307946775085105) -->
+ <!-- no translation found for zen_mode_blurb_bedtime (6155075956151013457) -->
<skip />
- <!-- no translation found for zen_mode_edit_name_hint (4584652062167540536) -->
+ <!-- no translation found for zen_mode_blurb_driving (1316054379000667305) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_immersive (5884004861848687869) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_theater (2999237960059524225) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_managed (5473921634985032149) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_generic (3041601339807075625) -->
<skip />
<string name="warning_button_text" msgid="1274234338874005639">"எச்சரிக்கும்"</string>
<string name="suggestion_button_close" msgid="6865170855573283759">"மூடுக"</string>
@@ -4849,9 +4860,8 @@
<string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"பேட்டரி"</string>
<string name="settings_panel_title" msgid="346363079938069215">"அமைப்புகளுக்கான பேனல்"</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>
+ <!-- no translation found for enable_desktop_mode_on_secondary_display (2609567824593768780) -->
+ <skip />
<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>
@@ -5026,7 +5036,6 @@
<string name="default_active_sim_mobile_data" msgid="6798083892814045301">"மொபைல் டேட்டா"</string>
<string name="wifi_scan_notify_message" msgid="1331238142061476869">"சாதன அனுபவத்தை மேம்படுத்த, வைஃபை ஆஃப் செய்யப்பட்டிருந்தாலும்கூட எந்த நேரத்திலும் ஆப்ஸும் சேவைகளும் வைஃபை நெட்வொர்க்குகளைத் தேடலாம். உதாரணத்திற்கு, இருப்பிடம் சார்ந்த அம்சங்களையும் சேவைகளையும் மேம்படுத்த இதைப் பயன்படுத்தலாம். வைஃபை \'ஸ்கேனிங் அமைப்புகளில்\' இதை மாற்றிக் கொள்ளலாம்."</string>
<string name="wifi_scan_change" msgid="8438320311511852918">"மாற்று"</string>
- <string name="preference_summary_default_combination" msgid="4643585915107796253">"<xliff:g id="STATE">%1$s</xliff:g> / <xliff:g id="NETWORKMODE">%2$s</xliff:g>"</string>
<string name="mobile_data_connection_active" msgid="2422223108911581552">"இணைக்கப்பட்டது"</string>
<string name="mobile_data_temp_connection_active" msgid="3430470299756236413">"தற்காலிகமாக இணைக்கப்பட்டுள்ளது"</string>
<string name="mobile_data_temp_using" msgid="5211002380149434155">"<xliff:g id="SUBNAME">%1$s</xliff:g> ஐத் தற்காலிகமாகப் பயன்படுத்துகிறது"</string>
@@ -5172,9 +5181,11 @@
<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="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_enable_freeform_support" msgid="3697462756493543645">"அளவு மாற்றத்தக்க சாளரத்திற்கான ஆதரவை இயக்க சாதனத்தை மறுபடி தொடங்க வேண்டும்."</string>
+ <!-- no translation found for reboot_dialog_override_desktop_mode (7480950772574354130) -->
+ <skip />
+ <!-- no translation found for reboot_dialog_enable_desktop_mode_on_secondary_display (1153621881052401924) -->
+ <skip />
<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>
@@ -5292,10 +5303,8 @@
<string name="show_captions_enabled" msgid="7089043007924626">"இயக்கப்பட்டுள்ளது"</string>
<string name="live_caption_disabled" msgid="3562035026547887366">"முடக்கப்பட்டுள்ளது"</string>
<string name="live_caption_enabled" msgid="5269360946200718949">"இயக்கப்பட்டுள்ளது"</string>
- <!-- no translation found for audio_seek_bar_state_left_first (8814986910920838972) -->
- <skip />
- <!-- no translation found for audio_seek_bar_state_right_first (1999368979633398876) -->
- <skip />
+ <string name="audio_seek_bar_state_left_first" msgid="8814986910920838972">"ஆடியோ %1$d%% இடது, %2$d%% வலது"</string>
+ <string name="audio_seek_bar_state_right_first" msgid="1999368979633398876">"ஆடியோ %1$d%% வலது, %2$d%% இடது"</string>
<string name="about_phone_device_name_warning" msgid="3243226572404472381">"நீங்கள் நிறுவிய ஆப்ஸால் உங்கள் சாதனத்தின் பெயரைப் பார்க்க முடியும். புளூடூத் சாதனங்கள், வைஃபை நெட்வொர்க் ஆகியவற்றுடன் இணைக்கும்போதோ வைஃபை ஹாட்ஸ்பாட்டை அமைக்கும்போதோ அப்பெயர் பிறருக்கும் காட்டப்படக்கூடும்."</string>
<string name="grammatical_gender_title" msgid="8584242850477270828">"இலக்கணப் பாலினம்"</string>
<string name="grammatical_gender_dialog_title" msgid="8754048592099871587">"இலக்கணப் பாலினத்தைத் தேர்ந்தெடுத்தல்"</string>
@@ -5407,5 +5416,6 @@
<string name="audio_streams_main_page_password_dialog_join_button" msgid="2967747276379153408">"ஸ்ட்ரீமைக் கேளுங்கள்"</string>
<string name="audio_streams_main_page_qr_code_scanner_summary" msgid="5312980105735143360">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> மூலம் கேட்க ஆடியோ ஸ்ட்ரீமின் QR குறியீட்டை ஸ்கேன் செய்யுங்கள்"</string>
<string name="audio_streams_main_page_password_dialog_cannot_edit" msgid="9020898619297520153">"பகிரும்போது கடவுச்சொல்லை மாற்ற முடியாது. கடவுச்சொல்லை மாற்ற, முதலில் ஆடியோ பகிர்வை முடக்கவும்."</string>
+ <string name="audio_streams_qr_code_scanner_label" msgid="8799703301071378034">"QR குறியீடு ஸ்கேனர்"</string>
<string name="homepage_search" msgid="6759334912284663559">"அமைப்புகளைத் தேடுங்கள்"</string>
</resources>
diff --git a/res/values-te/strings.xml b/res/values-te/strings.xml
index e03bfd1..b07ef7f 100644
--- a/res/values-te/strings.xml
+++ b/res/values-te/strings.xml
@@ -41,6 +41,7 @@
<string name="radioInfo_data_suspended" msgid="2001254415431299603">"తాత్కాలికంగా రద్దు చేయబడింది"</string>
<string name="radioInfo_unknown" msgid="2892562356748600367">"తెలియదు"</string>
<string name="preview_pager_content_description" msgid="3762247188224576303">"ప్రివ్యూ"</string>
+ <string name="qr_code_content_description" msgid="1852208464419291347">"QR కోడ్"</string>
<string name="font_size_make_smaller_desc" msgid="4978038055549590140">"చిన్నదిగా చేస్తుంది"</string>
<string name="font_size_make_larger_desc" msgid="5583046033381722247">"పెద్దదిగా చేస్తుంది"</string>
<string name="stay_awake_on_fold_title" msgid="6590454679898134221">"ఎల్లప్పుడూ యాక్టివ్గా ఉంచండి"</string>
@@ -283,7 +284,7 @@
<string name="location_settings_summary_location_off" msgid="4797932754681162262">"ఆఫ్"</string>
<string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{ఆన్లో ఉంది / # యాప్నకు లొకేషన్కు యాక్సెస్ ఉంది}other{ఆన్లో ఉంది / # యాప్లకు లొకేషన్కు యాక్సెస్ ఉంది}}"</string>
<string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"లోడ్ చేస్తోంది…"</string>
- <string name="location_settings_footer_general" msgid="1040507068701188821">"సమీపంలోని పరికరాలను యాక్సెస్ చేసే అనుమతి గల యాప్లు, కనెక్ట్ అయిన పరికరాలు ఎంత దూరంలో ఉన్నాయో తెలుసుకోగలవు."</string>
+ <string name="location_settings_footer_general" msgid="3447585552176173502">"సమీప పరికరాల అనుమతి ఉన్న యాప్లు కనెక్ట్ అయిన పరికరాల అంచనా స్థానాన్ని నిర్ణయించగలవు."</string>
<string name="location_settings_footer_location_off" msgid="8568995909147566720">"యాప్లు, సర్వీస్లకు లొకేషన్ యాక్సెస్ ఆఫ్ చేయబడింది. మీరు ఎమర్జెన్సీ నంబర్కు కాల్ చేసినా లేదా SMS పంపినా, అత్యవసర సమయాలలో స్పందించే వారికి ఆటోమేటిక్గా మీ పరికర లొకేషన్ పంపబడుతుంది."</string>
<string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"లొకేషన్ సెట్టింగ్ల గురించి మరింత తెలుసుకోండి"</string>
<string name="location_settings_tooltip_text_for_chrome" msgid="5781821709250544575">"మార్చడానికి ChromeOS సెట్టింగ్లు > గోప్యత, సెక్యూరిటీ > గోప్యతా కంట్రోల్స్ను > లొకేషన్ యాక్సెస్కు వెళ్లండి"</string>
@@ -383,7 +384,7 @@
<string name="security_settings_fingerprint_v2_enroll_introduction_footer_title_2" msgid="2580899232734177771">"ఇది ఎలా పని చేస్తుంది"</string>
<string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_2" msgid="5909924864816776516">"\"వేలిముద్ర అన్లాక్\" అన్నది మీ వేలిముద్రకు సంబంధించి ఒక ప్రత్యేకమైన మోడల్ను క్రియేట్ చేస్తుంది. ఫోన్ను అన్లాక్ చేస్తోంది మీరేనని వెరిఫై చేయడానికి ఈ మోడల్ ఉపయోగించబడుతుంది. ఫోన్ను సెటప్ చేసే సమయంలో ఈ వేలిముద్ర మోడల్ను క్రియేట్ చేయడానికి, మీరు మీ వేలిముద్ర ఇమేజ్లను విభిన్న స్థానాల నుండి తీసుకుంటారు."</string>
<string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_consent_2" msgid="3493356605815124807">"అది వారేనని వెరిఫై చేయడానికి, వేలిముద్ర అన్లాక్ మీ చిన్నారి వేలిముద్ర ప్రత్యేకమైన మోడల్ను క్రియేట్ చేస్తుంది. సెటప్ సమయంలో ఈ వేలిముద్ర మోడల్ను క్రియేట్ చేయడానికి, వారి వేలిముద్ర తాలూకు ఇమేజ్లను వారు వివిధ స్థానాల నుండి తీసుకుంటారు."</string>
- <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_6" msgid="5314031490467481499">"ఉత్తమ ఫలితాల కోసం, Google చేత సర్టిఫైడ్ చేయబడి తయారు చేయబడిన స్క్రీన్ ప్రొటెక్టర్ను ఉపయోగించండి. ఇతర స్క్రీన్ ప్రొటెక్టర్లతో, మీ వేలిముద్ర పని చేయకపోవచ్చు."</string>
+ <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_6" msgid="5314031490467481499">"ఉత్తమ ఫలితాల కోసం, \'Google కోసం తయారు చేసినది\'గా సర్టిఫికెట్ పొందిన స్క్రీన్ ప్రొటెక్టర్ను ఉపయోగించండి. ఇతర స్క్రీన్ ప్రొటెక్టర్లతో, మీ వేలిముద్ర పని చేయకపోవచ్చు."</string>
<string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_consent_6" msgid="3563942520716110478">"ఉత్తమ ఫలితాల కోసం, Google చేత సర్టిఫైడ్ చేయబడి తయారు చేయబడిన స్క్రీన్ ప్రొటెక్టర్ను ఉపయోగించండి. ఇతర స్క్రీన్ ప్రొటెక్టర్లతో, మీ పిల్లల వేలిముద్ర పని చేయకపోవచ్చు."</string>
<string name="security_settings_fingerprint_v2_enroll_introduction_message_learn_more" msgid="5856010507790137793"></string>
<string name="security_settings_activeunlock_preference_title" msgid="4257580421087062228">"వాచ్ అన్లాక్"</string>
@@ -467,7 +468,7 @@
<string name="security_settings_udfps_enroll_find_sensor_title" msgid="8077484429913330179">"మీ వేలిముద్రను ఎలా సెటప్ చేయాలి"</string>
<string name="security_settings_fingerprint_enroll_find_sensor_message" msgid="6160543980992596286">"ఇది మీ ఫోన్ వెనుక భాగంలో ఉంది. మీ చూపుడు వేలిని ఉపయోగించండి."</string>
<string name="security_settings_udfps_enroll_find_sensor_message" msgid="8383106460819519961">"మీ స్క్రీన్ మీద వేలిముద్ర సెన్సార్ ఉంది. తదుపరి స్క్రీన్లో మీ వేలిముద్రను క్యాప్చర్ చేస్తారు."</string>
- <string name="security_settings_udfps_enroll_find_sensor_start_button" msgid="3172268783620336357">"మొదలెట్టు"</string>
+ <string name="security_settings_udfps_enroll_find_sensor_start_button" msgid="3172268783620336357">"స్టార్ట్"</string>
<string name="security_settings_udfps_enroll_a11y" msgid="1899453114050362235">"సెన్సార్ను కనుగొనడానికి, స్క్రీన్ అంతటా వేలిని జరపండి. వేలిముద్ర సెన్సార్ను తాకి & నొక్కి ఉంచండి."</string>
<string name="security_settings_fingerprint_enroll_find_sensor_content_description" msgid="3065850549419750523">"పరికరం మరియు వేలిముద్ర సెన్సార్ లొకేషన్తో చిత్రపటం"</string>
<string name="security_settings_fingerprint_enroll_dialog_name_label" msgid="7298812463228440333">"పేరు"</string>
@@ -850,7 +851,6 @@
<string name="nfc_reboot_dialog_title" msgid="2033983438635768169">"పరికరాన్ని రీస్టార్ట్ చేయాలా?"</string>
<string name="nfc_reboot_dialog_message" msgid="4929353168157966992">"వివరణాత్మక NFC లాగింగ్ అనేది, యాప్ డెవలప్మెంట్ ప్రయోజనాల కోసం మాత్రమే ఉద్దేశించబడింది. బగ్ రిపోర్ట్లలో అదనపు NFC డేటా చేర్చబడుతుంది, ఇందులో ప్రైవేట్ సమాచారం ఉండవచ్చు. ఈ సెట్టింగ్ను మార్చడానికి మీ పరికరాన్ని రీస్టార్ట్ చేయండి."</string>
<string name="nfc_reboot_dialog_confirm" msgid="4769763632008584567">"రీస్టార్ట్ చేయండి"</string>
- <string name="keywords_external_display" msgid="4181375057920134909">"మిర్రర్,బాహ్య డిస్ప్లే,కనెక్టెడ్ డిస్ప్లే,USB డిస్ప్లే,రిజల్యూషన్,రొటేషన్"</string>
<string name="external_display_on" msgid="2560104443500154333">"ఆన్ అయింది"</string>
<string name="external_display_off" msgid="5634413756025351374">"ఆఫ్ అయింది"</string>
<string name="external_display_settings_title" msgid="6256884595821605779">"ఎక్స్టర్నల్ డిస్ప్లే"</string>
@@ -1918,6 +1918,8 @@
<string name="slow_keys_summary" msgid="1784371292745423292">"ఒక కీని నొక్కితే, అది యాక్టివేట్ అయ్యేందుకు పట్టే సమయాన్ని <xliff:g id="SLOW_KEYS_THRESHOLD">%1$d</xliff:g> మిల్లీ సెకన్లకు మార్చుతుంది"</string>
<string name="sticky_keys" msgid="7317317044898161747">"స్టిక్కీ కీలు"</string>
<string name="sticky_keys_summary" msgid="1844953803625480623">"షార్ట్కట్ల కోసం కీలను కలిపి హోల్డ్ చేయడానికి బదులు ఒకసారి ఒక కీని నొక్కండి"</string>
+ <string name="mouse_keys" msgid="6237254627808525540">"మౌస్ కీలు"</string>
+ <string name="mouse_keys_summary" msgid="2396247040177734245">"మౌస్ను కంట్రోల్ చేయడానికి ఫిజికల్ కీబోర్డ్ను ఉపయోగించండి."</string>
<string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"కీబోర్డ్ షార్ట్కట్లు"</string>
<string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"షార్ట్కట్ల లిస్ట్ను చూడండి"</string>
<string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"కార్యాలయ ప్రొఫైల్ కీబోర్డ్లు & సాధనాలు"</string>
@@ -1942,14 +1944,10 @@
<string name="pointer_fill_style_yellow_button" msgid="5025969961559379024">"పాయింటర్ ఫిల్ స్టయిల్ను పసుపు రంగుకి మార్చండి"</string>
<string name="pointer_fill_style_pink_button" msgid="4106218142489635673">"పాయింటర్ ఫిల్ స్టయిల్ను గులాబీ రంగుకి మార్చండి"</string>
<string name="pointer_fill_style_blue_button" msgid="5594958078854032785">"పాయింటర్ ఫిల్ స్టయిల్ను నీలం రంగుకి మార్చండి"</string>
- <!-- no translation found for pointer_stroke_style (1886986630216050665) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_white (673686194443825383) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_black (4655806167067437330) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_none (8953927511729800247) -->
- <skip />
+ <string name="pointer_stroke_style" msgid="1886986630216050665">"పాయింటర్ స్ట్రోక్ స్టయిల్"</string>
+ <string name="pointer_stroke_style_name_white" msgid="673686194443825383">"తెలుపు రంగు"</string>
+ <string name="pointer_stroke_style_name_black" msgid="4655806167067437330">"నలుపు రంగు"</string>
+ <string name="pointer_stroke_style_name_none" msgid="8953927511729800247">"ఏదీ వద్దు"</string>
<string name="trackpad_touch_gesture" msgid="8641725062131922497">"టచ్ప్యాడ్ సంజ్ఞ గూర్చి తెలుసుకోండి"</string>
<string name="keywords_touchpad" msgid="8159846254066666032">"ట్రాక్ప్యాడ్, ట్రాక్ ప్యాడ్, మౌస్, కర్సర్, స్క్రోల్, స్వైప్, కుడి క్లిక్, క్లిక్, పాయింటర్"</string>
<string name="keywords_trackpad_bottom_right_tap" msgid="1285062446073929305">"కుడి క్లిక్, ట్యాప్"</string>
@@ -2179,8 +2177,6 @@
<string name="accessibility_shortcut_edit_dialog_summary_floating_button" msgid="6266489864614886247">"ఫ్లోటింగ్ బటన్ను ట్యాప్ చేయండి"</string>
<string name="accessibility_shortcut_edit_dialog_title_software_by_gesture" msgid="4775049370625630546">"యాక్సెసిబిలిటీ సంజ్ఞ"</string>
<string name="accessibility_shortcut_edit_dialog_summary_software" msgid="8315934725362849788">"మీ స్క్రీన్ దిగువున ఉన్న యాక్సెసిబిలిటీ బటన్ <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g>ను ట్యాప్ చేయండి. ఫీచర్ల మధ్య మారడానికి, యాక్సెసిబిలిటీ బటన్ను నొక్కి & పట్టుకోండి."</string>
- <string name="accessibility_shortcut_edit_dialog_summary_software_gesture" msgid="8292555254353761635">"2 వేళ్లతో స్క్రీన్ దిగువ నుండి ఎగువకు స్వైప్ చేయండి.\n\nఫీచర్ల మధ్య స్విచ్ అవడానికి, 2 వేళ్లతో ఎగువకు స్వైప్ చేసి పట్టుకోండి."</string>
- <string name="accessibility_shortcut_edit_dialog_summary_software_gesture_talkback" msgid="84483464524360845">"స్క్రీన్ దిగువ నుండి 3 వేళ్లతో ఎగువకు స్వైప్ చేయండి.\n\nఫీచర్ల మధ్య స్విచ్ అవడానికి, 3 వేళ్లతో ఎగువకు స్వైప్ చేసి పట్టుకోండి."</string>
<string name="accessibility_shortcut_edit_dialog_summary_gesture" msgid="2081123009255579884">"{count,plural, =1{మీ స్క్రీన్ దిగువ నుండి పైకి స్వైప్ చేయండి. ఫీచర్ల మధ్య మారడానికి, పైకి స్వైప్ చేసి, పట్టుకోండి.}other{మీ స్క్రీన్ దిగువ నుండి # వేళ్లతో పైకి స్వైప్ చేయండి. ఫీచర్ల మధ్య మారడానికి, # వేళ్ళతో పైకి స్వైప్ చేసి, పట్టుకోండి.}}"</string>
<string name="accessibility_shortcut_edit_dialog_summary_software_floating" msgid="4459254227203203324"><annotation id="link">"మరిన్ని ఆప్షన్లు"</annotation></string>
<string name="footer_learn_more_content_description" msgid="8843798273152131341">"<xliff:g id="SERVICE">%1$s</xliff:g> గురించి మరింత తెలుసుకోండి"</string>
@@ -2191,16 +2187,12 @@
<string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="844089763968552142">"వాల్యూమ్ కీలు"</string>
<string name="accessibility_shortcut_hardware_keyword" msgid="2483152542320987022">"వాల్యూమ్ కీలు"</string>
<string name="accessibility_shortcut_edit_dialog_summary_hardware" msgid="2503134386397991634">"వాల్యూమ్ కీలు రెండింటినీ నొక్కి పట్టుకోండి"</string>
- <string name="accessibility_shortcut_edit_dialog_title_two_finger_double_tap" msgid="2271778556854020996">"రెండు వేళ్లతో స్క్రీన్ను డబుల్-ట్యాప్ చేయండి"</string>
<string name="accessibility_shortcut_edit_screen_title_two_finger_double_tap" msgid="8952595692906527694">"%1$d-వేళ్లతో డబుల్ ట్యాప్ చేయండి"</string>
<string name="accessibility_shortcut_edit_screen_summary_two_finger_double_tap" msgid="385404127425496362">"స్క్రీన్పై %1$d వేళ్లతో రెండు సార్లు వేగంగా ట్యాప్ చేయండి"</string>
<string name="accessibility_shortcut_edit_screen_title_triple_tap" msgid="3314488747597058942">"మూడు సార్లు ట్యాప్ చేయండి"</string>
<string name="accessibility_shortcut_edit_screen_summary_triple_tap" msgid="4839204951599629871">"స్క్రీన్పై %1$d సార్లు వేగంగా ట్యాప్ చేయండి. దీని వల్ల మీ పరికరం నెమ్మదిగా పని చేయవచ్చు."</string>
<string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="6271718715836961167">"%1$d-వేలుతో డబుల్ ట్యాప్ చేయండి"</string>
- <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"రెండు వేళ్లతో స్క్రీన్ను {0,number,integer} సార్లు వేగంగా ట్యాప్ చేయండి"</string>
- <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"స్క్రీన్పై మూడు సార్లు నొక్కండి"</string>
<string name="accessibility_shortcut_triple_tap_keyword" msgid="5359347130888464334">"మూడు సార్లు ట్యాప్ చేయండి"</string>
- <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"స్క్రీన్ను {0,number,integer} సార్లు త్వరగా ట్యాప్ చేయండి. ఈ షార్ట్కట్ వల్ల మీ పరికరం పనితీరు నెమ్మదించవచ్చు"</string>
<string name="accessibility_shortcut_edit_dialog_title_advance" msgid="4567868630655591506">"అధునాతన సెట్టింగ్లు"</string>
<string name="accessibility_screen_magnification_navbar_configuration_warning" msgid="266736851606791552">"యాక్సెస్ సామర్థ్య బటన్ <xliff:g id="SERVICE">%1$s</xliff:g>కు సెట్ చేయబడింది. మ్యాగ్నిఫికేషన్ను ఉపయోగించాలంటే, యాక్సెస్ సామర్ధ్య బటన్ని తాకి, ఉంచి, ఆపై మ్యాగ్నిఫికేషన్ను ఎంచుకోండి."</string>
<string name="accessibility_screen_magnification_gesture_navigation_warning" msgid="991017769735632046">"సంజ్ఞ యాక్సెసిబిలిటీ అనేది <xliff:g id="SERVICE">%1$s</xliff:g>కు సెట్ చేయబడింది. మ్యాగ్నిఫికేషన్ను ఉపయోగించడానికి, రెండు వేళ్లతో స్క్రీన్ను కింద నుండి పైకి స్వైప్ చేసి పట్టుకోండి. ఆ తర్వాత మ్యాగ్నిఫికేషన్ను ఎంచుకోండి."</string>
@@ -2369,6 +2361,7 @@
<string name="daltonizer_mode_tritanomaly_title" msgid="2278786218762602022">"నీలం-పసుపు"</string>
<string name="daltonizer_mode_grayscale_title" msgid="152005391387952588">"గ్రేస్కేల్"</string>
<string name="daltonizer_saturation_title" msgid="2999486412114963068">"తీవ్రత"</string>
+ <string name="daltonizer_saturation_unavailable_summary" msgid="8319753055567798775">"గ్రేస్కేల్ మోడ్ లేదా కలర్ కరెక్షన్ డిజేబుల్ అయినప్పుడు అందుబాటులో ఉండదు"</string>
<string name="daltonizer_mode_deuteranomaly_summary" msgid="2117727423019598455">"బలహీనమైన ఆకుపచ్చ, డ్యూటెరానోమలీ"</string>
<string name="daltonizer_mode_protanomaly_summary" msgid="4617032854982040748">"బలహీనమైన ఎరుపు, ప్రొటానోమలీ"</string>
<string name="daltonizer_mode_tritanomaly_summary" msgid="2428218320118180070">"ట్రైటనోమలీ"</string>
@@ -2418,15 +2411,8 @@
<string name="color_cyan" msgid="4341758639597035927">"నీలి ఆకుపచ్చ రంగు"</string>
<string name="color_yellow" msgid="5957551912912679058">"పసుపు రంగు"</string>
<string name="color_magenta" msgid="8943538189219528423">"మెజెంటా"</string>
- <string name="enable_service_title" msgid="7231533866953706788">"మీ పరికరాన్ని పూర్తిగా కంట్రోల్ చేయడానికి, <xliff:g id="SERVICE">%1$s</xliff:g>ను అనుమతించాలా?"</string>
<string name="capabilities_list_title" msgid="1225853611983394386">"<xliff:g id="SERVICE">%1$s</xliff:g> ఇవి చేయాల్సి ఉంటుంది:"</string>
<string name="touch_filtered_warning" msgid="4225815157460318241">"అనుమతి రిక్వెస్ట్కు ఒక యాప్ అడ్డు తగులుతున్నందున సెట్టింగ్లు మీ ప్రతిస్పందనను ధృవీకరించలేకపోయాయి."</string>
- <string name="accessibility_service_warning" msgid="6779187188736432618">"<xliff:g id="SERVICE">%1$s</xliff:g> ఈ పరికరం యొక్క పూర్తి నియంత్రణను కోరుతుంది. ఈ సేవ స్క్రీన్పై కనిపించే అంశాలను చదవగలదు, అదేవిధంగా వినియోగదారుల తరపున యాక్సెసిబిలిటీ చర్యలను తీసుకోగలదు. ఈ స్థాయి నియంత్రణ చాలా వరకు యాప్లకు సరికాదు."</string>
- <string name="accessibility_service_warning_description" msgid="6573203795976134751">"యాక్సెసిబిలిటీ అవసరాలు ఉన్నప్పుడు మీకు సహాయం చేయడానికి యాప్లకు ఫుల్ కంట్రోల్ ఇవ్వడం సమంజసమే. అయితే అన్ని యాప్లకు అలా కంట్రోల్ ఇవ్వడం సరికాదు."</string>
- <string name="accessibility_service_screen_control_title" msgid="324795030658109870">"స్క్రీన్ను చూసి, కంట్రోల్ చేయగలగడం"</string>
- <string name="accessibility_service_screen_control_description" msgid="8431940515157990426">"స్క్రీన్పై ఉండే కంటెంట్ మొత్తాన్ని చదవగలుగుతుంది మరియు ఇతర యాప్లలో కూడా ఈ కంటెంట్ను ప్రదర్శిస్తుంది."</string>
- <string name="accessibility_service_action_perform_title" msgid="1449360056585337833">"చర్యలను చూసి, అమలు చేయగలగడం"</string>
- <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"మీరు ఒక యాప్తో చేసే ఇంటరాక్షన్లను లేదా హార్డ్వేర్ సెన్సార్ను ట్రాక్ చేస్తూ మీ తరఫున యాప్లతో ఇంటరాక్ట్ చేయగలదు."</string>
<string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"అనుమతించండి"</string>
<string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"వద్దు"</string>
<string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"ఆఫ్ చేయండి"</string>
@@ -3656,9 +3642,9 @@
<string name="notif_listener_not_migrated" msgid="6265206376374278226">"మెరుగుపరిచిన సెట్టింగ్లను ఈ యాప్ సపోర్ట్ చేయదు"</string>
<string name="notif_listener_more_settings" msgid="1348409392307208921">"మరిన్ని సెట్టింగ్లు"</string>
<string name="notif_listener_more_settings_desc" msgid="7995492074281663658">"ఈ యాప్లో మరిన్ని సెట్టింగ్లు అందుబాటులో ఉన్నాయి"</string>
- <string name="notification_polite_title" msgid="4737150709382859870">"అనుకూల నోటిఫికేషన్లు"</string>
- <string name="notification_polite_main_control_title" msgid="7267191551379543859">"అనుకూల నోటిఫికేషన్లను ఉపయోగించండి"</string>
- <string name="notification_polite_description" msgid="7749280535620291610">"తక్కువ వ్యవధిలో మీరు పలు నోటిఫికేషన్లు పొందినప్పుడు, రెండు నిమిషాల పాటు మీ ఫోన్ వాల్యూమ్ను తగ్గించి, స్క్రీన్పై పాప్-అప్లను కుదిస్తుంది. కాల్స్, అలారాలు, ప్రాధాన్య సంభాషణలు ఇప్పటికీ వైబ్రేట్ అవుతాయి, సౌండ్ చేస్తాయి, లేదా స్క్రీన్పై చూపబడతాయి, మీరు స్క్రీన్ పై నుండి కిందికి లాగినప్పుడు నోటిఫికేషన్లన్నింటినీ సులభంగా కనుగొనవచ్చు."</string>
+ <string name="notification_polite_title" msgid="6121016426991791557">"నోటిఫికేషన్ కూల్డౌన్"</string>
+ <string name="notification_polite_main_control_title" msgid="5812529809151927149">"నోటిఫికేషన్ కూల్డౌన్ను ఉపయోగించండి"</string>
+ <string name="notification_polite_description" msgid="5497748284893832854">"తక్కువ వ్యవధిలో మీరు పలు నోటిఫికేషన్లను పొందినప్పుడు, 2 నిమిషాలకు మీ పరికర వాల్యూమ్ను తగ్గించి, అలర్ట్లను కుదిస్తుంది. కాల్స్, అలారాలు, ప్రాధాన్య సంభాషణలు ప్రభావితం కావు. \n\nకూల్డౌన్ సమయంలో అందుకున్న నోటిఫికేషన్లను, స్క్రీన్ను పై నుండి కిందికి లాగడం ద్వారా కనుగొనవచ్చు."</string>
<string name="notification_polite_work" msgid="8823596456640216391">"వర్క్ ప్రొఫైల్లకు వర్తింపజేయండి"</string>
<string name="notification_polite_work_summary" msgid="5014189280132951378">"వర్క్ ప్రొఫైల్ యాప్లకు వర్తింపజేయండి"</string>
<string name="vr_listeners_title" msgid="4960357292472540964">"VR సహాయక సర్వీసులు"</string>
@@ -3815,7 +3801,9 @@
<string name="zen_mode_apps_priority_apps" msgid="7386196048313716076">"ఎంచుకున్న యాప్లు"</string>
<string name="zen_mode_apps_none_apps" msgid="2493642312793604327">"ఏదీ లేదు"</string>
<string name="zen_mode_apps_subtext" msgid="1764211974662012877">"{count,plural,offset:2 =0{యాప్లు ఏవీ అంతరాయాన్ని కలిగించలేవు}=1{{app_1} అంతరాయాన్ని కలిగించవచ్చు}=2{{app_1}, {app_2} అంతరాయాన్ని కలిగించవచ్చు}=3{{app_1}, {app_2}, అలాగే {app_3} అంతరాయాన్ని కలిగించవచ్చు}other{{app_1}, {app_2}, మరో # అంతరాయాన్ని కలిగించవచ్చు}}"</string>
+ <string name="zen_mode_apps_work_app" msgid="8528767938316361588">"<xliff:g id="APP_LABEL">%s</xliff:g> (ఆఫీస్)"</string>
<string name="zen_mode_apps_calculating" msgid="5420121396943539286">"లెక్కిస్తోంది…"</string>
+ <string name="zen_mode_plus_n_items" msgid="6136713354369243421">"+<xliff:g id="NUMBER">%d</xliff:g>"</string>
<string name="zen_mode_bypassing_apps" msgid="625309443389126481">"భర్తీ చేయడానికి యాప్లను అనుమతించండి"</string>
<string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"అంతరాయం కలిగించగల యాప్లు"</string>
<string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"మరిన్ని యాప్లను ఎంచుకోండి"</string>
@@ -3833,6 +3821,7 @@
<string name="zen_mode_sounds_none" msgid="6557474361948269420">"ఏదీ అంతరాయాన్ని కలిగించలేదు"</string>
<string name="zen_mode_people_none" msgid="4613147461974255046">"ఎవ్వరూ అంతరాయాన్ని కలిగించలేరు"</string>
<string name="zen_mode_people_some" msgid="9101872681298810281">"కొంతమంది వ్యక్తులు అంతరాయాన్ని కలిగించగలరు"</string>
+ <string name="zen_mode_people_repeat_callers" msgid="4499084111069828761">"రిపీట్ కాలర్లు అంతరాయాన్ని కలిగించవచ్చు"</string>
<string name="zen_mode_people_all" msgid="311036110283015205">"వ్యక్తులందరూ అంతరాయం కలిగించగలరు"</string>
<string name="zen_mode_repeat_callers" msgid="2270356100287792138">"రిపీట్ కాలర్లను అనుమతించండి"</string>
<string name="zen_mode_repeat_callers_title" msgid="8016699240338264781">"రిపీట్ కాలర్స్ను అనుమతించండి"</string>
@@ -3856,6 +3845,26 @@
<string name="zen_mode_new_custom_title" msgid="321750898430776191">"యాడ్ మోడ్"</string>
<string name="zen_mode_new_custom_default_name" msgid="2778307946775085105">"అనుకూల మోడ్"</string>
<string name="zen_mode_edit_name_hint" msgid="4584652062167540536">"మోడ్ పేరు"</string>
+ <string name="zen_mode_trigger_title_schedule_calendar" msgid="9206609438617550331">"క్యాలెండర్ ఈవెంట్లు"</string>
+ <string name="zen_mode_trigger_title_bedtime" msgid="5086070900588489978">"నిద్ర షెడ్యూల్"</string>
+ <string name="zen_mode_trigger_title_driving" msgid="7890990983453164403">"డ్రైవింగ్లో ఉన్నప్పుడు"</string>
+ <string name="zen_mode_trigger_title_generic" msgid="601273385119550420">"యాప్కి లింక్ చేసినవి"</string>
+ <string name="zen_mode_trigger_summary_settings_in_app" msgid="4860667191183702601">"<xliff:g id="APP_NAME">%1$s</xliff:g>లో సమాచారం, సెట్టింగ్లు"</string>
+ <string name="zen_mode_trigger_summary_managed_by_app" msgid="8631011868193102098">"<xliff:g id="APP_NAME">%1$s</xliff:g> ద్వారా మేనేజ్ చేయబడుతోంది"</string>
+ <string name="zen_mode_confirm_disable_title" msgid="1232297660775719796">"మోడ్ను డిజేబుల్ చేయండి"</string>
+ <string name="zen_mode_confirm_disable_message" msgid="7315541221665718491">"మీరు ఈ ఫీచర్ను డిజేబుల్ చేస్తే, ఈ మోడ్ ఇకపై ఉద్దేశించిన విధంగా పని చేయదు, దాని సెట్టింగ్లు దాచబడతాయి."</string>
+ <string name="zen_mode_action_disable" msgid="3552921561331044881">"డిజేబుల్ చేయండి"</string>
+ <string name="zen_mode_confirm_enable_title" msgid="5683371335847448595">"మోడ్ను ఎనేబుల్ చేయండి"</string>
+ <string name="zen_mode_confirm_enable_message" msgid="7017879133260011419">"మీరు ఈ ఫీచర్ను ఎనేబుల్ చేస్తే, ఈ మోడ్ దాని షెడ్యూల్ ప్రకారం ఆటోమేటిక్గా యాక్టివేట్ అవుతుంది."</string>
+ <string name="zen_mode_action_enable" msgid="1161480633223176531">"ఎనేబుల్ చేయండి"</string>
+ <string name="zen_mode_blurb_schedule_time" msgid="8223898702097484009">"రెగ్యులర్ షెడ్యూల్ను ఫాలో అయ్యే మోడ్ను సెట్ చేయండి"</string>
+ <string name="zen_mode_blurb_schedule_calendar" msgid="382177907856065945">"క్యాలెండర్ ఈవెంట్లతో సింక్ చేయడానికి, సమాధానాలను ఆహ్వానించడానికి మోడ్ను సెట్ చేయండి"</string>
+ <string name="zen_mode_blurb_bedtime" msgid="6155075956151013457">"గాఢంగా నిద్రపోవడానికి దినచర్యను రూపొందించండి. అలారాలను సెట్ చేయండి, స్క్రీన్ను డిమ్గా చేయండి, నోటిఫికేషన్లను బ్లాక్ చేయండి."</string>
+ <string name="zen_mode_blurb_driving" msgid="1316054379000667305">"రహదారిపై భద్రతకు ప్రాధాన్యత ఇవ్వడం ద్వారా దృష్టి పెట్టి, పరధ్యానం లేకుండా డ్రైవ్ చేయండి"</string>
+ <string name="zen_mode_blurb_immersive" msgid="5884004861848687869">"దృష్టి సారించేందుకు మీ పరికరం నుండి వచ్చే పరధ్యానాలను లేదా అంతరాయాలను బ్లాక్ చేయండి"</string>
+ <string name="zen_mode_blurb_theater" msgid="2999237960059524225">"నిశ్శబ్ద వాతావరణం కోసం అన్ని పరధ్యానాలను తొలగించండి"</string>
+ <string name="zen_mode_blurb_managed" msgid="5473921634985032149">"వేర్వేరు యూజర్ల కోసం పరికర ఎక్స్పీరియన్స్లను, సెట్టింగ్లను వ్యక్తిగతీకరించండి"</string>
+ <string name="zen_mode_blurb_generic" msgid="3041601339807075625">"ముఖ్యమైన వ్యక్తులను, యాప్స్ను మాత్రమే మిమ్మల్ని సంప్రదించడానికి అనుమతించడం ద్వారా అంతరాయాలను తగ్గించండి"</string>
<string name="warning_button_text" msgid="1274234338874005639">"హెచ్చరిక"</string>
<string name="suggestion_button_close" msgid="6865170855573283759">"మూసివేయండి"</string>
<string name="device_feedback" msgid="5351614458411688608">"ఈ పరికరంపై ఫీడ్బ్యాక్ ఇవ్వండి"</string>
@@ -4842,9 +4851,8 @@
<string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"బ్యాటరీ"</string>
<string name="settings_panel_title" msgid="346363079938069215">"సెట్టింగ్ల ప్యానెల్"</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>
+ <!-- no translation found for enable_desktop_mode_on_secondary_display (2609567824593768780) -->
+ <skip />
<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>
@@ -5019,7 +5027,6 @@
<string name="default_active_sim_mobile_data" msgid="6798083892814045301">"మొబైల్ డేటా"</string>
<string name="wifi_scan_notify_message" msgid="1331238142061476869">"Wi‑Fi ఆఫ్లో ఉన్నప్పటికీ, పరికర ఎక్స్పీరియన్స్ను మెరుగుపరచడానికి యాప్లు, సర్వీస్లు ఏ సమయంలో అయినా Wi‑Fi నెట్వర్క్లు ఏమైనా అందుబాటులో ఉన్నాయా అని స్కాన్ చేయగలవు. ఉదాహరణకు లొకేషన్ ఆధారిత ఫీచర్లను, సర్వీస్లను ఈ విధంగా మెరుగుపరచగలవు. Wi‑Fi స్కానింగ్ సెట్టింగ్లలో మీరు ఈ సెట్టింగ్ను మార్చవచ్చు."</string>
<string name="wifi_scan_change" msgid="8438320311511852918">"మార్చండి"</string>
- <string name="preference_summary_default_combination" msgid="4643585915107796253">"<xliff:g id="STATE">%1$s</xliff:g> / <xliff:g id="NETWORKMODE">%2$s</xliff:g>"</string>
<string name="mobile_data_connection_active" msgid="2422223108911581552">"కనెక్ట్ చేయబడింది"</string>
<string name="mobile_data_temp_connection_active" msgid="3430470299756236413">"తాత్కాలికంగా కనెక్ట్ చేయబడింది"</string>
<string name="mobile_data_temp_using" msgid="5211002380149434155">"తాత్కాలికంగా <xliff:g id="SUBNAME">%1$s</xliff:g>ను ఉపయోగిస్తున్నారు"</string>
@@ -5165,9 +5172,11 @@
<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="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_enable_freeform_support" msgid="3697462756493543645">"ఫ్రీఫారమ్ విండో సపోర్ట్ను ఎనేబుల్ చేయడానికి రీబూట్ చేయడం అవసరం."</string>
+ <!-- no translation found for reboot_dialog_override_desktop_mode (7480950772574354130) -->
+ <skip />
+ <!-- no translation found for reboot_dialog_enable_desktop_mode_on_secondary_display (1153621881052401924) -->
+ <skip />
<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>
@@ -5398,5 +5407,6 @@
<string name="audio_streams_main_page_password_dialog_join_button" msgid="2967747276379153408">"స్ట్రీమ్ వినండి"</string>
<string name="audio_streams_main_page_qr_code_scanner_summary" msgid="5312980105735143360">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>తో వినడానికి ఆడియో స్ట్రీమ్ QR కోడ్ను స్కాన్ చేయండి"</string>
<string name="audio_streams_main_page_password_dialog_cannot_edit" msgid="9020898619297520153">"షేర్ చేస్తున్నప్పుడు పాస్వర్డ్ను చేయడం సాధ్యం కాదు. పాస్వర్డ్ మార్చడానికి, ముందుగా ఆడియో షేరింగ్ను ఆఫ్ చేయండి."</string>
+ <string name="audio_streams_qr_code_scanner_label" msgid="8799703301071378034">"QR కోడ్ స్కానర్"</string>
<string name="homepage_search" msgid="6759334912284663559">"సెట్టింగ్లలో సెర్చ్ చేయండి"</string>
</resources>
diff --git a/res/values-th/strings.xml b/res/values-th/strings.xml
index a8aad43..b3f5064 100644
--- a/res/values-th/strings.xml
+++ b/res/values-th/strings.xml
@@ -41,6 +41,8 @@
<string name="radioInfo_data_suspended" msgid="2001254415431299603">"ระงับไว้"</string>
<string name="radioInfo_unknown" msgid="2892562356748600367">"ไม่ทราบ"</string>
<string name="preview_pager_content_description" msgid="3762247188224576303">"ดูตัวอย่าง"</string>
+ <!-- no translation found for qr_code_content_description (1852208464419291347) -->
+ <skip />
<string name="font_size_make_smaller_desc" msgid="4978038055549590140">"ทำให้เล็กลง"</string>
<string name="font_size_make_larger_desc" msgid="5583046033381722247">"ทำให้ใหญ่ขึ้น"</string>
<string name="stay_awake_on_fold_title" msgid="6590454679898134221">"เสมอ"</string>
@@ -283,7 +285,7 @@
<string name="location_settings_summary_location_off" msgid="4797932754681162262">"ปิด"</string>
<string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{เปิดอยู่/แอป # แอปมีสิทธิ์เข้าถึงตำแหน่ง}other{เปิดอยู่/แอป # แอปมีสิทธิ์เข้าถึงตำแหน่ง}}"</string>
<string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"กำลังโหลด…"</string>
- <string name="location_settings_footer_general" msgid="1040507068701188821">"แอปที่มีสิทธิ์เข้าถึงอุปกรณ์ที่อยู่ใกล้เคียงจะสามารถระบุตำแหน่งซึ่งสัมพันธ์กับอุปกรณ์ที่เชื่อมต่อ"</string>
+ <string name="location_settings_footer_general" msgid="3447585552176173502">"แอปที่มีสิทธิ์เข้าถึงอุปกรณ์ที่อยู่ใกล้เคียงจะสามารถระบุตำแหน่งซึ่งสัมพันธ์กับอุปกรณ์ที่เชื่อมต่อได้"</string>
<string name="location_settings_footer_location_off" msgid="8568995909147566720">"สิทธิ์เข้าถึงตำแหน่งปิดอยู่สำหรับแอปและบริการต่างๆ ระบบอาจยังส่งตำแหน่งของอุปกรณ์ไปให้หน่วยกู้ภัยฉุกเฉินเมื่อคุณโทรหาหรือส่ง SMS ถึงหมายเลขฉุกเฉิน"</string>
<string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"ดูข้อมูลเพิ่มเติมเกี่ยวกับการตั้งค่าตำแหน่ง"</string>
<string name="location_settings_tooltip_text_for_chrome" msgid="5781821709250544575">"หากต้องการเปลี่ยน ให้ไปที่การตั้งค่า ChromeOS > ความเป็นส่วนตัวและความปลอดภัย > การควบคุมความเป็นส่วนตัว > การเข้าถึงตำแหน่ง"</string>
@@ -466,7 +468,7 @@
<string name="security_settings_sfps_enroll_find_sensor_title" msgid="8327884364635804363">"แตะปุ่มเปิด/ปิดโดยไม่ต้องกด"</string>
<string name="security_settings_udfps_enroll_find_sensor_title" msgid="8077484429913330179">"วิธีตั้งค่าลายนิ้วมือ"</string>
<string name="security_settings_fingerprint_enroll_find_sensor_message" msgid="6160543980992596286">"เซ็นเซอร์อยู่ที่ด้านหลังโทรศัพท์ โปรดใช้นิ้วขี้"</string>
- <string name="security_settings_udfps_enroll_find_sensor_message" msgid="8383106460819519961">"เซ็นเซอร์ลายนิ้วมืออยู่ในหน้าจอ คุณจะบันทึกลายนิ้วมือในหน้าจอถัดไป"</string>
+ <string name="security_settings_udfps_enroll_find_sensor_message" msgid="8383106460819519961">"เซ็นเซอร์ลายนิ้วมืออยู่บนหน้าจอ คุณจะบันทึกลายนิ้วมือในหน้าจอถัดไป"</string>
<string name="security_settings_udfps_enroll_find_sensor_start_button" msgid="3172268783620336357">"เริ่ม"</string>
<string name="security_settings_udfps_enroll_a11y" msgid="1899453114050362235">"เลื่อนนิ้วไปมาบนหน้าจอเพื่อค้นหาเซ็นเซอร์ แตะเซ็นเซอร์ลายนิ้วมือค้างไว้"</string>
<string name="security_settings_fingerprint_enroll_find_sensor_content_description" msgid="3065850549419750523">"ภาพประกอบที่มีตำแหน่งของอุปกรณ์และเซ็นเซอร์ลายนิ้วมือ"</string>
@@ -850,7 +852,6 @@
<string name="nfc_reboot_dialog_title" msgid="2033983438635768169">"รีสตาร์ทอุปกรณ์ใช่ไหม"</string>
<string name="nfc_reboot_dialog_message" msgid="4929353168157966992">"การบันทึกรายละเอียดของ NFC มีไว้เพื่อการพัฒนาเท่านั้น ข้อมูลเพิ่มเติมของ NFC จะรวมอยู่ในรายงานข้อบกพร่อง ซึ่งอาจมีข้อมูลส่วนตัว รีสตาร์ทอุปกรณ์เพื่อเปลี่ยนการตั้งค่านี้"</string>
<string name="nfc_reboot_dialog_confirm" msgid="4769763632008584567">"รีสตาร์ท"</string>
- <string name="keywords_external_display" msgid="4181375057920134909">"มิเรอร์, จอแสดงผลภายนอก, จอแสดงผลที่เชื่อมต่อ, จอแสดงผล USB, ความละเอียด, การหมุน"</string>
<string name="external_display_on" msgid="2560104443500154333">"เปิด"</string>
<string name="external_display_off" msgid="5634413756025351374">"ปิด"</string>
<string name="external_display_settings_title" msgid="6256884595821605779">"จอแสดงผลภายนอก"</string>
@@ -1918,6 +1919,8 @@
<string name="slow_keys_summary" msgid="1784371292745423292">"ปรับเวลาที่ใช้ในการกดปุ่มเพื่อเปิดใช้เป็น <xliff:g id="SLOW_KEYS_THRESHOLD">%1$d</xliff:g> มิลลิวินาที"</string>
<string name="sticky_keys" msgid="7317317044898161747">"คีย์ติดหนึบ"</string>
<string name="sticky_keys_summary" msgid="1844953803625480623">"กดทีละปุ่มเพื่อใช้แป้นพิมพ์ลัดแทนการกดปุ่มค้างไว้พร้อมกัน"</string>
+ <string name="mouse_keys" msgid="6237254627808525540">"แป้นเมาส์"</string>
+ <string name="mouse_keys_summary" msgid="2396247040177734245">"ใช้แป้นพิมพ์จริงเพื่อควบคุมเมาส์"</string>
<string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"แป้นพิมพ์ลัด"</string>
<string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"แสดงรายการแป้นพิมพ์ลัด"</string>
<string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"แป้นพิมพ์และเครื่องมือของโปรไฟล์งาน"</string>
@@ -2175,8 +2178,6 @@
<string name="accessibility_shortcut_edit_dialog_summary_floating_button" msgid="6266489864614886247">"แตะปุ่มแบบลอย"</string>
<string name="accessibility_shortcut_edit_dialog_title_software_by_gesture" msgid="4775049370625630546">"ท่าทางสัมผัสการช่วยเหลือพิเศษ"</string>
<string name="accessibility_shortcut_edit_dialog_summary_software" msgid="8315934725362849788">"แตะปุ่มการช่วยเหลือพิเศษ <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g> ที่ด้านล่างของหน้าจอ หากต้องการสลับระหว่างฟีเจอร์ต่างๆ ให้แตะปุ่มการช่วยเหลือพิเศษค้างไว้"</string>
- <string name="accessibility_shortcut_edit_dialog_summary_software_gesture" msgid="8292555254353761635">"ใช้ 2 นิ้วปัดขึ้นจากด้านล่างของหน้าจอ\n\nหากต้องการสลับระหว่างฟีเจอร์ต่างๆ ให้ใช้ 2 นิ้วปัดขึ้นแล้วค้างไว้"</string>
- <string name="accessibility_shortcut_edit_dialog_summary_software_gesture_talkback" msgid="84483464524360845">"ใช้ 3 นิ้วเลื่อนขึ้นจากด้านล่างของหน้าจอ\n\nหากต้องการสลับระหว่างฟีเจอร์ต่างๆ ให้ใช้ 3 นิ้วเลื่อนขึ้นแล้วค้างไว้"</string>
<string name="accessibility_shortcut_edit_dialog_summary_gesture" msgid="2081123009255579884">"{count,plural, =1{ปัดขึ้นจากด้านล่างของหน้าจอ หากต้องการสลับระหว่างฟีเจอร์ต่างๆ ให้ปัดขึ้นแล้วค้างไว้}other{ใช้ # นิ้วปัดขึ้นจากด้านล่างของหน้าจอ หากต้องการสลับระหว่างฟีเจอร์ต่างๆ ให้ใช้ # นิ้วปัดขึ้นแล้วค้างไว้}}"</string>
<string name="accessibility_shortcut_edit_dialog_summary_software_floating" msgid="4459254227203203324"><annotation id="link">"ตัวเลือกเพิ่มเติม"</annotation></string>
<string name="footer_learn_more_content_description" msgid="8843798273152131341">"ดูข้อมูลเพิ่มเติมเกี่ยวกับ<xliff:g id="SERVICE">%1$s</xliff:g>"</string>
@@ -2187,16 +2188,12 @@
<string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="844089763968552142">"ปุ่มปรับระดับเสียง"</string>
<string name="accessibility_shortcut_hardware_keyword" msgid="2483152542320987022">"ปุ่มปรับระดับเสียง"</string>
<string name="accessibility_shortcut_edit_dialog_summary_hardware" msgid="2503134386397991634">"กดปุ่มปรับระดับเสียงทั้ง 2 ปุ่มค้างไว้"</string>
- <string name="accessibility_shortcut_edit_dialog_title_two_finger_double_tap" msgid="2271778556854020996">"ใช้ 2 นิ้วแตะสองครั้งบนหน้าจอ"</string>
<string name="accessibility_shortcut_edit_screen_title_two_finger_double_tap" msgid="8952595692906527694">"ใช้ %1$d นิ้วแตะสองครั้ง"</string>
<string name="accessibility_shortcut_edit_screen_summary_two_finger_double_tap" msgid="385404127425496362">"ใช้ %1$d นิ้วแตะหน้าจอเร็วๆ 2 ครั้ง"</string>
<string name="accessibility_shortcut_edit_screen_title_triple_tap" msgid="3314488747597058942">"แตะสามครั้ง"</string>
- <string name="accessibility_shortcut_edit_screen_summary_triple_tap" msgid="4839204951599629871">"แตะหน้าจอเร็วๆ %1$d ครั้ง การดำเนินการนี้อาจทําให้อุป&#173;กรณ์ทํางานช้าลง"</string>
+ <string name="accessibility_shortcut_edit_screen_summary_triple_tap" msgid="4839204951599629871">"แตะหน้าจอเร็วๆ %1$d ครั้ง การดำเนินการนี้อาจทําให้อุปu00ADกรณ์ทํางานช้าลง"</string>
<string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="6271718715836961167">"ใช้ %1$d นิ้วแตะสองครั้ง"</string>
- <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"ใช้ 2 นิ้วแตะหน้าจอ {0,number,integer} ครั้งเร็วๆ"</string>
- <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"แตะหน้าจอ 3 ครั้ง"</string>
<string name="accessibility_shortcut_triple_tap_keyword" msgid="5359347130888464334">"แตะสามครั้ง"</string>
- <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"แตะหน้าจอเร็วๆ {0,number,integer} ครั้ง ทางลัดนี้อาจทำให้อุปกรณ์ทำงานช้าลง"</string>
<string name="accessibility_shortcut_edit_dialog_title_advance" msgid="4567868630655591506">"ขั้นสูง"</string>
<string name="accessibility_screen_magnification_navbar_configuration_warning" msgid="266736851606791552">"ปุ่ม \"การเข้าถึง\" ตั้งค่าเป็น <xliff:g id="SERVICE">%1$s</xliff:g> หากต้องการใช้การขยาย ให้แตะปุ่ม \"การเข้าถึง\" ค้างไว้ แล้วเลือกการขยาย"</string>
<string name="accessibility_screen_magnification_gesture_navigation_warning" msgid="991017769735632046">"ตั้งค่าท่าทางสัมผัสการช่วยเหลือพิเศษเป็น<xliff:g id="SERVICE">%1$s</xliff:g> หากต้องการใช้การขยาย ให้ใช้ 2 นิ้วเลื่อนขึ้นจากด้านล่างของหน้าจอแล้วหยุดค้างไว้ จากนั้นเลือกการขยาย"</string>
@@ -2365,6 +2362,7 @@
<string name="daltonizer_mode_tritanomaly_title" msgid="2278786218762602022">"สีน้ำเงิน/เหลือง"</string>
<string name="daltonizer_mode_grayscale_title" msgid="152005391387952588">"โทนสีเทา"</string>
<string name="daltonizer_saturation_title" msgid="2999486412114963068">"ความเข้ม"</string>
+ <string name="daltonizer_saturation_unavailable_summary" msgid="8319753055567798775">"ใช้งานไม่ได้ในโหมดโทนสีเทาหรือเมื่อปิดใช้การแก้สี"</string>
<string name="daltonizer_mode_deuteranomaly_summary" msgid="2117727423019598455">"เห็นสีเขียวได้น้อย ตาบอดสีเขียว"</string>
<string name="daltonizer_mode_protanomaly_summary" msgid="4617032854982040748">"เห็นสีแดงได้น้อย ตาบอดสีแดง"</string>
<string name="daltonizer_mode_tritanomaly_summary" msgid="2428218320118180070">"ตาบอดสีน้ำเงิน"</string>
@@ -2414,15 +2412,8 @@
<string name="color_cyan" msgid="4341758639597035927">"ฟ้า"</string>
<string name="color_yellow" msgid="5957551912912679058">"เหลือง"</string>
<string name="color_magenta" msgid="8943538189219528423">"ม่วงแดง"</string>
- <string name="enable_service_title" msgid="7231533866953706788">"อนุญาตให้ \"<xliff:g id="SERVICE">%1$s</xliff:g>\" ควบคุมอุปกรณ์อย่างเต็มที่ไหม"</string>
<string name="capabilities_list_title" msgid="1225853611983394386">"<xliff:g id="SERVICE">%1$s</xliff:g> ต้องการที่จะ"</string>
<string name="touch_filtered_warning" msgid="4225815157460318241">"เนื่องจากแอปหนึ่งได้บดบังคำขอสิทธิ์ ระบบจึงไม่สามารถยืนยันคำตอบของคุณสำหรับการตั้งค่าได้"</string>
- <string name="accessibility_service_warning" msgid="6779187188736432618">"<xliff:g id="SERVICE">%1$s</xliff:g> กำลังขอควบคุมอุปกรณ์นี้โดยสมบูรณ์ บริการนี้จะอ่านหน้าจอและดำเนินการในนามของผู้ใช้ที่ต้องการการช่วยเหลือพิเศษได้ การควบคุมระดับนี้ไม่เหมาะสำหรับแอปส่วนใหญ่"</string>
- <string name="accessibility_service_warning_description" msgid="6573203795976134751">"การควบคุมอย่างเต็มที่เหมาะสำหรับแอปเกี่ยวกับความช่วยเหลือพิเศษ แต่ไม่เหมาะสำหรับแอปส่วนใหญ่"</string>
- <string name="accessibility_service_screen_control_title" msgid="324795030658109870">"ดูและควบคุมหน้าจอ"</string>
- <string name="accessibility_service_screen_control_description" msgid="8431940515157990426">"การควบคุมนี้สามารถอ่านเนื้อหาทั้งหมดบนหน้าจอและแสดงเนื้อหาทับแอปอื่นๆ"</string>
- <string name="accessibility_service_action_perform_title" msgid="1449360056585337833">"ดูและดำเนินการ"</string>
- <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"การควบคุมนี้สามารถติดตามการโต้ตอบของคุณกับแอปหรือกับเซ็นเซอร์ของฮาร์ดแวร์ และโต้ตอบกับแอปต่างๆ แทนคุณ"</string>
<string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"อนุญาต"</string>
<string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"ปฏิเสธ"</string>
<string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"ปิด"</string>
@@ -3652,9 +3643,9 @@
<string name="notif_listener_not_migrated" msgid="6265206376374278226">"แอปนี้ไม่รองรับการตั้งค่าที่ปรับปรุง"</string>
<string name="notif_listener_more_settings" msgid="1348409392307208921">"การตั้งค่าเพิ่มเติม"</string>
<string name="notif_listener_more_settings_desc" msgid="7995492074281663658">"สามารถใช้งานการตั้งค่าเพิ่มเติมได้ในแอปนี้"</string>
- <string name="notification_polite_title" msgid="4737150709382859870">"การแจ้งเตือนแบบปรับอัตโนมัติ"</string>
- <string name="notification_polite_main_control_title" msgid="7267191551379543859">"ใช้การแจ้งเตือนแบบปรับอัตโนมัติ"</string>
- <string name="notification_polite_description" msgid="7749280535620291610">"เมื่อคุณได้รับการแจ้งเตือนจำนวนมากภายในเวลาสั้นๆ โทรศัพท์จะลดเสียงและจำนวนป๊อปอัปบนหน้าจอลงสูงสุด 2 นาที โดยที่การโทร การปลุก และการสนทนาสำคัญจะยังคงสั่น ส่งเสียง หรือแสดงบนหน้าจอ อีกทั้งคุณยังค้นหาการแจ้งเตือนทั้งหมดได้ง่ายๆ เพียงเลื่อนลงจากด้านบนของหน้าจอ"</string>
+ <string name="notification_polite_title" msgid="6121016426991791557">"การพักการแจ้งเตือน"</string>
+ <string name="notification_polite_main_control_title" msgid="5812529809151927149">"ใช้การพักการแจ้งเตือน"</string>
+ <string name="notification_polite_description" msgid="5497748284893832854">"เมื่อคุณได้รับการแจ้งเตือนจำนวนมากภายในเวลาสั้นๆ อุปกรณ์จะลดระดับเสียงและจำนวนการแจ้งเตือนสูงสุด 2 นาที โดยที่การโทร การปลุก และการสนทนาสำคัญจะไม่ได้รับผลกระทบ \n\nดูการแจ้งเตือนที่ได้รับระหว่างระยะเวลาพักได้โดยการดึงลงจากด้านบนของหน้าจอ"</string>
<string name="notification_polite_work" msgid="8823596456640216391">"ใช้กับโปรไฟล์งาน"</string>
<string name="notification_polite_work_summary" msgid="5014189280132951378">"ใช้กับแอปในโปรไฟล์งาน"</string>
<string name="vr_listeners_title" msgid="4960357292472540964">"บริการตัวช่วย VR"</string>
@@ -3811,7 +3802,9 @@
<string name="zen_mode_apps_priority_apps" msgid="7386196048313716076">"แอปที่เลือก"</string>
<string name="zen_mode_apps_none_apps" msgid="2493642312793604327">"ไม่มี"</string>
<string name="zen_mode_apps_subtext" msgid="1764211974662012877">"{count,plural,offset:2 =0{ไม่ให้แอปใดรบกวนเลย}=1{{app_1} รบกวนได้}=2{{app_1} และ {app_2} รบกวนได้}=3{{app_1}, {app_2} และ {app_3} รบกวนได้}other{{app_1}, {app_2} และอีก # แอปรบกวนได้}}"</string>
+ <string name="zen_mode_apps_work_app" msgid="8528767938316361588">"<xliff:g id="APP_LABEL">%s</xliff:g> (งาน)"</string>
<string name="zen_mode_apps_calculating" msgid="5420121396943539286">"กำลังคำนวณ…"</string>
+ <string name="zen_mode_plus_n_items" msgid="6136713354369243421">"+<xliff:g id="NUMBER">%d</xliff:g>"</string>
<string name="zen_mode_bypassing_apps" msgid="625309443389126481">"อนุญาตให้แอปลบล้าง"</string>
<string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"แอปที่รบกวนคุณได้"</string>
<string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"เลือกแอปเพิ่มเติม"</string>
@@ -3829,6 +3822,7 @@
<string name="zen_mode_sounds_none" msgid="6557474361948269420">"ไม่ให้อะไรรบกวนเลย"</string>
<string name="zen_mode_people_none" msgid="4613147461974255046">"ไม่ให้ใครรบกวนเลย"</string>
<string name="zen_mode_people_some" msgid="9101872681298810281">"ให้รบกวนได้แค่บางคน"</string>
+ <string name="zen_mode_people_repeat_callers" msgid="4499084111069828761">"ผู้โทรซ้ำสามารถรบกวนได้"</string>
<string name="zen_mode_people_all" msgid="311036110283015205">"ให้ทุกคนรบกวนได้"</string>
<string name="zen_mode_repeat_callers" msgid="2270356100287792138">"ผู้โทรซ้ำ"</string>
<string name="zen_mode_repeat_callers_title" msgid="8016699240338264781">"อนุญาตผู้โทรซ้ำ"</string>
@@ -3852,6 +3846,34 @@
<string name="zen_mode_new_custom_title" msgid="321750898430776191">"เพิ่มโหมด"</string>
<string name="zen_mode_new_custom_default_name" msgid="2778307946775085105">"โหมดที่กำหนดเอง"</string>
<string name="zen_mode_edit_name_hint" msgid="4584652062167540536">"ชื่อโหมด"</string>
+ <string name="zen_mode_trigger_title_schedule_calendar" msgid="9206609438617550331">"กิจกรรมในปฏิทิน"</string>
+ <string name="zen_mode_trigger_title_bedtime" msgid="5086070900588489978">"กำหนดเวลานอน"</string>
+ <string name="zen_mode_trigger_title_driving" msgid="7890990983453164403">"ขณะขับรถ"</string>
+ <string name="zen_mode_trigger_title_generic" msgid="601273385119550420">"ลิงก์กับแอป"</string>
+ <string name="zen_mode_trigger_summary_settings_in_app" msgid="4860667191183702601">"ข้อมูลและการตั้งค่าใน <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+ <string name="zen_mode_trigger_summary_managed_by_app" msgid="8631011868193102098">"จัดการโดย <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+ <string name="zen_mode_confirm_disable_title" msgid="1232297660775719796">"ปิดใช้โหมด"</string>
+ <string name="zen_mode_confirm_disable_message" msgid="7315541221665718491">"หากปิดใช้ฟีเจอร์นี้ โหมดนี้จะไม่ทำงานตามที่ควรจะเป็นอีกต่อไปและการตั้งค่าของโหมดจะถูกซ่อนไว้"</string>
+ <string name="zen_mode_action_disable" msgid="3552921561331044881">"ปิดใช้"</string>
+ <string name="zen_mode_confirm_enable_title" msgid="5683371335847448595">"เปิดใช้โหมด"</string>
+ <string name="zen_mode_confirm_enable_message" msgid="7017879133260011419">"หากเปิดใช้ฟีเจอร์นี้ โหมดนี้จะเปิดใช้งานโดยอัตโนมัติตามกำหนดเวลา"</string>
+ <string name="zen_mode_action_enable" msgid="1161480633223176531">"เปิดใช้"</string>
+ <!-- no translation found for zen_mode_blurb_schedule_time (8223898702097484009) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_schedule_calendar (382177907856065945) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_bedtime (6155075956151013457) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_driving (1316054379000667305) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_immersive (5884004861848687869) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_theater (2999237960059524225) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_managed (5473921634985032149) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_generic (3041601339807075625) -->
+ <skip />
<string name="warning_button_text" msgid="1274234338874005639">"คำเตือน"</string>
<string name="suggestion_button_close" msgid="6865170855573283759">"ปิด"</string>
<string name="device_feedback" msgid="5351614458411688608">"ส่งความคิดเห็นเกี่ยวกับอุปกรณ์นี้"</string>
@@ -3963,7 +3985,7 @@
<string name="usage_access" msgid="5487993885373893282">"การเข้าถึงการใช้งาน"</string>
<string name="permit_usage_access" msgid="179630895262172674">"อนุญาตการเข้าถึงการใช้งาน"</string>
<string name="time_spent_in_app_pref_title" msgid="25327097913383330">"เวลาอยู่หน้าจอ"</string>
- <string name="usage_access_description" msgid="8547716253713890707">"การเข้าถึงการใช้งานทำให้แอปสามารถติดตามว่าคุณกำลังใช้แอปอื่นใดอยู่ ความถี่ในการใช้ รวมทั้งผู้ให้บริการ การตั้งค่าภาษา และรายละเอียดอื่นๆ"</string>
+ <string name="usage_access_description" msgid="8547716253713890707">"การเข้าถึงการใช้งานทำให้แอปสามารถติดตามว่าคุณกำลังใช้แอปอื่นใดอยู่ ความถี่ในการใช้ รวมทั้งผู้ให้บริการ การตั้งค่าภาษา และรายละเอียดอื่นๆ"</string>
<string name="memory_settings_title" msgid="6582588646363308430">"หน่วยความจำ"</string>
<string name="always_running" msgid="9012705720688200252">"ทำงานตลอดเวลา (<xliff:g id="PERCENTAGE">%s</xliff:g>)"</string>
<string name="sometimes_running" msgid="7954947311082655448">"ทำงานบางครั้ง (<xliff:g id="PERCENTAGE">%s</xliff:g>)"</string>
@@ -4838,9 +4860,8 @@
<string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"แบตเตอรี่"</string>
<string name="settings_panel_title" msgid="346363079938069215">"แผงควบคุมการตั้งค่า"</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>
+ <!-- no translation found for enable_desktop_mode_on_secondary_display (2609567824593768780) -->
+ <skip />
<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>
@@ -5015,7 +5036,6 @@
<string name="default_active_sim_mobile_data" msgid="6798083892814045301">"อินเทอร์เน็ตมือถือ"</string>
<string name="wifi_scan_notify_message" msgid="1331238142061476869">"เพื่อปรับปรุงประสบการณ์การใช้อุปกรณ์ แอปและบริการต่างๆ จะยังคงสแกนหาเครือข่าย Wi‑Fi ได้ทุกเมื่อแม้ว่า Wi‑Fi จะปิดอยู่ การตั้งค่านี้ใช้เพื่อทำสิ่งต่างๆ เช่น ปรับปรุงฟีเจอร์และบริการที่อิงตามตำแหน่ง คุณเปลี่ยนตัวเลือกนี้ได้ในการตั้งค่าการสแกนหา Wi-Fi"</string>
<string name="wifi_scan_change" msgid="8438320311511852918">"เปลี่ยน"</string>
- <string name="preference_summary_default_combination" msgid="4643585915107796253">"<xliff:g id="STATE">%1$s</xliff:g>/<xliff:g id="NETWORKMODE">%2$s</xliff:g>"</string>
<string name="mobile_data_connection_active" msgid="2422223108911581552">"เชื่อมต่อแล้ว"</string>
<string name="mobile_data_temp_connection_active" msgid="3430470299756236413">"เชื่อมต่อแล้วชั่วคราว"</string>
<string name="mobile_data_temp_using" msgid="5211002380149434155">"กำลังใช้ <xliff:g id="SUBNAME">%1$s</xliff:g> ชั่วคราว"</string>
@@ -5161,9 +5181,11 @@
<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="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_enable_freeform_support" msgid="3697462756493543645">"ต้องรีบูตเพื่อเปิดใช้การรองรับหน้าต่างรูปแบบอิสระ"</string>
+ <!-- no translation found for reboot_dialog_override_desktop_mode (7480950772574354130) -->
+ <skip />
+ <!-- no translation found for reboot_dialog_enable_desktop_mode_on_secondary_display (1153621881052401924) -->
+ <skip />
<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>
@@ -5281,10 +5303,8 @@
<string name="show_captions_enabled" msgid="7089043007924626">"เปิด"</string>
<string name="live_caption_disabled" msgid="3562035026547887366">"ปิด"</string>
<string name="live_caption_enabled" msgid="5269360946200718949">"เปิด"</string>
- <!-- no translation found for audio_seek_bar_state_left_first (8814986910920838972) -->
- <skip />
- <!-- no translation found for audio_seek_bar_state_right_first (1999368979633398876) -->
- <skip />
+ <string name="audio_seek_bar_state_left_first" msgid="8814986910920838972">"เสียง %1$d%% ซ้าย %2$d%% ขวา"</string>
+ <string name="audio_seek_bar_state_right_first" msgid="1999368979633398876">"เสียง %1$d%% ขวา %2$d%% ซ้าย"</string>
<string name="about_phone_device_name_warning" msgid="3243226572404472381">"แอปที่คุณติดตั้งจะเห็นชื่อของอุปกรณ์ และคนอื่นก็อาจเห็นเช่นกันหากคุณเชื่อมต่อกับอุปกรณ์บลูทูธหรือเครือข่าย Wi-Fi หรือตั้งค่าฮอตสปอต Wi-Fi"</string>
<string name="grammatical_gender_title" msgid="8584242850477270828">"เพศทางไวยากรณ์"</string>
<string name="grammatical_gender_dialog_title" msgid="8754048592099871587">"เลือกเพศทางไวยากรณ์"</string>
@@ -5396,5 +5416,6 @@
<string name="audio_streams_main_page_password_dialog_join_button" msgid="2967747276379153408">"ฟังสตรีม"</string>
<string name="audio_streams_main_page_qr_code_scanner_summary" msgid="5312980105735143360">"สแกนคิวอาร์โค้ดของสตรีมเสียงเพื่อฟังกับ <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
<string name="audio_streams_main_page_password_dialog_cannot_edit" msgid="9020898619297520153">"แก้ไขรหัสผ่านในระหว่างการแชร์ไม่ได้ หากต้องการเปลี่ยนรหัสผ่าน โปรดปิดการแชร์เสียงก่อน"</string>
+ <string name="audio_streams_qr_code_scanner_label" msgid="8799703301071378034">"ตัวสแกนคิวอาร์โค้ด"</string>
<string name="homepage_search" msgid="6759334912284663559">"ค้นหาในการตั้งค่า"</string>
</resources>
diff --git a/res/values-tl/strings.xml b/res/values-tl/strings.xml
index d695dca..dbf1c1b 100644
--- a/res/values-tl/strings.xml
+++ b/res/values-tl/strings.xml
@@ -41,6 +41,8 @@
<string name="radioInfo_data_suspended" msgid="2001254415431299603">"Suspendido"</string>
<string name="radioInfo_unknown" msgid="2892562356748600367">"Hindi Alam"</string>
<string name="preview_pager_content_description" msgid="3762247188224576303">"Preview"</string>
+ <!-- no translation found for qr_code_content_description (1852208464419291347) -->
+ <skip />
<string name="font_size_make_smaller_desc" msgid="4978038055549590140">"Paliitin"</string>
<string name="font_size_make_larger_desc" msgid="5583046033381722247">"Palakihin"</string>
<string name="stay_awake_on_fold_title" msgid="6590454679898134221">"Palagi"</string>
@@ -283,7 +285,7 @@
<string name="location_settings_summary_location_off" msgid="4797932754681162262">"Naka-off"</string>
<string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{Naka-on / # app ang may access sa lokasyon}one{Naka-on / # app ang may access sa lokasyon}other{Naka-on / # na app ang may access sa lokasyon}}"</string>
<string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"Naglo-load…"</string>
- <string name="location_settings_footer_general" msgid="1040507068701188821">"Matutukoy ng mga app na may pahintulot sa Mga kalapit na device ang relatibong posisyon ng mga nakakonektang device."</string>
+ <string name="location_settings_footer_general" msgid="3447585552176173502">"Matutukoy ng mga app na may pahintulot sa mga kalapit na device ang relatibong posisyon ng mga nakakonektang device."</string>
<string name="location_settings_footer_location_off" msgid="8568995909147566720">"Naka-off para sa mga app at serbisyo ang access sa lokasyon. Posibleng ipadala pa rin ang lokasyon ng iyong device sa mga reresponde sa emergency kapag tumawag o nag-text ka sa pang-emergency na numero."</string>
<string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Matuto pa tungkol sa Mga setting ng lokasyon."</string>
<string name="location_settings_tooltip_text_for_chrome" msgid="5781821709250544575">"Para palitan, pumunta sa Mga Setting ng ChromeOS > Privacy at seguridad > Mga kontrol sa privacy > Access sa lokasyon"</string>
@@ -850,7 +852,6 @@
<string name="nfc_reboot_dialog_title" msgid="2033983438635768169">"I-restart ang Device?"</string>
<string name="nfc_reboot_dialog_message" msgid="4929353168157966992">"Idinisenyo lang ang pag-log ng detalye ng NFC para sa pag-develop. Nagsasama ng karagdagang data ng NFC sa mga ulat ng bug, na posibleng may pribadong impormasyon. I-restart ang iyong device para baguhin ang setting na ito."</string>
<string name="nfc_reboot_dialog_confirm" msgid="4769763632008584567">"I-restart"</string>
- <string name="keywords_external_display" msgid="4181375057920134909">"mirror, external na display, nakakonektang display, usb display, resolution, pag-rotate"</string>
<string name="external_display_on" msgid="2560104443500154333">"Naka-on"</string>
<string name="external_display_off" msgid="5634413756025351374">"Naka-off"</string>
<string name="external_display_settings_title" msgid="6256884595821605779">"External na Display"</string>
@@ -1918,6 +1919,8 @@
<string name="slow_keys_summary" msgid="1784371292745423292">"Ina-adjust sa <xliff:g id="SLOW_KEYS_THRESHOLD">%1$d</xliff:g> ms kung gaano dapat katagal pindutin ang key para mag-activate"</string>
<string name="sticky_keys" msgid="7317317044898161747">"Mga sticky key"</string>
<string name="sticky_keys_summary" msgid="1844953803625480623">"Paisa-isang pumindot ng key para sa mga shortcut sa halip na sabay-sabay na pindutin ang mga key"</string>
+ <string name="mouse_keys" msgid="6237254627808525540">"Mga mouse key"</string>
+ <string name="mouse_keys_summary" msgid="2396247040177734245">"Gamitin ang pisikal na keyboard para kontrolin ang mouse."</string>
<string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"Mga keyboard shortcut"</string>
<string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"Ipakita ang listahan ng mga shortcut"</string>
<string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"Mga keyboard at tool ng profile sa trabaho"</string>
@@ -2175,8 +2178,6 @@
<string name="accessibility_shortcut_edit_dialog_summary_floating_button" msgid="6266489864614886247">"I-tap ang naka-float na button"</string>
<string name="accessibility_shortcut_edit_dialog_title_software_by_gesture" msgid="4775049370625630546">"Galaw para sa accessibility"</string>
<string name="accessibility_shortcut_edit_dialog_summary_software" msgid="8315934725362849788">"I-tap ang button ng accessibility <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g> sa ibaba ng screen. Para magpalipat-lipat sa mga feature, pindutin nang matagal ang button ng accessibility."</string>
- <string name="accessibility_shortcut_edit_dialog_summary_software_gesture" msgid="8292555254353761635">"Mag-swipe pataas mula sa ibaba ng screen gamit ang 2 daliri.\n\nPara magpalipat-lipat sa mga feature, mag-swipe pataas gamit ang 2 daliri at i-hold ang mga ito."</string>
- <string name="accessibility_shortcut_edit_dialog_summary_software_gesture_talkback" msgid="84483464524360845">"Mag-swipe pataas mula sa ibaba ng screen gamit ang 3 daliri.\n\nPara magpalipat-lipat sa mga feature, mag-swipe pataas gamit ang 3 daliri at i-hold ang mga ito."</string>
<string name="accessibility_shortcut_edit_dialog_summary_gesture" msgid="2081123009255579884">"{count,plural, =1{Mag-swipe pataas mula sa ibabang bahagi ng screen. Para magpalipat-lipat sa mga feature, mag-swipe pataas at i-hold ito.}one{Mag-swipe pataas gamit ang # daliri mula sa ibaba ng screen. Para magpalipat-lipat sa mga feature, mag-swipe pataas gamit ang # daliri at i-hold ito.}other{Mag-swipe pataas gamit ang # na daliri mula sa ibaba ng screen. Para magpalipat-lipat sa mga feature, mag-swipe pataas gamit ang # na daliri at i-hold ito.}}"</string>
<string name="accessibility_shortcut_edit_dialog_summary_software_floating" msgid="4459254227203203324"><annotation id="link">"Higit pang opsyon"</annotation></string>
<string name="footer_learn_more_content_description" msgid="8843798273152131341">"Matuto pa tungkol sa <xliff:g id="SERVICE">%1$s</xliff:g>"</string>
@@ -2187,16 +2188,12 @@
<string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="844089763968552142">"Mga volume key"</string>
<string name="accessibility_shortcut_hardware_keyword" msgid="2483152542320987022">"mga volume key"</string>
<string name="accessibility_shortcut_edit_dialog_summary_hardware" msgid="2503134386397991634">"Pindutin nang matagal ang parehong volume key"</string>
- <string name="accessibility_shortcut_edit_dialog_title_two_finger_double_tap" msgid="2271778556854020996">"I-double tap ang screen gamit ang dalawang daliri"</string>
<string name="accessibility_shortcut_edit_screen_title_two_finger_double_tap" msgid="8952595692906527694">"%1$d-finger na pag-double tap"</string>
<string name="accessibility_shortcut_edit_screen_summary_two_finger_double_tap" msgid="385404127425496362">"Mabilisang i-tap ang screen nang dalawang beses gamit ang %1$d (na) daliri"</string>
<string name="accessibility_shortcut_edit_screen_title_triple_tap" msgid="3314488747597058942">"Pag-tap nang tatlong beses"</string>
<string name="accessibility_shortcut_edit_screen_summary_triple_tap" msgid="4839204951599629871">"Mabilisang i-tap ang screen nang %1$d (na) beses. Posibleng mapabagal nito ang iyong device."</string>
<string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="6271718715836961167">"%1$d-finger na pag-double tap"</string>
- <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"Mabilis na i-tap ang screen nang {0,number,integer} (na) beses gamit ang dalawang daliri"</string>
- <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"I-triple tap ang screen"</string>
<string name="accessibility_shortcut_triple_tap_keyword" msgid="5359347130888464334">"pag-tap nang tatlong beses"</string>
- <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"Mabilis na i-tap ang screen nang {0,number,integer} beses. Posibleng mapabagal ng shortcut na ito ang iyong device"</string>
<string name="accessibility_shortcut_edit_dialog_title_advance" msgid="4567868630655591506">"Advanced"</string>
<string name="accessibility_screen_magnification_navbar_configuration_warning" msgid="266736851606791552">"Nakatakda sa <xliff:g id="SERVICE">%1$s</xliff:g> ang button na Accessibility. Upang gumamit ng pag-magnify, pindutin nang matagal ang button na Accessibility, pagkatapos ay piliin ang pag-magnify."</string>
<string name="accessibility_screen_magnification_gesture_navigation_warning" msgid="991017769735632046">"Nakatakda sa <xliff:g id="SERVICE">%1$s</xliff:g> ang galaw ng accessibility. Para magamit ang pag-magnify, mag-swipe pataas gamit ang dalawang daliri mula sa ibaba ng screen at i-hold. Pagkatapos ay piliin ang pag-magnify."</string>
@@ -2365,6 +2362,7 @@
<string name="daltonizer_mode_tritanomaly_title" msgid="2278786218762602022">"Asul-dilaw"</string>
<string name="daltonizer_mode_grayscale_title" msgid="152005391387952588">"Grayscale"</string>
<string name="daltonizer_saturation_title" msgid="2999486412114963068">"Intensity"</string>
+ <string name="daltonizer_saturation_unavailable_summary" msgid="8319753055567798775">"Hindi available para sa grayscale mode o kapag naka-disable ang pagtatama ng kulay"</string>
<string name="daltonizer_mode_deuteranomaly_summary" msgid="2117727423019598455">"Hirap makakita ng berde, deuteranomaly"</string>
<string name="daltonizer_mode_protanomaly_summary" msgid="4617032854982040748">"Hirap makakita ng pula, protanomaly"</string>
<string name="daltonizer_mode_tritanomaly_summary" msgid="2428218320118180070">"Tritanomaly"</string>
@@ -2414,15 +2412,8 @@
<string name="color_cyan" msgid="4341758639597035927">"Cyan"</string>
<string name="color_yellow" msgid="5957551912912679058">"Dilaw"</string>
<string name="color_magenta" msgid="8943538189219528423">"Magenta"</string>
- <string name="enable_service_title" msgid="7231533866953706788">"Bigyan ang <xliff:g id="SERVICE">%1$s</xliff:g> ng ganap na kontrol sa iyong device?"</string>
<string name="capabilities_list_title" msgid="1225853611983394386">"Kailangan ng <xliff:g id="SERVICE">%1$s</xliff:g> na:"</string>
<string name="touch_filtered_warning" msgid="4225815157460318241">"Dahil pinipigilan ng isang app ang kahilingan ng pahintulot, hindi ma-verify ng Mga Setting ang iyong tugon."</string>
- <string name="accessibility_service_warning" msgid="6779187188736432618">"Humihiling ang <xliff:g id="SERVICE">%1$s</xliff:g> ng ganap na kontrol sa device na ito. Maaaring basahin ng serbisyo ang screen at kumilos sa ngalan ng mga user na may mga pangangailangan sa accessibility. Hindi naaangkop ang ganitong antas ng kontrol para sa karamihan ng mga app."</string>
- <string name="accessibility_service_warning_description" msgid="6573203795976134751">"Naaangkop ang ganap na kontrol sa mga app na tumutulong sa mga pangangailangan mo sa accessibility, pero hindi sa karamihan ng mga app."</string>
- <string name="accessibility_service_screen_control_title" msgid="324795030658109870">"Tingnan at kontrolin ang screen"</string>
- <string name="accessibility_service_screen_control_description" msgid="8431940515157990426">"Mababasa nito ang lahat ng content na nasa screen at makakapagpakita ito ng content sa iba pang app."</string>
- <string name="accessibility_service_action_perform_title" msgid="1449360056585337833">"Tumingin at magsagawa ng mga pagkilos"</string>
- <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"Masusubaybayan nito ang iyong mga pakikipag-ugayan sa isang app o hardware na sensor, at puwede itong makipag-ugnayan sa mga app para sa iyo."</string>
<string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Payagan"</string>
<string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Tanggihan"</string>
<string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"I-off"</string>
@@ -3652,9 +3643,9 @@
<string name="notif_listener_not_migrated" msgid="6265206376374278226">"Hindi sinusuportahan ng app na ito ang mga pinahusay na setting"</string>
<string name="notif_listener_more_settings" msgid="1348409392307208921">"Higit pang setting"</string>
<string name="notif_listener_more_settings_desc" msgid="7995492074281663658">"May higit pang setting na available sa loob ng app na ito"</string>
- <string name="notification_polite_title" msgid="4737150709382859870">"Mga Adaptive na Notification"</string>
- <string name="notification_polite_main_control_title" msgid="7267191551379543859">"Gumamit ng mga adaptive na notification"</string>
- <string name="notification_polite_description" msgid="7749280535620291610">"Kapag nakatanggap ka ng maraming notification sa loob ng maikling panahon, hihinaan ng iyong telepono ang volume at imi-minimize nito ang mga pop-up sa screen sa loob ng hanggang dalawang minuto. Ang mga tawag, alarm, at priyoridad na pag-uusap ay magva-vibrate, tutunog, o lalabas pa rin sa screen, at madaling makikita ang lahat ng notification kapag nag-swipe ka pababa mula sa itaas ng screen."</string>
+ <string name="notification_polite_title" msgid="6121016426991791557">"Cooldown sa notification"</string>
+ <string name="notification_polite_main_control_title" msgid="5812529809151927149">"Gumamit ng cooldown sa notification"</string>
+ <string name="notification_polite_description" msgid="5497748284893832854">"Kapag nakatanggap ka ng maraming notification sa loob ng maikling panahon, hihinaan ng iyong device ang volume nito at imi-minimize nito ang mga alerto sa loob ng hanggang 2 minuto. Hindi maaapektuhan ang mga tawag, alarm, at priyoridad na pag-uusap. \n\nMakikita ang mga notification na matatanggap habang cooldown sa pamamagitan ng paghila pababa mula sa itaas ng screen."</string>
<string name="notification_polite_work" msgid="8823596456640216391">"Ilapat sa mga profile sa trabaho"</string>
<string name="notification_polite_work_summary" msgid="5014189280132951378">"Ilapat sa mga app ng profile sa trabaho"</string>
<string name="vr_listeners_title" msgid="4960357292472540964">"Mga serbisyong pantulong sa VR"</string>
@@ -3811,7 +3802,9 @@
<string name="zen_mode_apps_priority_apps" msgid="7386196048313716076">"Mga napiling app"</string>
<string name="zen_mode_apps_none_apps" msgid="2493642312793604327">"Wala"</string>
<string name="zen_mode_apps_subtext" msgid="1764211974662012877">"{count,plural,offset:2 =0{Walang app na puwedeng makaabala}=1{Puwedeng makaabala ang {app_1}}=2{Puwedeng makaabala ang {app_1} at {app_2}}=3{Puwedeng makaabala ang {app_1}, {app_2}, at {app_3}}one{Puwedeng makaabala ang {app_1}, {app_2}, at # pa}other{Puwedeng makaabala ang {app_1}, {app_2}, at # pa}}"</string>
+ <string name="zen_mode_apps_work_app" msgid="8528767938316361588">"<xliff:g id="APP_LABEL">%s</xliff:g> (Trabaho)"</string>
<string name="zen_mode_apps_calculating" msgid="5420121396943539286">"Nagkakalkula…"</string>
+ <string name="zen_mode_plus_n_items" msgid="6136713354369243421">"+<xliff:g id="NUMBER">%d</xliff:g>"</string>
<string name="zen_mode_bypassing_apps" msgid="625309443389126481">"Payagan ang mga app na mag-override"</string>
<string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"Mga app na puwedeng umabala"</string>
<string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"Pumili pa ng mga app"</string>
@@ -3829,6 +3822,7 @@
<string name="zen_mode_sounds_none" msgid="6557474361948269420">"Walang puwedeng makaabala"</string>
<string name="zen_mode_people_none" msgid="4613147461974255046">"Walang taong puwedeng makaabala"</string>
<string name="zen_mode_people_some" msgid="9101872681298810281">"Puwedeng makaabala ang ilang tao"</string>
+ <string name="zen_mode_people_repeat_callers" msgid="4499084111069828761">"Puwedeng makaabala ang mga umuulit na tumatawag"</string>
<string name="zen_mode_people_all" msgid="311036110283015205">"Puwedeng makaabala ang lahat ng tao"</string>
<string name="zen_mode_repeat_callers" msgid="2270356100287792138">"Mga umulit na tumatawag"</string>
<string name="zen_mode_repeat_callers_title" msgid="8016699240338264781">"Payagan ang mga umuulit na tumatawag"</string>
@@ -3852,6 +3846,34 @@
<string name="zen_mode_new_custom_title" msgid="321750898430776191">"Magdagdag ng mode"</string>
<string name="zen_mode_new_custom_default_name" msgid="2778307946775085105">"Custom na mode"</string>
<string name="zen_mode_edit_name_hint" msgid="4584652062167540536">"Pangalan ng mode"</string>
+ <string name="zen_mode_trigger_title_schedule_calendar" msgid="9206609438617550331">"Mga event sa kalendaryo"</string>
+ <string name="zen_mode_trigger_title_bedtime" msgid="5086070900588489978">"Iskedyul ng pagtulog"</string>
+ <string name="zen_mode_trigger_title_driving" msgid="7890990983453164403">"Habang nagmamaneho"</string>
+ <string name="zen_mode_trigger_title_generic" msgid="601273385119550420">"Naka-link sa app"</string>
+ <string name="zen_mode_trigger_summary_settings_in_app" msgid="4860667191183702601">"Impormasyon at mga setting sa <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+ <string name="zen_mode_trigger_summary_managed_by_app" msgid="8631011868193102098">"Pinapamahalaan ng <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+ <string name="zen_mode_confirm_disable_title" msgid="1232297660775719796">"I-disable ang Mode"</string>
+ <string name="zen_mode_confirm_disable_message" msgid="7315541221665718491">"Kung idi-disable mo ang feature na ito, hindi na gagana ang mode ayon sa nilalayon at itatago ang mga setting nito."</string>
+ <string name="zen_mode_action_disable" msgid="3552921561331044881">"I-disable"</string>
+ <string name="zen_mode_confirm_enable_title" msgid="5683371335847448595">"I-enable ang Mode"</string>
+ <string name="zen_mode_confirm_enable_message" msgid="7017879133260011419">"Kung ie-enable mo ang feature na ito, awtomatikong mag-a-activate ang mode ayon sa iskedyul nito."</string>
+ <string name="zen_mode_action_enable" msgid="1161480633223176531">"I-enable"</string>
+ <!-- no translation found for zen_mode_blurb_schedule_time (8223898702097484009) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_schedule_calendar (382177907856065945) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_bedtime (6155075956151013457) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_driving (1316054379000667305) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_immersive (5884004861848687869) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_theater (2999237960059524225) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_managed (5473921634985032149) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_generic (3041601339807075625) -->
+ <skip />
<string name="warning_button_text" msgid="1274234338874005639">"Babala"</string>
<string name="suggestion_button_close" msgid="6865170855573283759">"Isara"</string>
<string name="device_feedback" msgid="5351614458411688608">"Feedback tungkol sa device"</string>
@@ -4838,9 +4860,8 @@
<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="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>
+ <!-- no translation found for enable_desktop_mode_on_secondary_display (2609567824593768780) -->
+ <skip />
<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>
@@ -5015,7 +5036,6 @@
<string name="default_active_sim_mobile_data" msgid="6798083892814045301">"mobile data"</string>
<string name="wifi_scan_notify_message" msgid="1331238142061476869">"Para pahusayin ang experience sa device, puwede pa ring mag-scan ng mga Wi-Fi network ang mga app at serbisyo anumang oras, kahit habang naka-off ang Wi‑Fi. Magagamit ito, halimbawa, para pahusayin ang mga feature at serbisyong batay sa lokasyon. Mababago mo ito sa mga setting ng pag-scan ng Wi-Fi."</string>
<string name="wifi_scan_change" msgid="8438320311511852918">"Baguhin"</string>
- <string name="preference_summary_default_combination" msgid="4643585915107796253">"<xliff:g id="STATE">%1$s</xliff:g> / <xliff:g id="NETWORKMODE">%2$s</xliff:g>"</string>
<string name="mobile_data_connection_active" msgid="2422223108911581552">"Nakakonekta"</string>
<string name="mobile_data_temp_connection_active" msgid="3430470299756236413">"Pansamantalang nakakonekta"</string>
<string name="mobile_data_temp_using" msgid="5211002380149434155">"Pansamantalang ginagamit ang <xliff:g id="SUBNAME">%1$s</xliff:g>"</string>
@@ -5047,7 +5067,7 @@
<string name="app_pinning_main_switch_title" msgid="5465506660064032876">"Gamitin ang pag-pin ng app"</string>
<string name="developer_options_main_switch_title" msgid="1720074589554152501">"Gamitin ang mga opsyon ng developer"</string>
<string name="default_print_service_main_switch_title" msgid="4697133737128324036">"Gamitin ang serbisyo ng pag-print"</string>
- <string name="multiple_users_main_switch_title" msgid="9158796544835843201">"Payagan ang switch ng user"</string>
+ <string name="multiple_users_main_switch_title" msgid="9158796544835843201">"Payagan ang pag-switch ng user"</string>
<string name="multiple_users_main_switch_keywords" msgid="4845954458094134356">"payagan, maraming, user, pahintulot, marami"</string>
<string name="multiple_users_title_keywords" msgid="2395593167746225172">"maramihan, mga user, mga profile, mga tao, mga account, lumipat, marami"</string>
<string name="wireless_debugging_main_switch_title" msgid="8463499572781441719">"Gamitin ang wireless na pag-debug"</string>
@@ -5161,9 +5181,11 @@
<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="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_enable_freeform_support" msgid="3697462756493543645">"Kinakailangang mag-reboot para ma-enable ang freeform window na suporta."</string>
+ <!-- no translation found for reboot_dialog_override_desktop_mode (7480950772574354130) -->
+ <skip />
+ <!-- no translation found for reboot_dialog_enable_desktop_mode_on_secondary_display (1153621881052401924) -->
+ <skip />
<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>
@@ -5281,10 +5303,8 @@
<string name="show_captions_enabled" msgid="7089043007924626">"Naka-on"</string>
<string name="live_caption_disabled" msgid="3562035026547887366">"Naka-off"</string>
<string name="live_caption_enabled" msgid="5269360946200718949">"Naka-on"</string>
- <!-- no translation found for audio_seek_bar_state_left_first (8814986910920838972) -->
- <skip />
- <!-- no translation found for audio_seek_bar_state_right_first (1999368979633398876) -->
- <skip />
+ <string name="audio_seek_bar_state_left_first" msgid="8814986910920838972">"Audio %1$d%% sa kaliwa, %2$d%% sa kanan"</string>
+ <string name="audio_seek_bar_state_right_first" msgid="1999368979633398876">"Audio %1$d%% sa kanan, %2$d%% sa kaliwa"</string>
<string name="about_phone_device_name_warning" msgid="3243226572404472381">"Nakikita ang pangalan ng device sa mga app na na-install mo. Puwede rin itong makita ng ibang tao kapag ikaw ay kumonekta sa mga Bluetooth device, kumonekta sa Wi-Fi network, o nag-set up ng Wi-Fi hotspot."</string>
<string name="grammatical_gender_title" msgid="8584242850477270828">"Kasarian para sa grammar"</string>
<string name="grammatical_gender_dialog_title" msgid="8754048592099871587">"Pumili ng Kasarian para sa grammar"</string>
@@ -5396,5 +5416,6 @@
<string name="audio_streams_main_page_password_dialog_join_button" msgid="2967747276379153408">"Makinig sa stream"</string>
<string name="audio_streams_main_page_qr_code_scanner_summary" msgid="5312980105735143360">"Mag-scan ng QR code ng audio stream para makinig sa <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
<string name="audio_streams_main_page_password_dialog_cannot_edit" msgid="9020898619297520153">"Hindi mae-edit ang password habang nagbabahagi. Para palitan ang password, i-off muna ang pag-share ng audio."</string>
+ <string name="audio_streams_qr_code_scanner_label" msgid="8799703301071378034">"Scanner ng QR code"</string>
<string name="homepage_search" msgid="6759334912284663559">"Mga Setting ng Paghahanap"</string>
</resources>
diff --git a/res/values-tr/strings.xml b/res/values-tr/strings.xml
index e99ac55..2e8a625 100644
--- a/res/values-tr/strings.xml
+++ b/res/values-tr/strings.xml
@@ -41,6 +41,8 @@
<string name="radioInfo_data_suspended" msgid="2001254415431299603">"Askıya alındı"</string>
<string name="radioInfo_unknown" msgid="2892562356748600367">"Bilinmiyor"</string>
<string name="preview_pager_content_description" msgid="3762247188224576303">"Önizleme"</string>
+ <!-- no translation found for qr_code_content_description (1852208464419291347) -->
+ <skip />
<string name="font_size_make_smaller_desc" msgid="4978038055549590140">"Küçült"</string>
<string name="font_size_make_larger_desc" msgid="5583046033381722247">"Büyüt"</string>
<string name="stay_awake_on_fold_title" msgid="6590454679898134221">"Her zaman"</string>
@@ -283,7 +285,7 @@
<string name="location_settings_summary_location_off" msgid="4797932754681162262">"Kapalı"</string>
<string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{Açık - # uygulamanın konuma erişimi var}other{Açık - # uygulamanın konuma erişimi var}}"</string>
<string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"Yükleniyor…"</string>
- <string name="location_settings_footer_general" msgid="1040507068701188821">"Yakındaki cihazlarla bağlanma izni olan uygulamalar, bağlı cihazların göreli konumunu belirleyebilir."</string>
+ <string name="location_settings_footer_general" msgid="3447585552176173502">"Yakındaki cihazlarla bağlanma izni olan uygulamalar, bağlı cihazların göreli konumunu belirleyebilir."</string>
<string name="location_settings_footer_location_off" msgid="8568995909147566720">"Uygulamaların ve hizmetlerin konum erişimi kapalı. Yine de arayarak veya mesaj göndererek bir acil durum numarasına ulaştığınızda cihazınızın konumu acil durum müdahale ekiplerine gönderilebilir."</string>
<string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Konum ayarları hakkında daha fazla bilgi edinin"</string>
<string name="location_settings_tooltip_text_for_chrome" msgid="5781821709250544575">"Değiştirmek için ChromeOS Ayarları > Gizlilik ve güvenlik > Gizlilik denetimleri > Konum erişimi bölümüne gidin"</string>
@@ -850,7 +852,6 @@
<string name="nfc_reboot_dialog_title" msgid="2033983438635768169">"Cihaz Yeniden Başlatılsın mı?"</string>
<string name="nfc_reboot_dialog_message" msgid="4929353168157966992">"Ayrıntılı NFC günlük kaydı, yalnızca geliştirme amaçlıdır. Hata raporlarında, özel bilgiler içerebilen ek NFC verileri yer alır. Bu ayarı değiştirmek için cihazınızı yeniden başlatın."</string>
<string name="nfc_reboot_dialog_confirm" msgid="4769763632008584567">"Yeniden başlat"</string>
- <string name="keywords_external_display" msgid="4181375057920134909">"yansıtma, harici ekran, bağlı ekran, usb ekranı, çözünürlük, döndürme"</string>
<string name="external_display_on" msgid="2560104443500154333">"Açık"</string>
<string name="external_display_off" msgid="5634413756025351374">"Kapalı"</string>
<string name="external_display_settings_title" msgid="6256884595821605779">"Harici Ekran"</string>
@@ -1918,6 +1919,8 @@
<string name="slow_keys_summary" msgid="1784371292745423292">"Bir tuşa basma işleminin etkinleştirileceği süreyi <xliff:g id="SLOW_KEYS_THRESHOLD">%1$d</xliff:g> ms. olarak ayarlar"</string>
<string name="sticky_keys" msgid="7317317044898161747">"Yapışkan tuşlar"</string>
<string name="sticky_keys_summary" msgid="1844953803625480623">"Tuşları aynı anda basılı tutmak yerine kısayollar için tek seferde bir tuşa basın"</string>
+ <string name="mouse_keys" msgid="6237254627808525540">"Fare tuşları"</string>
+ <string name="mouse_keys_summary" msgid="2396247040177734245">"Fareyi kontrol etmek için fiziksel klavyeyi kullanın."</string>
<string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"Klavye kısayolları"</string>
<string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"Kısayol listesini göster"</string>
<string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"İş profili klavyeleri ve araçları"</string>
@@ -1942,14 +1945,10 @@
<string name="pointer_fill_style_yellow_button" msgid="5025969961559379024">"İşaretçi dolgu stilini sarı yapın"</string>
<string name="pointer_fill_style_pink_button" msgid="4106218142489635673">"İşaretçi dolgu stilini pembe yapın"</string>
<string name="pointer_fill_style_blue_button" msgid="5594958078854032785">"İşaretçi dolgu stilini mavi yapın"</string>
- <!-- no translation found for pointer_stroke_style (1886986630216050665) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_white (673686194443825383) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_black (4655806167067437330) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_none (8953927511729800247) -->
- <skip />
+ <string name="pointer_stroke_style" msgid="1886986630216050665">"İşaretçi çizgi stili"</string>
+ <string name="pointer_stroke_style_name_white" msgid="673686194443825383">"Beyaz"</string>
+ <string name="pointer_stroke_style_name_black" msgid="4655806167067437330">"Siyah"</string>
+ <string name="pointer_stroke_style_name_none" msgid="8953927511729800247">"Yok"</string>
<string name="trackpad_touch_gesture" msgid="8641725062131922497">"Dokunmatik alan hareketlerini öğren"</string>
<string name="keywords_touchpad" msgid="8159846254066666032">"dokunmatik yüzey, dokunma yüzeyi, fare, imleç, kaydırma, sağ tıklama, tıklama, işaretçi"</string>
<string name="keywords_trackpad_bottom_right_tap" msgid="1285062446073929305">"sağ tıklama, dokunma"</string>
@@ -2179,8 +2178,6 @@
<string name="accessibility_shortcut_edit_dialog_summary_floating_button" msgid="6266489864614886247">"Kayan düğmeye dokunun"</string>
<string name="accessibility_shortcut_edit_dialog_title_software_by_gesture" msgid="4775049370625630546">"Erişilebilirlik hareketi"</string>
<string name="accessibility_shortcut_edit_dialog_summary_software" msgid="8315934725362849788">"Ekranın alt kısmındaki erişilebilirlik düğmesine <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g> dokunun. Özellikler arasında geçiş yapmak için erişilebilirlik düğmesine dokunup basılı tutun."</string>
- <string name="accessibility_shortcut_edit_dialog_summary_software_gesture" msgid="8292555254353761635">"2 parmağınızla ekranın altından yukarı kaydırın.\n\nÖzellikler arasında geçiş yapmak için 2 parmağınızla yukarı kaydırıp basılı tutun."</string>
- <string name="accessibility_shortcut_edit_dialog_summary_software_gesture_talkback" msgid="84483464524360845">"3 parmağınızla ekranın altından yukarı kaydırın.\n\nÖzellikler arasında geçiş yapmak için 3 parmağınızla yukarı kaydırıp basılı tutun."</string>
<string name="accessibility_shortcut_edit_dialog_summary_gesture" msgid="2081123009255579884">"{count,plural, =1{Ekranın alt kısmından yukarı doğru kaydırın. Özellikler arasında geçiş yapmak için yukarı doğru kaydırıp basılı tutun.}other{# parmağınızla ekranın alt kısmından yukarı doğru kaydırın. Özellikler arasında geçiş yapmak için # parmağınızla yukarı doğru kaydırıp basılı tutun.}}"</string>
<string name="accessibility_shortcut_edit_dialog_summary_software_floating" msgid="4459254227203203324"><annotation id="link">"Diğer seçenekler"</annotation></string>
<string name="footer_learn_more_content_description" msgid="8843798273152131341">"<xliff:g id="SERVICE">%1$s</xliff:g> hakkında ek bilgi"</string>
@@ -2191,16 +2188,12 @@
<string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="844089763968552142">"Ses seviyesi tuşları"</string>
<string name="accessibility_shortcut_hardware_keyword" msgid="2483152542320987022">"ses seviyesi tuşları"</string>
<string name="accessibility_shortcut_edit_dialog_summary_hardware" msgid="2503134386397991634">"Ses seviyesi tuşlarının ikisini birden basılı tutun"</string>
- <string name="accessibility_shortcut_edit_dialog_title_two_finger_double_tap" msgid="2271778556854020996">"İki parmağınızla ekrana iki kez dokunun"</string>
<string name="accessibility_shortcut_edit_screen_title_two_finger_double_tap" msgid="8952595692906527694">"%1$d parmağınızla iki kez dokunma"</string>
<string name="accessibility_shortcut_edit_screen_summary_two_finger_double_tap" msgid="385404127425496362">"Ekrana %1$d parmağınızla iki kez hızlıca dokunun"</string>
<string name="accessibility_shortcut_edit_screen_title_triple_tap" msgid="3314488747597058942">"Üç kez dokunma"</string>
<string name="accessibility_shortcut_edit_screen_summary_triple_tap" msgid="4839204951599629871">"Ekrana %1$d kez hızlıca dokunun. Bu kısayol cihazınızı yavaşlatabilir."</string>
<string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="6271718715836961167">"%1$d parmağınızla iki kez dokunma"</string>
- <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"İki parmağınızla ekrana {0,number,integer} kez hızlıca dokunun"</string>
- <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"Ekrana üç kez dokun"</string>
<string name="accessibility_shortcut_triple_tap_keyword" msgid="5359347130888464334">"üç kez dokunma"</string>
- <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"Ekrana {0,number,integer} kez hızlıca dokunun. Bu kısayol cihazınızı yavaşlatabilir"</string>
<string name="accessibility_shortcut_edit_dialog_title_advance" msgid="4567868630655591506">"Gelişmiş"</string>
<string name="accessibility_screen_magnification_navbar_configuration_warning" msgid="266736851606791552">"Erişilebilirlik düğmesi <xliff:g id="SERVICE">%1$s</xliff:g> olarak ayarlandı. Büyütmeyi kullanmak için Erişilebilirlik düğmesine dokunup basılı tutun, ardından büyütmeyi seçin."</string>
<string name="accessibility_screen_magnification_gesture_navigation_warning" msgid="991017769735632046">"Erişilebilirlik hareketi <xliff:g id="SERVICE">%1$s</xliff:g> hizmetine ayarlandı. Büyütme özelliğini kullanmak için iki parmağınızla ekranın altından kaydırıp basılı tutun. Ardından büyütmeyi seçin."</string>
@@ -2369,6 +2362,7 @@
<string name="daltonizer_mode_tritanomaly_title" msgid="2278786218762602022">"Mavi-sarı"</string>
<string name="daltonizer_mode_grayscale_title" msgid="152005391387952588">"Gri tonlama"</string>
<string name="daltonizer_saturation_title" msgid="2999486412114963068">"Yoğunluk"</string>
+ <string name="daltonizer_saturation_unavailable_summary" msgid="8319753055567798775">"Gri tonlama modunda veya renk düzeltme devre dışıyken kullanılamaz"</string>
<string name="daltonizer_mode_deuteranomaly_summary" msgid="2117727423019598455">"Yeşil zayıf, yeşil renk körlüğü"</string>
<string name="daltonizer_mode_protanomaly_summary" msgid="4617032854982040748">"Kırmızı zayıf, protanomali"</string>
<string name="daltonizer_mode_tritanomaly_summary" msgid="2428218320118180070">"Tritanomali"</string>
@@ -2418,15 +2412,8 @@
<string name="color_cyan" msgid="4341758639597035927">"Camgöbeği"</string>
<string name="color_yellow" msgid="5957551912912679058">"Sarı"</string>
<string name="color_magenta" msgid="8943538189219528423">"Macenta"</string>
- <string name="enable_service_title" msgid="7231533866953706788">"<xliff:g id="SERVICE">%1$s</xliff:g> hizmetinin cihazınızı tamamen kontrol etmesine izin veriyor musunuz?"</string>
<string name="capabilities_list_title" msgid="1225853611983394386">"<xliff:g id="SERVICE">%1$s</xliff:g> şunları gerektiriyor:"</string>
<string name="touch_filtered_warning" msgid="4225815157460318241">"Bir uygulama bir izin isteğinin anlaşılmasını engellediğinden, Ayarlar, yanıtınızı doğrulayamıyor."</string>
- <string name="accessibility_service_warning" msgid="6779187188736432618">"<xliff:g id="SERVICE">%1$s</xliff:g>, bu cihazın tam kontrolünü istiyor. Hizmet, ekranı okuyabilir ve erişilebilirlik gereksinimleri olan kullanıcıların adına hareket edebilir. Bu kontrol düzeyi, çoğu uygulama için uygun değildir."</string>
- <string name="accessibility_service_warning_description" msgid="6573203795976134751">"Erişebilirlik ihtiyaçlarınıza yardımcı olan uygulamalara tam kontrol verilmesi uygundur ancak diğer pek çok uygulama için uygun değildir."</string>
- <string name="accessibility_service_screen_control_title" msgid="324795030658109870">"Ekranı görüntüleme ve kontrol etme"</string>
- <string name="accessibility_service_screen_control_description" msgid="8431940515157990426">"Ekrandaki tüm içeriği okuyabilir ve içeriği diğer uygulamaların üzerinde gösterebilir."</string>
- <string name="accessibility_service_action_perform_title" msgid="1449360056585337833">"İşlemleri görüntüleme ve gerçekleştirme"</string>
- <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"Bir uygulama veya donanım sensörüyle etkileşimlerinizi takip edebilir ve sizin adınıza uygulamalarla etkileşimde bulunabilir."</string>
<string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"İzin ver"</string>
<string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Reddet"</string>
<string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Kapat"</string>
@@ -3368,10 +3355,8 @@
<string name="zen_mode_automation_settings_title" msgid="3709324184191870926">"Programlar"</string>
<string name="zen_mode_delete_automatic_rules" msgid="5020468289267191765">"Programları sil"</string>
<string name="zen_mode_schedule_delete" msgid="5383420576833765114">"Sil"</string>
- <!-- no translation found for zen_mode_menu_rename_mode (4681802125016390837) -->
- <skip />
- <!-- no translation found for zen_mode_menu_delete_mode (5380084696402157428) -->
- <skip />
+ <string name="zen_mode_menu_rename_mode" msgid="4681802125016390837">"Yeniden adlandır"</string>
+ <string name="zen_mode_menu_delete_mode" msgid="5380084696402157428">"Sil"</string>
<string name="zen_mode_delete_mode_confirmation" msgid="7594340592051947392">"\"<xliff:g id="MODE">%1$s</xliff:g>\" modu silinsin mi?"</string>
<string name="zen_mode_rule_name_edit" msgid="1053237022416700481">"Düzenle"</string>
<string name="zen_mode_automation_settings_page_title" msgid="6217433860514433311">"Programlar"</string>
@@ -3395,8 +3380,7 @@
<string name="zen_mode_visual_signals_settings_subtitle" msgid="7433077540895876672">"Görsel sinyallere izin ver"</string>
<string name="mode_interruption_filter_title" msgid="3343846700214702347">"Konsantrasyonunuzu koruyun"</string>
<string name="mode_device_effects_title" msgid="5857008332618433744">"Diğer işlemler"</string>
- <!-- no translation found for modes_sound_summary_off (6972648204528227879) -->
- <skip />
+ <string name="modes_sound_summary_off" msgid="6972648204528227879">"{count,plural, =0{Kapalı}=1{Kapalı/1 mod otomatik olarak açılabilir}other{Kapalı/# mod otomatik olarak açılabilir}}"</string>
<string name="mode_display_settings_title" msgid="8132825978346535472">"Ekran ayarları"</string>
<string name="mode_display_options_section" msgid="5151597748243866532">"Görüntüleme seçenekleri"</string>
<string name="mode_grayscale_title" msgid="6027553257331235461">"Gri tonlama"</string>
@@ -3659,9 +3643,9 @@
<string name="notif_listener_not_migrated" msgid="6265206376374278226">"Bu uygulama, gelişmiş ayarları desteklemiyor"</string>
<string name="notif_listener_more_settings" msgid="1348409392307208921">"Diğer ayarlar"</string>
<string name="notif_listener_more_settings_desc" msgid="7995492074281663658">"Bu uygulamada daha fazla ayar mevcut"</string>
- <string name="notification_polite_title" msgid="4737150709382859870">"Uyarlanabilir Bildirimler"</string>
- <string name="notification_polite_main_control_title" msgid="7267191551379543859">"Uyarlanabilir bildirimleri kullanın"</string>
- <string name="notification_polite_description" msgid="7749280535620291610">"Kısa süre içinde çok sayıda bildirim aldığınızda telefonunuz iki dakika boyunca sesi kısar ve ekrandaki pop-up\'ları azaltır. Aramalar, alarmlar ve öncelikli görüşmeler titreşimle ve sesle uyarı vermeye veya ekranda görünmeye devam eder. Ayrıca parmağınızı ekranın üst kısmından aşağı kaydırarak tüm bildirimleri kolayca görebilirsiniz."</string>
+ <string name="notification_polite_title" msgid="6121016426991791557">"Bildirim bekleme süresi"</string>
+ <string name="notification_polite_main_control_title" msgid="5812529809151927149">"Bildirim şiddetini düşürmeyi kullanın"</string>
+ <string name="notification_polite_description" msgid="5497748284893832854">"Kısa süre içinde çok sayıda bildirim aldığınızda cihazınız 2 dakika boyunca sesi kısar ve uyarıları azaltır. Aramalar, alarmlar ve öncelikli görüşmeler bu durumdan etkilenmez. \n\nBildirim şiddeti düşürülürken aldığınız bildirimlere ekranın üst tarafından aşağı doğru çekerek ulaşabilirsiniz."</string>
<string name="notification_polite_work" msgid="8823596456640216391">"İş profillerine uygula"</string>
<string name="notification_polite_work_summary" msgid="5014189280132951378">"İş profili uygulamalarına uygulayın"</string>
<string name="vr_listeners_title" msgid="4960357292472540964">"VR yardımcı hizmetleri"</string>
@@ -3818,7 +3802,9 @@
<string name="zen_mode_apps_priority_apps" msgid="7386196048313716076">"Seçili uygulamalar"</string>
<string name="zen_mode_apps_none_apps" msgid="2493642312793604327">"Yok"</string>
<string name="zen_mode_apps_subtext" msgid="1764211974662012877">"{count,plural,offset:2 =0{Hiçbir uygulama kesintiye neden olamaz}=1{{app_1} kesintiye neden olabilir}=2{{app_1} ve {app_2} kesintiye neden olabilir}=3{{app_1}, {app_2} ve {app_3} kesintiye neden olabilir}other{{app_1}, {app_2} ve # uygulama daha kesintiye neden olabilir}}"</string>
+ <string name="zen_mode_apps_work_app" msgid="8528767938316361588">"<xliff:g id="APP_LABEL">%s</xliff:g> (İş)"</string>
<string name="zen_mode_apps_calculating" msgid="5420121396943539286">"Hesaplanıyor…"</string>
+ <string name="zen_mode_plus_n_items" msgid="6136713354369243421">"+<xliff:g id="NUMBER">%d</xliff:g>"</string>
<string name="zen_mode_bypassing_apps" msgid="625309443389126481">"Uygulamaların geçersiz kılmasına izin ver"</string>
<string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"Kesintiye neden olabilecek uygulamalar"</string>
<string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"Daha fazla uygulama seçin"</string>
@@ -3836,6 +3822,7 @@
<string name="zen_mode_sounds_none" msgid="6557474361948269420">"Hiçbir şey kesintiye neden olamaz"</string>
<string name="zen_mode_people_none" msgid="4613147461974255046">"Hiç kimse kesintiye neden olamaz"</string>
<string name="zen_mode_people_some" msgid="9101872681298810281">"Bazı kişiler kesintiye neden olabilir"</string>
+ <string name="zen_mode_people_repeat_callers" msgid="4499084111069828761">"Tekrar arayanlar araya girebilir"</string>
<string name="zen_mode_people_all" msgid="311036110283015205">"Tüm kişiler kesintiye neden olabilir"</string>
<string name="zen_mode_repeat_callers" msgid="2270356100287792138">"Tekrar arayanlar"</string>
<string name="zen_mode_repeat_callers_title" msgid="8016699240338264781">"Tekrar arayanlara izin ver"</string>
@@ -3855,13 +3842,37 @@
<string name="zen_mode_summary_alarms_only_by_hour" msgid="7400910210950788163">"{count,plural, =1{Saat {time} olana kadar bir saat boyunca yalnızca alarmlar seçeneğine geç}other{Saat {time} olana kadar # saat boyunca yalnızca alarmlar seçeneğine geç}}"</string>
<string name="zen_mode_summary_alarms_only_by_time" msgid="8140619669703968810">"Yalnızca şu saate kadar alarmlara geç: <xliff:g id="FORMATTEDTIME">%1$s</xliff:g>"</string>
<string name="zen_mode_summary_always" msgid="722093064250082317">"Her zaman kes seçeneğine değiştir"</string>
- <!-- no translation found for zen_mode_rename_title (8146882272966214558) -->
+ <string name="zen_mode_rename_title" msgid="8146882272966214558">"Düzenleme modu"</string>
+ <string name="zen_mode_new_custom_title" msgid="321750898430776191">"Mod ekleyin"</string>
+ <string name="zen_mode_new_custom_default_name" msgid="2778307946775085105">"Özel mod"</string>
+ <string name="zen_mode_edit_name_hint" msgid="4584652062167540536">"Mod adı"</string>
+ <string name="zen_mode_trigger_title_schedule_calendar" msgid="9206609438617550331">"Takvim etkinlikleri"</string>
+ <string name="zen_mode_trigger_title_bedtime" msgid="5086070900588489978">"Uyku programı"</string>
+ <string name="zen_mode_trigger_title_driving" msgid="7890990983453164403">"Araç kullanırken"</string>
+ <string name="zen_mode_trigger_title_generic" msgid="601273385119550420">"Uygulamaya bağlı"</string>
+ <string name="zen_mode_trigger_summary_settings_in_app" msgid="4860667191183702601">"<xliff:g id="APP_NAME">%1$s</xliff:g> ayarları ve bilgileri"</string>
+ <string name="zen_mode_trigger_summary_managed_by_app" msgid="8631011868193102098">"<xliff:g id="APP_NAME">%1$s</xliff:g> tarafından yönetiliyor"</string>
+ <string name="zen_mode_confirm_disable_title" msgid="1232297660775719796">"Modu Devre Dışı Bırakın"</string>
+ <string name="zen_mode_confirm_disable_message" msgid="7315541221665718491">"Bu özelliği devre dışı bırakırsanız mod artık beklendiği gibi çalışmaz ve ayarları gizlenir."</string>
+ <string name="zen_mode_action_disable" msgid="3552921561331044881">"Devre dışı bırak"</string>
+ <string name="zen_mode_confirm_enable_title" msgid="5683371335847448595">"Modu Etkinleştirin"</string>
+ <string name="zen_mode_confirm_enable_message" msgid="7017879133260011419">"Bu özelliği etkinleştirirseniz mod, programına göre otomatik olarak etkinleştirilir."</string>
+ <string name="zen_mode_action_enable" msgid="1161480633223176531">"Etkinleştir"</string>
+ <!-- no translation found for zen_mode_blurb_schedule_time (8223898702097484009) -->
<skip />
- <!-- no translation found for zen_mode_new_custom_title (321750898430776191) -->
+ <!-- no translation found for zen_mode_blurb_schedule_calendar (382177907856065945) -->
<skip />
- <!-- no translation found for zen_mode_new_custom_default_name (2778307946775085105) -->
+ <!-- no translation found for zen_mode_blurb_bedtime (6155075956151013457) -->
<skip />
- <!-- no translation found for zen_mode_edit_name_hint (4584652062167540536) -->
+ <!-- no translation found for zen_mode_blurb_driving (1316054379000667305) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_immersive (5884004861848687869) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_theater (2999237960059524225) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_managed (5473921634985032149) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_generic (3041601339807075625) -->
<skip />
<string name="warning_button_text" msgid="1274234338874005639">"Uyarı"</string>
<string name="suggestion_button_close" msgid="6865170855573283759">"Kapat"</string>
@@ -4849,9 +4860,8 @@
<string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"Pil"</string>
<string name="settings_panel_title" msgid="346363079938069215">"Ayarlar Paneli"</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>
+ <!-- no translation found for enable_desktop_mode_on_secondary_display (2609567824593768780) -->
+ <skip />
<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>
@@ -5026,7 +5036,6 @@
<string name="default_active_sim_mobile_data" msgid="6798083892814045301">"mobil veri"</string>
<string name="wifi_scan_notify_message" msgid="1331238142061476869">"Uygulamalar ve hizmetler, cihaz deneyimini iyileştirmek için Kablosuz özelliği kapalı bile olsa kablosuz ağları herhangi bir zamanda tarayabilir. Bu özellik, örneğin konuma dayalı özellikleri ve hizmetleri iyileştirmek için kullanılabilir. Bunu kablosuz ağ taraması ayarlarından değiştirebilirsiniz."</string>
<string name="wifi_scan_change" msgid="8438320311511852918">"Değiştir"</string>
- <string name="preference_summary_default_combination" msgid="4643585915107796253">"<xliff:g id="STATE">%1$s</xliff:g> / <xliff:g id="NETWORKMODE">%2$s</xliff:g>"</string>
<string name="mobile_data_connection_active" msgid="2422223108911581552">"Bağlı"</string>
<string name="mobile_data_temp_connection_active" msgid="3430470299756236413">"Geçici olarak bağlandı"</string>
<string name="mobile_data_temp_using" msgid="5211002380149434155">"Geçici olarak <xliff:g id="SUBNAME">%1$s</xliff:g> kullanılıyor"</string>
@@ -5172,9 +5181,11 @@
<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="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_enable_freeform_support" msgid="3697462756493543645">"Serbest biçimli desteğin etkinleştirilmesi için yeniden başlatma gerekir."</string>
+ <!-- no translation found for reboot_dialog_override_desktop_mode (7480950772574354130) -->
+ <skip />
+ <!-- no translation found for reboot_dialog_enable_desktop_mode_on_secondary_display (1153621881052401924) -->
+ <skip />
<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>
@@ -5292,10 +5303,8 @@
<string name="show_captions_enabled" msgid="7089043007924626">"Açık"</string>
<string name="live_caption_disabled" msgid="3562035026547887366">"Kapalı"</string>
<string name="live_caption_enabled" msgid="5269360946200718949">"Açık"</string>
- <!-- no translation found for audio_seek_bar_state_left_first (8814986910920838972) -->
- <skip />
- <!-- no translation found for audio_seek_bar_state_right_first (1999368979633398876) -->
- <skip />
+ <string name="audio_seek_bar_state_left_first" msgid="8814986910920838972">"Ses %%%1$d sol, %%%2$d sağ"</string>
+ <string name="audio_seek_bar_state_right_first" msgid="1999368979633398876">"Ses %%%1$d sağ, %%%2$d sol"</string>
<string name="about_phone_device_name_warning" msgid="3243226572404472381">"Yüklediğiniz uygulamalar, cihazınızın adını görebilecek. Cihazınızın adı ayrıca Bluetooth cihazlara bağlandığınızda, kablosuz ağa bağlandığınızda veya kablosuz hotspot oluşturduğunuzda diğer kişiler tarafından görülecektir."</string>
<string name="grammatical_gender_title" msgid="8584242850477270828">"Dil bilgisine uygun cinsiyet"</string>
<string name="grammatical_gender_dialog_title" msgid="8754048592099871587">"Dil bilgisine uygun cinsiyet seçin"</string>
@@ -5407,5 +5416,6 @@
<string name="audio_streams_main_page_password_dialog_join_button" msgid="2967747276379153408">"Yayını dinle"</string>
<string name="audio_streams_main_page_qr_code_scanner_summary" msgid="5312980105735143360">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> adlı cihazda dinlemek için ses yayını QR kodunu tarayın"</string>
<string name="audio_streams_main_page_password_dialog_cannot_edit" msgid="9020898619297520153">"Şifre, paylaşım sırasında düzenlenemez. Şifreyi değiştirmek için önce ses paylaşımını kapatın."</string>
+ <string name="audio_streams_qr_code_scanner_label" msgid="8799703301071378034">"QR kodu tarayıcı"</string>
<string name="homepage_search" msgid="6759334912284663559">"Arama Ayarları"</string>
</resources>
diff --git a/res/values-uk/strings.xml b/res/values-uk/strings.xml
index c5e8109..0d5d3f2 100644
--- a/res/values-uk/strings.xml
+++ b/res/values-uk/strings.xml
@@ -41,6 +41,8 @@
<string name="radioInfo_data_suspended" msgid="2001254415431299603">"Призупинено"</string>
<string name="radioInfo_unknown" msgid="2892562356748600367">"Невідомо"</string>
<string name="preview_pager_content_description" msgid="3762247188224576303">"Переглянути"</string>
+ <!-- no translation found for qr_code_content_description (1852208464419291347) -->
+ <skip />
<string name="font_size_make_smaller_desc" msgid="4978038055549590140">"Зменшити"</string>
<string name="font_size_make_larger_desc" msgid="5583046033381722247">"Збільшити"</string>
<string name="stay_awake_on_fold_title" msgid="6590454679898134221">"Завжди"</string>
@@ -283,7 +285,7 @@
<string name="location_settings_summary_location_off" msgid="4797932754681162262">"Вимкнено"</string>
<string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{Увімкнено / # додаток має доступ до геоданих}one{Увімкнено / # додаток має доступ до геоданих}few{Увімкнено / # додатки мають доступ до геоданих}many{Увімкнено / # додатків мають доступ до геоданих}other{Увімкнено / # додатка мають доступ до геоданих}}"</string>
<string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"Завантаження…"</string>
- <string name="location_settings_footer_general" msgid="1040507068701188821">"Додатки з дозволами на доступ до пристроїв поблизу можуть визначати відносне розташування підключених пристроїв."</string>
+ <string name="location_settings_footer_general" msgid="3447585552176173502">"Додатки з дозволами на доступ до пристроїв поблизу можуть визначати відносне розташування підключених пристроїв."</string>
<string name="location_settings_footer_location_off" msgid="8568995909147566720">"Доступ до геоданих вимкнено для додатків і сервісів. Однак дані про місцезнаходження вашого пристрою можуть надсилатися в екстрених випадках, якщо ви зателефонуєте або надішлете SMS на екстрений номер."</string>
<string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Докладніше про доступ до геоданих"</string>
<string name="location_settings_tooltip_text_for_chrome" msgid="5781821709250544575">"Щоб змінити налаштування, виберіть \"Налаштування ChromeOS\" > \"Конфіденційність і безпека\" > \"Налаштування конфіденційності\" > \"Доступ до геоданих\""</string>
@@ -383,8 +385,8 @@
<string name="security_settings_fingerprint_v2_enroll_introduction_footer_title_2" msgid="2580899232734177771">"Як це працює"</string>
<string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_2" msgid="5909924864816776516">"Функція розблокування відбитком пальця створює унікальну модель вашого відбитка, щоб підтверджувати вашу особу. Для цього під час налаштування потрібно створити зображення свого відбитка пальця в різних положеннях."</string>
<string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_consent_2" msgid="3493356605815124807">"Функція розблокування відбитком пальця створює унікальну модель відбитка вашої дитини, щоб підтверджувати її особу. Для цього дитині потрібно зберегти зображення свого відбитка пальця в різних положеннях."</string>
- <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_6" msgid="5314031490467481499">"Рекомендуємо використовувати захисну плівку чи скло, що мають позначку Made for Google. Якщо вони не матимуть такої позначки, відбиток пальця може не розпізнаватися."</string>
- <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_consent_6" msgid="3563942520716110478">"Рекомендуємо використовувати захисну плівку чи скло, що мають позначку \"Створено для Google\". Якщо вони не матимуть такої позначки, відбиток пальця дитини може не розпізнаватися."</string>
+ <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_6" msgid="5314031490467481499">"Рекомендуємо використовувати захисну плівку чи скло, що мають позначку Made for Google. Пристрої з іншими захисними плівками чи склом можуть не розпізнавати відбиток пальця."</string>
+ <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_consent_6" msgid="3563942520716110478">"Рекомендуємо використовувати захисну плівку чи скло, що мають позначку Made for Google. Пристрої з іншими захисними плівками чи склом можуть не розпізнавати відбиток пальця."</string>
<string name="security_settings_fingerprint_v2_enroll_introduction_message_learn_more" msgid="5856010507790137793"></string>
<string name="security_settings_activeunlock_preference_title" msgid="4257580421087062228">"Розблокування годинником"</string>
<string name="biometric_settings_intro_with_activeunlock" msgid="5032953826653108646">"Якщо ви налаштуєте розблокування за допомогою фейс-контролю й відбитком пальця, телефон запитуватиме ваш відбиток пальця, коли темно або у вас на обличчі маска.\n\nРозблокування годинником – ще один зручний спосіб розблоковувати цей телефон (наприклад, коли у вас мокрі руки чи пристрій не може розпізнати ваше обличчя)."</string>
@@ -850,7 +852,6 @@
<string name="nfc_reboot_dialog_title" msgid="2033983438635768169">"Перезапустити пристрій?"</string>
<string name="nfc_reboot_dialog_message" msgid="4929353168157966992">"Ведення детальних журналів NFC призначене лише для розробки. Додаткові дані NFC включаються у звіти про помилки, які можуть містити приватну інформацію. Щоб змінити це налаштування, перезапустіть пристрій."</string>
<string name="nfc_reboot_dialog_confirm" msgid="4769763632008584567">"Перезапустити"</string>
- <string name="keywords_external_display" msgid="4181375057920134909">"дублювати, зовнішній дисплей, підключений дисплей, usb-дисплей, роздільна здатність, обертання"</string>
<string name="external_display_on" msgid="2560104443500154333">"Увімкнено"</string>
<string name="external_display_off" msgid="5634413756025351374">"Вимкнено"</string>
<string name="external_display_settings_title" msgid="6256884595821605779">"Зовнішній дисплей"</string>
@@ -1918,6 +1919,8 @@
<string name="slow_keys_summary" msgid="1784371292745423292">"Установлює проміжок часу, через який клавіша реагує на натискання: <xliff:g id="SLOW_KEYS_THRESHOLD">%1$d</xliff:g> мс"</string>
<string name="sticky_keys" msgid="7317317044898161747">"Залипання клавіш"</string>
<string name="sticky_keys_summary" msgid="1844953803625480623">"Натискайте клавіші по одній, замість того щоб утримувати їх одночасно"</string>
+ <string name="mouse_keys" msgid="6237254627808525540">"Клавіші для керування мишею"</string>
+ <string name="mouse_keys_summary" msgid="2396247040177734245">"Використовувати фізичну клавіатуру для керування мишею."</string>
<string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"Комбінації клавіш"</string>
<string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"Показати список комбінацій клавіш"</string>
<string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"Клавіатури та інструменти робочого профілю"</string>
@@ -1942,14 +1945,10 @@
<string name="pointer_fill_style_yellow_button" msgid="5025969961559379024">"Змінити стиль курсора на жовтий"</string>
<string name="pointer_fill_style_pink_button" msgid="4106218142489635673">"Змінити стиль курсора на рожевий"</string>
<string name="pointer_fill_style_blue_button" msgid="5594958078854032785">"Змінити стиль курсора на синій"</string>
- <!-- no translation found for pointer_stroke_style (1886986630216050665) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_white (673686194443825383) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_black (4655806167067437330) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_none (8953927511729800247) -->
- <skip />
+ <string name="pointer_stroke_style" msgid="1886986630216050665">"Стиль накреслення вказівника"</string>
+ <string name="pointer_stroke_style_name_white" msgid="673686194443825383">"Білий"</string>
+ <string name="pointer_stroke_style_name_black" msgid="4655806167067437330">"Чорний"</string>
+ <string name="pointer_stroke_style_name_none" msgid="8953927511729800247">"Немає"</string>
<string name="trackpad_touch_gesture" msgid="8641725062131922497">"Жести сенсорної панелі: докладніше"</string>
<string name="keywords_touchpad" msgid="8159846254066666032">"сенсорна панель, трекпад, миша, курсор, прокрутити, гортати, права кнопка, натиснути, вказівник"</string>
<string name="keywords_trackpad_bottom_right_tap" msgid="1285062446073929305">"натиснути правою кнопкою миші, натиснути"</string>
@@ -2179,8 +2178,6 @@
<string name="accessibility_shortcut_edit_dialog_summary_floating_button" msgid="6266489864614886247">"Натисніть плаваючу кнопку"</string>
<string name="accessibility_shortcut_edit_dialog_title_software_by_gesture" msgid="4775049370625630546">"Жест функцій доступності"</string>
<string name="accessibility_shortcut_edit_dialog_summary_software" msgid="8315934725362849788">"Натисніть кнопку функцій доступності <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g> унизу екрана. Щоб переключитися між функціями, натисніть і утримуйте цю кнопку."</string>
- <string name="accessibility_shortcut_edit_dialog_summary_software_gesture" msgid="8292555254353761635">"Проведіть двома пальцями знизу вгору по екрану.\n\nЩоб переключитися між функціями, проведіть двома пальцями вгору й утримуйте екран."</string>
- <string name="accessibility_shortcut_edit_dialog_summary_software_gesture_talkback" msgid="84483464524360845">"Провести по екрану знизу вгору трьома пальцями.\n\nЩоб переключитися між функціями, проведіть по екрану знизу вгору трьома пальцями й утримуйте їх."</string>
<string name="accessibility_shortcut_edit_dialog_summary_gesture" msgid="2081123009255579884">"{count,plural, =1{Проведіть пальцем угору від низу екрана. Щоб переключитися між функціями, проведіть пальцем угору й утримуйте його.}one{Проведіть # пальцем угору від низу екрана. Щоб переключитися між функціями, проведіть по екрану знизу вгору # пальцем і утримуйте їх.}few{Проведіть # пальцями вгору від низу екрана. Щоб переключитися між функціями, проведіть по екрану знизу вгору # пальцями й утримуйте їх.}many{Проведіть # пальцями вгору від низу екрана. Щоб переключитися між функціями, проведіть по екрану знизу вгору # пальцями й утримуйте їх.}other{Проведіть # пальця вгору від низу екрана. Щоб переключитися між функціями, проведіть по екрану знизу вгору # пальця й утримуйте їх.}}"</string>
<string name="accessibility_shortcut_edit_dialog_summary_software_floating" msgid="4459254227203203324"><annotation id="link">"Інші опції"</annotation></string>
<string name="footer_learn_more_content_description" msgid="8843798273152131341">"Докладніше про сервіс <xliff:g id="SERVICE">%1$s</xliff:g>"</string>
@@ -2191,16 +2188,12 @@
<string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="844089763968552142">"Клавіші гучності"</string>
<string name="accessibility_shortcut_hardware_keyword" msgid="2483152542320987022">"клавіші гучності"</string>
<string name="accessibility_shortcut_edit_dialog_summary_hardware" msgid="2503134386397991634">"Утримуйте обидві клавіші гучності"</string>
- <string name="accessibility_shortcut_edit_dialog_title_two_finger_double_tap" msgid="2271778556854020996">"Двічі торкніться екрана двома пальцями"</string>
<string name="accessibility_shortcut_edit_screen_title_two_finger_double_tap" msgid="8952595692906527694">"Двічі торкнутися %1$d пальцями"</string>
<string name="accessibility_shortcut_edit_screen_summary_two_finger_double_tap" msgid="385404127425496362">"Швидко двічі торкніться екрана %1$d пальцями"</string>
<string name="accessibility_shortcut_edit_screen_title_triple_tap" msgid="3314488747597058942">"Тричі торкнутися"</string>
<string name="accessibility_shortcut_edit_screen_summary_triple_tap" msgid="4839204951599629871">"Швидко торкніться екрана %1$d рази. Це може сповільнити роботу пристрою."</string>
<string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="6271718715836961167">"двічі торкнутися %1$d пальцями"</string>
- <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"Швидко торкніться екрана двома пальцями стільки разів: {0,number,integer}"</string>
- <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"Тричі торкнутися екрана"</string>
<string name="accessibility_shortcut_triple_tap_keyword" msgid="5359347130888464334">"тричі торкнутися"</string>
- <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"Швидко натисніть екран стільки разів: {0,number,integer}. Призначена кнопка чи відповідний жест може сповільнити роботу пристрою."</string>
<string name="accessibility_shortcut_edit_dialog_title_advance" msgid="4567868630655591506">"Додатково"</string>
<string name="accessibility_screen_magnification_navbar_configuration_warning" msgid="266736851606791552">"Для кнопки спеціальних можливостей вибрано службу \"<xliff:g id="SERVICE">%1$s</xliff:g>\". Щоб змінити на збільшення, натисніть і втримуйте кнопку спеціальних можливостей, а потім виберіть \"Збільшення\"."</string>
<string name="accessibility_screen_magnification_gesture_navigation_warning" msgid="991017769735632046">"Для цього жесту спеціальних можливостей вибрана команда \"<xliff:g id="SERVICE">%1$s</xliff:g>\". Щоб збільшити масштаб, проведіть двома пальцями знизу вгору і втримуйте їх на екрані. Потім виберіть збільшення."</string>
@@ -2369,6 +2362,7 @@
<string name="daltonizer_mode_tritanomaly_title" msgid="2278786218762602022">"Синій – жовтий"</string>
<string name="daltonizer_mode_grayscale_title" msgid="152005391387952588">"Відтінки сірого"</string>
<string name="daltonizer_saturation_title" msgid="2999486412114963068">"Інтенсивність"</string>
+ <string name="daltonizer_saturation_unavailable_summary" msgid="8319753055567798775">"Недоступно для режиму \"Відтінки сірого\" і якщо вимкнено корекцію кольору"</string>
<string name="daltonizer_mode_deuteranomaly_summary" msgid="2117727423019598455">"Слабкість сприйняття зеленого, дейтераномалія"</string>
<string name="daltonizer_mode_protanomaly_summary" msgid="4617032854982040748">"Слабкість сприйняття червоного, протаномалія"</string>
<string name="daltonizer_mode_tritanomaly_summary" msgid="2428218320118180070">"Тританомалія"</string>
@@ -2418,15 +2412,8 @@
<string name="color_cyan" msgid="4341758639597035927">"Блакитний"</string>
<string name="color_yellow" msgid="5957551912912679058">"Жовтий"</string>
<string name="color_magenta" msgid="8943538189219528423">"Пурпуровий"</string>
- <string name="enable_service_title" msgid="7231533866953706788">"Надати сервісу \"<xliff:g id="SERVICE">%1$s</xliff:g>\" повний доступ до вашого пристрою?"</string>
<string name="capabilities_list_title" msgid="1225853611983394386">"Службі <xliff:g id="SERVICE">%1$s</xliff:g> потрібно:"</string>
<string name="touch_filtered_warning" msgid="4225815157460318241">"Вашу відповідь не видно в Налаштуваннях, оскільки інший додаток загороджує запит на дозвіл."</string>
- <string name="accessibility_service_warning" msgid="6779187188736432618">"Сервіс <xliff:g id="SERVICE">%1$s</xliff:g> просить повний доступ до цього пристрою. Він може переглядати вміст на екрані й виконувати дії від імені користувачів з особливими потребами. Такий рівень доступу не призначений для більшості додатків."</string>
- <string name="accessibility_service_warning_description" msgid="6573203795976134751">"Повний доступ потрібен додаткам, які підтримують функції доступності, але його не варто відкривати для більшості інших додатків."</string>
- <string name="accessibility_service_screen_control_title" msgid="324795030658109870">"Перегляд і контроль екрана"</string>
- <string name="accessibility_service_screen_control_description" msgid="8431940515157990426">"Цей сервіс може переглядати всі дані на екрані й показувати контент поверх інших додатків."</string>
- <string name="accessibility_service_action_perform_title" msgid="1449360056585337833">"Перегляд і виконання дій"</string>
- <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"Цей сервіс може відстежувати вашу взаємодію з додатком чи апаратним датчиком, а також взаємодіяти з додатками від вашого імені."</string>
<string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Дозволити"</string>
<string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Заборонити"</string>
<string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Вимкнути"</string>
@@ -3368,10 +3355,8 @@
<string name="zen_mode_automation_settings_title" msgid="3709324184191870926">"Розклад"</string>
<string name="zen_mode_delete_automatic_rules" msgid="5020468289267191765">"Видалити розклади"</string>
<string name="zen_mode_schedule_delete" msgid="5383420576833765114">"Видалити"</string>
- <!-- no translation found for zen_mode_menu_rename_mode (4681802125016390837) -->
- <skip />
- <!-- no translation found for zen_mode_menu_delete_mode (5380084696402157428) -->
- <skip />
+ <string name="zen_mode_menu_rename_mode" msgid="4681802125016390837">"Перейменувати"</string>
+ <string name="zen_mode_menu_delete_mode" msgid="5380084696402157428">"Видалити"</string>
<string name="zen_mode_delete_mode_confirmation" msgid="7594340592051947392">"Видалити режим \"<xliff:g id="MODE">%1$s</xliff:g>\"?"</string>
<string name="zen_mode_rule_name_edit" msgid="1053237022416700481">"Редагувати"</string>
<string name="zen_mode_automation_settings_page_title" msgid="6217433860514433311">"Розклад"</string>
@@ -3395,8 +3380,7 @@
<string name="zen_mode_visual_signals_settings_subtitle" msgid="7433077540895876672">"Дозволити візуальні сигнали"</string>
<string name="mode_interruption_filter_title" msgid="3343846700214702347">"Не відволікайтесь"</string>
<string name="mode_device_effects_title" msgid="5857008332618433744">"Додаткові дії"</string>
- <!-- no translation found for modes_sound_summary_off (6972648204528227879) -->
- <skip />
+ <string name="modes_sound_summary_off" msgid="6972648204528227879">"{count,plural, =0{Вимкнено}=1{Вимкнено / 1 режим може вмикатись автоматично}one{Вимкнено / # режим може вмикатись автоматично}few{Вимкнено / # режими можуть вмикатись автоматично}many{Вимкнено / # режимів можуть вмикатись автоматично}other{Вимкнено / # режиму можуть вмикатись автоматично}}"</string>
<string name="mode_display_settings_title" msgid="8132825978346535472">"Налаштування дисплея"</string>
<string name="mode_display_options_section" msgid="5151597748243866532">"Параметри відображення"</string>
<string name="mode_grayscale_title" msgid="6027553257331235461">"Відтінки сірого"</string>
@@ -3659,9 +3643,9 @@
<string name="notif_listener_not_migrated" msgid="6265206376374278226">"Цей додаток не підтримує розширені налаштування"</string>
<string name="notif_listener_more_settings" msgid="1348409392307208921">"Інші налаштування"</string>
<string name="notif_listener_more_settings_desc" msgid="7995492074281663658">"Інші налаштування доступні в цьому додатку"</string>
- <string name="notification_polite_title" msgid="4737150709382859870">"Адаптивні сповіщення"</string>
- <string name="notification_polite_main_control_title" msgid="7267191551379543859">"Використовувати адаптивні сповіщення"</string>
- <string name="notification_polite_description" msgid="7749280535620291610">"Коли ви отримуєте багато повідомлень за короткий проміжок часу, телефон знижує гучність і зменшує кількість спливаючих вікон на екрані на період до двох хвилин. Вібрація, звук і показ дзвінків, будильників та важливих розмов не зміняться, а всі сповіщення можна буде переглянути, пpовівши пальцем зверху вниз по екрану."</string>
+ <string name="notification_polite_title" msgid="6121016426991791557">"Зниження гучності сповіщень"</string>
+ <string name="notification_polite_main_control_title" msgid="5812529809151927149">"Використовувати зниження гучності сповіщень"</string>
+ <string name="notification_polite_description" msgid="5497748284893832854">"Якщо ви отримаєте багато повідомлень за короткий проміжок часу, пристрій знизить гучність і зменшить кількість сповіщень на період до 2 хвилин. Звук дзвінків, будильників і сповіщень щодо важливих розмов не зміниться. \n\nСповіщення, отримані протягом цього періоду, можна буде переглянути, пpовівши пальцем униз від верхнього краю екрана."</string>
<string name="notification_polite_work" msgid="8823596456640216391">"Застосувати до робочих профілів"</string>
<string name="notification_polite_work_summary" msgid="5014189280132951378">"Застосувати до додатків робочого профілю"</string>
<string name="vr_listeners_title" msgid="4960357292472540964">"Допоміжні VR-сервіси"</string>
@@ -3818,7 +3802,9 @@
<string name="zen_mode_apps_priority_apps" msgid="7386196048313716076">"Вибрані додатки"</string>
<string name="zen_mode_apps_none_apps" msgid="2493642312793604327">"Жодний"</string>
<string name="zen_mode_apps_subtext" msgid="1764211974662012877">"{count,plural,offset:2 =0{Додатки не можуть переривати}=1{Додаток {app_1} може переривати}=2{Додатки {app_1} і {app_2} можуть переривати}=3{Додатки {app_1}, {app_2} і {app_3} можуть переривати}one{Додатки {app_1}, {app_2} і ще # можуть переривати}few{Додатки {app_1}, {app_2} і ще # можуть переривати}many{Додатки {app_1}, {app_2} і ще # можуть переривати}other{Додатки {app_1}, {app_2} і ще # можуть переривати}}"</string>
+ <string name="zen_mode_apps_work_app" msgid="8528767938316361588">"<xliff:g id="APP_LABEL">%s</xliff:g> (робочий)"</string>
<string name="zen_mode_apps_calculating" msgid="5420121396943539286">"Обчислення…"</string>
+ <string name="zen_mode_plus_n_items" msgid="6136713354369243421">"+<xliff:g id="NUMBER">%d</xliff:g>"</string>
<string name="zen_mode_bypassing_apps" msgid="625309443389126481">"Дозволити додаткам замінювати режим \"Не турбувати\""</string>
<string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"Додатки, які можуть переривати"</string>
<string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"Виберіть інші додатки"</string>
@@ -3836,6 +3822,7 @@
<string name="zen_mode_sounds_none" msgid="6557474361948269420">"Ніщо не може переривати"</string>
<string name="zen_mode_people_none" msgid="4613147461974255046">"Ніхто не може переривати"</string>
<string name="zen_mode_people_some" msgid="9101872681298810281">"Деякі люди можуть переривати"</string>
+ <string name="zen_mode_people_repeat_callers" msgid="4499084111069828761">"Повторні вхідні виклики можуть переривати"</string>
<string name="zen_mode_people_all" msgid="311036110283015205">"Усі люди можуть переривати"</string>
<string name="zen_mode_repeat_callers" msgid="2270356100287792138">"Повторні вхідні виклики"</string>
<string name="zen_mode_repeat_callers_title" msgid="8016699240338264781">"Дозволити повторні дзвінки"</string>
@@ -3855,13 +3842,37 @@
<string name="zen_mode_summary_alarms_only_by_hour" msgid="7400910210950788163">"{count,plural, =1{Активувати режим \"Лише будильник\" на одну годину до {time}}one{Активувати режим \"Лише будильник\" на # годину до {time}}few{Активувати режим \"Лише будильник\" на # години до {time}}many{Активувати режим \"Лише будильник\" на # годин до {time}}other{Активувати режим \"Лише будильник\" на # години до {time}}}"</string>
<string name="zen_mode_summary_alarms_only_by_time" msgid="8140619669703968810">"Активувати режим \"Лише будильник\" до <xliff:g id="FORMATTEDTIME">%1$s</xliff:g>"</string>
<string name="zen_mode_summary_always" msgid="722093064250082317">"Вибрати опцію \"Завжди надсилати\""</string>
- <!-- no translation found for zen_mode_rename_title (8146882272966214558) -->
+ <string name="zen_mode_rename_title" msgid="8146882272966214558">"Редагувати режим"</string>
+ <string name="zen_mode_new_custom_title" msgid="321750898430776191">"Додати режим"</string>
+ <string name="zen_mode_new_custom_default_name" msgid="2778307946775085105">"Спеціальний режим"</string>
+ <string name="zen_mode_edit_name_hint" msgid="4584652062167540536">"Назва режиму"</string>
+ <string name="zen_mode_trigger_title_schedule_calendar" msgid="9206609438617550331">"Події в календарі"</string>
+ <string name="zen_mode_trigger_title_bedtime" msgid="5086070900588489978">"Розклад сну"</string>
+ <string name="zen_mode_trigger_title_driving" msgid="7890990983453164403">"За кермом"</string>
+ <string name="zen_mode_trigger_title_generic" msgid="601273385119550420">"Зв’язані з додатком"</string>
+ <string name="zen_mode_trigger_summary_settings_in_app" msgid="4860667191183702601">"Інформація і налаштування в додатку <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+ <string name="zen_mode_trigger_summary_managed_by_app" msgid="8631011868193102098">"Керує додаток <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+ <string name="zen_mode_confirm_disable_title" msgid="1232297660775719796">"Вимкнути режим"</string>
+ <string name="zen_mode_confirm_disable_message" msgid="7315541221665718491">"Якщо вимкнути цю функцію, режим більше не працюватиме належним чином, а його налаштування буде приховано."</string>
+ <string name="zen_mode_action_disable" msgid="3552921561331044881">"Вимкнути"</string>
+ <string name="zen_mode_confirm_enable_title" msgid="5683371335847448595">"Увімкнути режим"</string>
+ <string name="zen_mode_confirm_enable_message" msgid="7017879133260011419">"Якщо ввімкнути цю функцію, режим активуватиметься автоматично відповідно до розкладу."</string>
+ <string name="zen_mode_action_enable" msgid="1161480633223176531">"Увімкнути"</string>
+ <!-- no translation found for zen_mode_blurb_schedule_time (8223898702097484009) -->
<skip />
- <!-- no translation found for zen_mode_new_custom_title (321750898430776191) -->
+ <!-- no translation found for zen_mode_blurb_schedule_calendar (382177907856065945) -->
<skip />
- <!-- no translation found for zen_mode_new_custom_default_name (2778307946775085105) -->
+ <!-- no translation found for zen_mode_blurb_bedtime (6155075956151013457) -->
<skip />
- <!-- no translation found for zen_mode_edit_name_hint (4584652062167540536) -->
+ <!-- no translation found for zen_mode_blurb_driving (1316054379000667305) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_immersive (5884004861848687869) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_theater (2999237960059524225) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_managed (5473921634985032149) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_generic (3041601339807075625) -->
<skip />
<string name="warning_button_text" msgid="1274234338874005639">"Застереження"</string>
<string name="suggestion_button_close" msgid="6865170855573283759">"Закрити"</string>
@@ -4849,9 +4860,8 @@
<string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"Акумулятор"</string>
<string name="settings_panel_title" msgid="346363079938069215">"Панель налаштувань"</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>
+ <!-- no translation found for enable_desktop_mode_on_secondary_display (2609567824593768780) -->
+ <skip />
<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>
@@ -5028,7 +5038,6 @@
<string name="default_active_sim_mobile_data" msgid="6798083892814045301">"мобільний Інтернет"</string>
<string name="wifi_scan_notify_message" msgid="1331238142061476869">"Щоб користуватися пристроєм було зручніше, додатки й сервіси можуть шукати бездротові мережі, навіть якщо Wi-Fi вимкнено. Це допомагає вдосконалити роботу функцій і сервісів, які використовують дані про місцезнаходження. Це налаштування можна змінити в параметрах пошуку мереж Wi-Fi."</string>
<string name="wifi_scan_change" msgid="8438320311511852918">"Змінити"</string>
- <string name="preference_summary_default_combination" msgid="4643585915107796253">"<xliff:g id="STATE">%1$s</xliff:g>/<xliff:g id="NETWORKMODE">%2$s</xliff:g>"</string>
<string name="mobile_data_connection_active" msgid="2422223108911581552">"Підключено"</string>
<string name="mobile_data_temp_connection_active" msgid="3430470299756236413">"Тимчасово з’єднано"</string>
<string name="mobile_data_temp_using" msgid="5211002380149434155">"Тимчасово використовується <xliff:g id="SUBNAME">%1$s</xliff:g>"</string>
@@ -5174,9 +5183,11 @@
<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="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_enable_freeform_support" msgid="3697462756493543645">"Щоб увімкнути підтримку вікон змінного розміру, перезапустіть пристрій."</string>
+ <!-- no translation found for reboot_dialog_override_desktop_mode (7480950772574354130) -->
+ <skip />
+ <!-- no translation found for reboot_dialog_enable_desktop_mode_on_secondary_display (1153621881052401924) -->
+ <skip />
<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>
@@ -5294,10 +5305,8 @@
<string name="show_captions_enabled" msgid="7089043007924626">"Увімкнено"</string>
<string name="live_caption_disabled" msgid="3562035026547887366">"Вимкнено"</string>
<string name="live_caption_enabled" msgid="5269360946200718949">"Увімкнено"</string>
- <!-- no translation found for audio_seek_bar_state_left_first (8814986910920838972) -->
- <skip />
- <!-- no translation found for audio_seek_bar_state_right_first (1999368979633398876) -->
- <skip />
+ <string name="audio_seek_bar_state_left_first" msgid="8814986910920838972">"Аудіо: %1$d%% ліворуч, %2$d%% праворуч"</string>
+ <string name="audio_seek_bar_state_right_first" msgid="1999368979633398876">"Аудіо: %1$d%% праворуч, %2$d%% ліворуч"</string>
<string name="about_phone_device_name_warning" msgid="3243226572404472381">"Назва пристрою відображається в установлених додатках. Її також можуть бачити інші користувачі, коли ви підключаєтеся до пристроїв із Bluetooth чи мережі Wi-Fi або налаштовуєте точку доступу Wi-Fi."</string>
<string name="grammatical_gender_title" msgid="8584242850477270828">"Граматичний рід"</string>
<string name="grammatical_gender_dialog_title" msgid="8754048592099871587">"Виберіть граматичний рід"</string>
@@ -5409,5 +5418,6 @@
<string name="audio_streams_main_page_password_dialog_join_button" msgid="2967747276379153408">"Слухати потокове аудіо"</string>
<string name="audio_streams_main_page_qr_code_scanner_summary" msgid="5312980105735143360">"Відскануйте QR-код потокового аудіо, щоб слухати на пристрої \"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\""</string>
<string name="audio_streams_main_page_password_dialog_cannot_edit" msgid="9020898619297520153">"Неможливо змінити пароль під час надсилання. Щоб змінити пароль, спершу вимкніть надсилання аудіо."</string>
+ <string name="audio_streams_qr_code_scanner_label" msgid="8799703301071378034">"Сканер QR-коду"</string>
<string name="homepage_search" msgid="6759334912284663559">"Шукати в налаштуваннях"</string>
</resources>
diff --git a/res/values-ur/strings.xml b/res/values-ur/strings.xml
index 0c8d2e6..d3331da 100644
--- a/res/values-ur/strings.xml
+++ b/res/values-ur/strings.xml
@@ -41,6 +41,8 @@
<string name="radioInfo_data_suspended" msgid="2001254415431299603">"معطل شدہ"</string>
<string name="radioInfo_unknown" msgid="2892562356748600367">"نامعلوم"</string>
<string name="preview_pager_content_description" msgid="3762247188224576303">"پیش منظر"</string>
+ <!-- no translation found for qr_code_content_description (1852208464419291347) -->
+ <skip />
<string name="font_size_make_smaller_desc" msgid="4978038055549590140">"چھوٹا کریں"</string>
<string name="font_size_make_larger_desc" msgid="5583046033381722247">"بڑا کریں"</string>
<string name="stay_awake_on_fold_title" msgid="6590454679898134221">"ہمیشہ"</string>
@@ -283,7 +285,7 @@
<string name="location_settings_summary_location_off" msgid="4797932754681162262">"آف ہے"</string>
<string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{آن ہے / # ایپ کو مقام تک رسائی حاصل ہے}other{آن ہے / # ایپس کو مقام تک رسائی حاصل ہے}}"</string>
<string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"لوڈ ہو رہی ہے…"</string>
- <string name="location_settings_footer_general" msgid="1040507068701188821">"قریبی آلات کی اجازت والی ایپس منسلک آلات کی متعلقہ پوزیشن کا تعین کر سکتی ہیں۔"</string>
+ <string name="location_settings_footer_general" msgid="3447585552176173502">"قریبی آلات کی اجازت والی ایپس منسلک آلات کی متعلقہ پوزیشن کا تعین کر سکتی ہیں۔"</string>
<string name="location_settings_footer_location_off" msgid="8568995909147566720">"ایپس اور سروسز کے لیے مقام تک رسائی آف ہے۔ آپ کے ایمرجنسی نمبر پر کال کرنے یا ٹیکسٹ پیغام بھیجنے پر بھی ایمرجنسی مدد فراہم کنندگان کو آپ کے آلے کا مقام بھیجا جا سکتا ہے۔"</string>
<string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"مقام کی ترتیبات کے بارے میں مزید جانیں"</string>
<string name="location_settings_tooltip_text_for_chrome" msgid="5781821709250544575">"تبدیل کرنے کے لیے، ChromeOS کی ترتیبات > رازداری اور سیکیورٹی > رازداری سے متعلق کنٹرولز > مقام تک رسائی پر جائیں"</string>
@@ -850,7 +852,6 @@
<string name="nfc_reboot_dialog_title" msgid="2033983438635768169">"آلہ ری اسٹارٹ کریں؟"</string>
<string name="nfc_reboot_dialog_message" msgid="4929353168157966992">"تفصیلی NFC لاگنگ صرف ڈویلپمنٹ مقاصد کے لیے ہے۔ اضافی NFC ڈیٹا بگ رپورٹس میں شامل کیا جاتا ہے جس میں نجی معلومات شامل ہو سکتی ہیں۔ اس ترتیب کو تبدیل کرنے کے لیے اپنا آلہ ری اسٹارٹ کریں۔"</string>
<string name="nfc_reboot_dialog_confirm" msgid="4769763632008584567">"ری اسٹارٹ کریں"</string>
- <string name="keywords_external_display" msgid="4181375057920134909">"مرر، بیرونی ڈسپلے، منسلک ڈسپلے، usb ڈسپلے، ریزولیوشن، گھمانا"</string>
<string name="external_display_on" msgid="2560104443500154333">"آن ہے"</string>
<string name="external_display_off" msgid="5634413756025351374">"آف ہے"</string>
<string name="external_display_settings_title" msgid="6256884595821605779">"بیرونی ڈسپلے"</string>
@@ -1918,6 +1919,8 @@
<string name="slow_keys_summary" msgid="1784371292745423292">"کسی کلید کے دبانے پر اس کے فعال ہونے میں لگنے والے وقت کو <xliff:g id="SLOW_KEYS_THRESHOLD">%1$d</xliff:g> ms میں ایڈجسٹ کرتا ہے"</string>
<string name="sticky_keys" msgid="7317317044898161747">"دبی رہنے والی کلیدیں"</string>
<string name="sticky_keys_summary" msgid="1844953803625480623">"کلیدوں کو ایک ساتھ نیچے کی طرف پکڑے رکھنے کے بجائے، شارٹ کٹس کیلئے ایک وقت میں ایک کلید دبائیں"</string>
+ <string name="mouse_keys" msgid="6237254627808525540">"ماؤس کیز"</string>
+ <string name="mouse_keys_summary" msgid="2396247040177734245">"ماؤس کو کنٹرول کرنے کے لیے فزیکل کی بورڈ کا استعمال کریں۔"</string>
<string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"کی بورڈ شارٹ کٹس"</string>
<string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"شارٹ کٹس کی فہرست دکھائیں"</string>
<string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"دفتری پروفائل کے کی بورڈز اور ٹولز"</string>
@@ -2175,8 +2178,6 @@
<string name="accessibility_shortcut_edit_dialog_summary_floating_button" msgid="6266489864614886247">"فلوٹنگ بٹن پر تھپتھپائیں"</string>
<string name="accessibility_shortcut_edit_dialog_title_software_by_gesture" msgid="4775049370625630546">"ایکسیسبیلٹی کا اشارہ"</string>
<string name="accessibility_shortcut_edit_dialog_summary_software" msgid="8315934725362849788">"اپنی اسکرین کے نیچے <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g> ایکسیسبیلٹی بٹن پر تھپتھپائیں۔ خصوصیات کے مابین سوئچ کرنے کے لیے، ایکسیسبیلٹی بٹن کو ٹچ کریں اور دبائے رکھیں۔"</string>
- <string name="accessibility_shortcut_edit_dialog_summary_software_gesture" msgid="8292555254353761635">"2 انگلیوں سے اسکرین کے نیچے سے اوپر کی طرف سوائپ کریں۔\n\nخصوصیات کے درمیان سوئچ کرنے کے لیے، 2 انگلیوں سے اوپر کی طرف سوائپ کریں اور دبائے رکھیں۔"</string>
- <string name="accessibility_shortcut_edit_dialog_summary_software_gesture_talkback" msgid="84483464524360845">"3 انگلیوں سے اسکرین کے نیچے سے اوپر کی طرف سوائپ کریں۔\n\nخصوصیات کے درمیان سوئچ کرنے کے لیے، 3 انگلیوں سے اوپر کی طرف سوائپ کریں اور دبائے رکھیں۔"</string>
<string name="accessibility_shortcut_edit_dialog_summary_gesture" msgid="2081123009255579884">"{count,plural, =1{اپنی اسکرین کے نچلے حصے سے اوپر کی طرف سوائپ کریں۔ خصوصیات کے مابین سوئچ کرنے کے لیے، اوپر کی طرف سوائپ کریں اور دبائے رکھیں۔}other{اپنی اسکرین کے نیچے سے # انگلیوں سے اوپر کی طرف سوائپ کریں۔ خصوصیات کے مابین سوئچ کرنے کے لیے، # انگلیوں سے اوپر کی طرف سوائپ کریں اور دبائے رکھیں۔}}"</string>
<string name="accessibility_shortcut_edit_dialog_summary_software_floating" msgid="4459254227203203324"><annotation id="link">"مزید اختیارات"</annotation></string>
<string name="footer_learn_more_content_description" msgid="8843798273152131341">"<xliff:g id="SERVICE">%1$s</xliff:g> کے بارے میں مزید جانیں"</string>
@@ -2187,16 +2188,12 @@
<string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="844089763968552142">"والیوم کلیدیں"</string>
<string name="accessibility_shortcut_hardware_keyword" msgid="2483152542320987022">"والیوم کلیدیں"</string>
<string name="accessibility_shortcut_edit_dialog_summary_hardware" msgid="2503134386397991634">"والیوم کی دونوں کلیدوں کو دبائے رکھیں"</string>
- <string name="accessibility_shortcut_edit_dialog_title_two_finger_double_tap" msgid="2271778556854020996">"دو انگلیوں سے دو بار تھپتھپانے والی اسکرین"</string>
<string name="accessibility_shortcut_edit_screen_title_two_finger_double_tap" msgid="8952595692906527694">"%1$d انگلی سے دوبار تھپتھپائیں"</string>
<string name="accessibility_shortcut_edit_screen_summary_two_finger_double_tap" msgid="385404127425496362">"اسکرین پر %1$d انگلیوں سے تیزی سے دو بار تھپتھپائیں"</string>
<string name="accessibility_shortcut_edit_screen_title_triple_tap" msgid="3314488747597058942">"تین بار تھپتھپائیں"</string>
<string name="accessibility_shortcut_edit_screen_summary_triple_tap" msgid="4839204951599629871">"اسکرین پر تیزی سے %1$d بار تھپتھپائیں۔ اس سے آپ کا آلہ سست ہو سکتا ہے۔"</string>
<string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="6271718715836961167">"%1$d انگلی سے دوبار تھپتھپائیں"</string>
- <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"دو انگلیوں سے اسکرین پر تیزی سے {0,number,integer} بار تھپتھپائیں"</string>
- <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"اسکرین پر تین بار تھپتھپائیں"</string>
<string name="accessibility_shortcut_triple_tap_keyword" msgid="5359347130888464334">"تین بار تھپتھپائیں"</string>
- <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"اسکرین پر فوری طور پر {0,number,integer} بار تھپتھپائیں۔ اس شارٹ کٹ سے آپ کا آلہ سست ہو سکتا ہے"</string>
<string name="accessibility_shortcut_edit_dialog_title_advance" msgid="4567868630655591506">"جدید ترین"</string>
<string name="accessibility_screen_magnification_navbar_configuration_warning" msgid="266736851606791552">"ایکسیسبیلٹی بٹن <xliff:g id="SERVICE">%1$s</xliff:g> پر سیٹ ہے۔ میگنیفکیشن استعمال کرنے کیلئے، ایکسیسبیلٹی بٹن ٹچ کریں اور دبائے رکھیں، پھر میگنیفکیشن منتخب کریں۔"</string>
<string name="accessibility_screen_magnification_gesture_navigation_warning" msgid="991017769735632046">"ایکسیسبیلٹی اشارے کو <xliff:g id="SERVICE">%1$s</xliff:g> پر سیٹ کر دیا گیا۔ میگنیفکیشن استعمال کرنے کے لیے، اسکرین کے نیچے سے دو انگلیوں سے اوپر سوائپ اور ہولڈ کریں۔ پھر میگنیفکیشن منتخب کریں۔"</string>
@@ -2365,6 +2362,7 @@
<string name="daltonizer_mode_tritanomaly_title" msgid="2278786218762602022">"نیلا-پیلا"</string>
<string name="daltonizer_mode_grayscale_title" msgid="152005391387952588">"خاکستری"</string>
<string name="daltonizer_saturation_title" msgid="2999486412114963068">"شدت"</string>
+ <string name="daltonizer_saturation_unavailable_summary" msgid="8319753055567798775">"خاکستری وضع کے لیے یا رنگ کی اصلاح کے غیرفعال ہونے پر دستیاب نہیں ہے"</string>
<string name="daltonizer_mode_deuteranomaly_summary" msgid="2117727423019598455">"سبز رنگ کا اندھاپن، رنگ دیکھنے کی صلاحیت میں کمی"</string>
<string name="daltonizer_mode_protanomaly_summary" msgid="4617032854982040748">"سرخ رنگ کا اندھاپن، بے قاعدہ رنگ بینی"</string>
<string name="daltonizer_mode_tritanomaly_summary" msgid="2428218320118180070">"نیلے پیلے رنگ کی شناخت کرنے میں دشواری"</string>
@@ -2414,15 +2412,8 @@
<string name="color_cyan" msgid="4341758639597035927">"سبزی مائل نیلا"</string>
<string name="color_yellow" msgid="5957551912912679058">"پیلا"</string>
<string name="color_magenta" msgid="8943538189219528423">"قرمزی"</string>
- <string name="enable_service_title" msgid="7231533866953706788">"<xliff:g id="SERVICE">%1$s</xliff:g> کو آپ کے آلے کا مکمل کنٹرول حاصل کرنے کی اجازت دیں؟"</string>
<string name="capabilities_list_title" msgid="1225853611983394386">"<xliff:g id="SERVICE">%1$s</xliff:g> کو ضرورت ہے:"</string>
<string name="touch_filtered_warning" msgid="4225815157460318241">"چونکہ ایک ایپ اجازت کی درخواست کو مبہم کر رہی ہے، لہذا ترتیبات آپ کے جواب کی توثیق نہیں کر سکتی ہے۔"</string>
- <string name="accessibility_service_warning" msgid="6779187188736432618">"<xliff:g id="SERVICE">%1$s</xliff:g> نے اس آلہ پر مکمل کنٹرول کی درخواست کی ہے۔ یہ سروس اسکرین کو پڑھ سکتی ہے اور مع ایکسیسبیلٹی کی ضروریات کے صارفین کے جانب سے کارروائی کر سکتی ہے۔ زیادہ تر اپپس کے لیے اس لیول کا کنٹرول مناسب نہیں ہے۔"</string>
- <string name="accessibility_service_warning_description" msgid="6573203795976134751">"مکمل کنٹرول ان ایپس کے لیے مناسب ہے جو ایکسیسبیلٹی کی ضروریات میں آپ کی مدد کرتی ہیں، لیکن زیادہ تر ایپس کیلئے مناسب نہیں۔"</string>
- <string name="accessibility_service_screen_control_title" msgid="324795030658109870">"اسکرین کو دیکھیں اور کنٹرول کریں"</string>
- <string name="accessibility_service_screen_control_description" msgid="8431940515157990426">"یہ اسکرین پر موجود تمام مواد کو پڑھ سکتا ہے اور دیگر ایپس پر مواد کو ڈسپلے کر سکتا ہے۔"</string>
- <string name="accessibility_service_action_perform_title" msgid="1449360056585337833">"کارروائیاں دیکھیں اور انجام دیں"</string>
- <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"یہ کسی ایپ یا ہارڈویئر سینسر کے ساتھ آپ کے تعاملات کو ٹریک کر سکتا ہے، اور آپ کی طرف سے ایپس کے ساتھ تعامل کر سکتا ہے۔"</string>
<string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"اجازت دیں"</string>
<string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"مسترد کریں"</string>
<string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"آف کریں"</string>
@@ -3652,9 +3643,9 @@
<string name="notif_listener_not_migrated" msgid="6265206376374278226">"یہ ایپ بہتر کردہ ترتیبات کو سپورٹ نہیں کرتی ہے"</string>
<string name="notif_listener_more_settings" msgid="1348409392307208921">"مزید ترتیبات"</string>
<string name="notif_listener_more_settings_desc" msgid="7995492074281663658">"اس ایپ کے اندر مزید ترتیبات دستیاب ہیں"</string>
- <string name="notification_polite_title" msgid="4737150709382859870">"اڈاپٹیو اطلاعات"</string>
- <string name="notification_polite_main_control_title" msgid="7267191551379543859">"اڈاپٹیو اطلاعات استعمال کریں"</string>
- <string name="notification_polite_description" msgid="7749280535620291610">"جب آپ کو کم وقت میں بہت ساری اطلاعات موصول ہوں گی تو آپ کا فون حجم کو کم کر دے گا اور دو منٹ تک اسکرین پر پاپ اپس کو کم کر دے گا۔ کالز، الارمز، اور ترجیحی گفتگوئیں اب بھی وائبریٹ ہوتی ہیں، آواز پیدا کرتی ہیں یا اسکرین پر ظاہر ہوتی ہیں اور جب آپ اسکرین کے اوپری حصے سے نیچے کی طرف کھینچتے ہیں تو تمام اطلاعات کو تلاش کرنا آسان ہوتا ہے۔"</string>
+ <string name="notification_polite_title" msgid="6121016426991791557">"نوٹیفکیشن کول ڈاؤن"</string>
+ <string name="notification_polite_main_control_title" msgid="5812529809151927149">"ںوٹیفیکیشن کول ڈاؤن استعمال کریں"</string>
+ <string name="notification_polite_description" msgid="5497748284893832854">"جب آپ کو تھوڑے وقت میں بہت ساری اطلاعات موصول ہوتی ہیں تو آپ کا آلہ اس کا والیوم کم کر دے گا اور 2 منٹ تک الرٹس کو کم کر دے گا۔ کالز، الارم، اور ترجیحی گفتگوئیں متاثر نہیں ہوتی ہیں۔ \n\nکول ڈاؤن کے دوران موصول ہونے والی اطلاعات، اسکرین کے اوپر سے نیچے کی طرف سوائپ کر کے حاصل کی جا سکتی ہیں۔"</string>
<string name="notification_polite_work" msgid="8823596456640216391">"دفتری پروفائلز پر لاگو کریں"</string>
<string name="notification_polite_work_summary" msgid="5014189280132951378">"دفتری پروفائل ایپس پر لاگو کریں"</string>
<string name="vr_listeners_title" msgid="4960357292472540964">"VR مددگار سروسز"</string>
@@ -3811,7 +3802,9 @@
<string name="zen_mode_apps_priority_apps" msgid="7386196048313716076">"منتخب کردہ ایپس"</string>
<string name="zen_mode_apps_none_apps" msgid="2493642312793604327">"کوئی نہیں"</string>
<string name="zen_mode_apps_subtext" msgid="1764211974662012877">"{count,plural,offset:2 =0{کوئی ایپ رکاوٹ نہیں ڈال سکتی}=1{{app_1} رکاوٹ ڈال سکتی ہے}=2{{app_1} اور {app_2} رکاوٹ ڈال سکتی ہیں}=3{{app_1}، {app_2} اور{app_3} رکاوٹ ڈال سکتی ہیں}other{{app_1}، {app_2} اور # مزید رکاوٹ ڈال سکتی ہیں}}"</string>
+ <string name="zen_mode_apps_work_app" msgid="8528767938316361588">"<xliff:g id="APP_LABEL">%s</xliff:g> (دفتری)"</string>
<string name="zen_mode_apps_calculating" msgid="5420121396943539286">"حساب لگایا جا رہا ہے…"</string>
+ <string name="zen_mode_plus_n_items" msgid="6136713354369243421">"<xliff:g id="NUMBER">%d</xliff:g>+"</string>
<string name="zen_mode_bypassing_apps" msgid="625309443389126481">"ایپس کو اوور رائیڈ کرنے کی اجازت دیں"</string>
<string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"ایپس جو مداخلت کر سکتی ہیں"</string>
<string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"مزید ایپس منتخب کریں"</string>
@@ -3829,6 +3822,7 @@
<string name="zen_mode_sounds_none" msgid="6557474361948269420">"کوئی چیز رکاوٹ نہیں ڈال سکتی"</string>
<string name="zen_mode_people_none" msgid="4613147461974255046">"کوئی بھی رکاوٹ نہیں ڈال سکتا"</string>
<string name="zen_mode_people_some" msgid="9101872681298810281">"کچھ لوگ رکاوٹ ڈال سکتے ہیں"</string>
+ <string name="zen_mode_people_repeat_callers" msgid="4499084111069828761">"بار بار کال کرنے والے رکاوٹ ڈال سکتے ہیں"</string>
<string name="zen_mode_people_all" msgid="311036110283015205">"سبھی لوگ رکاوٹ ڈال سکتے ہیں"</string>
<string name="zen_mode_repeat_callers" msgid="2270356100287792138">"بار بار کال کرنے والے"</string>
<string name="zen_mode_repeat_callers_title" msgid="8016699240338264781">"دوبارہ کال کرنے والوں کو اجازت دیں"</string>
@@ -3852,6 +3846,34 @@
<string name="zen_mode_new_custom_title" msgid="321750898430776191">"موڈ شامل کریں"</string>
<string name="zen_mode_new_custom_default_name" msgid="2778307946775085105">"حسب ضرورت موڈ"</string>
<string name="zen_mode_edit_name_hint" msgid="4584652062167540536">"موڈ کا نام"</string>
+ <string name="zen_mode_trigger_title_schedule_calendar" msgid="9206609438617550331">"کیلنڈر ایونٹس"</string>
+ <string name="zen_mode_trigger_title_bedtime" msgid="5086070900588489978">"نیند کا شیڈول"</string>
+ <string name="zen_mode_trigger_title_driving" msgid="7890990983453164403">"ڈرائیونگ کے دوران"</string>
+ <string name="zen_mode_trigger_title_generic" msgid="601273385119550420">"ایپ سے لنک کردہ"</string>
+ <string name="zen_mode_trigger_summary_settings_in_app" msgid="4860667191183702601">"<xliff:g id="APP_NAME">%1$s</xliff:g> میں معلومات اور ترتیبات"</string>
+ <string name="zen_mode_trigger_summary_managed_by_app" msgid="8631011868193102098">"<xliff:g id="APP_NAME">%1$s</xliff:g> کے زیر انتظام ہے"</string>
+ <string name="zen_mode_confirm_disable_title" msgid="1232297660775719796">"وضع کو غیر فعال کریں"</string>
+ <string name="zen_mode_confirm_disable_message" msgid="7315541221665718491">"اگر آپ اس خصوصیت کو غیر فعال کرتے ہیں تو وضع مزید کام نہیں کرے گی اور اس کی ترتیبات پوشیدہ ہو جائیں گی۔"</string>
+ <string name="zen_mode_action_disable" msgid="3552921561331044881">"غیر فعال کریں"</string>
+ <string name="zen_mode_confirm_enable_title" msgid="5683371335847448595">"وضع کو فعال کریں"</string>
+ <string name="zen_mode_confirm_enable_message" msgid="7017879133260011419">"اگر آپ اس خصوصیت کو فعال کرتے ہیں تو وضع اپنے شیڈول کے مطابق خود بخود فعال ہو جائے گی۔"</string>
+ <string name="zen_mode_action_enable" msgid="1161480633223176531">"فعال کریں"</string>
+ <!-- no translation found for zen_mode_blurb_schedule_time (8223898702097484009) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_schedule_calendar (382177907856065945) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_bedtime (6155075956151013457) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_driving (1316054379000667305) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_immersive (5884004861848687869) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_theater (2999237960059524225) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_managed (5473921634985032149) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_generic (3041601339807075625) -->
+ <skip />
<string name="warning_button_text" msgid="1274234338874005639">"وارننگ"</string>
<string name="suggestion_button_close" msgid="6865170855573283759">"بند کریں"</string>
<string name="device_feedback" msgid="5351614458411688608">"اس آلہ کے بارے میں تاثرات بھیجیں"</string>
@@ -4838,9 +4860,8 @@
<string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"بیٹری"</string>
<string name="settings_panel_title" msgid="346363079938069215">"ترتیبات پینل"</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>
+ <!-- no translation found for enable_desktop_mode_on_secondary_display (2609567824593768780) -->
+ <skip />
<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>
@@ -5015,7 +5036,6 @@
<string name="default_active_sim_mobile_data" msgid="6798083892814045301">"موبائل ڈیٹا"</string>
<string name="wifi_scan_notify_message" msgid="1331238142061476869">"آلے کے تجربے کو بہتر بنانے کے لیے، Wi‑Fi کے آف ہونے پر بھی ایپس اور سروسز اب بھی کسی بھی وقت Wi‑Fi نیٹ ورکس اسکین کر سکتی ہیں۔ مثال کے طور پر، اسے مقام پر مبنی خصوصیات اور سروسز کو بہتر بنانے کے لیے استعمال کیا جا سکتا ہے۔ آپ اسے Wi‑Fi اسکیننگ کی ترتیبات میں تبدیل کر سکتے ہیں۔"</string>
<string name="wifi_scan_change" msgid="8438320311511852918">"تبدیل کریں"</string>
- <string name="preference_summary_default_combination" msgid="4643585915107796253">"<xliff:g id="STATE">%1$s</xliff:g> / <xliff:g id="NETWORKMODE">%2$s</xliff:g>"</string>
<string name="mobile_data_connection_active" msgid="2422223108911581552">"منسلک ہے"</string>
<string name="mobile_data_temp_connection_active" msgid="3430470299756236413">"عارضی طور پر منسلک ہے"</string>
<string name="mobile_data_temp_using" msgid="5211002380149434155">"عارضی طور پر <xliff:g id="SUBNAME">%1$s</xliff:g> استعمال ہو رہا ہے"</string>
@@ -5047,7 +5067,7 @@
<string name="app_pinning_main_switch_title" msgid="5465506660064032876">"ایپ کو پن کرنے کی سہولت کا استعمال کریں"</string>
<string name="developer_options_main_switch_title" msgid="1720074589554152501">"ڈویلپر کے اختیارات کا استعمال کریں"</string>
<string name="default_print_service_main_switch_title" msgid="4697133737128324036">"پرنٹ سروس کا استعمال کریں"</string>
- <string name="multiple_users_main_switch_title" msgid="9158796544835843201">"صارف سوئچ کی اجازت دیں"</string>
+ <string name="multiple_users_main_switch_title" msgid="9158796544835843201">"صارف سوئچ کرنے کی اجازت دیں"</string>
<string name="multiple_users_main_switch_keywords" msgid="4845954458094134356">"اجازت دیں، متعدد، صارف، اجازت، بہت سے"</string>
<string name="multiple_users_title_keywords" msgid="2395593167746225172">"متعدد، صارفین، پروفائلز، لوگ، اکاؤنٹس، سوئچ، بہت کچھ"</string>
<string name="wireless_debugging_main_switch_title" msgid="8463499572781441719">"وائرلیس ڈیبگنگ کا استعمال کریں"</string>
@@ -5161,9 +5181,11 @@
<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="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_enable_freeform_support" msgid="3697462756493543645">"فری فارم ونڈو سپورٹ کو فعال کرنے کے لیے ریبوٹ درکار ہے۔"</string>
+ <!-- no translation found for reboot_dialog_override_desktop_mode (7480950772574354130) -->
+ <skip />
+ <!-- no translation found for reboot_dialog_enable_desktop_mode_on_secondary_display (1153621881052401924) -->
+ <skip />
<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>
@@ -5394,5 +5416,6 @@
<string name="audio_streams_main_page_password_dialog_join_button" msgid="2967747276379153408">"سلسلہ سنیں"</string>
<string name="audio_streams_main_page_qr_code_scanner_summary" msgid="5312980105735143360">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> کے ساتھ سننے کے لئے آڈیو سلسلے کا QR کوڈ اسکین کریں"</string>
<string name="audio_streams_main_page_password_dialog_cannot_edit" msgid="9020898619297520153">"اشتراک کے دوران پاس ورڈ میں ترمیم نہیں کر سکتے۔ پاس ورڈ تبدیل کرنے کے لئے پہلے آڈیو کا اشتراک بند کریں۔"</string>
+ <string name="audio_streams_qr_code_scanner_label" msgid="8799703301071378034">"QR کوڈ اسکینر"</string>
<string name="homepage_search" msgid="6759334912284663559">"تلاش کی ترتیبات"</string>
</resources>
diff --git a/res/values-uz/strings.xml b/res/values-uz/strings.xml
index 80e5ac0..b331864 100644
--- a/res/values-uz/strings.xml
+++ b/res/values-uz/strings.xml
@@ -41,6 +41,8 @@
<string name="radioInfo_data_suspended" msgid="2001254415431299603">"Muzlatildi"</string>
<string name="radioInfo_unknown" msgid="2892562356748600367">"Noma’lum"</string>
<string name="preview_pager_content_description" msgid="3762247188224576303">"Razm solish"</string>
+ <!-- no translation found for qr_code_content_description (1852208464419291347) -->
+ <skip />
<string name="font_size_make_smaller_desc" msgid="4978038055549590140">"Kichiklashtirish"</string>
<string name="font_size_make_larger_desc" msgid="5583046033381722247">"Kattalashtirish"</string>
<string name="stay_awake_on_fold_title" msgid="6590454679898134221">"Har doim"</string>
@@ -283,7 +285,7 @@
<string name="location_settings_summary_location_off" msgid="4797932754681162262">"Oʻchiq"</string>
<string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{Yoniq / # ta ilova joylashuvdan foydalanadi}other{Yoniq / # ta ilova joylashuvdan foydalanadi}}"</string>
<string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"Yuklanmoqda…"</string>
- <string name="location_settings_footer_general" msgid="1040507068701188821">"Yaqin-atrofdagi qurilmalarga ruxsati bor ilovalar ulangan qurilmalarning nisbiy holatini aniqlay oladi."</string>
+ <string name="location_settings_footer_general" msgid="3447585552176173502">"Yaqin-atrofdagi qurilmalarga ruxsati bor ilovalar ulangan qurilmalarning nisbiy holatini aniqlay oladi."</string>
<string name="location_settings_footer_location_off" msgid="8568995909147566720">"Ilovalar va xizmatlar uchun joylashuv axborotiga ruxsat yoqilmagan. Favqulodda holatlar raqamiga murojaat qilganingizda, qurilmangiz favqulodda xizmatlarga joylashuvingizni yuborishi mumkin."</string>
<string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Joylashuv sozlamalari haqida batafsil"</string>
<string name="location_settings_tooltip_text_for_chrome" msgid="5781821709250544575">"Oʻzgartirish uchun ChromeOS sozlamalari > Maxfiylik va xavfsizlik > Maxfiylik sozlamalari > Joylashuv axborotiga ruxsat sahifasini oching"</string>
@@ -850,7 +852,6 @@
<string name="nfc_reboot_dialog_title" msgid="2033983438635768169">"Qurilma qayta ishga tushirilsinmi?"</string>
<string name="nfc_reboot_dialog_message" msgid="4929353168157966992">"Tafsilotli NFC jurnali faqat ishlab chiqish maqsadlari uchun moʻljallangan. Qoʻshimcha NFC maʼlumotlari shaxsiy maʼlumotlar bor xato hisobotlariga kiritilgan. Bu sozlamani oʻzgartirish uchun qurilmangizni qayta ishga tushiring."</string>
<string name="nfc_reboot_dialog_confirm" msgid="4769763632008584567">"Qayta yoqish"</string>
- <string name="keywords_external_display" msgid="4181375057920134909">"aks, tashqi displey, ulangan displey, usb displey, aniqlik, burish"</string>
<string name="external_display_on" msgid="2560104443500154333">"Yoniq"</string>
<string name="external_display_off" msgid="5634413756025351374">"Yoqilmagan"</string>
<string name="external_display_settings_title" msgid="6256884595821605779">"Tashqi displey"</string>
@@ -1918,6 +1919,8 @@
<string name="slow_keys_summary" msgid="1784371292745423292">"<xliff:g id="SLOW_KEYS_THRESHOLD">%1$d</xliff:g> ms dan keyin tugma bosilsa, qayd etiladi"</string>
<string name="sticky_keys" msgid="7317317044898161747">"Yopishqoq tugmalar"</string>
<string name="sticky_keys_summary" msgid="1844953803625480623">"Barcha tugmalar kombinatsiyasini bosib turish oʻrniga ularni birma-bir bosing"</string>
+ <string name="mouse_keys" msgid="6237254627808525540">"Sinchqoncha tugmalari"</string>
+ <string name="mouse_keys_summary" msgid="2396247040177734245">"Sichqonchani tashqi klaviatura yordamida boshqarish."</string>
<string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"Tezkor tugmalar"</string>
<string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"Tezkor tugmalar roʻyxatini ochish"</string>
<string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"Ish profili klaviaturalari va vositalari"</string>
@@ -1942,14 +1945,10 @@
<string name="pointer_fill_style_yellow_button" msgid="5025969961559379024">"Kursor ichini sariqqa boʻyash"</string>
<string name="pointer_fill_style_pink_button" msgid="4106218142489635673">"Kursor ichini pushtiga boʻyash"</string>
<string name="pointer_fill_style_blue_button" msgid="5594958078854032785">"Kursor ichini koʻkka boʻyash"</string>
- <!-- no translation found for pointer_stroke_style (1886986630216050665) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_white (673686194443825383) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_black (4655806167067437330) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_none (8953927511729800247) -->
- <skip />
+ <string name="pointer_stroke_style" msgid="1886986630216050665">"Kursor chiziqlari uslubi"</string>
+ <string name="pointer_stroke_style_name_white" msgid="673686194443825383">"Oq"</string>
+ <string name="pointer_stroke_style_name_black" msgid="4655806167067437330">"Qora"</string>
+ <string name="pointer_stroke_style_name_none" msgid="8953927511729800247">"Hech qanday"</string>
<string name="trackpad_touch_gesture" msgid="8641725062131922497">"Sensorli panel ishoralari haqida"</string>
<string name="keywords_touchpad" msgid="8159846254066666032">"sensorli panel, sichqoncha, kursor, varaqlash, surish, oʻng klik, klik, koʻrsatkich"</string>
<string name="keywords_trackpad_bottom_right_tap" msgid="1285062446073929305">"oʻng klik, bosish"</string>
@@ -2179,8 +2178,6 @@
<string name="accessibility_shortcut_edit_dialog_summary_floating_button" msgid="6266489864614886247">"Erkin harakatlanuvchi tugmaga bosing"</string>
<string name="accessibility_shortcut_edit_dialog_title_software_by_gesture" msgid="4775049370625630546">"Qulaylik ishorasi"</string>
<string name="accessibility_shortcut_edit_dialog_summary_software" msgid="8315934725362849788">"Ekranning pastidagi <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g> qulayliklar tugmasini bosing. Funksiyalarni almashtirish uchun qulayliklar tugmasini bosib turing."</string>
- <string name="accessibility_shortcut_edit_dialog_summary_software_gesture" msgid="8292555254353761635">"2 ta barmoq bilan ekranning pastidan tepaga suring.\n\nFunksiyalarni almashtirish uchun 2 ta barmoq bilan tepaga suring va ushlab turing."</string>
- <string name="accessibility_shortcut_edit_dialog_summary_software_gesture_talkback" msgid="84483464524360845">"3 ta barmoq bilan ekranning pastidan tepaga suring.\n\nFunksiyalarni almashtirish uchun 3 ta barmoq bilan tepaga suring va ushlab turing."</string>
<string name="accessibility_shortcut_edit_dialog_summary_gesture" msgid="2081123009255579884">"{count,plural, =1{Ekranning quyi qismidan tepaga torting. Funksiyalarni almashtirish uchun tepaga suring va bosib turing.}other{Ekranning pastki qismidan # ta barmoq bilan tepaga suring. Funksiyalarni almashtirish uchun # ta barmoq bilan tepaga suring va bosib turing.}}"</string>
<string name="accessibility_shortcut_edit_dialog_summary_software_floating" msgid="4459254227203203324"><annotation id="link">"Yana"</annotation></string>
<string name="footer_learn_more_content_description" msgid="8843798273152131341">"<xliff:g id="SERVICE">%1$s</xliff:g> haqida batafsil"</string>
@@ -2191,16 +2188,12 @@
<string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="844089763968552142">"Tovush tugmalari"</string>
<string name="accessibility_shortcut_hardware_keyword" msgid="2483152542320987022">"tovush tugmalari"</string>
<string name="accessibility_shortcut_edit_dialog_summary_hardware" msgid="2503134386397991634">"Ikkala tovush tugmalarini bosib turing."</string>
- <string name="accessibility_shortcut_edit_dialog_title_two_finger_double_tap" msgid="2271778556854020996">"Ekranni ikki barmoq bilan ikki marta bosing"</string>
<string name="accessibility_shortcut_edit_screen_title_two_finger_double_tap" msgid="8952595692906527694">"%1$d-barmoq bilan ikki marta bosing"</string>
<string name="accessibility_shortcut_edit_screen_summary_two_finger_double_tap" msgid="385404127425496362">"%1$d ta barmoq bilan ekranga tez-tez ikki marta bosing"</string>
<string name="accessibility_shortcut_edit_screen_title_triple_tap" msgid="3314488747597058942">"Uch marta bosing"</string>
<string name="accessibility_shortcut_edit_screen_summary_triple_tap" msgid="4839204951599629871">"Ekranga tez-tez %1$d marta bosing. Bu qurilmangizni sekinlashtirishi mumkin."</string>
<string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="6271718715836961167">"%1$d-barmoq bilan ikki marta bosing"</string>
- <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"Ekranni ikki barmoq bilan {0,number,integer} marta takror bosing"</string>
- <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"Ekran ustiga uch marta bosing"</string>
<string name="accessibility_shortcut_triple_tap_keyword" msgid="5359347130888464334">"uch marta bosing"</string>
- <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"Ekranga tez-tez {0,number,integer} marta bosing. Bu qurilmangizni sekinlashtirishi mumkin"</string>
<string name="accessibility_shortcut_edit_dialog_title_advance" msgid="4567868630655591506">"Kengaytirilgan"</string>
<string name="accessibility_screen_magnification_navbar_configuration_warning" msgid="266736851606791552">"Qulayliklar tugmasi <xliff:g id="SERVICE">%1$s</xliff:g> xizmatiga sozlangan. Kattalashtirish uchun Qulayliklar tugmasini bosib turib, keyin kattalashtirishni tanlang."</string>
<string name="accessibility_screen_magnification_gesture_navigation_warning" msgid="991017769735632046">"Endi <xliff:g id="SERVICE">%1$s</xliff:g> maxsus imkoniyatlar ishorasi bilan ishga tushadi. Lupadan foydalanish uchun 2 barmoq bilan ekranning pastidan tepaga suring va tortib turing. Keyin masshtabni tanlang."</string>
@@ -2369,6 +2362,7 @@
<string name="daltonizer_mode_tritanomaly_title" msgid="2278786218762602022">"Koʻk/sariq"</string>
<string name="daltonizer_mode_grayscale_title" msgid="152005391387952588">"Kulrang tus"</string>
<string name="daltonizer_saturation_title" msgid="2999486412114963068">"Intensivlik"</string>
+ <string name="daltonizer_saturation_unavailable_summary" msgid="8319753055567798775">"Kulrang tus rejimida yoki ranglarni tuzatish oʻchirilganida mavjud emas"</string>
<string name="daltonizer_mode_deuteranomaly_summary" msgid="2117727423019598455">"Deyteranomaliya (yashilni yaxshi koʻrmaslik)"</string>
<string name="daltonizer_mode_protanomaly_summary" msgid="4617032854982040748">"Protanomaliya (qizilni yaxshi koʻrmaslik)"</string>
<string name="daltonizer_mode_tritanomaly_summary" msgid="2428218320118180070">"Tritanomaliya"</string>
@@ -2418,15 +2412,8 @@
<string name="color_cyan" msgid="4341758639597035927">"Zangori"</string>
<string name="color_yellow" msgid="5957551912912679058">"Sariq"</string>
<string name="color_magenta" msgid="8943538189219528423">"Pushtirang"</string>
- <string name="enable_service_title" msgid="7231533866953706788">"<xliff:g id="SERVICE">%1$s</xliff:g> xizmatiga qurilmangizni boshqarish uchun toʻliq ruxsat berilsinmi?"</string>
<string name="capabilities_list_title" msgid="1225853611983394386">"<xliff:g id="SERVICE">%1$s</xliff:g>:"</string>
<string name="touch_filtered_warning" msgid="4225815157460318241">"Ilova ruxsatnoma so‘roviga xalaqit qilayotgani tufayli, “Sozlamalar” ilovasi javobingizni tekshira olmaydi."</string>
- <string name="accessibility_service_warning" msgid="6779187188736432618">"<xliff:g id="SERVICE">%1$s</xliff:g> bu qurilmaning toʻliq boshqaruvini talab qilmoqda. Xizmat ekrandagilarni oʻqishi va maxsus imkoniyatlarga ehtiyoji bor foydalanuvchilar nomidan harakat qilishi mumkin. Boshqaruvning bu darajasi ayrim ilovalargagina mos keladi."</string>
- <string name="accessibility_service_warning_description" msgid="6573203795976134751">"Toʻliq nazorat maxsus imkoniyatlar bilan ishlovchi ilovalar uchun mos, lekin barcha ilovalar uchun emas."</string>
- <string name="accessibility_service_screen_control_title" msgid="324795030658109870">"Ekranni ochish va boshqarish"</string>
- <string name="accessibility_service_screen_control_description" msgid="8431940515157990426">"Ekrandagi barcha kontentni oʻqishi va kontentni boshqa ilovalar ustida ochishi mumkin."</string>
- <string name="accessibility_service_action_perform_title" msgid="1449360056585337833">"Harakatlarni koʻrish va bajarish"</string>
- <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"Ilova yoki qurilma sensori bilan munosabatlaringizni kuzatishi hamda sizning nomingizdan ilovalar bilan ishlashi mumkin."</string>
<string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Ruxsat"</string>
<string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Rad etish"</string>
<string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Faolsizlantirish"</string>
@@ -3656,9 +3643,9 @@
<string name="notif_listener_not_migrated" msgid="6265206376374278226">"Bu ilovada kengaytirilgan sozlamalar ishlamaydi"</string>
<string name="notif_listener_more_settings" msgid="1348409392307208921">"Boshqa sozlamalar"</string>
<string name="notif_listener_more_settings_desc" msgid="7995492074281663658">"Boshqa sozlamalar bu ilova ichida joylashgan"</string>
- <string name="notification_polite_title" msgid="4737150709382859870">"Adaptiv bildirishnomalar"</string>
- <string name="notification_polite_main_control_title" msgid="7267191551379543859">"Adaptiv bildirishnomalardan foydalanish"</string>
- <string name="notification_polite_description" msgid="7749280535620291610">"Qisqa vaqt oraligʻida koʻp bildirishnoma kelsa, telefondagi tovush balandligi hamda bildirgi oynalar soni ikki daqiqagacha kamaytiriladi. Chaqiruvlar, signallar va muhim suhbatlar tebranish, tovush chiqarish va ekranda chiqishda davom etadi va barcha bildirishnomalarni ekranning tepasidan pastga surish orqali koʻrish mumkin."</string>
+ <string name="notification_polite_title" msgid="6121016426991791557">"Bildirishnomalarni cheklash"</string>
+ <string name="notification_polite_main_control_title" msgid="5812529809151927149">"Bildirishnomalarni sekinlatishdan foydalanish"</string>
+ <string name="notification_polite_description" msgid="5497748284893832854">"Qisqa vaqt oraligʻida koʻp bildirishnoma kelsa, qurilmangizdagi tovush balandligi hamda signallar davomiyligi 2 daqiqagacha kamaytiriladi. Chaqiruvlar, signallar va muhim suhbatlarga taʼsir qilmaydi. \n\nSekinlatish paytida olingan bildirishnomalarni ekranning yuqori qismidan pastga tortish orqali topish mumkin."</string>
<string name="notification_polite_work" msgid="8823596456640216391">"Ish profillariga tatbiq qilinsin"</string>
<string name="notification_polite_work_summary" msgid="5014189280132951378">"Ish profilidagi ilovalar uchun qoʻllash"</string>
<string name="vr_listeners_title" msgid="4960357292472540964">"Yordamchi VR xizmatlar"</string>
@@ -3815,7 +3802,9 @@
<string name="zen_mode_apps_priority_apps" msgid="7386196048313716076">"Tanlangan ilovalar"</string>
<string name="zen_mode_apps_none_apps" msgid="2493642312793604327">"Hech biri"</string>
<string name="zen_mode_apps_subtext" msgid="1764211974662012877">"{count,plural,offset:2 =0{Bezovta qilinmasin rejimi barcha ilovalar uchun ishlaydi}=1{Bezovta qilinmasin rejimi {app_1} uchun ishlamaydi}=2{Bezovta qilinmasin rejimi {app_1} va {app_2} uchun ishlamaydi}=3{Bezovta qilinmasin rejimi {app_1}, {app_2} va {app_3} uchun ishlamaydi}other{Bezovta qilinmasin rejimi {app_1}, {app_2} va yana # ta tovushlar uchun ishlamaydi}}"</string>
+ <string name="zen_mode_apps_work_app" msgid="8528767938316361588">"<xliff:g id="APP_LABEL">%s</xliff:g> (ish)"</string>
<string name="zen_mode_apps_calculating" msgid="5420121396943539286">"Hisoblanmoqda…"</string>
+ <string name="zen_mode_plus_n_items" msgid="6136713354369243421">"+<xliff:g id="NUMBER">%d</xliff:g>"</string>
<string name="zen_mode_bypassing_apps" msgid="625309443389126481">"Ilovalarga Bezovta qilinmasin rejimiga amal qilmasligiga ruxsat berish"</string>
<string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"Bezovta qilinmasin rejimi ishlamaydigan ilovalar"</string>
<string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"Boshqa ilovalarni tanlang"</string>
@@ -3833,6 +3822,7 @@
<string name="zen_mode_sounds_none" msgid="6557474361948269420">"Bezovta qilinmasin rejimi barcha tovushlar uchun ishlaydi"</string>
<string name="zen_mode_people_none" msgid="4613147461974255046">"Bezovta qilinmasin rejimi barcha xabar va chaqiruvlar uchun ishlaydi"</string>
<string name="zen_mode_people_some" msgid="9101872681298810281">"Bezovta qilinmasin rejimi ayrim foydalanuvchilardan keladigan xabar va chaqiruvlar uchun ishlamaydi"</string>
+ <string name="zen_mode_people_repeat_callers" msgid="4499084111069828761">"Qayta chaqiruvlar xalaqit berishi mumkin"</string>
<string name="zen_mode_people_all" msgid="311036110283015205">"Bezovta qilinmasin rejimi foydalanuvchilardan keladigan xabar va chaqiruvlar uchun ishlamaydi"</string>
<string name="zen_mode_repeat_callers" msgid="2270356100287792138">"Qayta chaqiruvlar"</string>
<string name="zen_mode_repeat_callers_title" msgid="8016699240338264781">"Qayta chaqiruvlar"</string>
@@ -3856,6 +3846,34 @@
<string name="zen_mode_new_custom_title" msgid="321750898430776191">"Rejim qoʻshish"</string>
<string name="zen_mode_new_custom_default_name" msgid="2778307946775085105">"Maxsus rejim"</string>
<string name="zen_mode_edit_name_hint" msgid="4584652062167540536">"Rejim nomi"</string>
+ <string name="zen_mode_trigger_title_schedule_calendar" msgid="9206609438617550331">"Taqvimdagi tadbirlar"</string>
+ <string name="zen_mode_trigger_title_bedtime" msgid="5086070900588489978">"Uyqu jadvali"</string>
+ <string name="zen_mode_trigger_title_driving" msgid="7890990983453164403">"Avtomobilda"</string>
+ <string name="zen_mode_trigger_title_generic" msgid="601273385119550420">"Ilovaga ulangan"</string>
+ <string name="zen_mode_trigger_summary_settings_in_app" msgid="4860667191183702601">"<xliff:g id="APP_NAME">%1$s</xliff:g> ilovasida axborot va sozlamalar"</string>
+ <string name="zen_mode_trigger_summary_managed_by_app" msgid="8631011868193102098">"<xliff:g id="APP_NAME">%1$s</xliff:g> tomonidan boshqariladi"</string>
+ <string name="zen_mode_confirm_disable_title" msgid="1232297660775719796">"Rejimni faolsizlantirish"</string>
+ <string name="zen_mode_confirm_disable_message" msgid="7315541221665718491">"Bu funksiyani faolsizlantirsangiz, rejim endi kutilgandek ishlamaydi va uning sozlamalari berkitiladi."</string>
+ <string name="zen_mode_action_disable" msgid="3552921561331044881">"Faolsizlantirish"</string>
+ <string name="zen_mode_confirm_enable_title" msgid="5683371335847448595">"Rejimni yoqish"</string>
+ <string name="zen_mode_confirm_enable_message" msgid="7017879133260011419">"Agar bu funksiyani yoqsangiz, rejim oʻz jadvaliga muvofiq avtomatik ravishda faollashadi."</string>
+ <string name="zen_mode_action_enable" msgid="1161480633223176531">"Yoqish"</string>
+ <!-- no translation found for zen_mode_blurb_schedule_time (8223898702097484009) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_schedule_calendar (382177907856065945) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_bedtime (6155075956151013457) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_driving (1316054379000667305) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_immersive (5884004861848687869) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_theater (2999237960059524225) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_managed (5473921634985032149) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_generic (3041601339807075625) -->
+ <skip />
<string name="warning_button_text" msgid="1274234338874005639">"Diqqat"</string>
<string name="suggestion_button_close" msgid="6865170855573283759">"Yopish"</string>
<string name="device_feedback" msgid="5351614458411688608">"Qurilma haqida fikr-mulohaza"</string>
@@ -4842,9 +4860,8 @@
<string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"Batareya"</string>
<string name="settings_panel_title" msgid="346363079938069215">"Sozlamalar paneli"</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>
+ <!-- no translation found for enable_desktop_mode_on_secondary_display (2609567824593768780) -->
+ <skip />
<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>
@@ -5019,7 +5036,6 @@
<string name="default_active_sim_mobile_data" msgid="6798083892814045301">"mobil internet"</string>
<string name="wifi_scan_notify_message" msgid="1331238142061476869">"Qurilma ishlashini yaxshilash (masalan, joylashuvni yanada aniqroq aniqlash maqsadida) uchun ilova va xizmatlar hatto Wi-Fi yoqilmaganda ham istalgan vaqt Wi-Fi tarmoqlarni qidirishi mumkin. Buni Wi-Fi tarmoqlarni qidirish sozlamalari orqali oʻzgartirish mumkin."</string>
<string name="wifi_scan_change" msgid="8438320311511852918">"Oʻzgarish"</string>
- <string name="preference_summary_default_combination" msgid="4643585915107796253">"<xliff:g id="STATE">%1$s</xliff:g> / <xliff:g id="NETWORKMODE">%2$s</xliff:g>"</string>
<string name="mobile_data_connection_active" msgid="2422223108911581552">"Ulangan"</string>
<string name="mobile_data_temp_connection_active" msgid="3430470299756236413">"Vaqtincha ulangan"</string>
<string name="mobile_data_temp_using" msgid="5211002380149434155">"Vaqtincha ishlatilmoqda: <xliff:g id="SUBNAME">%1$s</xliff:g>"</string>
@@ -5165,9 +5181,11 @@
<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="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_enable_freeform_support" msgid="3697462756493543645">"Erkin shaklli oynalar bilan ishlashni yoqish uchun qayta ishga tushirish zarur."</string>
+ <!-- no translation found for reboot_dialog_override_desktop_mode (7480950772574354130) -->
+ <skip />
+ <!-- no translation found for reboot_dialog_enable_desktop_mode_on_secondary_display (1153621881052401924) -->
+ <skip />
<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>
@@ -5285,10 +5303,8 @@
<string name="show_captions_enabled" msgid="7089043007924626">"Yoniq"</string>
<string name="live_caption_disabled" msgid="3562035026547887366">"Oʻchiq"</string>
<string name="live_caption_enabled" msgid="5269360946200718949">"Yoniq"</string>
- <!-- no translation found for audio_seek_bar_state_left_first (8814986910920838972) -->
- <skip />
- <!-- no translation found for audio_seek_bar_state_right_first (1999368979633398876) -->
- <skip />
+ <string name="audio_seek_bar_state_left_first" msgid="8814986910920838972">"Audio %1$d%% chap, %2$d%% oʻng"</string>
+ <string name="audio_seek_bar_state_right_first" msgid="1999368979633398876">"Audio %1$d%% oʻng, %2$d%% chap"</string>
<string name="about_phone_device_name_warning" msgid="3243226572404472381">"Qurilma nomi siz oʻrnatgan ilovalarga koʻrinadi. Bluetooth qurilmalarga yoki Wi-Fi tarmoqqa ulanganingizda, Wi-Fi hotspot sozlaganingizda boshqalarga ham koʻrinishi mumkin."</string>
<string name="grammatical_gender_title" msgid="8584242850477270828">"Grammatik jins"</string>
<string name="grammatical_gender_dialog_title" msgid="8754048592099871587">"Grammatik jinsni tanlang"</string>
@@ -5400,5 +5416,6 @@
<string name="audio_streams_main_page_password_dialog_join_button" msgid="2967747276379153408">"Oqimga ulanish"</string>
<string name="audio_streams_main_page_qr_code_scanner_summary" msgid="5312980105735143360">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> qurilmasi bilan birga tinglash uchun audio oqim QR kodini skanerlang"</string>
<string name="audio_streams_main_page_password_dialog_cannot_edit" msgid="9020898619297520153">"Parol ulashuv vaqtida tahrirlanmaydi. Parolni oʻzgartirish uchun audio ulashuvni faolsizlantiring."</string>
+ <string name="audio_streams_qr_code_scanner_label" msgid="8799703301071378034">"QR-kod skaneri"</string>
<string name="homepage_search" msgid="6759334912284663559">"Qidiruv sozlamalari"</string>
</resources>
diff --git a/res/values-vi/strings.xml b/res/values-vi/strings.xml
index 5c1eff0..96c7ecc 100644
--- a/res/values-vi/strings.xml
+++ b/res/values-vi/strings.xml
@@ -41,6 +41,8 @@
<string name="radioInfo_data_suspended" msgid="2001254415431299603">"Bị tạm ngưng"</string>
<string name="radioInfo_unknown" msgid="2892562356748600367">"Không xác định"</string>
<string name="preview_pager_content_description" msgid="3762247188224576303">"Xem trước"</string>
+ <!-- no translation found for qr_code_content_description (1852208464419291347) -->
+ <skip />
<string name="font_size_make_smaller_desc" msgid="4978038055549590140">"Thu nhỏ"</string>
<string name="font_size_make_larger_desc" msgid="5583046033381722247">"Phóng to"</string>
<string name="stay_awake_on_fold_title" msgid="6590454679898134221">"Luôn luôn"</string>
@@ -283,7 +285,7 @@
<string name="location_settings_summary_location_off" msgid="4797932754681162262">"Đang tắt"</string>
<string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{Đang bật / # ứng dụng có quyền truy cập vào thông tin vị trí}other{Đang bật / # ứng dụng có quyền truy cập vào thông tin vị trí}}"</string>
<string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"Đang tải…"</string>
- <string name="location_settings_footer_general" msgid="1040507068701188821">"Những ứng dụng có quyền đối với các Thiết bị ở gần có thể xác định vị trí tương đối của các thiết bị đã kết nối."</string>
+ <string name="location_settings_footer_general" msgid="3447585552176173502">"Những ứng dụng có quyền đối với các thiết bị ở gần có thể xác định vị trí tương đối của các thiết bị đã kết nối."</string>
<string name="location_settings_footer_location_off" msgid="8568995909147566720">"Các ứng dụng và dịch vụ sẽ không có quyền truy cập vào thông tin vị trí. Khi bạn gọi điện hoặc nhắn tin đến một số khẩn cấp, nhân viên ứng cứu khẩn cấp vẫn có thể nhận được thông tin vị trí thiết bị của bạn."</string>
<string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Tìm hiểu thêm về chế độ Cài đặt vị trí"</string>
<string name="location_settings_tooltip_text_for_chrome" msgid="5781821709250544575">"Để thay đổi, hãy chuyển đến phần Cài đặt ChromeOS > Quyền riêng tư và bảo mật > Chế độ kiểm soát quyền riêng tư > Quyền truy cập thông tin vị trí"</string>
@@ -565,10 +567,10 @@
<string name="private_space_fingerprint_enroll_finish_message" msgid="4754797926493316965">"Bạn có thể dùng vân tay để mở khoá không gian riêng tư hoặc phê duyệt một giao dịch mua hàng"</string>
<string name="private_space_face_enroll_introduction_title" msgid="3717541082520006032">"Thiết lập tính năng Mở khoá bằng khuôn mặt cho không gian riêng tư"</string>
<string name="private_space_face_enroll_introduction_message" msgid="250239418499081821">"Bạn có thể dùng khuôn mặt để mở khoá không gian riêng tư hoặc xác minh danh tính, chẳng hạn như khi đăng nhập vào ứng dụng hoặc phê duyệt giao dịch mua hàng"</string>
- <string name="private_space_face_enroll_introduction_info_looking" msgid="5694757845303924042">"Bạn chỉ cần nhìn vào điện thoại là có thể mở khoá không gian riêng tư ngay cả khi không định làm vậy. Những người trông rất giống bạn (như anh chị em ruột giống hệt bạn) có thể mở khoá không gian riêng tư của bạn. Người khác giơ thiết bị ra trước mặt bạn cũng có thể mở khoá."</string>
+ <string name="private_space_face_enroll_introduction_info_looking" msgid="5694757845303924042">"Chỉ cần nhìn vào điện thoại là bạn cũng có thể vô tình mở khoá không gian riêng tư. Những người trông rất giống bạn (như anh chị em ruột giống hệt bạn) có thể mở khoá không gian riêng tư của bạn. Người khác giơ thiết bị ra trước mặt bạn cũng có thể mở khoá."</string>
<string name="private_space_face_enroll_introduction_info_less_secure" msgid="8460719783943533172">"Việc sử dụng khuôn mặt của bạn để mở khoá không gian riêng tư có thể kém an toàn hơn so với việc dùng một hình mở khoá, mã PIN hoặc mật khẩu mạnh"</string>
<string name="private_space_face_settings_require_attention_details" msgid="2799569069549999689">"Để mở khoá không gian riêng tư, bạn phải mở mắt. Hãy tháo kính râm để có kết quả tốt nhất."</string>
- <string name="private_space_face_settings_footer" msgid="7722256209563543711">"Dùng khuôn mặt để mở khoá không gian riêng tư của bạn.\n\nLưu ý:\nMỗi lần bạn chỉ có thể thiết lập một khuôn mặt. Để thêm một khuôn mặt khác, hãy xoá khuôn mặt hiện tại.\n\nBạn chỉ cần nhìn vào điện thoại là có thể mở khoá không gian riêng tư ngay cả khi không định làm vậy.\n\nNgười khác có thể mở khoá không gian riêng tư của bạn nếu giơ thiết bị ra trước mặt bạn.\n\nNhững người trông rất giống bạn (như anh chị em ruột giống hệt bạn) cũng có thể mở khoá."</string>
+ <string name="private_space_face_settings_footer" msgid="7722256209563543711">"Dùng khuôn mặt để mở khoá không gian riêng tư của bạn.\n\nLưu ý:\nMỗi lần bạn chỉ có thể thiết lập một khuôn mặt. Để thêm một khuôn mặt khác, hãy xoá khuôn mặt hiện tại.\n\nChỉ cần nhìn vào điện thoại là bạn cũng có thể vô tình mở khoá không gian riêng tư.\n\nNgười khác có thể mở khoá không gian riêng tư của bạn nếu giơ thiết bị ra trước mặt bạn.\n\nNhững người trông rất giống bạn (như anh chị em ruột giống hệt bạn) cũng có thể mở khoá."</string>
<string name="private_space_face_settings_require_confirmation_details" msgid="5406498664903812249">"Khi dùng tính năng Mở khoá bằng khuôn mặt, hãy luôn yêu cầu bước xác nhận"</string>
<string name="private_space_category_ways_to_unlock" msgid="4356631225316950046">"Cách mở khoá"</string>
<string name="private_space_screen_lock_summary" msgid="394837965365561070">"Giống như phương thức khoá màn hình thiết bị"</string>
@@ -666,8 +668,8 @@
<string name="lock_settings_picker_admin_restricted_personal_message" msgid="3532653662159888328">"Quản trị viên CNTT sẽ không thể đặt lại nếu bạn quên phương thức khóa màn hình."</string>
<string name="lock_settings_picker_admin_restricted_personal_message_action" msgid="5956615234246626264">"Đặt khóa riêng cho công việc"</string>
<string name="lock_settings_picker_profile_message" msgid="9142379549980873478">"Nếu bạn quên kiểu khóa này, hãy yêu cầu quản trị viên CNTT đặt lại"</string>
- <string name="setup_lock_settings_options_button_label" msgid="6098297461618298505">"Tùy chọn phương thức khóa màn hình"</string>
- <string name="setup_lock_settings_options_dialog_title" msgid="7985107300517468569">"Tùy chọn phương thức khóa màn hình"</string>
+ <string name="setup_lock_settings_options_button_label" msgid="6098297461618298505">"Các phương thức khóa màn hình"</string>
+ <string name="setup_lock_settings_options_dialog_title" msgid="7985107300517468569">"Các phương thức khóa màn hình"</string>
<string name="lock_screen_auto_pin_confirm_title" msgid="3012128112186088375">"Mở khoá bằng cách tự động xác nhận"</string>
<string name="lock_screen_auto_pin_confirm_summary" msgid="9050818870806580819">"Tự động mở khoá nếu bạn nếu nhập đúng mã PIN gồm từ 6 chữ số trở lên. Cách này sẽ kém bảo mật hơn một chút so với việc nhấn Enter để xác nhận."</string>
<string name="auto_pin_confirm_user_message" msgid="6194556173488939314">"Tự động xác nhận bằng mã PIN chính xác"</string>
@@ -850,7 +852,6 @@
<string name="nfc_reboot_dialog_title" msgid="2033983438635768169">"Khởi động lại thiết bị?"</string>
<string name="nfc_reboot_dialog_message" msgid="4929353168157966992">"Chế độ ghi nhật ký chi tiết về Giao tiếp phạm vi gần (NFC) chỉ dành cho mục đích phát triển. Dữ liệu bổ sung về NFC sẽ được đưa vào báo cáo lỗi. Dữ liệu này có thể chứa thông tin riêng tư. Hãy khởi động lại thiết bị để thay đổi chế độ cài đặt này."</string>
<string name="nfc_reboot_dialog_confirm" msgid="4769763632008584567">"Khởi động lại"</string>
- <string name="keywords_external_display" msgid="4181375057920134909">"phản chiếu, màn hình ngoài, màn hình được kết nối, màn hình usb, độ phân giải, góc xoay"</string>
<string name="external_display_on" msgid="2560104443500154333">"Đang bật"</string>
<string name="external_display_off" msgid="5634413756025351374">"Đang tắt"</string>
<string name="external_display_settings_title" msgid="6256884595821605779">"Màn hình ngoài"</string>
@@ -1918,6 +1919,8 @@
<string name="slow_keys_summary" msgid="1784371292745423292">"Điều chỉnh thời gian cần để kích hoạt lượt nhấn phím thành <xliff:g id="SLOW_KEYS_THRESHOLD">%1$d</xliff:g> mili giây"</string>
<string name="sticky_keys" msgid="7317317044898161747">"Phím cố định"</string>
<string name="sticky_keys_summary" msgid="1844953803625480623">"Nhấn từng phím một để dùng phím tắt thay vì giữ các phím cùng lúc"</string>
+ <string name="mouse_keys" msgid="6237254627808525540">"Các phím điều khiển chuột"</string>
+ <string name="mouse_keys_summary" msgid="2396247040177734245">"Dùng bàn phím thực để điều khiển chuột."</string>
<string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"Phím tắt"</string>
<string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"Hiện danh sách phím tắt"</string>
<string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"Công cụ và bàn phím hồ sơ công việc"</string>
@@ -1942,14 +1945,10 @@
<string name="pointer_fill_style_yellow_button" msgid="5025969961559379024">"Đổi màu nền con trỏ thành màu vàng"</string>
<string name="pointer_fill_style_pink_button" msgid="4106218142489635673">"Đổi màu nền con trỏ thành màu hồng"</string>
<string name="pointer_fill_style_blue_button" msgid="5594958078854032785">"Đổi màu nền con trỏ thành xanh lam"</string>
- <!-- no translation found for pointer_stroke_style (1886986630216050665) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_white (673686194443825383) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_black (4655806167067437330) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_none (8953927511729800247) -->
- <skip />
+ <string name="pointer_stroke_style" msgid="1886986630216050665">"Kiểu nét vẽ của con trỏ"</string>
+ <string name="pointer_stroke_style_name_white" msgid="673686194443825383">"Trắng"</string>
+ <string name="pointer_stroke_style_name_black" msgid="4655806167067437330">"Đen"</string>
+ <string name="pointer_stroke_style_name_none" msgid="8953927511729800247">"Không có"</string>
<string name="trackpad_touch_gesture" msgid="8641725062131922497">"Tìm hiểu về cử chỉ ở bàn di chuột"</string>
<string name="keywords_touchpad" msgid="8159846254066666032">"bàn di chuột, bàn rê chuột, chuột, con trỏ chuột, cuộn, vuốt, nhấp chuột phải, nhấp, con trỏ"</string>
<string name="keywords_trackpad_bottom_right_tap" msgid="1285062446073929305">"nhấp chuột phải, nhấn"</string>
@@ -2179,8 +2178,6 @@
<string name="accessibility_shortcut_edit_dialog_summary_floating_button" msgid="6266489864614886247">"Nhấn vào nút nổi"</string>
<string name="accessibility_shortcut_edit_dialog_title_software_by_gesture" msgid="4775049370625630546">"Cử chỉ hỗ trợ tiếp cận"</string>
<string name="accessibility_shortcut_edit_dialog_summary_software" msgid="8315934725362849788">"Nhấn vào nút hỗ trợ tiếp cận <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g> ở cuối màn hình. Để chuyển đổi giữa các tính năng, hãy chạm và giữ nút hỗ trợ tiếp cận."</string>
- <string name="accessibility_shortcut_edit_dialog_summary_software_gesture" msgid="8292555254353761635">"Dùng 2 ngón tay vuốt lên từ cuối màn hình.\n\nĐể chuyển đổi giữa các tính năng, hãy dùng 2 ngón tay vuốt lên và giữ."</string>
- <string name="accessibility_shortcut_edit_dialog_summary_software_gesture_talkback" msgid="84483464524360845">"Dùng 3 ngón tay vuốt lên từ cuối màn hình.\n\nĐể chuyển đổi giữa các tính năng, hãy dùng 3 ngón tay vuốt lên và giữ."</string>
<string name="accessibility_shortcut_edit_dialog_summary_gesture" msgid="2081123009255579884">"{count,plural, =1{Vuốt lên từ cuối màn hình. Để chuyển đổi giữa các tính năng, hãy vuốt lên và giữ.}other{Dùng # ngón tay vuốt lên từ cuối màn hình. Để chuyển đổi giữa các tính năng, hãy dùng # ngón tay vuốt lên và giữ.}}"</string>
<string name="accessibility_shortcut_edit_dialog_summary_software_floating" msgid="4459254227203203324"><annotation id="link">"Tùy chọn khác"</annotation></string>
<string name="footer_learn_more_content_description" msgid="8843798273152131341">"Tìm hiểu thêm về <xliff:g id="SERVICE">%1$s</xliff:g>"</string>
@@ -2191,16 +2188,12 @@
<string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="844089763968552142">"Phím âm lượng"</string>
<string name="accessibility_shortcut_hardware_keyword" msgid="2483152542320987022">"phím âm lượng"</string>
<string name="accessibility_shortcut_edit_dialog_summary_hardware" msgid="2503134386397991634">"Nhấn và giữ cả 2 phím âm lượng"</string>
- <string name="accessibility_shortcut_edit_dialog_title_two_finger_double_tap" msgid="2271778556854020996">"Nhấn đúp vào màn hình bằng hai ngón tay"</string>
<string name="accessibility_shortcut_edit_screen_title_two_finger_double_tap" msgid="8952595692906527694">"Nhấn đúp bằng %1$d ngón tay"</string>
<string name="accessibility_shortcut_edit_screen_summary_two_finger_double_tap" msgid="385404127425496362">"Dùng %1$d ngón tay nhấn nhanh vào màn hình 2 lần"</string>
<string name="accessibility_shortcut_edit_screen_title_triple_tap" msgid="3314488747597058942">"Nhấn 3 lần"</string>
<string name="accessibility_shortcut_edit_screen_summary_triple_tap" msgid="4839204951599629871">"Nhấn nhanh vào màn hình %1$d lần. Thao tác này có thể khiến thiết bị của bạn hoạt động chậm."</string>
<string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="6271718715836961167">"Nhấn đúp bằng %1$d ngón tay"</string>
- <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"Nhấn nhanh vào màn hình {0,number,integer} lần bằng 2 ngón tay"</string>
- <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"Nhấn 3 lần vào màn hình"</string>
<string name="accessibility_shortcut_triple_tap_keyword" msgid="5359347130888464334">"nhấn 3 lần"</string>
- <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"Nhấn nhanh vào màn hình {0,number,integer} lần. Phím tắt này có thể làm chậm thiết bị"</string>
<string name="accessibility_shortcut_edit_dialog_title_advance" msgid="4567868630655591506">"Nâng cao"</string>
<string name="accessibility_screen_magnification_navbar_configuration_warning" msgid="266736851606791552">"Nút Hỗ trợ tiếp cận được đặt thành <xliff:g id="SERVICE">%1$s</xliff:g>. Để sử dụng tính năng phóng đại, hãy chạm và giữ nút Hỗ trợ tiếp cận, sau đó chọn độ phóng đại."</string>
<string name="accessibility_screen_magnification_gesture_navigation_warning" msgid="991017769735632046">"Cử chỉ hỗ trợ tiếp cận này đã được đặt thành <xliff:g id="SERVICE">%1$s</xliff:g>. Để phóng to, hãy dùng 2 ngón tay vuốt từ cuối màn hình lên rồi giữ. Sau đó, chọn tùy chọn phóng to."</string>
@@ -2369,6 +2362,7 @@
<string name="daltonizer_mode_tritanomaly_title" msgid="2278786218762602022">"Xanh lam – vàng"</string>
<string name="daltonizer_mode_grayscale_title" msgid="152005391387952588">"Thang màu xám"</string>
<string name="daltonizer_saturation_title" msgid="2999486412114963068">"Cường độ"</string>
+ <string name="daltonizer_saturation_unavailable_summary" msgid="8319753055567798775">"Không dùng được ở chế độ thang màu xám hoặc khi tắt tính năng chỉnh màu"</string>
<string name="daltonizer_mode_deuteranomaly_summary" msgid="2117727423019598455">"Phân biệt màu lục kém, mù màu xanh lục"</string>
<string name="daltonizer_mode_protanomaly_summary" msgid="4617032854982040748">"Phân biệt màu đỏ kém, mù màu đỏ"</string>
<string name="daltonizer_mode_tritanomaly_summary" msgid="2428218320118180070">"Mù màu lam vàng"</string>
@@ -2418,15 +2412,8 @@
<string name="color_cyan" msgid="4341758639597035927">"Lục lam"</string>
<string name="color_yellow" msgid="5957551912912679058">"Vàng"</string>
<string name="color_magenta" msgid="8943538189219528423">"Đỏ tươi"</string>
- <string name="enable_service_title" msgid="7231533866953706788">"Cho phép <xliff:g id="SERVICE">%1$s</xliff:g> có toàn quyền kiểm soát thiết bị của bạn?"</string>
<string name="capabilities_list_title" msgid="1225853611983394386">"<xliff:g id="SERVICE">%1$s</xliff:g> cần:"</string>
<string name="touch_filtered_warning" msgid="4225815157460318241">"Vì ứng dụng đang che khuất yêu cầu cấp quyền, Cài đặt không thể xác minh câu trả lời của bạn."</string>
- <string name="accessibility_service_warning" msgid="6779187188736432618">"<xliff:g id="SERVICE">%1$s</xliff:g> đang yêu cầu toàn quyền kiểm soát thiết bị này. Dịch vụ này có thể đọc màn hình và hành động thay mặt cho người dùng có nhu cầu về hỗ trợ tiếp cận. Mức độ kiểm soát này không phù hợp với hầu hết các ứng dụng."</string>
- <string name="accessibility_service_warning_description" msgid="6573203795976134751">"Bạn chỉ nên cấp toàn quyền kiểm soát cho những ứng dụng trợ giúp mình khi cần hỗ trợ tiếp cận, chứ không nên cấp cho hầu hết các ứng dụng."</string>
- <string name="accessibility_service_screen_control_title" msgid="324795030658109870">"Xem và điều khiển màn hình"</string>
- <string name="accessibility_service_screen_control_description" msgid="8431940515157990426">"Dịch vụ này có thể đọc toàn bộ nội dung trên màn hình và hiển thị nội dung trên các ứng dụng khác."</string>
- <string name="accessibility_service_action_perform_title" msgid="1449360056585337833">"Xem và thực hiện hành động"</string>
- <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"Dịch vụ này có thể theo dõi các hoạt động tương tác của bạn với một ứng dụng hoặc bộ cảm biến phần cứng, cũng như có thể thay mặt bạn tương tác với các ứng dụng."</string>
<string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Cho phép"</string>
<string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Từ chối"</string>
<string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Tắt"</string>
@@ -3368,10 +3355,8 @@
<string name="zen_mode_automation_settings_title" msgid="3709324184191870926">"Lịch biểu"</string>
<string name="zen_mode_delete_automatic_rules" msgid="5020468289267191765">"Xóa lịch biểu"</string>
<string name="zen_mode_schedule_delete" msgid="5383420576833765114">"Xóa"</string>
- <!-- no translation found for zen_mode_menu_rename_mode (4681802125016390837) -->
- <skip />
- <!-- no translation found for zen_mode_menu_delete_mode (5380084696402157428) -->
- <skip />
+ <string name="zen_mode_menu_rename_mode" msgid="4681802125016390837">"Đổi tên"</string>
+ <string name="zen_mode_menu_delete_mode" msgid="5380084696402157428">"Xoá"</string>
<string name="zen_mode_delete_mode_confirmation" msgid="7594340592051947392">"Xoá chế độ \"<xliff:g id="MODE">%1$s</xliff:g>\"?"</string>
<string name="zen_mode_rule_name_edit" msgid="1053237022416700481">"Chỉnh sửa"</string>
<string name="zen_mode_automation_settings_page_title" msgid="6217433860514433311">"Lịch biểu"</string>
@@ -3395,8 +3380,7 @@
<string name="zen_mode_visual_signals_settings_subtitle" msgid="7433077540895876672">"Cho phép tín hiệu hình ảnh"</string>
<string name="mode_interruption_filter_title" msgid="3343846700214702347">"Luôn tập trung"</string>
<string name="mode_device_effects_title" msgid="5857008332618433744">"Thao tác khác"</string>
- <!-- no translation found for modes_sound_summary_off (6972648204528227879) -->
- <skip />
+ <string name="modes_sound_summary_off" msgid="6972648204528227879">"{count,plural, =0{Đang tắt}=1{Đang tắt/1 chế độ có thể tự động bật}other{Đang tắt/# chế độ có thể tự động bật}}"</string>
<string name="mode_display_settings_title" msgid="8132825978346535472">"Chế độ cài đặt màn hình"</string>
<string name="mode_display_options_section" msgid="5151597748243866532">"Lựa chọn hiển thị"</string>
<string name="mode_grayscale_title" msgid="6027553257331235461">"Thang màu xám"</string>
@@ -3659,9 +3643,9 @@
<string name="notif_listener_not_migrated" msgid="6265206376374278226">"Ứng dụng này không hỗ trợ chế độ cài đặt nâng cao"</string>
<string name="notif_listener_more_settings" msgid="1348409392307208921">"Chế độ cài đặt khác"</string>
<string name="notif_listener_more_settings_desc" msgid="7995492074281663658">"Các chế độ cài đặt khác có sẵn trong ứng dụng này"</string>
- <string name="notification_polite_title" msgid="4737150709382859870">"Thông báo thích ứng"</string>
- <string name="notification_polite_main_control_title" msgid="7267191551379543859">"Dùng thông báo thích ứng"</string>
- <string name="notification_polite_description" msgid="7749280535620291610">"Khi bạn nhận được nhiều thông báo trong một thời gian ngắn, điện thoại sẽ hạ âm lượng và giảm thiểu cửa sổ bật lên trên màn hình trong tối đa 2 phút. Các cuộc gọi, chuông báo và các cuộc trò chuyện ưu tiên sẽ vẫn rung, phát ra âm thanh hoặc xuất hiện trên màn hình, đồng thời bạn sẽ dễ dàng tìm thấy mọi thông báo khi kéo xuống từ đầu màn hình."</string>
+ <string name="notification_polite_title" msgid="6121016426991791557">"Giảm dần âm lượng cho thông báo"</string>
+ <string name="notification_polite_main_control_title" msgid="5812529809151927149">"Dùng tính năng giảm dần âm lượng thông báo"</string>
+ <string name="notification_polite_description" msgid="5497748284893832854">"Khi bạn nhận được nhiều thông báo trong một thời gian ngắn, thiết bị của bạn sẽ hạ âm lượng và giảm thiểu cảnh báo trong tối đa 2 phút. Cuộc gọi, chuông báo và cuộc trò chuyện ưu tiên sẽ không bị ảnh hưởng. \n\nBạn có thể kéo xuống từ đầu màn hình để xem các thông báo nhận được trong lúc giảm dần âm lượng thông báo."</string>
<string name="notification_polite_work" msgid="8823596456640216391">"Áp dụng cho hồ sơ công việc"</string>
<string name="notification_polite_work_summary" msgid="5014189280132951378">"Áp dụng cho các ứng dụng trong hồ sơ công việc"</string>
<string name="vr_listeners_title" msgid="4960357292472540964">"Dịch vụ trình trợ giúp thực tế ảo"</string>
@@ -3818,7 +3802,9 @@
<string name="zen_mode_apps_priority_apps" msgid="7386196048313716076">"Các ứng dụng được chọn"</string>
<string name="zen_mode_apps_none_apps" msgid="2493642312793604327">"Không có"</string>
<string name="zen_mode_apps_subtext" msgid="1764211974662012877">"{count,plural,offset:2 =0{Không ứng dụng nào có thể gây gián đoạn}=1{{app_1} có thể gây gián đoạn}=2{{app_1} và {app_2} có thể gây gián đoạn}=3{{app_1}, {app_2} và {app_3} có thể gây gián đoạn}other{{app_1}, {app_2} và # ứng dụng khác có thể gây gián đoạn}}"</string>
+ <string name="zen_mode_apps_work_app" msgid="8528767938316361588">"<xliff:g id="APP_LABEL">%s</xliff:g> (Công việc)"</string>
<string name="zen_mode_apps_calculating" msgid="5420121396943539286">"Đang tính toán…"</string>
+ <string name="zen_mode_plus_n_items" msgid="6136713354369243421">"+<xliff:g id="NUMBER">%d</xliff:g>"</string>
<string name="zen_mode_bypassing_apps" msgid="625309443389126481">"Cho phép ứng dụng ghi đè"</string>
<string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"Những ứng dụng có thể làm gián đoạn chế độ Không làm phiền"</string>
<string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"Chọn ứng dụng khác"</string>
@@ -3836,6 +3822,7 @@
<string name="zen_mode_sounds_none" msgid="6557474361948269420">"Không âm thanh nào có thể làm gián đoạn"</string>
<string name="zen_mode_people_none" msgid="4613147461974255046">"Không ai có thể làm gián đoạn"</string>
<string name="zen_mode_people_some" msgid="9101872681298810281">"Một số người có thể làm gián đoạn"</string>
+ <string name="zen_mode_people_repeat_callers" msgid="4499084111069828761">"Những người gọi nhiều lần có thể gây gián đoạn"</string>
<string name="zen_mode_people_all" msgid="311036110283015205">"Tất cả mọi người có thể gián đoạn"</string>
<string name="zen_mode_repeat_callers" msgid="2270356100287792138">"Người gọi nhiều lần"</string>
<string name="zen_mode_repeat_callers_title" msgid="8016699240338264781">"Cho phép người gọi nhiều lần"</string>
@@ -3855,13 +3842,37 @@
<string name="zen_mode_summary_alarms_only_by_hour" msgid="7400910210950788163">"{count,plural, =1{Đổi sang chế độ chỉ báo thức trong 1 giờ cho đến {time}}other{Đổi sang chế độ chỉ báo thức trong # giờ cho đến {time}}}"</string>
<string name="zen_mode_summary_alarms_only_by_time" msgid="8140619669703968810">"Đổi sang báo thức chỉ đến khi <xliff:g id="FORMATTEDTIME">%1$s</xliff:g>"</string>
<string name="zen_mode_summary_always" msgid="722093064250082317">"Đổi sang luôn làm gián đoạn"</string>
- <!-- no translation found for zen_mode_rename_title (8146882272966214558) -->
+ <string name="zen_mode_rename_title" msgid="8146882272966214558">"Chỉnh sửa chế độ"</string>
+ <string name="zen_mode_new_custom_title" msgid="321750898430776191">"Thêm chế độ"</string>
+ <string name="zen_mode_new_custom_default_name" msgid="2778307946775085105">"Chế độ tuỳ chỉnh"</string>
+ <string name="zen_mode_edit_name_hint" msgid="4584652062167540536">"Tên chế độ"</string>
+ <string name="zen_mode_trigger_title_schedule_calendar" msgid="9206609438617550331">"Sự kiện trên lịch"</string>
+ <string name="zen_mode_trigger_title_bedtime" msgid="5086070900588489978">"Lịch ngủ"</string>
+ <string name="zen_mode_trigger_title_driving" msgid="7890990983453164403">"Trong khi lái xe"</string>
+ <string name="zen_mode_trigger_title_generic" msgid="601273385119550420">"Đã liên kết với ứng dụng"</string>
+ <string name="zen_mode_trigger_summary_settings_in_app" msgid="4860667191183702601">"Thông tin và chế độ cài đặt trong <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+ <string name="zen_mode_trigger_summary_managed_by_app" msgid="8631011868193102098">"Do <xliff:g id="APP_NAME">%1$s</xliff:g> quản lý"</string>
+ <string name="zen_mode_confirm_disable_title" msgid="1232297660775719796">"Tắt chế độ"</string>
+ <string name="zen_mode_confirm_disable_message" msgid="7315541221665718491">"Nếu bạn tắt tính năng này, thì chế độ này sẽ không hoạt động như dự kiến và các tuỳ chọn cài đặt của chế độ sẽ bị ẩn."</string>
+ <string name="zen_mode_action_disable" msgid="3552921561331044881">"Tắt"</string>
+ <string name="zen_mode_confirm_enable_title" msgid="5683371335847448595">"Bật chế độ"</string>
+ <string name="zen_mode_confirm_enable_message" msgid="7017879133260011419">"Nếu bạn bật tính năng này, thì chế độ này sẽ tự động kích hoạt theo lịch tương ứng."</string>
+ <string name="zen_mode_action_enable" msgid="1161480633223176531">"Bật"</string>
+ <!-- no translation found for zen_mode_blurb_schedule_time (8223898702097484009) -->
<skip />
- <!-- no translation found for zen_mode_new_custom_title (321750898430776191) -->
+ <!-- no translation found for zen_mode_blurb_schedule_calendar (382177907856065945) -->
<skip />
- <!-- no translation found for zen_mode_new_custom_default_name (2778307946775085105) -->
+ <!-- no translation found for zen_mode_blurb_bedtime (6155075956151013457) -->
<skip />
- <!-- no translation found for zen_mode_edit_name_hint (4584652062167540536) -->
+ <!-- no translation found for zen_mode_blurb_driving (1316054379000667305) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_immersive (5884004861848687869) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_theater (2999237960059524225) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_managed (5473921634985032149) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_generic (3041601339807075625) -->
<skip />
<string name="warning_button_text" msgid="1274234338874005639">"Cảnh báo"</string>
<string name="suggestion_button_close" msgid="6865170855573283759">"Đóng"</string>
@@ -4849,9 +4860,8 @@
<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="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>
+ <!-- no translation found for enable_desktop_mode_on_secondary_display (2609567824593768780) -->
+ <skip />
<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>
@@ -5026,7 +5036,6 @@
<string name="default_active_sim_mobile_data" msgid="6798083892814045301">"dữ liệu di động"</string>
<string name="wifi_scan_notify_message" msgid="1331238142061476869">"Để cải thiện trải nghiệm khi dùng thiết bị, chẳng hạn như cải thiện các tính năng và dịch vụ dựa trên vị trí, các ứng dụng và dịch vụ vẫn có thể quét tìm mạng Wi‑Fi bất cứ lúc nào, ngay cả khi Wi‑Fi đang tắt. Bạn có thể thay đổi chế độ này trong phần cài đặt tính năng quét tìm Wi‑Fi."</string>
<string name="wifi_scan_change" msgid="8438320311511852918">"Thay đổi"</string>
- <string name="preference_summary_default_combination" msgid="4643585915107796253">"<xliff:g id="STATE">%1$s</xliff:g>/<xliff:g id="NETWORKMODE">%2$s</xliff:g>"</string>
<string name="mobile_data_connection_active" msgid="2422223108911581552">"Đã kết nối"</string>
<string name="mobile_data_temp_connection_active" msgid="3430470299756236413">"Tạm thời có kết nối"</string>
<string name="mobile_data_temp_using" msgid="5211002380149434155">"Tạm thời sử dụng <xliff:g id="SUBNAME">%1$s</xliff:g>"</string>
@@ -5172,9 +5181,11 @@
<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="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_enable_freeform_support" msgid="3697462756493543645">"Bạn cần phải khởi động lại để bật tính năng hỗ trợ cửa sổ có thể đổi kích thước."</string>
+ <!-- no translation found for reboot_dialog_override_desktop_mode (7480950772574354130) -->
+ <skip />
+ <!-- no translation found for reboot_dialog_enable_desktop_mode_on_secondary_display (1153621881052401924) -->
+ <skip />
<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>
@@ -5292,10 +5303,8 @@
<string name="show_captions_enabled" msgid="7089043007924626">"Đang bật"</string>
<string name="live_caption_disabled" msgid="3562035026547887366">"Đang tắt"</string>
<string name="live_caption_enabled" msgid="5269360946200718949">"Đang bật"</string>
- <!-- no translation found for audio_seek_bar_state_left_first (8814986910920838972) -->
- <skip />
- <!-- no translation found for audio_seek_bar_state_right_first (1999368979633398876) -->
- <skip />
+ <string name="audio_seek_bar_state_left_first" msgid="8814986910920838972">"Âm thanh: trái %1$d%%, phải %2$d%%"</string>
+ <string name="audio_seek_bar_state_right_first" msgid="1999368979633398876">"Âm thanh: phải %1$d%%, trái %2$d%%"</string>
<string name="about_phone_device_name_warning" msgid="3243226572404472381">"Các ứng dụng bạn đã cài đặt sẽ biết được tên thiết bị của bạn. Những người khác cũng có thể thấy tên thiết bị này khi bạn kết nối với thiết bị Bluetooth, một mạng Wi-Fi hoặc thiết lập một điểm phát sóng Wi-Fi."</string>
<string name="grammatical_gender_title" msgid="8584242850477270828">"Giống trong ngữ pháp"</string>
<string name="grammatical_gender_dialog_title" msgid="8754048592099871587">"Chọn giống trong ngữ pháp"</string>
@@ -5407,5 +5416,6 @@
<string name="audio_streams_main_page_password_dialog_join_button" msgid="2967747276379153408">"Nghe luồng âm thanh"</string>
<string name="audio_streams_main_page_qr_code_scanner_summary" msgid="5312980105735143360">"Hãy dùng <xliff:g id="DEVICE_NAME">%1$s</xliff:g> để quét mã QR của luồng âm thanh mà bạn muốn nghe"</string>
<string name="audio_streams_main_page_password_dialog_cannot_edit" msgid="9020898619297520153">"Không thể chỉnh sửa mật khẩu trong khi chia sẻ. Để đổi mật khẩu, trước tiên hãy tắt tính năng chia sẻ âm thanh."</string>
+ <string name="audio_streams_qr_code_scanner_label" msgid="8799703301071378034">"Trình quét mã QR"</string>
<string name="homepage_search" msgid="6759334912284663559">"Tìm kiếm trong phần Cài đặt"</string>
</resources>
diff --git a/res/values-zh-rCN/strings.xml b/res/values-zh-rCN/strings.xml
index efd0207..000c852 100644
--- a/res/values-zh-rCN/strings.xml
+++ b/res/values-zh-rCN/strings.xml
@@ -41,6 +41,8 @@
<string name="radioInfo_data_suspended" msgid="2001254415431299603">"已暂停"</string>
<string name="radioInfo_unknown" msgid="2892562356748600367">"未知"</string>
<string name="preview_pager_content_description" msgid="3762247188224576303">"预览"</string>
+ <!-- no translation found for qr_code_content_description (1852208464419291347) -->
+ <skip />
<string name="font_size_make_smaller_desc" msgid="4978038055549590140">"缩小"</string>
<string name="font_size_make_larger_desc" msgid="5583046033381722247">"放大"</string>
<string name="stay_awake_on_fold_title" msgid="6590454679898134221">"始终"</string>
@@ -283,7 +285,7 @@
<string name="location_settings_summary_location_off" msgid="4797932754681162262">"已关闭"</string>
<string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{已开启 / # 个应用有权访问位置信息}other{已开启 / # 个应用有权访问位置信息}}"</string>
<string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"正在加载…"</string>
- <string name="location_settings_footer_general" msgid="1040507068701188821">"具有附近设备权限的应用可以确定已连接的设备的相对位置。"</string>
+ <string name="location_settings_footer_general" msgid="3447585552176173502">"具有附近设备权限的应用可以确定已连接设备的相对位置。"</string>
<string name="location_settings_footer_location_off" msgid="8568995909147566720">"应用和服务的位置信息使用权处于关闭状态。在您拨打紧急电话号码或向该号码发送短信时,系统可能仍会将您的设备位置信息发送给紧急救援人员。"</string>
<string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"详细了解位置信息设置"</string>
<string name="location_settings_tooltip_text_for_chrome" msgid="5781821709250544575">"如要进行更改,请依次前往 ChromeOS 的“设置”>“隐私和安全”>“隐私控制”>“位置信息使用权”"</string>
@@ -666,7 +668,7 @@
<string name="lock_settings_picker_admin_restricted_personal_message" msgid="3532653662159888328">"如果您忘记屏幕解锁方式,IT 管理员将无法为您重置。"</string>
<string name="lock_settings_picker_admin_restricted_personal_message_action" msgid="5956615234246626264">"为工作资料设置单独的屏幕锁定方式"</string>
<string name="lock_settings_picker_profile_message" msgid="9142379549980873478">"如果忘记了此锁定方式,请让您的 IT 管理员重置"</string>
- <string name="setup_lock_settings_options_button_label" msgid="6098297461618298505">"屏幕锁定选项"</string>
+ <string name="setup_lock_settings_options_button_label" msgid="6098297461618298505">"屏幕解锁方式"</string>
<string name="setup_lock_settings_options_dialog_title" msgid="7985107300517468569">"解锁方式"</string>
<string name="lock_screen_auto_pin_confirm_title" msgid="3012128112186088375">"自动确认解锁"</string>
<string name="lock_screen_auto_pin_confirm_summary" msgid="9050818870806580819">"如果输入的 PIN 码(6 位以上)正确,设备会自动解锁。与通过点按 Enter 键确认 PIN 相比,前者的安全性略低。"</string>
@@ -850,7 +852,6 @@
<string name="nfc_reboot_dialog_title" msgid="2033983438635768169">"要重启设备吗?"</string>
<string name="nfc_reboot_dialog_message" msgid="4929353168157966992">"详细 NFC 日志记录仅用于开发目的。错误报告中包含其他 NFC 数据,其中可能包含私密信息。如需更改此设置,请重启设备。"</string>
<string name="nfc_reboot_dialog_confirm" msgid="4769763632008584567">"重启"</string>
- <string name="keywords_external_display" msgid="4181375057920134909">"镜像, 外接显示器, 已连接的显示器, USB 显示器, 分辨率, 旋转角度, mirror, external display, connected display, usb display, resolution, rotation"</string>
<string name="external_display_on" msgid="2560104443500154333">"已打开"</string>
<string name="external_display_off" msgid="5634413756025351374">"已关闭"</string>
<string name="external_display_settings_title" msgid="6256884595821605779">"外接显示器"</string>
@@ -1918,6 +1919,8 @@
<string name="slow_keys_summary" msgid="1784371292745423292">"将按键启用时长调整为 <xliff:g id="SLOW_KEYS_THRESHOLD">%1$d</xliff:g> 毫秒"</string>
<string name="sticky_keys" msgid="7317317044898161747">"粘滞键"</string>
<string name="sticky_keys_summary" msgid="1844953803625480623">"只需一次按下一个键即可执行快捷操作,而不用同时按住多个键"</string>
+ <string name="mouse_keys" msgid="6237254627808525540">"鼠标按键"</string>
+ <string name="mouse_keys_summary" msgid="2396247040177734245">"使用实体键盘控制鼠标。"</string>
<string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"键盘快捷键"</string>
<string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"显示快捷键列表"</string>
<string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"工作资料键盘和工具"</string>
@@ -1942,14 +1945,10 @@
<string name="pointer_fill_style_yellow_button" msgid="5025969961559379024">"将指针填充样式更改为黄色"</string>
<string name="pointer_fill_style_pink_button" msgid="4106218142489635673">"将指针填充样式更改为粉色"</string>
<string name="pointer_fill_style_blue_button" msgid="5594958078854032785">"将指针填充样式更改为蓝色"</string>
- <!-- no translation found for pointer_stroke_style (1886986630216050665) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_white (673686194443825383) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_black (4655806167067437330) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_none (8953927511729800247) -->
- <skip />
+ <string name="pointer_stroke_style" msgid="1886986630216050665">"指针描边样式"</string>
+ <string name="pointer_stroke_style_name_white" msgid="673686194443825383">"白色"</string>
+ <string name="pointer_stroke_style_name_black" msgid="4655806167067437330">"黑色"</string>
+ <string name="pointer_stroke_style_name_none" msgid="8953927511729800247">"无"</string>
<string name="trackpad_touch_gesture" msgid="8641725062131922497">"了解触控板手势"</string>
<string name="keywords_touchpad" msgid="8159846254066666032">"触控板, 鼠标, 光标, 滚动, 滑动, 右键点击, 点击, 指针, trackpad, track pad, mouse, cursor, scroll, swipe, right click, click, pointer"</string>
<string name="keywords_trackpad_bottom_right_tap" msgid="1285062446073929305">"右键点击, 点按, right click, tap"</string>
@@ -2179,8 +2178,6 @@
<string name="accessibility_shortcut_edit_dialog_summary_floating_button" msgid="6266489864614886247">"点按悬浮按钮"</string>
<string name="accessibility_shortcut_edit_dialog_title_software_by_gesture" msgid="4775049370625630546">"无障碍功能启动手势"</string>
<string name="accessibility_shortcut_edit_dialog_summary_software" msgid="8315934725362849788">"点按屏幕底部的“无障碍”按钮 <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g>。若要在多项功能间切换,请轻触并按住“无障碍”按钮。"</string>
- <string name="accessibility_shortcut_edit_dialog_summary_software_gesture" msgid="8292555254353761635">"用两根手指从屏幕底部向上滑动。\n\n用两根手指向上滑动并按住,即可在多项功能之间切换。"</string>
- <string name="accessibility_shortcut_edit_dialog_summary_software_gesture_talkback" msgid="84483464524360845">"用三根手指从屏幕底部向上滑动。\n\n用三根手指向上滑动并按住,即可在多项功能之间切换。"</string>
<string name="accessibility_shortcut_edit_dialog_summary_gesture" msgid="2081123009255579884">"{count,plural, =1{从屏幕底部向上滑动。若要在多项功能间切换,请向上滑动并按住。}other{用 # 根手指从屏幕底部向上滑动。若要在多项功能间切换,请用 # 根手指向上滑动并按住。}}"</string>
<string name="accessibility_shortcut_edit_dialog_summary_software_floating" msgid="4459254227203203324"><annotation id="link">"更多选项"</annotation></string>
<string name="footer_learn_more_content_description" msgid="8843798273152131341">"详细了解<xliff:g id="SERVICE">%1$s</xliff:g>"</string>
@@ -2191,16 +2188,12 @@
<string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="844089763968552142">"音量键"</string>
<string name="accessibility_shortcut_hardware_keyword" msgid="2483152542320987022">"音量键"</string>
<string name="accessibility_shortcut_edit_dialog_summary_hardware" msgid="2503134386397991634">"同时按住两个音量键"</string>
- <string name="accessibility_shortcut_edit_dialog_title_two_finger_double_tap" msgid="2271778556854020996">"双指点按屏幕两次"</string>
<string name="accessibility_shortcut_edit_screen_title_two_finger_double_tap" msgid="8952595692906527694">"%1$d 指点按两次"</string>
<string name="accessibility_shortcut_edit_screen_summary_two_finger_double_tap" msgid="385404127425496362">"用 %1$d 根手指快速点按屏幕两次"</string>
<string name="accessibility_shortcut_edit_screen_title_triple_tap" msgid="3314488747597058942">"点按三次"</string>
<string name="accessibility_shortcut_edit_screen_summary_triple_tap" msgid="4839204951599629871">"快速点按屏幕 %1$d 次。这可能会减慢设备的运行速度。"</string>
<string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="6271718715836961167">"%1$d 指点按两次"</string>
- <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"双指快速点按屏幕 {0,number,integer} 次"</string>
- <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"点按屏幕三次"</string>
<string name="accessibility_shortcut_triple_tap_keyword" msgid="5359347130888464334">"点按三次"</string>
- <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"在屏幕上快速点按 {0,number,integer} 次。此快捷方式可能会减慢设备的运行速度"</string>
<string name="accessibility_shortcut_edit_dialog_title_advance" msgid="4567868630655591506">"高级"</string>
<string name="accessibility_screen_magnification_navbar_configuration_warning" msgid="266736851606791552">"“无障碍”按钮已设为“<xliff:g id="SERVICE">%1$s</xliff:g>”。要使用放大功能,请触摸并按住“无障碍”按钮,然后选择“放大功能”。"</string>
<string name="accessibility_screen_magnification_gesture_navigation_warning" msgid="991017769735632046">"无障碍手势已设为<xliff:g id="SERVICE">%1$s</xliff:g>。要使用放大功能,请用两指从屏幕底部向上滑动并按住,然后选择放大功能。"</string>
@@ -2369,6 +2362,7 @@
<string name="daltonizer_mode_tritanomaly_title" msgid="2278786218762602022">"蓝黄不分"</string>
<string name="daltonizer_mode_grayscale_title" msgid="152005391387952588">"灰度模式"</string>
<string name="daltonizer_saturation_title" msgid="2999486412114963068">"强度"</string>
+ <string name="daltonizer_saturation_unavailable_summary" msgid="8319753055567798775">"在灰度模式下或“色彩校正”功能已停用时不可用"</string>
<string name="daltonizer_mode_deuteranomaly_summary" msgid="2117727423019598455">"绿色弱、绿色盲"</string>
<string name="daltonizer_mode_protanomaly_summary" msgid="4617032854982040748">"红色弱、红色盲"</string>
<string name="daltonizer_mode_tritanomaly_summary" msgid="2428218320118180070">"蓝色弱视"</string>
@@ -2418,15 +2412,8 @@
<string name="color_cyan" msgid="4341758639597035927">"青色"</string>
<string name="color_yellow" msgid="5957551912912679058">"黄色"</string>
<string name="color_magenta" msgid="8943538189219528423">"紫红色"</string>
- <string name="enable_service_title" msgid="7231533866953706788">"要允许“<xliff:g id="SERVICE">%1$s</xliff:g>”完全控制您的设备吗?"</string>
<string name="capabilities_list_title" msgid="1225853611983394386">"“<xliff:g id="SERVICE">%1$s</xliff:g>”需要:"</string>
<string name="touch_filtered_warning" msgid="4225815157460318241">"由于某个应用遮挡了权限请求界面,因此“设置”应用无法验证您的回应。"</string>
- <string name="accessibility_service_warning" msgid="6779187188736432618">"<xliff:g id="SERVICE">%1$s</xliff:g>正在请求完全控制此设备。该服务可以读取屏幕内容,并代表有无障碍需求的用户进行操作。这种控制级别不适合大多数应用。"</string>
- <string name="accessibility_service_warning_description" msgid="6573203795976134751">"如果需要使用无障碍功能,您可以将完全控制权限授予相关应用,但大多数应用都不应获得此权限。"</string>
- <string name="accessibility_service_screen_control_title" msgid="324795030658109870">"查看和控制屏幕"</string>
- <string name="accessibility_service_screen_control_description" msgid="8431940515157990426">"此功能可以读出屏幕上的所有内容,并在其他应用上层显示内容。"</string>
- <string name="accessibility_service_action_perform_title" msgid="1449360056585337833">"查看和执行操作"</string>
- <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"此功能可以跟踪您与应用或硬件传感器的互动,并代表您与应用互动。"</string>
<string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"允许"</string>
<string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"拒绝"</string>
<string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"关闭"</string>
@@ -3368,10 +3355,8 @@
<string name="zen_mode_automation_settings_title" msgid="3709324184191870926">"时间表"</string>
<string name="zen_mode_delete_automatic_rules" msgid="5020468289267191765">"删除时间表"</string>
<string name="zen_mode_schedule_delete" msgid="5383420576833765114">"删除"</string>
- <!-- no translation found for zen_mode_menu_rename_mode (4681802125016390837) -->
- <skip />
- <!-- no translation found for zen_mode_menu_delete_mode (5380084696402157428) -->
- <skip />
+ <string name="zen_mode_menu_rename_mode" msgid="4681802125016390837">"重命名"</string>
+ <string name="zen_mode_menu_delete_mode" msgid="5380084696402157428">"删除"</string>
<string name="zen_mode_delete_mode_confirmation" msgid="7594340592051947392">"要删除“<xliff:g id="MODE">%1$s</xliff:g>”模式吗?"</string>
<string name="zen_mode_rule_name_edit" msgid="1053237022416700481">"修改"</string>
<string name="zen_mode_automation_settings_page_title" msgid="6217433860514433311">"时间表"</string>
@@ -3395,8 +3380,7 @@
<string name="zen_mode_visual_signals_settings_subtitle" msgid="7433077540895876672">"允许视觉信号"</string>
<string name="mode_interruption_filter_title" msgid="3343846700214702347">"保持专注"</string>
<string name="mode_device_effects_title" msgid="5857008332618433744">"其他操作"</string>
- <!-- no translation found for modes_sound_summary_off (6972648204528227879) -->
- <skip />
+ <string name="modes_sound_summary_off" msgid="6972648204528227879">"{count,plural, =0{关闭}=1{关闭/1 个模式可以自动开启}other{关闭/# 个模式可以自动开启}}"</string>
<string name="mode_display_settings_title" msgid="8132825978346535472">"显示设置"</string>
<string name="mode_display_options_section" msgid="5151597748243866532">"显示选项"</string>
<string name="mode_grayscale_title" msgid="6027553257331235461">"灰度模式"</string>
@@ -3659,9 +3643,9 @@
<string name="notif_listener_not_migrated" msgid="6265206376374278226">"此应用不支持增强型设置"</string>
<string name="notif_listener_more_settings" msgid="1348409392307208921">"更多设置"</string>
<string name="notif_listener_more_settings_desc" msgid="7995492074281663658">"您可以在此应用中使用更多设置"</string>
- <string name="notification_polite_title" msgid="4737150709382859870">"自适应通知"</string>
- <string name="notification_polite_main_control_title" msgid="7267191551379543859">"使用自适应通知"</string>
- <string name="notification_polite_description" msgid="7749280535620291610">"如果您在短时间内收到很多通知,手机会降低音量并将屏幕上的弹出式窗口最小化,这种状况最长可持续两分钟。来电、闹钟和优先对话仍会发出振动/声音提醒或显示在屏幕上,并且您只要从屏幕顶部向下拉,即可轻松找到所有通知。"</string>
+ <string name="notification_polite_title" msgid="6121016426991791557">"通知音量渐降"</string>
+ <string name="notification_polite_main_control_title" msgid="5812529809151927149">"使用“通知音量渐降”"</string>
+ <string name="notification_polite_description" msgid="5497748284893832854">"如果您在短时间内收到很多通知,设备音量会降低,提醒次数也会降至最低,这种状况最长可持续 2 分钟。电话、闹钟和优先对话则不受影响。\n\n音量渐降期间收到的通知可以通过从屏幕顶部向下拉找到。"</string>
<string name="notification_polite_work" msgid="8823596456640216391">"应用于工作资料"</string>
<string name="notification_polite_work_summary" msgid="5014189280132951378">"应用至工作资料应用"</string>
<string name="vr_listeners_title" msgid="4960357292472540964">"VR 助手服务"</string>
@@ -3818,7 +3802,9 @@
<string name="zen_mode_apps_priority_apps" msgid="7386196048313716076">"所选应用"</string>
<string name="zen_mode_apps_none_apps" msgid="2493642312793604327">"无"</string>
<string name="zen_mode_apps_subtext" msgid="1764211974662012877">"{count,plural,offset:2 =0{任何应用均不例外}=1{“{app_1}”例外}=2{“{app_1}”和“{app_2}”例外}=3{“{app_1}”“{app_2}”和“{app_3}”例外}other{“{app_1}”“{app_2}”以及另外 # 款应用例外}}"</string>
+ <string name="zen_mode_apps_work_app" msgid="8528767938316361588">"<xliff:g id="APP_LABEL">%s</xliff:g>(工作)"</string>
<string name="zen_mode_apps_calculating" msgid="5420121396943539286">"正在计算…"</string>
+ <string name="zen_mode_plus_n_items" msgid="6136713354369243421">"+<xliff:g id="NUMBER">%d</xliff:g>"</string>
<string name="zen_mode_bypassing_apps" msgid="625309443389126481">"允许应用覆盖"</string>
<string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"例外的应用"</string>
<string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"选择更多应用"</string>
@@ -3836,6 +3822,7 @@
<string name="zen_mode_sounds_none" msgid="6557474361948269420">"任何音效均不能例外"</string>
<string name="zen_mode_people_none" msgid="4613147461974255046">"任何人均不能例外"</string>
<string name="zen_mode_people_some" msgid="9101872681298810281">"部分人例外"</string>
+ <string name="zen_mode_people_repeat_callers" msgid="4499084111069828761">"重复来电者例外"</string>
<string name="zen_mode_people_all" msgid="311036110283015205">"所有人都例外"</string>
<string name="zen_mode_repeat_callers" msgid="2270356100287792138">"重复来电者"</string>
<string name="zen_mode_repeat_callers_title" msgid="8016699240338264781">"不屏蔽重复来电者"</string>
@@ -3855,13 +3842,37 @@
<string name="zen_mode_summary_alarms_only_by_hour" msgid="7400910210950788163">"{count,plural, =1{更改为仅限闹钟并持续 1 小时,直到 {time}}other{更改为仅限闹钟并持续 # 小时,直到 {time}}}"</string>
<string name="zen_mode_summary_alarms_only_by_time" msgid="8140619669703968810">"更改为仅限闹钟(到<xliff:g id="FORMATTEDTIME">%1$s</xliff:g>)"</string>
<string name="zen_mode_summary_always" msgid="722093064250082317">"更改为一律允许打扰"</string>
- <!-- no translation found for zen_mode_rename_title (8146882272966214558) -->
+ <string name="zen_mode_rename_title" msgid="8146882272966214558">"修改模式"</string>
+ <string name="zen_mode_new_custom_title" msgid="321750898430776191">"添加模式"</string>
+ <string name="zen_mode_new_custom_default_name" msgid="2778307946775085105">"自定义模式"</string>
+ <string name="zen_mode_edit_name_hint" msgid="4584652062167540536">"模式名称"</string>
+ <string name="zen_mode_trigger_title_schedule_calendar" msgid="9206609438617550331">"日历活动"</string>
+ <string name="zen_mode_trigger_title_bedtime" msgid="5086070900588489978">"睡眠时间表"</string>
+ <string name="zen_mode_trigger_title_driving" msgid="7890990983453164403">"驾车时"</string>
+ <string name="zen_mode_trigger_title_generic" msgid="601273385119550420">"已关联到应用"</string>
+ <string name="zen_mode_trigger_summary_settings_in_app" msgid="4860667191183702601">"“<xliff:g id="APP_NAME">%1$s</xliff:g>”中的信息和设置"</string>
+ <string name="zen_mode_trigger_summary_managed_by_app" msgid="8631011868193102098">"由“<xliff:g id="APP_NAME">%1$s</xliff:g>”管理"</string>
+ <string name="zen_mode_confirm_disable_title" msgid="1232297660775719796">"停用模式"</string>
+ <string name="zen_mode_confirm_disable_message" msgid="7315541221665718491">"如果您停用此功能,该模式将不再按预期运行并且其设置将被隐藏。"</string>
+ <string name="zen_mode_action_disable" msgid="3552921561331044881">"停用"</string>
+ <string name="zen_mode_confirm_enable_title" msgid="5683371335847448595">"启用模式"</string>
+ <string name="zen_mode_confirm_enable_message" msgid="7017879133260011419">"如果您启用此功能,系统将按照时间表自动启用该模式。"</string>
+ <string name="zen_mode_action_enable" msgid="1161480633223176531">"启用"</string>
+ <!-- no translation found for zen_mode_blurb_schedule_time (8223898702097484009) -->
<skip />
- <!-- no translation found for zen_mode_new_custom_title (321750898430776191) -->
+ <!-- no translation found for zen_mode_blurb_schedule_calendar (382177907856065945) -->
<skip />
- <!-- no translation found for zen_mode_new_custom_default_name (2778307946775085105) -->
+ <!-- no translation found for zen_mode_blurb_bedtime (6155075956151013457) -->
<skip />
- <!-- no translation found for zen_mode_edit_name_hint (4584652062167540536) -->
+ <!-- no translation found for zen_mode_blurb_driving (1316054379000667305) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_immersive (5884004861848687869) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_theater (2999237960059524225) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_managed (5473921634985032149) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_generic (3041601339807075625) -->
<skip />
<string name="warning_button_text" msgid="1274234338874005639">"警告"</string>
<string name="suggestion_button_close" msgid="6865170855573283759">"关闭"</string>
@@ -4849,9 +4860,8 @@
<string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"电池"</string>
<string name="settings_panel_title" msgid="346363079938069215">"设置面板"</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>
+ <!-- no translation found for enable_desktop_mode_on_secondary_display (2609567824593768780) -->
+ <skip />
<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>
@@ -5026,7 +5036,6 @@
<string name="default_active_sim_mobile_data" msgid="6798083892814045301">"移动数据网络"</string>
<string name="wifi_scan_notify_message" msgid="1331238142061476869">"为了提升设备的使用体验,即使 WLAN 已关闭,应用和服务仍可以随时扫描 WLAN 网络。例如,此功能可用于改进需要使用位置信息的功能和服务。您可以在 WLAN 扫描设置中更改此功能。"</string>
<string name="wifi_scan_change" msgid="8438320311511852918">"更改"</string>
- <string name="preference_summary_default_combination" msgid="4643585915107796253">"<xliff:g id="STATE">%1$s</xliff:g> / <xliff:g id="NETWORKMODE">%2$s</xliff:g>"</string>
<string name="mobile_data_connection_active" msgid="2422223108911581552">"已连接"</string>
<string name="mobile_data_temp_connection_active" msgid="3430470299756236413">"已暂时连接"</string>
<string name="mobile_data_temp_using" msgid="5211002380149434155">"暂时正在使用 <xliff:g id="SUBNAME">%1$s</xliff:g>"</string>
@@ -5172,9 +5181,11 @@
<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="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_enable_freeform_support" msgid="3697462756493543645">"您必须重新启动设备,才能启用自由窗口支持。"</string>
+ <!-- no translation found for reboot_dialog_override_desktop_mode (7480950772574354130) -->
+ <skip />
+ <!-- no translation found for reboot_dialog_enable_desktop_mode_on_secondary_display (1153621881052401924) -->
+ <skip />
<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>
@@ -5292,10 +5303,8 @@
<string name="show_captions_enabled" msgid="7089043007924626">"已开启"</string>
<string name="live_caption_disabled" msgid="3562035026547887366">"已关闭"</string>
<string name="live_caption_enabled" msgid="5269360946200718949">"已开启"</string>
- <!-- no translation found for audio_seek_bar_state_left_first (8814986910920838972) -->
- <skip />
- <!-- no translation found for audio_seek_bar_state_right_first (1999368979633398876) -->
- <skip />
+ <string name="audio_seek_bar_state_left_first" msgid="8814986910920838972">"音频向左%1$d%%,向右%2$d%%"</string>
+ <string name="audio_seek_bar_state_right_first" msgid="1999368979633398876">"音频向右%1$d%%,向左%2$d%%"</string>
<string name="about_phone_device_name_warning" msgid="3243226572404472381">"您安装的应用可以查看您的设备名称。此外,当您连接到蓝牙设备、连接到 WLAN 网络或设置 WLAN 热点时,其他人可能也会看到您的设备名称。"</string>
<string name="grammatical_gender_title" msgid="8584242850477270828">"语法性别"</string>
<string name="grammatical_gender_dialog_title" msgid="8754048592099871587">"选择语法性别"</string>
@@ -5407,5 +5416,6 @@
<string name="audio_streams_main_page_password_dialog_join_button" msgid="2967747276379153408">"收听音频流"</string>
<string name="audio_streams_main_page_qr_code_scanner_summary" msgid="5312980105735143360">"扫描音频流二维码即可通过“<xliff:g id="DEVICE_NAME">%1$s</xliff:g>”收听"</string>
<string name="audio_streams_main_page_password_dialog_cannot_edit" msgid="9020898619297520153">"分享期间无法修改密码。若要更改密码,请先关闭“音频分享”功能。"</string>
+ <string name="audio_streams_qr_code_scanner_label" msgid="8799703301071378034">"二维码扫描器"</string>
<string name="homepage_search" msgid="6759334912284663559">"在设置中搜索"</string>
</resources>
diff --git a/res/values-zh-rHK/strings.xml b/res/values-zh-rHK/strings.xml
index c292b94..640559c 100644
--- a/res/values-zh-rHK/strings.xml
+++ b/res/values-zh-rHK/strings.xml
@@ -41,6 +41,8 @@
<string name="radioInfo_data_suspended" msgid="2001254415431299603">"已暫停"</string>
<string name="radioInfo_unknown" msgid="2892562356748600367">"不明"</string>
<string name="preview_pager_content_description" msgid="3762247188224576303">"預覽"</string>
+ <!-- no translation found for qr_code_content_description (1852208464419291347) -->
+ <skip />
<string name="font_size_make_smaller_desc" msgid="4978038055549590140">"縮小"</string>
<string name="font_size_make_larger_desc" msgid="5583046033381722247">"放大"</string>
<string name="stay_awake_on_fold_title" msgid="6590454679898134221">"一律允許"</string>
@@ -283,7 +285,7 @@
<string name="location_settings_summary_location_off" msgid="4797932754681162262">"關閉"</string>
<string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{開啟/ # 個應用程式可存取位置資訊}other{開啟/ # 個應用程式可存取位置資訊}}"</string>
<string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"正在載入…"</string>
- <string name="location_settings_footer_general" msgid="1040507068701188821">"應用程式如可存取附近的裝置,就能判斷已連接裝置的相對位置。"</string>
+ <string name="location_settings_footer_general" msgid="3447585552176173502">"應用程式如可存取附近的裝置,就能判斷已連接裝置的相對位置。"</string>
<string name="location_settings_footer_location_off" msgid="8568995909147566720">"應用程式和服務的位置權限已關閉。當你打電話或發短訊到緊急電話號碼時,系統仍會將你的裝置位置資料傳送給救援人員。"</string>
<string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"進一步瞭解「位置設定」"</string>
<string name="location_settings_tooltip_text_for_chrome" msgid="5781821709250544575">"如要變更設定,請前往 ChromeOS 設定 > [私隱與安全] > [私隱權設定] > [位置資料存取權]"</string>
@@ -850,7 +852,6 @@
<string name="nfc_reboot_dialog_title" msgid="2033983438635768169">"要重新啟動裝置嗎?"</string>
<string name="nfc_reboot_dialog_message" msgid="4929353168157966992">"詳細 NFC 記錄僅適用於開發用途。錯誤報告中有其他 NFC 資料,可能包含私人資料。重新啟動裝置即可變更此設定。"</string>
<string name="nfc_reboot_dialog_confirm" msgid="4769763632008584567">"重新啟動"</string>
- <string name="keywords_external_display" msgid="4181375057920134909">"鏡像, 外部顯示屏, 已連接的顯示屏, usb 顯示屏, 解像度, 旋轉"</string>
<string name="external_display_on" msgid="2560104443500154333">"開啟"</string>
<string name="external_display_off" msgid="5634413756025351374">"關閉"</string>
<string name="external_display_settings_title" msgid="6256884595821605779">"外部顯示屏"</string>
@@ -1918,6 +1919,8 @@
<string name="slow_keys_summary" msgid="1784371292745423292">"將按鍵啟動時間調整為 <xliff:g id="SLOW_KEYS_THRESHOLD">%1$d</xliff:g> 毫秒"</string>
<string name="sticky_keys" msgid="7317317044898161747">"相黏鍵"</string>
<string name="sticky_keys_summary" msgid="1844953803625480623">"一次按下快速鍵中的一個鍵,而非同時按住多個鍵"</string>
+ <string name="mouse_keys" msgid="6237254627808525540">"滑鼠按鍵"</string>
+ <string name="mouse_keys_summary" msgid="2396247040177734245">"使用實體鍵盤控制滑鼠"</string>
<string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"鍵盤快速鍵"</string>
<string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"顯示快速鍵清單"</string>
<string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"工作設定檔鍵盤與工具"</string>
@@ -1942,14 +1945,10 @@
<string name="pointer_fill_style_yellow_button" msgid="5025969961559379024">"變更游標填滿樣式至黃色"</string>
<string name="pointer_fill_style_pink_button" msgid="4106218142489635673">"變更游標填滿樣式至粉紅色"</string>
<string name="pointer_fill_style_blue_button" msgid="5594958078854032785">"變更游標填滿樣式至藍色"</string>
- <!-- no translation found for pointer_stroke_style (1886986630216050665) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_white (673686194443825383) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_black (4655806167067437330) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_none (8953927511729800247) -->
- <skip />
+ <string name="pointer_stroke_style" msgid="1886986630216050665">"游標筆劃樣式"</string>
+ <string name="pointer_stroke_style_name_white" msgid="673686194443825383">"白色"</string>
+ <string name="pointer_stroke_style_name_black" msgid="4655806167067437330">"黑色"</string>
+ <string name="pointer_stroke_style_name_none" msgid="8953927511729800247">"無"</string>
<string name="trackpad_touch_gesture" msgid="8641725062131922497">"學習觸控板手勢"</string>
<string name="keywords_touchpad" msgid="8159846254066666032">"觸控板, 滑鼠, 鼠標, 捲動, 輕掃, 按一下右鍵, 點擊, 游標"</string>
<string name="keywords_trackpad_bottom_right_tap" msgid="1285062446073929305">"按一下右鍵, 輕按"</string>
@@ -2179,8 +2178,6 @@
<string name="accessibility_shortcut_edit_dialog_summary_floating_button" msgid="6266489864614886247">"輕按懸浮按鈕"</string>
<string name="accessibility_shortcut_edit_dialog_title_software_by_gesture" msgid="4775049370625630546">"無障礙手勢"</string>
<string name="accessibility_shortcut_edit_dialog_summary_software" msgid="8315934725362849788">"輕按畫面底部的無障礙功能按鈕 <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g>。如要切換功能,請按住無障礙功能按鈕。"</string>
- <string name="accessibility_shortcut_edit_dialog_summary_software_gesture" msgid="8292555254353761635">"用兩指由螢幕底部向上掃。\n\n如要切換功能,請用兩指向上掃並按住。"</string>
- <string name="accessibility_shortcut_edit_dialog_summary_software_gesture_talkback" msgid="84483464524360845">"用 3 隻手指由螢幕底部向上掃。\n\n用 3 隻手指向上掃然後㩒住,就可以切換唔同功能。"</string>
<string name="accessibility_shortcut_edit_dialog_summary_gesture" msgid="2081123009255579884">"{count,plural, =1{由螢幕底部向上輕掃。如要切換功能,請向上輕掃並按住。}other{用 # 隻手指由螢幕底部向上輕掃。如要切換功能,請用 # 隻手指向上輕掃並按住。}}"</string>
<string name="accessibility_shortcut_edit_dialog_summary_software_floating" msgid="4459254227203203324"><annotation id="link">"更多選項"</annotation></string>
<string name="footer_learn_more_content_description" msgid="8843798273152131341">"進一步瞭解「<xliff:g id="SERVICE">%1$s</xliff:g>」"</string>
@@ -2191,16 +2188,12 @@
<string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="844089763968552142">"音量鍵"</string>
<string name="accessibility_shortcut_hardware_keyword" msgid="2483152542320987022">"音量鍵"</string>
<string name="accessibility_shortcut_edit_dialog_summary_hardware" msgid="2503134386397991634">"同時按住兩個音量鍵"</string>
- <string name="accessibility_shortcut_edit_dialog_title_two_finger_double_tap" msgid="2271778556854020996">"用兩隻手指喺螢幕上面㩒兩下"</string>
<string name="accessibility_shortcut_edit_screen_title_two_finger_double_tap" msgid="8952595692906527694">"%1$d 隻手指輕按兩下"</string>
<string name="accessibility_shortcut_edit_screen_summary_two_finger_double_tap" msgid="385404127425496362">"用 %1$d 隻手指快速輕按螢幕兩下"</string>
<string name="accessibility_shortcut_edit_screen_title_triple_tap" msgid="3314488747597058942">"輕按三下"</string>
<string name="accessibility_shortcut_edit_screen_summary_triple_tap" msgid="4839204951599629871">"快速輕按螢幕 %1$d 下。這樣做可能會減慢裝置運作速度。"</string>
<string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="6271718715836961167">"%1$d 隻手指㩒 2 下"</string>
- <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"用兩隻手指快速喺螢幕上面㩒 {0,number,integer} 下"</string>
- <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"輕按螢幕三下"</string>
<string name="accessibility_shortcut_triple_tap_keyword" msgid="5359347130888464334">"㩒 3 下"</string>
- <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"快速㩒螢幕 {0,number,integer} 下。呢個快速鍵可能會減慢裝置運作速度"</string>
<string name="accessibility_shortcut_edit_dialog_title_advance" msgid="4567868630655591506">"進階"</string>
<string name="accessibility_screen_magnification_navbar_configuration_warning" msgid="266736851606791552">"「無障礙功能」按鈕已設定為「<xliff:g id="SERVICE">%1$s</xliff:g>」。如要使用放大功能,請按住「無障礙功能」按鈕,然後選擇「放大功能」。"</string>
<string name="accessibility_screen_magnification_gesture_navigation_warning" msgid="991017769735632046">"無障礙手勢已設為「<xliff:g id="SERVICE">%1$s</xliff:g>」。如要使用放大功能,請使用兩隻手指從螢幕底部向上滑動並長按,然後選取放大功能。"</string>
@@ -2369,6 +2362,7 @@
<string name="daltonizer_mode_tritanomaly_title" msgid="2278786218762602022">"藍黃不分"</string>
<string name="daltonizer_mode_grayscale_title" msgid="152005391387952588">"灰階螢幕"</string>
<string name="daltonizer_saturation_title" msgid="2999486412114963068">"強度"</string>
+ <string name="daltonizer_saturation_unavailable_summary" msgid="8319753055567798775">"使用灰階螢幕模式或停用色彩校正時無法提供"</string>
<string name="daltonizer_mode_deuteranomaly_summary" msgid="2117727423019598455">"綠色弱、綠色盲"</string>
<string name="daltonizer_mode_protanomaly_summary" msgid="4617032854982040748">"紅色弱、紅色盲"</string>
<string name="daltonizer_mode_tritanomaly_summary" msgid="2428218320118180070">"藍色弱視"</string>
@@ -2418,15 +2412,8 @@
<string name="color_cyan" msgid="4341758639597035927">"藍綠色"</string>
<string name="color_yellow" msgid="5957551912912679058">"黃色"</string>
<string name="color_magenta" msgid="8943538189219528423">"洋紅色"</string>
- <string name="enable_service_title" msgid="7231533866953706788">"要授予「<xliff:g id="SERVICE">%1$s</xliff:g>」裝置的完整控制權嗎?"</string>
<string name="capabilities_list_title" msgid="1225853611983394386">"「<xliff:g id="SERVICE">%1$s</xliff:g>」需要:"</string>
<string name="touch_filtered_warning" msgid="4225815157460318241">"由於有應用程式阻礙權限請求,「設定」無法驗證你的回覆。"</string>
- <string name="accessibility_service_warning" msgid="6779187188736432618">"<xliff:g id="SERVICE">%1$s</xliff:g>正在要求完全控制此裝置。此服務可以讀取畫面,並代表需要使用無障礙功能的使用者執行動作。這種程度的控制不適用於大部分應用程式。"</string>
- <string name="accessibility_service_warning_description" msgid="6573203795976134751">"對於為你提供無障礙功能的應用程式,你可授予完整控制權,但大部分應用程式都不應獲授予此權限。"</string>
- <string name="accessibility_service_screen_control_title" msgid="324795030658109870">"查看和控制螢幕"</string>
- <string name="accessibility_service_screen_control_description" msgid="8431940515157990426">"這項功能可以讀出螢幕上的所有內容,並透過其他應用程式顯示內容。"</string>
- <string name="accessibility_service_action_perform_title" msgid="1449360056585337833">"查看和執行動作"</string>
- <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"這項功能會追蹤你與應用程式或硬件感應器的互動,並代表你直接與應用程式互動。"</string>
<string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"允許"</string>
<string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"拒絕"</string>
<string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"關閉"</string>
@@ -3368,10 +3355,8 @@
<string name="zen_mode_automation_settings_title" msgid="3709324184191870926">"時間表"</string>
<string name="zen_mode_delete_automatic_rules" msgid="5020468289267191765">"刪除時間表"</string>
<string name="zen_mode_schedule_delete" msgid="5383420576833765114">"刪除"</string>
- <!-- no translation found for zen_mode_menu_rename_mode (4681802125016390837) -->
- <skip />
- <!-- no translation found for zen_mode_menu_delete_mode (5380084696402157428) -->
- <skip />
+ <string name="zen_mode_menu_rename_mode" msgid="4681802125016390837">"重新命名"</string>
+ <string name="zen_mode_menu_delete_mode" msgid="5380084696402157428">"刪除"</string>
<string name="zen_mode_delete_mode_confirmation" msgid="7594340592051947392">"要刪除「<xliff:g id="MODE">%1$s</xliff:g>」模式嗎?"</string>
<string name="zen_mode_rule_name_edit" msgid="1053237022416700481">"編輯"</string>
<string name="zen_mode_automation_settings_page_title" msgid="6217433860514433311">"時間表"</string>
@@ -3395,8 +3380,7 @@
<string name="zen_mode_visual_signals_settings_subtitle" msgid="7433077540895876672">"允許視覺訊號"</string>
<string name="mode_interruption_filter_title" msgid="3343846700214702347">"保持專注"</string>
<string name="mode_device_effects_title" msgid="5857008332618433744">"更多操作"</string>
- <!-- no translation found for modes_sound_summary_off (6972648204528227879) -->
- <skip />
+ <string name="modes_sound_summary_off" msgid="6972648204528227879">"{count,plural, =0{關閉}=1{關閉/可自動開啟 1 個模式}other{關閉/可自動開啟 # 個模式}}"</string>
<string name="mode_display_settings_title" msgid="8132825978346535472">"顯示設定"</string>
<string name="mode_display_options_section" msgid="5151597748243866532">"顯示選項"</string>
<string name="mode_grayscale_title" msgid="6027553257331235461">"灰階螢幕"</string>
@@ -3659,9 +3643,9 @@
<string name="notif_listener_not_migrated" msgid="6265206376374278226">"此應用程式不支援進階設定"</string>
<string name="notif_listener_more_settings" msgid="1348409392307208921">"更多設定"</string>
<string name="notif_listener_more_settings_desc" msgid="7995492074281663658">"你可在應用程式中使用更多設定"</string>
- <string name="notification_polite_title" msgid="4737150709382859870">"自動調節通知"</string>
- <string name="notification_polite_main_control_title" msgid="7267191551379543859">"使用自動調節通知"</string>
- <string name="notification_polite_description" msgid="7749280535620291610">"如果短時間內收到多個通知,手機會在最長兩分鐘內調降音量,並減少在畫面上顯示彈出式視窗。如有來電、鬧鐘和重要對話,手機仍會震動、播放音效或顯示在畫面上。從螢幕頂部往下拉,就能輕鬆查看所有通知。"</string>
+ <string name="notification_polite_title" msgid="6121016426991791557">"通知緩和功能"</string>
+ <string name="notification_polite_main_control_title" msgid="5812529809151927149">"使用調低通知強度"</string>
+ <string name="notification_polite_description" msgid="5497748284893832854">"如果短時間內收到多個通知,裝置會在最長 2 分鐘內調低音量,並減少警示。通話、鬧鐘和優先對話不受影響。\n\n從螢幕頂部往下拉,即可查看調低通知強度期間收到的通知。"</string>
<string name="notification_polite_work" msgid="8823596456640216391">"套用至工作設定檔"</string>
<string name="notification_polite_work_summary" msgid="5014189280132951378">"套用至工作設定檔應用程式"</string>
<string name="vr_listeners_title" msgid="4960357292472540964">"VR 助手服務"</string>
@@ -3818,7 +3802,9 @@
<string name="zen_mode_apps_priority_apps" msgid="7386196048313716076">"選取的應用程式"</string>
<string name="zen_mode_apps_none_apps" msgid="2493642312793604327">"無"</string>
<string name="zen_mode_apps_subtext" msgid="1764211974662012877">"{count,plural,offset:2 =0{沒有應用程式例外}=1{「{app_1}」例外}=2{「{app_1}」和「{app_2}」例外}=3{「{app_1}」、「{app_2}」和「{app_3}」例外}other{「{app_1}」、「{app_2}」和另外 # 個應用程式例外}}"</string>
+ <string name="zen_mode_apps_work_app" msgid="8528767938316361588">"<xliff:g id="APP_LABEL">%s</xliff:g> (工作)"</string>
<string name="zen_mode_apps_calculating" msgid="5420121396943539286">"正在計算…"</string>
+ <string name="zen_mode_plus_n_items" msgid="6136713354369243421">"+<xliff:g id="NUMBER">%d</xliff:g>"</string>
<string name="zen_mode_bypassing_apps" msgid="625309443389126481">"允許應用程式取代「請勿騷擾」"</string>
<string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"例外可打擾的應用程式"</string>
<string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"選擇更多應用程式"</string>
@@ -3836,6 +3822,7 @@
<string name="zen_mode_sounds_none" msgid="6557474361948269420">"全部均不可打擾"</string>
<string name="zen_mode_people_none" msgid="4613147461974255046">"沒有使用者可打擾"</string>
<string name="zen_mode_people_some" msgid="9101872681298810281">"部分使用者可打擾"</string>
+ <string name="zen_mode_people_repeat_callers" msgid="4499084111069828761">"重複來電者例外"</string>
<string name="zen_mode_people_all" msgid="311036110283015205">"所有使用者均可打擾"</string>
<string name="zen_mode_repeat_callers" msgid="2270356100287792138">"重複來電"</string>
<string name="zen_mode_repeat_callers_title" msgid="8016699240338264781">"允許重複來電者"</string>
@@ -3855,13 +3842,37 @@
<string name="zen_mode_summary_alarms_only_by_hour" msgid="7400910210950788163">"{count,plural, =1{改為只限鬧鐘模式同埋持續 1 個鐘,直至 {time} 為止}other{改為只限鬧鐘模式同埋持續 # 個鐘,直至 {time} 為止}}"</string>
<string name="zen_mode_summary_alarms_only_by_time" msgid="8140619669703968810">"響 <xliff:g id="FORMATTEDTIME">%1$s</xliff:g>前改為只允許鬧鐘"</string>
<string name="zen_mode_summary_always" msgid="722093064250082317">"變更為永遠允許干擾"</string>
- <!-- no translation found for zen_mode_rename_title (8146882272966214558) -->
+ <string name="zen_mode_rename_title" msgid="8146882272966214558">"編輯模式"</string>
+ <string name="zen_mode_new_custom_title" msgid="321750898430776191">"新增模式"</string>
+ <string name="zen_mode_new_custom_default_name" msgid="2778307946775085105">"自訂模式"</string>
+ <string name="zen_mode_edit_name_hint" msgid="4584652062167540536">"模式名稱"</string>
+ <string name="zen_mode_trigger_title_schedule_calendar" msgid="9206609438617550331">"日曆活動"</string>
+ <string name="zen_mode_trigger_title_bedtime" msgid="5086070900588489978">"睡眠時間表"</string>
+ <string name="zen_mode_trigger_title_driving" msgid="7890990983453164403">"駕駛時"</string>
+ <string name="zen_mode_trigger_title_generic" msgid="601273385119550420">"已連結至應用程式"</string>
+ <string name="zen_mode_trigger_summary_settings_in_app" msgid="4860667191183702601">"<xliff:g id="APP_NAME">%1$s</xliff:g>中的資料和設定"</string>
+ <string name="zen_mode_trigger_summary_managed_by_app" msgid="8631011868193102098">"由<xliff:g id="APP_NAME">%1$s</xliff:g>管理"</string>
+ <string name="zen_mode_confirm_disable_title" msgid="1232297660775719796">"停用模式"</string>
+ <string name="zen_mode_confirm_disable_message" msgid="7315541221665718491">"停用此功能後,此模式將無法如預期運作,而且系統會隱藏其設定。"</string>
+ <string name="zen_mode_action_disable" msgid="3552921561331044881">"停用"</string>
+ <string name="zen_mode_confirm_enable_title" msgid="5683371335847448595">"啟用模式"</string>
+ <string name="zen_mode_confirm_enable_message" msgid="7017879133260011419">"啟用此功能後,此模式將按預定時間自動啟動。"</string>
+ <string name="zen_mode_action_enable" msgid="1161480633223176531">"啟用"</string>
+ <!-- no translation found for zen_mode_blurb_schedule_time (8223898702097484009) -->
<skip />
- <!-- no translation found for zen_mode_new_custom_title (321750898430776191) -->
+ <!-- no translation found for zen_mode_blurb_schedule_calendar (382177907856065945) -->
<skip />
- <!-- no translation found for zen_mode_new_custom_default_name (2778307946775085105) -->
+ <!-- no translation found for zen_mode_blurb_bedtime (6155075956151013457) -->
<skip />
- <!-- no translation found for zen_mode_edit_name_hint (4584652062167540536) -->
+ <!-- no translation found for zen_mode_blurb_driving (1316054379000667305) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_immersive (5884004861848687869) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_theater (2999237960059524225) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_managed (5473921634985032149) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_generic (3041601339807075625) -->
<skip />
<string name="warning_button_text" msgid="1274234338874005639">"警告"</string>
<string name="suggestion_button_close" msgid="6865170855573283759">"關閉"</string>
@@ -4849,9 +4860,8 @@
<string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"電池"</string>
<string name="settings_panel_title" msgid="346363079938069215">"設定面板"</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>
+ <!-- no translation found for enable_desktop_mode_on_secondary_display (2609567824593768780) -->
+ <skip />
<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>
@@ -5026,7 +5036,6 @@
<string name="default_active_sim_mobile_data" msgid="6798083892814045301">"流動數據"</string>
<string name="wifi_scan_notify_message" msgid="1331238142061476869">"為改善裝置的使用體驗,應用程式和服務仍可隨時掃瞄 Wi-Fi 網絡 (即使 Wi-Fi 已關閉)。此操作可用來改善適地性功能和服務。你可在 Wi-Fi 掃瞄設定中變更此設定。"</string>
<string name="wifi_scan_change" msgid="8438320311511852918">"變更"</string>
- <string name="preference_summary_default_combination" msgid="4643585915107796253">"<xliff:g id="STATE">%1$s</xliff:g>/<xliff:g id="NETWORKMODE">%2$s</xliff:g>"</string>
<string name="mobile_data_connection_active" msgid="2422223108911581552">"已連線"</string>
<string name="mobile_data_temp_connection_active" msgid="3430470299756236413">"已暫時連線"</string>
<string name="mobile_data_temp_using" msgid="5211002380149434155">"暫時使用 <xliff:g id="SUBNAME">%1$s</xliff:g>"</string>
@@ -5172,9 +5181,11 @@
<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="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_enable_freeform_support" msgid="3697462756493543645">"必須重新開機,才能啟用自由形態視窗支援。"</string>
+ <!-- no translation found for reboot_dialog_override_desktop_mode (7480950772574354130) -->
+ <skip />
+ <!-- no translation found for reboot_dialog_enable_desktop_mode_on_secondary_display (1153621881052401924) -->
+ <skip />
<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>
@@ -5292,10 +5303,8 @@
<string name="show_captions_enabled" msgid="7089043007924626">"已啟用"</string>
<string name="live_caption_disabled" msgid="3562035026547887366">"已停用"</string>
<string name="live_caption_enabled" msgid="5269360946200718949">"已啟用"</string>
- <!-- no translation found for audio_seek_bar_state_left_first (8814986910920838972) -->
- <skip />
- <!-- no translation found for audio_seek_bar_state_right_first (1999368979633398876) -->
- <skip />
+ <string name="audio_seek_bar_state_left_first" msgid="8814986910920838972">"音訊 %1$d%% 左,%2$d%% 右"</string>
+ <string name="audio_seek_bar_state_right_first" msgid="1999368979633398876">"音訊 %1$d%% 右,%2$d%% 左"</string>
<string name="about_phone_device_name_warning" msgid="3243226572404472381">"你安裝的應用程式可以取得你的裝置名稱。當你連接藍牙裝置或 Wi-Fi 網絡,或設定 Wi-Fi 熱點時,其他人亦可能會看到你的裝置名稱。"</string>
<string name="grammatical_gender_title" msgid="8584242850477270828">"語法性別"</string>
<string name="grammatical_gender_dialog_title" msgid="8754048592099871587">"選取語法性別"</string>
@@ -5407,5 +5416,6 @@
<string name="audio_streams_main_page_password_dialog_join_button" msgid="2967747276379153408">"收聽串流"</string>
<string name="audio_streams_main_page_qr_code_scanner_summary" msgid="5312980105735143360">"使用「<xliff:g id="DEVICE_NAME">%1$s</xliff:g>」掃瞄音訊串流 QR 碼即可收聽"</string>
<string name="audio_streams_main_page_password_dialog_cannot_edit" msgid="9020898619297520153">"分享音訊期間無法編輯密碼。如要變更密碼,請先關閉音訊分享功能。"</string>
+ <string name="audio_streams_qr_code_scanner_label" msgid="8799703301071378034">"QR 碼掃瞄器"</string>
<string name="homepage_search" msgid="6759334912284663559">"搜尋設定"</string>
</resources>
diff --git a/res/values-zh-rTW/strings.xml b/res/values-zh-rTW/strings.xml
index e351afd..df8297c 100644
--- a/res/values-zh-rTW/strings.xml
+++ b/res/values-zh-rTW/strings.xml
@@ -41,6 +41,8 @@
<string name="radioInfo_data_suspended" msgid="2001254415431299603">"待命"</string>
<string name="radioInfo_unknown" msgid="2892562356748600367">"不明"</string>
<string name="preview_pager_content_description" msgid="3762247188224576303">"預覽"</string>
+ <!-- no translation found for qr_code_content_description (1852208464419291347) -->
+ <skip />
<string name="font_size_make_smaller_desc" msgid="4978038055549590140">"縮小"</string>
<string name="font_size_make_larger_desc" msgid="5583046033381722247">"放大"</string>
<string name="stay_awake_on_fold_title" msgid="6590454679898134221">"一律允許"</string>
@@ -283,7 +285,7 @@
<string name="location_settings_summary_location_off" msgid="4797932754681162262">"關閉"</string>
<string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{已開啟/# 個應用程式可存取位置資訊}other{已開啟/# 個應用程式可存取位置資訊}}"</string>
<string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"載入中…"</string>
- <string name="location_settings_footer_general" msgid="1040507068701188821">"如果應用程式具有鄰近裝置權限,就能判斷已連結裝置的相對位置。"</string>
+ <string name="location_settings_footer_general" msgid="3447585552176173502">"如果應用程式具有鄰近裝置權限,就能判斷連結裝置的相對位置。"</string>
<string name="location_settings_footer_location_off" msgid="8568995909147566720">"應用程式和服務的位置存取權已關閉。當你撥打或傳訊息到緊急電話號碼時,系統仍會將你的裝置位置資訊傳送給緊急應變人員。"</string>
<string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"進一步瞭解位置資訊設定"</string>
<string name="location_settings_tooltip_text_for_chrome" msgid="5781821709250544575">"如要變更,請前往 ChromeOS 設定 >「隱私權和安全性」>「隱私權控制項」>「位置資訊存取權」"</string>
@@ -850,7 +852,6 @@
<string name="nfc_reboot_dialog_title" msgid="2033983438635768169">"要重新啟動裝置嗎?"</string>
<string name="nfc_reboot_dialog_message" msgid="4929353168157966992">"詳細 NFC 記錄僅適用於開發用途。錯誤報告中含有其他 NFC 資料,其中可能包含私人資訊。重新啟動裝置即可變更這項設定。"</string>
<string name="nfc_reboot_dialog_confirm" msgid="4769763632008584567">"重新啟動"</string>
- <string name="keywords_external_display" msgid="4181375057920134909">"鏡像, 外接螢幕, 已連線的螢幕, usb 螢幕, 解析度, 旋轉"</string>
<string name="external_display_on" msgid="2560104443500154333">"開啟"</string>
<string name="external_display_off" msgid="5634413756025351374">"關閉"</string>
<string name="external_display_settings_title" msgid="6256884595821605779">"外接螢幕"</string>
@@ -1918,6 +1919,8 @@
<string name="slow_keys_summary" msgid="1784371292745423292">"將按鍵啟動時間調整為 <xliff:g id="SLOW_KEYS_THRESHOLD">%1$d</xliff:g> 毫秒"</string>
<string name="sticky_keys" msgid="7317317044898161747">"相黏鍵"</string>
<string name="sticky_keys_summary" msgid="1844953803625480623">"一次按下快速鍵中的一個按鍵,而非同時按住多個按鍵"</string>
+ <string name="mouse_keys" msgid="6237254627808525540">"滑鼠按鍵"</string>
+ <string name="mouse_keys_summary" msgid="2396247040177734245">"使用實體鍵盤控制滑鼠。"</string>
<string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"鍵盤快速鍵"</string>
<string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"顯示快速鍵清單"</string>
<string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"工作資料夾鍵盤和工具"</string>
@@ -1942,14 +1945,10 @@
<string name="pointer_fill_style_yellow_button" msgid="5025969961559379024">"將指標填滿樣式變更為黃色"</string>
<string name="pointer_fill_style_pink_button" msgid="4106218142489635673">"將指標填滿樣式變更為粉紅色"</string>
<string name="pointer_fill_style_blue_button" msgid="5594958078854032785">"將指標填滿樣式變更為藍色"</string>
- <!-- no translation found for pointer_stroke_style (1886986630216050665) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_white (673686194443825383) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_black (4655806167067437330) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_none (8953927511729800247) -->
- <skip />
+ <string name="pointer_stroke_style" msgid="1886986630216050665">"游標軌跡樣式"</string>
+ <string name="pointer_stroke_style_name_white" msgid="673686194443825383">"白色"</string>
+ <string name="pointer_stroke_style_name_black" msgid="4655806167067437330">"黑色"</string>
+ <string name="pointer_stroke_style_name_none" msgid="8953927511729800247">"無"</string>
<string name="trackpad_touch_gesture" msgid="8641725062131922497">"學習觸控板手勢"</string>
<string name="keywords_touchpad" msgid="8159846254066666032">"觸控板, 滑鼠, 游標, 捲動, 滑動, 按滑鼠右鍵, 點按, 指標"</string>
<string name="keywords_trackpad_bottom_right_tap" msgid="1285062446073929305">"按滑鼠右鍵, 輕觸"</string>
@@ -2179,8 +2178,6 @@
<string name="accessibility_shortcut_edit_dialog_summary_floating_button" msgid="6266489864614886247">"輕觸浮動式按鈕"</string>
<string name="accessibility_shortcut_edit_dialog_title_software_by_gesture" msgid="4775049370625630546">"無障礙手勢"</string>
<string name="accessibility_shortcut_edit_dialog_summary_software" msgid="8315934725362849788">"輕觸螢幕底部的無障礙工具按鈕 <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g>。如要切換功能,請按住無障礙工具按鈕。"</string>
- <string name="accessibility_shortcut_edit_dialog_summary_software_gesture" msgid="8292555254353761635">"請用 2 指從螢幕底部向上滑動。\n\n如要切換不同的功能,請用 2 指向上滑動並按住。"</string>
- <string name="accessibility_shortcut_edit_dialog_summary_software_gesture_talkback" msgid="84483464524360845">"請用 3 指從螢幕底部向上滑動。\n\n如要切換不同的功能,請用 3 指向上滑動並按住。"</string>
<string name="accessibility_shortcut_edit_dialog_summary_gesture" msgid="2081123009255579884">"{count,plural, =1{從螢幕底部向上滑動。如要切換功能,請向上滑動並按住。}other{用 # 指從螢幕底部向上滑動。如要切換功能,請用 # 指向上滑動並按住。}}"</string>
<string name="accessibility_shortcut_edit_dialog_summary_software_floating" msgid="4459254227203203324"><annotation id="link">"更多選項"</annotation></string>
<string name="footer_learn_more_content_description" msgid="8843798273152131341">"進一步瞭解<xliff:g id="SERVICE">%1$s</xliff:g>"</string>
@@ -2191,16 +2188,12 @@
<string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="844089763968552142">"音量鍵"</string>
<string name="accessibility_shortcut_hardware_keyword" msgid="2483152542320987022">"音量鍵"</string>
<string name="accessibility_shortcut_edit_dialog_summary_hardware" msgid="2503134386397991634">"同時按住音量調高鍵和調低鍵"</string>
- <string name="accessibility_shortcut_edit_dialog_title_two_finger_double_tap" msgid="2271778556854020996">"用兩指輕觸螢幕兩下"</string>
<string name="accessibility_shortcut_edit_screen_title_two_finger_double_tap" msgid="8952595692906527694">"用 %1$d 指輕觸兩下"</string>
<string name="accessibility_shortcut_edit_screen_summary_two_finger_double_tap" msgid="385404127425496362">"使用 %1$d 指快速輕觸螢幕兩下"</string>
<string name="accessibility_shortcut_edit_screen_title_triple_tap" msgid="3314488747597058942">"輕觸三下"</string>
<string name="accessibility_shortcut_edit_screen_summary_triple_tap" msgid="4839204951599629871">"快速輕觸螢幕 %1$d 下。這可能會降低裝置運作速度。"</string>
<string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="6271718715836961167">"用 %1$d 指輕觸兩下"</string>
- <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"用兩指快速輕觸螢幕 {0,number,integer} 下"</string>
- <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"輕觸螢幕三下"</string>
<string name="accessibility_shortcut_triple_tap_keyword" msgid="5359347130888464334">"輕觸三下"</string>
- <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"快速輕觸螢幕 {0,number,integer} 下。這個手勢可能會影響裝置的運作效能"</string>
<string name="accessibility_shortcut_edit_dialog_title_advance" msgid="4567868630655591506">"進階"</string>
<string name="accessibility_screen_magnification_navbar_configuration_warning" msgid="266736851606791552">"[無障礙] 按鈕已設為 <xliff:g id="SERVICE">%1$s</xliff:g>。如要使用放大功能,請按住 [無障礙] 按鈕,然後選取 [放大]。"</string>
<string name="accessibility_screen_magnification_gesture_navigation_warning" msgid="991017769735632046">"無障礙手勢已設為「<xliff:g id="SERVICE">%1$s</xliff:g>」。如要使用放大功能,請用兩指從螢幕底部向上滑動並按住,然後選取 [放大]。"</string>
@@ -2369,6 +2362,7 @@
<string name="daltonizer_mode_tritanomaly_title" msgid="2278786218762602022">"藍黃"</string>
<string name="daltonizer_mode_grayscale_title" msgid="152005391387952588">"灰階"</string>
<string name="daltonizer_saturation_title" msgid="2999486412114963068">"強度"</string>
+ <string name="daltonizer_saturation_unavailable_summary" msgid="8319753055567798775">"在灰階模式下或停用色彩校正時,無法使用這項功能"</string>
<string name="daltonizer_mode_deuteranomaly_summary" msgid="2117727423019598455">"綠色弱、綠色盲"</string>
<string name="daltonizer_mode_protanomaly_summary" msgid="4617032854982040748">"紅色弱、紅色盲"</string>
<string name="daltonizer_mode_tritanomaly_summary" msgid="2428218320118180070">"藍色弱視"</string>
@@ -2418,15 +2412,8 @@
<string name="color_cyan" msgid="4341758639597035927">"青色"</string>
<string name="color_yellow" msgid="5957551912912679058">"黃色"</string>
<string name="color_magenta" msgid="8943538189219528423">"洋紅色"</string>
- <string name="enable_service_title" msgid="7231533866953706788">"要將裝置的完整控制權授予「<xliff:g id="SERVICE">%1$s</xliff:g>」嗎?"</string>
<string name="capabilities_list_title" msgid="1225853611983394386">"「<xliff:g id="SERVICE">%1$s</xliff:g>」需要執行下列動作:"</string>
<string name="touch_filtered_warning" msgid="4225815157460318241">"權限要求遭到其他應用程式畫面遮掩,因此「設定」無法驗證你的回應。"</string>
- <string name="accessibility_service_warning" msgid="6779187188736432618">"<xliff:g id="SERVICE">%1$s</xliff:g>要求這個裝置的完整控制權。如果你授予相關權限,該服務就能讀取畫面內容及執行動作,以協助需要無障礙服務的使用者。這個等級的控制權不適用於大多數應用程式。"</string>
- <string name="accessibility_service_warning_description" msgid="6573203795976134751">"如果你有無障礙服務需求,建議可將完整控制權授予具有相關功能的應用程式,但請勿將完整控制權授予大多數的應用程式。"</string>
- <string name="accessibility_service_screen_control_title" msgid="324795030658109870">"查看及控制螢幕"</string>
- <string name="accessibility_service_screen_control_description" msgid="8431940515157990426">"可讀取螢幕上的所有內容,並在其他應用程式上顯示內容。"</string>
- <string name="accessibility_service_action_perform_title" msgid="1449360056585337833">"查看及執行動作"</string>
- <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"可追蹤你與應用程式或硬體感應器的互動,並代表你與應用程式進行互動。"</string>
<string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"允許"</string>
<string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"拒絕"</string>
<string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"停用"</string>
@@ -3368,10 +3355,8 @@
<string name="zen_mode_automation_settings_title" msgid="3709324184191870926">"排程"</string>
<string name="zen_mode_delete_automatic_rules" msgid="5020468289267191765">"刪除排程"</string>
<string name="zen_mode_schedule_delete" msgid="5383420576833765114">"刪除"</string>
- <!-- no translation found for zen_mode_menu_rename_mode (4681802125016390837) -->
- <skip />
- <!-- no translation found for zen_mode_menu_delete_mode (5380084696402157428) -->
- <skip />
+ <string name="zen_mode_menu_rename_mode" msgid="4681802125016390837">"重新命名"</string>
+ <string name="zen_mode_menu_delete_mode" msgid="5380084696402157428">"刪除"</string>
<string name="zen_mode_delete_mode_confirmation" msgid="7594340592051947392">"要刪除「<xliff:g id="MODE">%1$s</xliff:g>」模式嗎?"</string>
<string name="zen_mode_rule_name_edit" msgid="1053237022416700481">"編輯"</string>
<string name="zen_mode_automation_settings_page_title" msgid="6217433860514433311">"排程"</string>
@@ -3395,8 +3380,7 @@
<string name="zen_mode_visual_signals_settings_subtitle" msgid="7433077540895876672">"允許視覺信號"</string>
<string name="mode_interruption_filter_title" msgid="3343846700214702347">"保持專注"</string>
<string name="mode_device_effects_title" msgid="5857008332618433744">"其他動作"</string>
- <!-- no translation found for modes_sound_summary_off (6972648204528227879) -->
- <skip />
+ <string name="modes_sound_summary_off" msgid="6972648204528227879">"{count,plural, =0{關閉}=1{關閉/可自動開啟 1 個模式}other{關閉/可自動開啟 # 個模式}}"</string>
<string name="mode_display_settings_title" msgid="8132825978346535472">"顯示設定"</string>
<string name="mode_display_options_section" msgid="5151597748243866532">"顯示選項"</string>
<string name="mode_grayscale_title" msgid="6027553257331235461">"灰階"</string>
@@ -3659,9 +3643,9 @@
<string name="notif_listener_not_migrated" msgid="6265206376374278226">"這個應用程式不支援加強型設定"</string>
<string name="notif_listener_more_settings" msgid="1348409392307208921">"更多設定"</string>
<string name="notif_listener_more_settings_desc" msgid="7995492074281663658">"應用程式內提供更多設定"</string>
- <string name="notification_polite_title" msgid="4737150709382859870">"自動調整通知"</string>
- <string name="notification_polite_main_control_title" msgid="7267191551379543859">"使用自動調整通知"</string>
- <string name="notification_polite_description" msgid="7749280535620291610">"如果短時間內收到多則通知,手機將調降音量,並減少畫面上的彈出式視窗,持續時間最多兩分鐘。如有來電、鬧鐘和重要對話,手機仍會震動、播放音效或顯示在畫面上。另外,從螢幕頂端往下拉,仍能輕鬆查看所有通知。"</string>
+ <string name="notification_polite_title" msgid="6121016426991791557">"通知緩和功能"</string>
+ <string name="notification_polite_main_control_title" msgid="5812529809151927149">"使用通知緩和"</string>
+ <string name="notification_polite_description" msgid="5497748284893832854">"如果短時間內收到多則通知,裝置就會降低音量並減少通知數量,持續時間最多 2 分鐘。來電、鬧鐘和重要對話則不受影響。\n\n如要在緩和期間查看通知,請從螢幕頂端往下拉。"</string>
<string name="notification_polite_work" msgid="8823596456640216391">"套用至工作資料夾"</string>
<string name="notification_polite_work_summary" msgid="5014189280132951378">"套用到工作資料夾應用程式"</string>
<string name="vr_listeners_title" msgid="4960357292472540964">"VR 小幫手服務"</string>
@@ -3818,7 +3802,9 @@
<string name="zen_mode_apps_priority_apps" msgid="7386196048313716076">"所選應用程式"</string>
<string name="zen_mode_apps_none_apps" msgid="2493642312793604327">"無"</string>
<string name="zen_mode_apps_subtext" msgid="1764211974662012877">"{count,plural,offset:2 =0{沒有應用程式例外}=1{「{app_1}」例外}=2{「{app_1}」和「{app_2}」例外}=3{「{app_1}」、「{app_2}」和「{app_3}」例外}other{「{app_1}」、「{app_2}」和另外 # 個應用程式例外}}"</string>
+ <string name="zen_mode_apps_work_app" msgid="8528767938316361588">"<xliff:g id="APP_LABEL">%s</xliff:g> (工作)"</string>
<string name="zen_mode_apps_calculating" msgid="5420121396943539286">"計算中…"</string>
+ <string name="zen_mode_plus_n_items" msgid="6136713354369243421">"+<xliff:g id="NUMBER">%d</xliff:g>"</string>
<string name="zen_mode_bypassing_apps" msgid="625309443389126481">"允許應用程式覆寫"</string>
<string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"例外的應用程式"</string>
<string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"選取更多應用程式"</string>
@@ -3836,6 +3822,7 @@
<string name="zen_mode_sounds_none" msgid="6557474361948269420">"沒有音效例外"</string>
<string name="zen_mode_people_none" msgid="4613147461974255046">"沒有人例外"</string>
<string name="zen_mode_people_some" msgid="9101872681298810281">"某些人例外"</string>
+ <string name="zen_mode_people_repeat_callers" msgid="4499084111069828761">"重複來電者例外"</string>
<string name="zen_mode_people_all" msgid="311036110283015205">"所有人都例外"</string>
<string name="zen_mode_repeat_callers" msgid="2270356100287792138">"重複來電者"</string>
<string name="zen_mode_repeat_callers_title" msgid="8016699240338264781">"允許顯示重複來電者"</string>
@@ -3855,13 +3842,37 @@
<string name="zen_mode_summary_alarms_only_by_hour" msgid="7400910210950788163">"{count,plural, =1{變更為僅限鬧鐘模式並持續 1 小時,結束時間為 {time}}other{變更為僅限鬧鐘模式並持續 # 小時,結束時間為 {time}}}"</string>
<string name="zen_mode_summary_alarms_only_by_time" msgid="8140619669703968810">"變更為僅允許鬧鐘模式,結束時間為 <xliff:g id="FORMATTEDTIME">%1$s</xliff:g>"</string>
<string name="zen_mode_summary_always" msgid="722093064250082317">"變更為一律允許干擾模式"</string>
- <!-- no translation found for zen_mode_rename_title (8146882272966214558) -->
+ <string name="zen_mode_rename_title" msgid="8146882272966214558">"編輯模式"</string>
+ <string name="zen_mode_new_custom_title" msgid="321750898430776191">"新增模式"</string>
+ <string name="zen_mode_new_custom_default_name" msgid="2778307946775085105">"自訂模式"</string>
+ <string name="zen_mode_edit_name_hint" msgid="4584652062167540536">"模式名稱"</string>
+ <string name="zen_mode_trigger_title_schedule_calendar" msgid="9206609438617550331">"日曆活動"</string>
+ <string name="zen_mode_trigger_title_bedtime" msgid="5086070900588489978">"睡眠時間表"</string>
+ <string name="zen_mode_trigger_title_driving" msgid="7890990983453164403">"行車期間"</string>
+ <string name="zen_mode_trigger_title_generic" msgid="601273385119550420">"已連結至應用程式"</string>
+ <string name="zen_mode_trigger_summary_settings_in_app" msgid="4860667191183702601">"「<xliff:g id="APP_NAME">%1$s</xliff:g>」中的資訊和設定"</string>
+ <string name="zen_mode_trigger_summary_managed_by_app" msgid="8631011868193102098">"由「<xliff:g id="APP_NAME">%1$s</xliff:g>」管理"</string>
+ <string name="zen_mode_confirm_disable_title" msgid="1232297660775719796">"停用模式"</string>
+ <string name="zen_mode_confirm_disable_message" msgid="7315541221665718491">"停用此功能後,模式就無法再正常運作,系統也會隱藏相關設定。"</string>
+ <string name="zen_mode_action_disable" msgid="3552921561331044881">"停用"</string>
+ <string name="zen_mode_confirm_enable_title" msgid="5683371335847448595">"啟用模式"</string>
+ <string name="zen_mode_confirm_enable_message" msgid="7017879133260011419">"啟用此功能後,系統會自動根據時間表啟用模式。"</string>
+ <string name="zen_mode_action_enable" msgid="1161480633223176531">"啟用"</string>
+ <!-- no translation found for zen_mode_blurb_schedule_time (8223898702097484009) -->
<skip />
- <!-- no translation found for zen_mode_new_custom_title (321750898430776191) -->
+ <!-- no translation found for zen_mode_blurb_schedule_calendar (382177907856065945) -->
<skip />
- <!-- no translation found for zen_mode_new_custom_default_name (2778307946775085105) -->
+ <!-- no translation found for zen_mode_blurb_bedtime (6155075956151013457) -->
<skip />
- <!-- no translation found for zen_mode_edit_name_hint (4584652062167540536) -->
+ <!-- no translation found for zen_mode_blurb_driving (1316054379000667305) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_immersive (5884004861848687869) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_theater (2999237960059524225) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_managed (5473921634985032149) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_generic (3041601339807075625) -->
<skip />
<string name="warning_button_text" msgid="1274234338874005639">"警告"</string>
<string name="suggestion_button_close" msgid="6865170855573283759">"關閉"</string>
@@ -4849,9 +4860,8 @@
<string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"電池"</string>
<string name="settings_panel_title" msgid="346363079938069215">"設定面板"</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>
+ <!-- no translation found for enable_desktop_mode_on_secondary_display (2609567824593768780) -->
+ <skip />
<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>
@@ -5026,7 +5036,6 @@
<string name="default_active_sim_mobile_data" msgid="6798083892814045301">"行動數據"</string>
<string name="wifi_scan_notify_message" msgid="1331238142061476869">"為提升裝置使用體驗,應用程式和服務仍可隨時掃描 Wi‑Fi 網路 (即使 Wi-Fi 關閉時也不例外),改善需要位置資訊的功能和服務。你可以前往「掃描 Wi-Fi」設定進行變更。"</string>
<string name="wifi_scan_change" msgid="8438320311511852918">"變更"</string>
- <string name="preference_summary_default_combination" msgid="4643585915107796253">"<xliff:g id="STATE">%1$s</xliff:g>/<xliff:g id="NETWORKMODE">%2$s</xliff:g>"</string>
<string name="mobile_data_connection_active" msgid="2422223108911581552">"已連線"</string>
<string name="mobile_data_temp_connection_active" msgid="3430470299756236413">"已暫時建立連線"</string>
<string name="mobile_data_temp_using" msgid="5211002380149434155">"暫時使用 <xliff:g id="SUBNAME">%1$s</xliff:g>"</string>
@@ -5172,9 +5181,11 @@
<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="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_enable_freeform_support" msgid="3697462756493543645">"必須重新啟動,才能啟用任意形式視窗支援功能。"</string>
+ <!-- no translation found for reboot_dialog_override_desktop_mode (7480950772574354130) -->
+ <skip />
+ <!-- no translation found for reboot_dialog_enable_desktop_mode_on_secondary_display (1153621881052401924) -->
+ <skip />
<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>
@@ -5292,10 +5303,8 @@
<string name="show_captions_enabled" msgid="7089043007924626">"已啟用"</string>
<string name="live_caption_disabled" msgid="3562035026547887366">"已停用"</string>
<string name="live_caption_enabled" msgid="5269360946200718949">"已啟用"</string>
- <!-- no translation found for audio_seek_bar_state_left_first (8814986910920838972) -->
- <skip />
- <!-- no translation found for audio_seek_bar_state_right_first (1999368979633398876) -->
- <skip />
+ <string name="audio_seek_bar_state_left_first" msgid="8814986910920838972">"音訊 %1$d%% 左,%2$d%% 右"</string>
+ <string name="audio_seek_bar_state_right_first" msgid="1999368979633398876">"音訊 %1$d%% 右,%2$d%% 左"</string>
<string name="about_phone_device_name_warning" msgid="3243226572404472381">"你安裝的應用程式會取得裝置名稱。如果你連上藍牙裝置、Wi-Fi 網路或者設定 Wi-Fi 無線基地台,其他人也可能會看到裝置名稱。"</string>
<string name="grammatical_gender_title" msgid="8584242850477270828">"語法性別"</string>
<string name="grammatical_gender_dialog_title" msgid="8754048592099871587">"選取語法性別"</string>
@@ -5407,5 +5416,6 @@
<string name="audio_streams_main_page_password_dialog_join_button" msgid="2967747276379153408">"聆聽串流"</string>
<string name="audio_streams_main_page_qr_code_scanner_summary" msgid="5312980105735143360">"使用「<xliff:g id="DEVICE_NAME">%1$s</xliff:g>」掃描音訊串流 QR code 即可聆聽"</string>
<string name="audio_streams_main_page_password_dialog_cannot_edit" msgid="9020898619297520153">"分享期間無法編輯密碼。如要變更密碼,請先關閉音訊分享功能。"</string>
+ <string name="audio_streams_qr_code_scanner_label" msgid="8799703301071378034">"QR code 掃描器"</string>
<string name="homepage_search" msgid="6759334912284663559">"搜尋設定"</string>
</resources>
diff --git a/res/values-zu/strings.xml b/res/values-zu/strings.xml
index c578cf6..27b46f4 100644
--- a/res/values-zu/strings.xml
+++ b/res/values-zu/strings.xml
@@ -41,6 +41,8 @@
<string name="radioInfo_data_suspended" msgid="2001254415431299603">"Kumiswe okwesikhashana"</string>
<string name="radioInfo_unknown" msgid="2892562356748600367">"Akwaziwa"</string>
<string name="preview_pager_content_description" msgid="3762247188224576303">"Hlola kuqala"</string>
+ <!-- no translation found for qr_code_content_description (1852208464419291347) -->
+ <skip />
<string name="font_size_make_smaller_desc" msgid="4978038055549590140">"Yenza kube kuncane"</string>
<string name="font_size_make_larger_desc" msgid="5583046033381722247">"Yenza kube kukhulu"</string>
<string name="stay_awake_on_fold_title" msgid="6590454679898134221">"Njalo"</string>
@@ -283,7 +285,7 @@
<string name="location_settings_summary_location_off" msgid="4797932754681162262">"Valiwe"</string>
<string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{Ivuliwe / i-app e-# enokufinyelela endaweni}one{Ivuliwe / ama-app angu-# anokufinyelela endaweni}other{Ivuliwe / ama-app angu-# anokufinyelela endaweni}}"</string>
<string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"Iyalayisha…"</string>
- <string name="location_settings_footer_general" msgid="1040507068701188821">"Ama-app anemvume Yamadivayisi aeseduze angakhetha indawo ehambelanayo yamadivayisi axhunyiwe."</string>
+ <string name="location_settings_footer_general" msgid="3447585552176173502">"Ama-app anamadivayisi anemvume eseduze anganquma indawo ehambelanayo yamadivayisi axhunyiwe."</string>
<string name="location_settings_footer_location_off" msgid="8568995909147566720">"Ukufinyelela kwendawo kuvaliwe mayelana nama-app namasevisi. Indawo yedivayisi yakho isengathunyelwa kubaphenduli besimo esiphuthumayo uma ushaya ikholi noma uthumela umbhalo kwinombolo ephuthumayo."</string>
<string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Funda kabanzi Ngamasethingi wendawo"</string>
<string name="location_settings_tooltip_text_for_chrome" msgid="5781821709250544575">"Ukuze ushintshe iya kokuthi Amasethingi e-ChromeOS bese uya kokuthi Ubumfihlo nokuvikeleka bese uya kokuthi Izilawulo zobumfihlo bese uya kokuthi Ukufinyelela indawo"</string>
@@ -850,7 +852,6 @@
<string name="nfc_reboot_dialog_title" msgid="2033983438635768169">"Qalisa kabusha idivayisi?"</string>
<string name="nfc_reboot_dialog_message" msgid="4929353168157966992">"Ukungena kwe-NFC okuningiliziwe kuhloselwe izinjongo zokuthuthukiswa kuphela. Idatha ye-NFC eyengeziwe ifakwe phakathi kwimibiko yeziphazamisi, engase ibe nolwazi olugodliwe. Qala kabusha idivayisi ukuze ushintshe le sethingi."</string>
<string name="nfc_reboot_dialog_confirm" msgid="4769763632008584567">"Qala kabusha"</string>
- <string name="keywords_external_display" msgid="4181375057920134909">"fanisa, ukubonisa kwangaphandle, ukubonisa okuxhunyiwe, ukubonisa kwe-usb, ukucaca, ukuzungezisa"</string>
<string name="external_display_on" msgid="2560104443500154333">"Kuvuliwe"</string>
<string name="external_display_off" msgid="5634413756025351374">"Kuvaliwe"</string>
<string name="external_display_settings_title" msgid="6256884595821605779">"Ukubonisa Kwangaphandle"</string>
@@ -1919,6 +1920,8 @@
<string name="slow_keys_summary" msgid="1784371292745423292">"Lungisa isikhathi esithathwa yinkinobho ngayinye ukuba isebenze lapho icindezelwa, sibe ngu-<xliff:g id="SLOW_KEYS_THRESHOLD">%1$d</xliff:g> ms"</string>
<string name="sticky_keys" msgid="7317317044898161747">"Okhiye abanamathelayo"</string>
<string name="sticky_keys_summary" msgid="1844953803625480623">"Cindezela inkinobho eyodwa ngesikhathi ukuze uthole izinqamuleli esikhundleni sokubamba izinkinobho ndawonye"</string>
+ <string name="mouse_keys" msgid="6237254627808525540">"Okhiye bemouse"</string>
+ <string name="mouse_keys_summary" msgid="2396247040177734245">"Sebenzisa ikhibhodi ephathekayo ukulawula imouse."</string>
<string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"Izinqamuleli zekhibhodi"</string>
<string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"Bonisa uhlu lwezinqamuleli"</string>
<string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"Amakhibhodi ephrofayela yomsebenzi namathuluzi"</string>
@@ -1943,14 +1946,10 @@
<string name="pointer_fill_style_yellow_button" msgid="5025969961559379024">"Shintsha isitayela sokugcwalisa isikhombi sibe phuzi"</string>
<string name="pointer_fill_style_pink_button" msgid="4106218142489635673">"Shintsha isitayela sokugcwalisa isikhombi sibe phinki"</string>
<string name="pointer_fill_style_blue_button" msgid="5594958078854032785">"Shintsha isitayela sokugcwalisa isikhombi sibe luhlaza okwesibhakabhaka"</string>
- <!-- no translation found for pointer_stroke_style (1886986630216050665) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_white (673686194443825383) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_black (4655806167067437330) -->
- <skip />
- <!-- no translation found for pointer_stroke_style_name_none (8953927511729800247) -->
- <skip />
+ <string name="pointer_stroke_style" msgid="1886986630216050665">"Isitayela sepointer stroke"</string>
+ <string name="pointer_stroke_style_name_white" msgid="673686194443825383">"Mhlophe"</string>
+ <string name="pointer_stroke_style_name_black" msgid="4655806167067437330">"Mnyama"</string>
+ <string name="pointer_stroke_style_name_none" msgid="8953927511729800247">"Lutho"</string>
<string name="trackpad_touch_gesture" msgid="8641725062131922497">"Funda ukunyakaza kwephedi lokuthinta"</string>
<string name="keywords_touchpad" msgid="8159846254066666032">"i-trackpad, i-track pad, imawuzi, i-cursor, skrola, swayipha, chofoza kwesokudla, chofoza, isikhombi"</string>
<string name="keywords_trackpad_bottom_right_tap" msgid="1285062446073929305">"chofoza ngakwesokudla, thepha"</string>
@@ -2180,8 +2179,6 @@
<string name="accessibility_shortcut_edit_dialog_summary_floating_button" msgid="6266489864614886247">"Thepha inkinobho entantayo"</string>
<string name="accessibility_shortcut_edit_dialog_title_software_by_gesture" msgid="4775049370625630546">"Ukutholakala kokuthinta"</string>
<string name="accessibility_shortcut_edit_dialog_summary_software" msgid="8315934725362849788">"Thepha inkinobho yokufinyeleleka engu-<xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g> ngaphansi kwesikrini sakho. Ukuze ushintshe phakathi kwezici, thinta uphinde ubambe inkinobho yokufinyeleleka."</string>
- <string name="accessibility_shortcut_edit_dialog_summary_software_gesture" msgid="8292555254353761635">"Swayiphela phezulu kusuka ezansi esikrinini ngeminwe engu-2.\n\nUkuze ushintshe phakathi kwezici, swayiphela phezulu ngeminwe engu-2 bese ubambe."</string>
- <string name="accessibility_shortcut_edit_dialog_summary_software_gesture_talkback" msgid="84483464524360845">"Swayiphela phezulu kusuka ezansi esikrinini ngeminwe engu-3.\n\nUkuze ushintshe phakathi kwezici, swayiphela phezulu ngeminwe engu-3 bese ubambe."</string>
<string name="accessibility_shortcut_edit_dialog_summary_gesture" msgid="2081123009255579884">"{count,plural, =1{Swayiphela phezulu kusuka ngaphansi kwesikrini sakho. Ukuze ushintshe phakathi kwezakhi, swayiphela phezulu uphinde ubambe.}one{Swayiphela phezulu ngeminwe engu-# kusuka ngaphansi kwesikrini sakho. Ukuze ushintshe phakathi kwezakhi, swayiphela phezulu ngeminwe engu-# uphinde ubambe.}other{Swayiphela phezulu ngeminwe engu-# kusuka ngaphansi kwesikrini sakho. Ukuze ushintshe phakathi kwezakhi, swayiphela phezulu ngeminwe engu-# uphinde ubambe.}}"</string>
<string name="accessibility_shortcut_edit_dialog_summary_software_floating" msgid="4459254227203203324"><annotation id="link">"Izinketho eziningi"</annotation></string>
<string name="footer_learn_more_content_description" msgid="8843798273152131341">"Funda kabanzi nge-<xliff:g id="SERVICE">%1$s</xliff:g>"</string>
@@ -2192,16 +2189,12 @@
<string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="844089763968552142">"Okhiye bevolumu"</string>
<string name="accessibility_shortcut_hardware_keyword" msgid="2483152542320987022">"okhiye bevolumu"</string>
<string name="accessibility_shortcut_edit_dialog_summary_hardware" msgid="2503134386397991634">"Cindezela futhi ubambe bobabili okhiye bevolumu"</string>
- <string name="accessibility_shortcut_edit_dialog_title_two_finger_double_tap" msgid="2271778556854020996">"Isikrini othepha kabili ngeminwe emibili kuso"</string>
<string name="accessibility_shortcut_edit_screen_title_two_finger_double_tap" msgid="8952595692906527694">"%1$d-umunwe wokuthepha kabili"</string>
<string name="accessibility_shortcut_edit_screen_summary_two_finger_double_tap" msgid="385404127425496362">"Thepha ngokushesha isikrini kabili ngeminwe engu-%1$d"</string>
<string name="accessibility_shortcut_edit_screen_title_triple_tap" msgid="3314488747597058942">"Thepha kathathu"</string>
<string name="accessibility_shortcut_edit_screen_summary_triple_tap" msgid="4839204951599629871">"Thepha ngokushesha isikrini izikhathi ezingu-%1$d. Lokhu kungenza idivayisi yakho ihambe kancane."</string>
<string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="6271718715836961167">"%1$d-umunwe wokuthepha kabili"</string>
- <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"Thepha ngokushesha isikrini izikhathi ezingu-{0,number,integer} ngeminwe emibili"</string>
- <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"Isikrini sokuthepha kathathu"</string>
<string name="accessibility_shortcut_triple_tap_keyword" msgid="5359347130888464334">"thepha kathathu"</string>
- <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"Thepha ngokushesha isikrini izikhathi ezingu-{0,number,integer}. Lesi sinqamuleli singase sehlise isivinini sedivayisi yakho"</string>
<string name="accessibility_shortcut_edit_dialog_title_advance" msgid="4567868630655591506">"Okuthuthukile"</string>
<string name="accessibility_screen_magnification_navbar_configuration_warning" msgid="266736851606791552">"Inkinobho yokufinyelela isethelwe ku-<xliff:g id="SERVICE">%1$s</xliff:g>. Ukuze usebenzise ukushintsha, thinta futhi ubambe inkinobho yokufinyelela, bese ukhethe ukushintsha."</string>
<string name="accessibility_screen_magnification_gesture_navigation_warning" msgid="991017769735632046">"Ukuthinta kokufinyelela kusethelwe ku-<xliff:g id="SERVICE">%1$s</xliff:g>. Ukuze usebenzise ukushintsha usayizi, swayiphela phezulu ngeminwe emibili kusuka phansi kwesikrini futhi ubambe. Bese khetha ukulungisa."</string>
@@ -2370,6 +2363,7 @@
<string name="daltonizer_mode_tritanomaly_title" msgid="2278786218762602022">"Okuluhlaza okwesibhakabhaka-okuphuzi"</string>
<string name="daltonizer_mode_grayscale_title" msgid="152005391387952588">"I-grayscale"</string>
<string name="daltonizer_saturation_title" msgid="2999486412114963068">"Ukuqina"</string>
+ <string name="daltonizer_saturation_unavailable_summary" msgid="8319753055567798775">"Ayitholakali kumodi yendawo engathi imnyama noma lapho ukulungiswa kombala kukhutshaziwe"</string>
<string name="daltonizer_mode_deuteranomaly_summary" msgid="2117727423019598455">"Okuluhlaza okotshani okubuthakathaka, i-deuteranomaly"</string>
<string name="daltonizer_mode_protanomaly_summary" msgid="4617032854982040748">"Okubomvu okubuthakathaka, i-protanomaly"</string>
<string name="daltonizer_mode_tritanomaly_summary" msgid="2428218320118180070">"I-Tritanomaly"</string>
@@ -2419,15 +2413,8 @@
<string name="color_cyan" msgid="4341758639597035927">"I-Cyan"</string>
<string name="color_yellow" msgid="5957551912912679058">"Okuliphuzi"</string>
<string name="color_magenta" msgid="8943538189219528423">"I-Magenta"</string>
- <string name="enable_service_title" msgid="7231533866953706788">"Vumela i-<xliff:g id="SERVICE">%1$s</xliff:g> ukuthola ukulawula okuphelele kwedivayisi yakho?"</string>
<string name="capabilities_list_title" msgid="1225853611983394386">"<xliff:g id="SERVICE">%1$s</xliff:g> idinga :"</string>
<string name="touch_filtered_warning" msgid="4225815157460318241">"Ngoba uhlelo lokusebenza lusitha isicelo semvume, Izilungiselelo azikwazi ukuqinisekisa impendulo yakho."</string>
- <string name="accessibility_service_warning" msgid="6779187188736432618">"<xliff:g id="SERVICE">%1$s</xliff:g> icela ukulawula okuphelele kwale divayisi. Isevisi ingafunda isikrini futhi isebenze engxenyeni yabasebenzisi abanezidingo zokufinyelela. Le leveli yokulawula ayiqondile kuzinhlelo zokusebenza eziningi."</string>
- <string name="accessibility_service_warning_description" msgid="6573203795976134751">"Ukulawula okugcwele kulungele izinhlelo zokusebenza ezikusiza ngezidingo zokufinyelela, kodwa hhayi izinhlelo zokusebenza eziningi."</string>
- <string name="accessibility_service_screen_control_title" msgid="324795030658109870">"Buka futhi ulawule isikrini"</string>
- <string name="accessibility_service_screen_control_description" msgid="8431940515157990426">"Singafunda konke okuqukethwe esikrinini futhi sibonise okuqukethwe kwezinye izinhlelo zokusebenza."</string>
- <string name="accessibility_service_action_perform_title" msgid="1449360056585337833">"Buka uphinde wenze izenzo"</string>
- <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"Ingalandela ukusebenzisana kwakho nohlelo lokusebenza noma inzwa yehadiwe, nokusebenzisana nezinhlelo zokusebenza engxenyeni yakho."</string>
<string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Vumela"</string>
<string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Phika"</string>
<string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Vala"</string>
@@ -3657,9 +3644,9 @@
<string name="notif_listener_not_migrated" msgid="6265206376374278226">"Le app ayisekeli amasethingi athuthukisiwe"</string>
<string name="notif_listener_more_settings" msgid="1348409392307208921">"Amanye amasethingi"</string>
<string name="notif_listener_more_settings_desc" msgid="7995492074281663658">"Amasethingi engeziwe ayatholakala ngaphakathi kwale app"</string>
- <string name="notification_polite_title" msgid="4737150709382859870">"Izaziso Eziguquguqukayo"</string>
- <string name="notification_polite_main_control_title" msgid="7267191551379543859">"Sebenzisa izaziso eziguquguqukayo"</string>
- <string name="notification_polite_description" msgid="7749280535620291610">"Lapho uthola izaziso eziningi ngesikhathi esincane, ifoni yakho izokwehlisa umsindo futhi inciphise okuvela okwesikhashana esikrinini imizuzu engafika kwemibili. Amakholi, ama-alamu, kanye nezingxoxo ezibalulekile kusengadlidliza, kwenze umsindo, noma kuvele esikrinini, futhi kulula ukuthola zonke izaziso lapho udonsela phansi kusuka ngenhla kwesikrini."</string>
+ <string name="notification_polite_title" msgid="6121016426991791557">"Isikhathi sokuphola sezaziso"</string>
+ <string name="notification_polite_main_control_title" msgid="5812529809151927149">"Sebenzisa ukwehlisa umsindo wezaziso"</string>
+ <string name="notification_polite_description" msgid="5497748284893832854">"Uma uthola izaziso eziningi ngesikhathi esifushane, idivayisi yakho izokwehlisa ivolumu yayo futhi inciphise izexwayiso imizuzu engafika kwemi-2. Izingcingo, ama-alamu, nezingxoxo ezibalulekile azithinteki. \n\nIzaziso ezitholwe ngesikhathi sokupholisa zingatholwa ngokudonsela phansi usuka phezulu esikrinini."</string>
<string name="notification_polite_work" msgid="8823596456640216391">"Sebenzisa kumaphrofayela omsebenzi"</string>
<string name="notification_polite_work_summary" msgid="5014189280132951378">"Kusebenzise kuma-app ephrofayela yomsebenzi"</string>
<string name="vr_listeners_title" msgid="4960357292472540964">"Amasevisi omsizi we-VR"</string>
@@ -3816,7 +3803,9 @@
<string name="zen_mode_apps_priority_apps" msgid="7386196048313716076">"Ama-app akhethiwe"</string>
<string name="zen_mode_apps_none_apps" msgid="2493642312793604327">"Lutho"</string>
<string name="zen_mode_apps_subtext" msgid="1764211974662012877">"{count,plural,offset:2 =0{Awekho ama-app angaphazamisa}=1{I-{app_1} ingaphazamisa}=2{I-{app_1} ne-{app_2} zingaphazamisa}=3{I-{app_1}, i-{app_2}, ne-{app_3} zingaphazamisa}one{I-{app_1}, i-{app_2}, kanye nezingu-# ezengeziwe zingaphazamisa}other{I-{app_1}, i-{app_2}, kanye nezingu-# ezengeziwe zingaphazamisa}}"</string>
+ <string name="zen_mode_apps_work_app" msgid="8528767938316361588">"<xliff:g id="APP_LABEL">%s</xliff:g> (Umsebenzi)"</string>
<string name="zen_mode_apps_calculating" msgid="5420121396943539286">"Iyabala…"</string>
+ <string name="zen_mode_plus_n_items" msgid="6136713354369243421">"+<xliff:g id="NUMBER">%d</xliff:g>"</string>
<string name="zen_mode_bypassing_apps" msgid="625309443389126481">"Vumela izinhlelo zokusebenza ukubhala ngaphezulu"</string>
<string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"Ama-app angaphazamisa"</string>
<string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"Khetha ama-app amaningi"</string>
@@ -3834,6 +3823,7 @@
<string name="zen_mode_sounds_none" msgid="6557474361948269420">"Akukho okungaphazamisa"</string>
<string name="zen_mode_people_none" msgid="4613147461974255046">"Akekho ongaphazamisa"</string>
<string name="zen_mode_people_some" msgid="9101872681298810281">"Abantu abathile bangaphazamisa"</string>
+ <string name="zen_mode_people_repeat_callers" msgid="4499084111069828761">"Abafonayo abaphindayo bangaphazamisa"</string>
<string name="zen_mode_people_all" msgid="311036110283015205">"Bonke abantu bangaphazamisa"</string>
<string name="zen_mode_repeat_callers" msgid="2270356100287792138">"Phinda abafonayo"</string>
<string name="zen_mode_repeat_callers_title" msgid="8016699240338264781">"Vumela abashayi abaphindayo"</string>
@@ -3857,6 +3847,34 @@
<string name="zen_mode_new_custom_title" msgid="321750898430776191">"Faka imodi"</string>
<string name="zen_mode_new_custom_default_name" msgid="2778307946775085105">"Imodi yomuntu ngamunye"</string>
<string name="zen_mode_edit_name_hint" msgid="4584652062167540536">"Igama lemodi"</string>
+ <string name="zen_mode_trigger_title_schedule_calendar" msgid="9206609438617550331">"Imicimbi yekhalenda"</string>
+ <string name="zen_mode_trigger_title_bedtime" msgid="5086070900588489978">"Ishejuli yokulala"</string>
+ <string name="zen_mode_trigger_title_driving" msgid="7890990983453164403">"Ngenkathi ushayela"</string>
+ <string name="zen_mode_trigger_title_generic" msgid="601273385119550420">"Ilinkwe ku-app"</string>
+ <string name="zen_mode_trigger_summary_settings_in_app" msgid="4860667191183702601">"Imininingwane kanye namasethingi ku-<xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+ <string name="zen_mode_trigger_summary_managed_by_app" msgid="8631011868193102098">"Iphethwe yi-<xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+ <string name="zen_mode_confirm_disable_title" msgid="1232297660775719796">"Khubaza Imodi"</string>
+ <string name="zen_mode_confirm_disable_message" msgid="7315541221665718491">"Uma ukhubaza lesi sici, imodi ngeke isasebenza ngendlela ehlosiwe futhi amasethingi ayo azofihlwa."</string>
+ <string name="zen_mode_action_disable" msgid="3552921561331044881">"Khubaza"</string>
+ <string name="zen_mode_confirm_enable_title" msgid="5683371335847448595">"Nika Amandla Imodi"</string>
+ <string name="zen_mode_confirm_enable_message" msgid="7017879133260011419">"Uma unika amandla lesi sakhi, imodi izosebenzisa okuzenzakalelayo ngokuvumelana neshejuli yayo."</string>
+ <string name="zen_mode_action_enable" msgid="1161480633223176531">"Nika amandla"</string>
+ <!-- no translation found for zen_mode_blurb_schedule_time (8223898702097484009) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_schedule_calendar (382177907856065945) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_bedtime (6155075956151013457) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_driving (1316054379000667305) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_immersive (5884004861848687869) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_theater (2999237960059524225) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_managed (5473921634985032149) -->
+ <skip />
+ <!-- no translation found for zen_mode_blurb_generic (3041601339807075625) -->
+ <skip />
<string name="warning_button_text" msgid="1274234338874005639">"Isexwayiso"</string>
<string name="suggestion_button_close" msgid="6865170855573283759">"Vala"</string>
<string name="device_feedback" msgid="5351614458411688608">"Thumela impendulo mayelana nale divayisi"</string>
@@ -4843,9 +4861,8 @@
<string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"Ibhethri"</string>
<string name="settings_panel_title" msgid="346363079938069215">"Iphaneli yezilungiselelo"</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>
+ <!-- no translation found for enable_desktop_mode_on_secondary_display (2609567824593768780) -->
+ <skip />
<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>
@@ -5020,7 +5037,6 @@
<string name="default_active_sim_mobile_data" msgid="6798083892814045301">"idatha yeselula"</string>
<string name="wifi_scan_notify_message" msgid="1331238142061476869">"Ukuze kuthuthukiswe ukuzizwela kwedivayisi, ama-app namasevisi asengaskena amanethiwekhi e-Wi-Fi noma kunini, nanoma i-Wi-Fi ivaliwe. Lokhu kungasetshenziselwa, njengesibonelo, ukuthuthukisa izakhi ezisuselwa endaweni namasevisi. Ungashintsha lokhu kumasethingi Wokuskena i-Wi-Fi."</string>
<string name="wifi_scan_change" msgid="8438320311511852918">"Shintsha"</string>
- <string name="preference_summary_default_combination" msgid="4643585915107796253">"<xliff:g id="STATE">%1$s</xliff:g> / <xliff:g id="NETWORKMODE">%2$s</xliff:g>"</string>
<string name="mobile_data_connection_active" msgid="2422223108911581552">"Ixhunyiwe"</string>
<string name="mobile_data_temp_connection_active" msgid="3430470299756236413">"Ixhume okwesikhashana"</string>
<string name="mobile_data_temp_using" msgid="5211002380149434155">"Ukusebenzisa i-<xliff:g id="SUBNAME">%1$s</xliff:g> okwesikhashana"</string>
@@ -5166,9 +5182,11 @@
<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="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_enable_freeform_support" msgid="3697462756493543645">"Ukuqalisa kabusha kuyadingeka ukunika amandla usekelo lwewindi lefreeform."</string>
+ <!-- no translation found for reboot_dialog_override_desktop_mode (7480950772574354130) -->
+ <skip />
+ <!-- no translation found for reboot_dialog_enable_desktop_mode_on_secondary_display (1153621881052401924) -->
+ <skip />
<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>
@@ -5286,10 +5304,8 @@
<string name="show_captions_enabled" msgid="7089043007924626">"Vuliwe"</string>
<string name="live_caption_disabled" msgid="3562035026547887366">"Valiwe"</string>
<string name="live_caption_enabled" msgid="5269360946200718949">"Vuliwe"</string>
- <!-- no translation found for audio_seek_bar_state_left_first (8814986910920838972) -->
- <skip />
- <!-- no translation found for audio_seek_bar_state_right_first (1999368979633398876) -->
- <skip />
+ <string name="audio_seek_bar_state_left_first" msgid="8814986910920838972">"Okulalelwayo %1$d%% kwesobunxele, %2$d%% kwesokudla"</string>
+ <string name="audio_seek_bar_state_right_first" msgid="1999368979633398876">"Okulalelwayo %1$d%% kwesokudla, %2$d%% kwesobunxele"</string>
<string name="about_phone_device_name_warning" msgid="3243226572404472381">"Igama ledivayisi yakho liyabonakala kuma-app owafakile. Lingase futhi libonwe ngabanye abantu lapho uxhuma kumadivayisi e-Bluetooth, uxhuma kunethiwekhi ye-Wi-Fi noma usetha i-hotspot ye-Wi-Fi."</string>
<string name="grammatical_gender_title" msgid="8584242850477270828">"Ubulili bohlelo lolimi"</string>
<string name="grammatical_gender_dialog_title" msgid="8754048592099871587">"Khetha ubulili Bohlelo lolimi"</string>
@@ -5401,5 +5417,6 @@
<string name="audio_streams_main_page_password_dialog_join_button" msgid="2967747276379153408">"Lalela ukusakaza"</string>
<string name="audio_streams_main_page_qr_code_scanner_summary" msgid="5312980105735143360">"Skena ikhodi ye-QR yokusakaza komsindo ukuze ulalele nge-<xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
<string name="audio_streams_main_page_password_dialog_cannot_edit" msgid="9020898619297520153">"Ayikwazi ukuhlela iphasiwedi ngenkathi yabelana. Ukuze ushintshe iphasiwedi, qala uvale ukwabelana ngokuqoshiwe."</string>
+ <string name="audio_streams_qr_code_scanner_label" msgid="8799703301071378034">"Iskena sekhodi ye-QR"</string>
<string name="homepage_search" msgid="6759334912284663559">"Amasethingi Okusesha"</string>
</resources>
diff --git a/res/values/arrays.xml b/res/values/arrays.xml
index 4680936..598ec3e 100644
--- a/res/values/arrays.xml
+++ b/res/values/arrays.xml
@@ -1503,12 +1503,14 @@
<!-- A locale list of not supporting Terms of Address. [DO NOT TRANSLATE] -->
<string-array name="terms_of_address_unsupported_locales">
- <item>fr-CA</item> <!-- French (Canada) -->
</string-array>
<!-- A language list of supporting Terms of Address. [DO NOT TRANSLATE] -->
<string-array name="terms_of_address_supported_languages">
<item>fr</item> <!-- French -->
+ <item>es</item> <!-- Spanish -->
+ <item>it</item> <!-- Italian -->
+ <item>de</item> <!-- German -->
</string-array>
<!-- Entries for private space auto lock option -->
@@ -1530,27 +1532,49 @@
<item>@*android:drawable/ic_zen_mode_type_bedtime</item>
<item>@*android:drawable/ic_zen_mode_type_driving</item>
<item>@*android:drawable/ic_zen_mode_type_immersive</item>
- <item>@*android:drawable/ic_zen_mode_type_managed</item>
- <item>@*android:drawable/ic_zen_mode_type_other</item>
<item>@*android:drawable/ic_zen_mode_type_schedule_calendar</item>
<item>@*android:drawable/ic_zen_mode_type_schedule_time</item>
+ <item>@*android:drawable/ic_zen_mode_icon_beach</item>
+ <item>@*android:drawable/ic_zen_mode_icon_camping</item>
<item>@*android:drawable/ic_zen_mode_type_theater</item>
+ <item>@*android:drawable/ic_zen_mode_icon_gaming</item>
+ <item>@*android:drawable/ic_zen_mode_icon_gym</item>
+ <item>@*android:drawable/ic_zen_mode_icon_ball_sports</item>
+ <item>@*android:drawable/ic_zen_mode_icon_martial_arts</item>
+ <item>@*android:drawable/ic_zen_mode_icon_swimming</item>
+ <item>@*android:drawable/ic_zen_mode_icon_hiking</item>
+ <item>@*android:drawable/ic_zen_mode_icon_golf</item>
+ <item>@*android:drawable/ic_zen_mode_icon_workshop</item>
+ <item>@*android:drawable/ic_zen_mode_icon_work</item>
+ <item>@*android:drawable/ic_zen_mode_type_other</item>
<item>@*android:drawable/ic_zen_mode_type_unknown</item>
+ <item>@*android:drawable/ic_zen_mode_type_managed</item>
</array>
<!-- TODO: b/333901673 - Complete list -->
<!-- Descriptions of the icons in zen_mode_icon_options. Should describe the associated image
[CHAR LIMIT=NONE] -->
<string-array name="zen_mode_icon_options_descriptions">
- <item>Bedtime</item>
- <item>Driving</item>
- <item>Immersive</item>
- <item>Managed</item>
- <item>Star</item>
+ <item>Half-moon</item>
+ <item>Car</item>
+ <item>Person\'s mind</item>
<item>Calendar</item>
- <item>Time</item>
- <item>Theater</item>
- <item>Flower</item>
+ <item>Clock</item>
+ <item>Beach umbrella</item>
+ <item>Tent</item>
+ <item>Film reel</item>
+ <item>Game controller</item>
+ <item>Gym dumbbell</item>
+ <item>Person throwing ball</item>
+ <item>Person kicking</item>
+ <item>Swimming</item>
+ <item>Person hiking</item>
+ <item>Golf</item>
+ <item>Workshop tools</item>
+ <item>Briefcase</item>
+ <item>Star</item>
+ <item>Lotus flower</item>
+ <item>Supervisor</item>
</string-array>
<!-- Packages that will not show Display over other apps permission -->
diff --git a/res/values/colors.xml b/res/values/colors.xml
index b0de870..6d92526 100644
--- a/res/values/colors.xml
+++ b/res/values/colors.xml
@@ -218,7 +218,4 @@
<!-- 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/dimens.xml b/res/values/dimens.xml
index 8a96727..2024a45 100755
--- a/res/values/dimens.xml
+++ b/res/values/dimens.xml
@@ -500,12 +500,25 @@
<dimen name="contrast_button_horizontal_spacing">16dp</dimen>
<dimen name="audio_streams_qrcode_size">264dp</dimen>
+ <dimen name="audio_streams_qrcode_preview_size">300dp</dimen>
<dimen name="audio_streams_qrcode_preview_radius">30dp</dimen>
+ <dimen name="audio_streams_qrcode_scanner_fragment_padding">16dp</dimen>
<!-- Zen Modes -->
+ <dimen name="zen_mode_header_size">136dp</dimen>
+ <dimen name="zen_mode_header_inner_icon_size">64dp</dimen>
+ <dimen name="zen_mode_blurb_text_size">16sp</dimen>
<dimen name="zen_mode_icon_list_header_circle_diameter">90dp</dimen>
<dimen name="zen_mode_icon_list_header_icon_size">48dp</dimen>
<dimen name="zen_mode_icon_list_item_size">96dp</dimen>
<dimen name="zen_mode_icon_list_item_circle_diameter">56dp</dimen>
<dimen name="zen_mode_icon_list_item_icon_size">32dp</dimen>
+ <!-- For the items in the CircularIconsPreference (contacts, apps, sound channels). -->
+ <dimen name="zen_mode_circular_icon_diameter">32dp</dimen>
+ <dimen name="zen_mode_circular_icon_inner_icon_size">20dp</dimen>
+ <dimen name="zen_mode_circular_icon_margin_between">4dp</dimen>
+ <dimen name="zen_mode_circular_icon_margin_vertical">8dp</dimen>
+ <dimen name="zen_mode_circular_icon_text_size">18dp</dimen>
+ <!-- For images in SetupInterstitialActivity -->
+ <dimen name="zen_mode_interstitial_corner_radius">30dp</dimen>
</resources>
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 05fd19a..6c018c2 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -78,6 +78,8 @@
<!-- Content description for preview pager. [CHAR LIMIT=NONE] -->
<string name="preview_pager_content_description">Preview</string>
+ <!-- Content description for qrcode image. [CHAR LIMIT=none]-->
+ <string name="qr_code_content_description">QR code</string>
<!-- Description for the button that makes interface elements smaller. [CHAR_LIMIT=NONE] -->
<string name="font_size_make_smaller_desc">Make smaller</string>
@@ -407,7 +409,7 @@
<string name="desc_app_locale_selection_supported">Set the language for each app.</string>
<!-- Description for the introduction to language picker activity. [CHAR LIMIT=NONE]-->
- <string name="desc_introduction_of_language_picker">Your system, apps, and websites use the first supported language from your preferred languages.</string>
+ <string name="desc_introduction_of_language_picker">Your device, apps, and websites use the first supported language from your preferred language list.\n\nMany apps will also use the region from your preferred language to format dates, numbers, and units. To change your region, add a language, then choose your preferred region.</string>
<!-- Description for the notice of language picker. [CHAR LIMIT=NONE]-->
<string name="desc_notice_of_language_picker">To select a language for each app, go to app language settings.</string>
@@ -935,7 +937,7 @@
<!-- Message showing that multiple fingerprints, face, and the current watch is set up. Shown for a menu item that launches fingerprint, face, and active unlock settings or enrollment. [CHAR LIMIT=80]-->
<string name="security_settings_fingerprint_multiple_face_watch_preference_summary">Face, fingerprints, and <xliff:g id="watch" example="Dani's Watch">%s</xliff:g> added</string>
<!-- Description for mandatory biometrics prompt-->
- <string name="mandatory_biometrics_prompt_description">This is needed since Identity Check is on</string>
+ <string name="mandatory_biometrics_prompt_description">Identity Check is on</string>
<!-- RemoteAuth unlock enrollment and settings --><skip />
<!-- Title shown for menu item that launches watch unlock settings. [CHAR LIMIT=40] -->
<string name ="security_settings_remoteauth_preference_title">Remote Authenticator Unlock</string>
@@ -1372,6 +1374,12 @@
<string name="private_space_error_screen_title">Couldn\u2019t set up a private space</string>
<!-- Label for button to retry creating private space again on creation error. [CHAR LIMIT=30] -->
<string name="private_space_tryagain_label">Try Again</string>
+ <!-- Label for button to exit private space setup on creation error. [CHAR LIMIT=30] -->
+ <string name="private_space_exit_label">Exit</string>
+ <!-- Description in Private space error page with a link to the Help Center page[CHAR LIMIT=NONE] -->
+ <string name="private_space_error_description">Private space isn\u2019t available.\nView possible causes</string>
+ <!-- Text in Private space error page that points to view possible error causes [CHAR LIMIT=40] -->
+ <string name="private_space_error_causes_text">View possible causes</string>
<!-- Title for private space lock setup screen. [CHAR LIMIT=90] -->
<string name="private_space_lockscreen_title">Choose a new lock for private space?</string>
<!-- Summary for the private space lock setup screen. [CHAR LIMIT=NONE] -->
@@ -1896,8 +1904,6 @@
<!-- Nfc developer settings: The confirm button of the popup dialog. [CHAR_LIMIT=60] -->
<string name="nfc_reboot_dialog_confirm">Restart</string>
- <!-- External Display settings. The keywords for searching. [CHAR LIMIT=40] -->
- <string name="keywords_external_display">mirror, external display, connected display, usb display, resolution, rotation</string>
<!-- External Display settings. When external display is enabled. [CHAR LIMIT=40] -->
<string name="external_display_on">On</string>
<!-- External Display settings. When external display is disabled. [CHAR LIMIT=40] -->
@@ -4451,6 +4457,10 @@
<string name="sticky_keys">Sticky keys</string>
<!-- Summary text for the 'Sticky keys' preference sub-screen. [CHAR LIMIT=300] -->
<string name="sticky_keys_summary">Press one key at a time for shortcuts instead of holding keys down together</string>
+ <!-- Title for a toggle switch for 'mouse' keys, an accessibility setting that allows the mouse pointer to be controlled using certain keys on a physical keyboard if keyboard is connected. [CHAR LIMIT=35] -->
+ <string name="mouse_keys">Mouse keys</string>
+ <!-- Summary text for the accessibility setting 'Mouse keys' preference sub-screen. [CHAR LIMIT=100] -->
+ <string name="mouse_keys_summary">Use the physical keyboard to control the mouse.</string>
<!-- Title for the button to trigger the 'keyboard shortcuts helper' dialog. [CHAR LIMIT=35] -->
<string name="keyboard_shortcuts_helper">Keyboard shortcuts</string>
<!-- Summary text for the 'keyboard shortcuts helper' dialog. [CHAR LIMIT=100] -->
@@ -5053,10 +5063,6 @@
<string name="accessibility_shortcut_edit_dialog_title_software_by_gesture">Accessibility gesture</string>
<!-- Summary for software shortcut in accessibility edit shortcut dialog. [CHAR LIMIT=NONE] -->
<string name="accessibility_shortcut_edit_dialog_summary_software">Tap the accessibility button <xliff:g id="accessibility_icon" example="[Icon]">%s</xliff:g> at the bottom of your screen. To switch between features, touch & hold the accessibility button.</string>
- <!-- Summary for software shortcut in gesture mode in accessibility edit shortcut dialog while using gesture navigation is enabled. [CHAR LIMIT=NONE] -->
- <string name="accessibility_shortcut_edit_dialog_summary_software_gesture">Swipe up from the bottom of the screen with 2 fingers.\n\nTo switch between features, swipe up with 2 fingers and hold.</string>
- <!-- Summary for software shortcut in gesture mode in accessibility edit shortcut dialog while using gesture navigation and touch exploration are enabled [CHAR LIMIT=NONE] -->
- <string name="accessibility_shortcut_edit_dialog_summary_software_gesture_talkback">Swipe up from the bottom of the screen with 3 fingers.\n\nTo switch between features, swipe up with 3 fingers and hold.</string>
<!-- Summary for gesture shortcut option -->
<string name="accessibility_shortcut_edit_dialog_summary_gesture">{count, plural,
=1 {Swipe up from the bottom of your screen. To switch between features, swipe up and hold.}
@@ -5086,8 +5092,6 @@
<string name="accessibility_shortcut_hardware_keyword">volume keys</string>
<!-- Summary for hardware shortcut in accessibility edit shortcut dialog. [CHAR LIMIT=NONE] -->
<string name="accessibility_shortcut_edit_dialog_summary_hardware">Press & hold both volume keys</string>
- <!-- Title for two finger double tap shortcut in accessibility edit shortcut dialog. [CHAR LIMIT=NONE] -->
- <string name="accessibility_shortcut_edit_dialog_title_two_finger_double_tap">Two-finger double-tap screen</string>
<!-- Title for 2-finger double tap shortcut in accessibility edit shortcut screen. [CHAR LIMIT=NONE] -->
<string name="accessibility_shortcut_edit_screen_title_two_finger_double_tap">%1$d-finger double tap</string>
<!-- Summary for 2-finger double tap shortcut in accessibility edit shortcut screen. [CHAR LIMIT=NONE] -->
@@ -5098,14 +5102,8 @@
<string name="accessibility_shortcut_edit_screen_summary_triple_tap">Quickly tap the screen %1$d times. This may slow down your device.</string>
<!-- 2-finger double tap is shown as part of list to compose user's accessibility shortcut list. [CHAR LIMIT=NONE] -->
<string name="accessibility_shortcut_two_finger_double_tap_keyword">%1$d-finger double tap</string>
- <!-- Summary for two finger double tap shortcut in accessibility edit shortcut dialog. [CHAR LIMIT=NONE] -->
- <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap">Quickly tap screen {0,number,integer} times with two fingers</string>
- <!-- Title for triple tap shortcut in accessibility edit shortcut dialog. [CHAR LIMIT=NONE] -->
- <string name="accessibility_shortcut_edit_dialog_title_triple_tap">Triple-tap screen</string>
<!-- Part of list to compose user's accessibility shortcut list. [CHAR LIMIT=NONE] -->
<string name="accessibility_shortcut_triple_tap_keyword">triple tap</string>
- <!-- Summary for triple tap shortcut in accessibility edit shortcut dialog. [CHAR LIMIT=NONE] -->
- <string name="accessibility_shortcut_edit_dialog_summary_triple_tap">Quickly tap screen {0,number,integer} times. This shortcut may slow down your device</string>
<!-- Title for the accessibility edit shortcut dialog to save the preference when user clicks it. [CHAR LIMIT=20] -->
<string name="accessibility_shortcut_edit_dialog_title_advance">Advanced</string>
<!-- Summary text appearing on the accessibility preference screen to enable screen magnification from the nav bar when the feature is enabled, but the accessibility button is not configured correctly for the feature to be used [CHAR LIMIT=none] -->
@@ -5464,19 +5462,21 @@
<!-- Title for the preference to show a tile for a particular feature in the Quick Settings pane. [CHAR LIMIT=NONE] -->
<string name="enable_quick_setting">Show in Quick Settings</string>
<!-- Title shown for deuteranomaly (red-green color blindness) [CHAR LIMIT=45] -->
- <string name="daltonizer_mode_deuteranomaly_title">Red-green</string>
+ <string name="daltonizer_mode_deuteranomaly_title">Red-green, green weak</string>
<!-- Title shown for protanomaly (red-green color blindness) [CHAR LIMIT=45] -->
- <string name="daltonizer_mode_protanomaly_title">Red-green</string>
+ <string name="daltonizer_mode_protanomaly_title">Red-green, red weak</string>
<!-- Title shown for tritanomaly (blue-yellow color blindness) [CHAR LIMIT=45] -->
<string name="daltonizer_mode_tritanomaly_title">Blue-yellow</string>
<!-- Title shown for grayscale [CHAR LIMIT=45] -->
<string name="daltonizer_mode_grayscale_title">Grayscale</string>
<!-- Title shown for settings that controls color correction saturation level [CHAR LIMIT=45] -->
<string name="daltonizer_saturation_title">Intensity</string>
+ <!-- The summary shown for settings that controls color correction intensity/saturation level. It is shown when intensity slider is grayed out and is not usable and it explains why it's not usable to the user. [CHAR LIMIT=NONE] -->
+ <string name="daltonizer_saturation_unavailable_summary">Unavailable for grayscale mode or when color correction is disabled</string>
<!-- Summary shown for deuteranomaly (red-green color blindness) [CHAR LIMIT=45] -->
- <string name="daltonizer_mode_deuteranomaly_summary">Green weak, deuteranomaly</string>
+ <string name="daltonizer_mode_deuteranomaly_summary">Deuteranomaly</string>
<!-- Summary shown for protanomaly (red-green color blindness) [CHAR LIMIT=45] -->
- <string name="daltonizer_mode_protanomaly_summary">Red weak, protanomaly</string>
+ <string name="daltonizer_mode_protanomaly_summary">Protanomaly</string>
<!-- Summary shown for tritanomaly (blue-yellow color blindness) [CHAR LIMIT=45] -->
<string name="daltonizer_mode_tritanomaly_summary">Tritanomaly</string>
@@ -5593,12 +5593,6 @@
<string name="color_magenta">Magenta</string>
<!-- Label for custom colors, formats as a HTML color. -->
<string name="color_custom" translatable="false">#%1$02X%2$02X%3$02X</string>
-
- <!-- Title for a warning about security implications of enabling an accessibility
- service. [CHAR LIMIT=NONE] -->
- <string name="enable_service_title">Allow
- <xliff:g id="service" example="TalkBack">%1$s</xliff:g> to have full control of your
- device?</string>
<!-- Title for the list of capabilities of an accessibility service. -->
<string name="capabilities_list_title"><xliff:g id="service" example="TalkBack">%1$s</xliff:g>
needs to:</string>
@@ -5608,35 +5602,6 @@
<string name="touch_filtered_warning">Because an app is obscuring a permission request, Settings
can’t verify your response.</string>
- <!-- Warning that explains that accessibility services have a lot of access to user data [CHAR LIMIT=NONE] -->
- <string name="accessibility_service_warning"><xliff:g id="service"
- example="TalkBack">%1$s</xliff:g> is requesting full control of this device. The service
- can read the screen and act on behalf of users with accessibility needs.
- This level of control is not appropriate for most apps.
- </string>
-
- <!-- Warning description that explains that it's appropriate for accessibility
- services to have full control to help users with accessibility needs. [CHAR LIMIT=NONE] -->
- <string name="accessibility_service_warning_description">Full control is appropriate for apps
- that help you with accessibility needs, but not for most apps.
- </string>
-
- <!-- Title for the screen control in accessibility dialog. [CHAR LIMIT=NONE] -->
- <string name="accessibility_service_screen_control_title">View and control screen</string>
-
- <!-- Description for the screen control in accessibility dialog. [CHAR LIMIT=NONE] -->
- <string name="accessibility_service_screen_control_description">It can read all content on the
- screen and display content over other apps.
- </string>
-
- <!-- Title for the action perform in accessibility dialog. [CHAR LIMIT=NONE] -->
- <string name="accessibility_service_action_perform_title">View and perform actions</string>
-
- <!-- Description for the action perform in accessibility dialog. [CHAR LIMIT=NONE] -->
- <string name="accessibility_service_action_perform_description">It can track your interactions
- with an app or a hardware sensor, and interact with apps on your behalf.
- </string>
-
<!-- String for the allow button in accessibility permission dialog. [CHAR LIMIT=10] -->
<string name="accessibility_dialog_button_allow">Allow</string>
<!-- String for the deny button in accessibility permission dialog. [CHAR LIMIT=10] -->
@@ -7996,24 +7961,48 @@
<!-- Zen Modes: Title for the Modes option and associated settings page. [CHAR LIMIT=50]-->
<string name="zen_modes_list_title">Priority Modes</string>
+ <!-- Zen Modes: Intro text describing the feature. [CHAR LIMIT=NONE]-->
+ <string name="zen_modes_list_intro">Minimize distractions and take control of your attention with modes for sleep, work, driving, and everything in between.</string>
+
<!-- Zen Modes: Caption of the "add a mode" item in the modes list -->
- <string name="zen_modes_add_mode">Add a mode</string>
+ <string name="zen_modes_add_mode">Create your own mode</string>
<!-- Zen Modes: Summary for the Do not Disturb option and associated settings page. [CHAR LIMIT=240]-->
<string name="zen_mode_settings_summary">Only get notified by important people and apps</string>
<!-- Zen Modes: Option to add an automatic schedule for a mode. [CHAR_LIMIT=40] -->
- <string name="zen_mode_select_schedule">Select activation type</string>
+ <string name="zen_mode_select_schedule">Set a schedule</string>
+
+ <!-- Priority Modes: Title of the dialog used to choose an automatic schedule for a mode. [CHAR_LIMIT=40] -->
+ <string name="zen_mode_select_schedule_title">Schedule based on</string>
<!-- Priority Modes: Option to choose a time-based schedule for a mode. [CHAR_LIMIT=40] -->
- <string name="zen_mode_select_schedule_time">Time</string>
+ <string name="zen_mode_select_schedule_time">Day and time</string>
<!-- Priority Modes: Example text for the option to choose a time-based schedule for a mode. [CHAR_LIMIT=60] -->
- <string name="zen_mode_select_schedule_time_example">Ex. \"9:30 – 5:00 PM\"</string>
+ <string name="zen_mode_select_schedule_time_example">\"9 AM - 5 PM weekdays\"</string>
<!-- Priority Modes: Option to choose a calendar-events-based schedule for a mode. [CHAR_LIMIT=40] -->
- <string name="zen_mode_select_schedule_calendar">Calendar</string>
- <!-- Priority Modes: Example text for the option to choose a calendar-events-based schedule for a mode. [CHAR_LIMIT=60] -->
- <string name="zen_mode_select_schedule_calendar_example">Ex. \"Personal calendar\"</string>
+ <string name="zen_mode_select_schedule_calendar">Calendar events</string>
+
+ <!-- Priority Modes: Summary for the modes segment, when at least one mode is active. [CHAR LIMIT=NONE]-->
+ <string name="zen_modes_summary_some_active">
+ {count, plural, offset:2
+ =0 {}
+ =1 {{mode_1} is active}
+ =2 {{mode_1} and {mode_2} are active}
+ =3 {{mode_1}, {mode_2}, and {mode_3} are active}
+ other {{mode_1}, {mode_2}, and # more are active}
+ }
+ </string>
+
+ <!-- Priority Modes: Summary for the modes segment, when no modes are active. [CHAR LIMIT=NONE]-->
+ <string name="zen_modes_summary_none_active">
+ {count, plural,
+ =0 {}
+ =1 {1 mode can turn on automatically}
+ other {# modes can turn on automatically}
+ }
+ </string>
<!-- Priority Modes: Short text that indicates that a mode is currently on (active). [CHAR_LIMIT=10] -->
<string name="zen_mode_active_text">ON</string>
@@ -8033,9 +8022,24 @@
<!-- Priority Modes: Option to add a "custom" mode in the "Add a mode" dialog. [CHAR_LIMIT=20] -->
<string name="zen_mode_new_option_custom">Custom</string>
+ <!-- Priority Modes: Caption of the button to turn on a mode [CHAR LIMIT=20] -->
+ <string name="zen_mode_action_activate">Turn on now</string>
+
+ <!-- Priority Modes: Caption of the button to turn off a currently active mode [CHAR LIMIT=20] -->
+ <string name="zen_mode_action_deactivate">Turn off</string>
+
+ <!-- Priority Modes: Text to display if a mode isn't found [CHAR LIMIT=40] -->
+ <string name="zen_mode_not_found_text">Mode not found</string>
+
<!-- Subtitle for the Do not Disturb slice. [CHAR LIMIT=50]-->
<string name="zen_mode_slice_subtitle">Limit interruptions</string>
+ <!-- Priority Modes: Summary on a page prompting the user to set up/enable a mode [CHAR_LIMIT=NONE] -->
+ <string name="zen_mode_setup_page_summary">Block interruptions and distractions</string>
+
+ <!-- Priority Modes: Label on a button prompting the user to set up the mode with the given name. [CHAR_LIMIT=40] -->
+ <string name="zen_mode_setup_button_label">Set up <xliff:g id="mode" example="My Mode">%1$s</xliff:g></string>
+
<!-- Do not disturb: Title for the Do not Disturb dialog to turn on Do not disturb. [CHAR LIMIT=50]-->
<string name="zen_mode_settings_turn_on_dialog_title">Turn on Do Not Disturb</string>
@@ -8070,19 +8074,17 @@
<string name="zen_mode_automatic_rule_settings_page_title">Schedule</string>
<!-- Do not disturb: Title for settings section describing when the rule turns on automatically [CHAR LIMIT=30] -->
- <string name="zen_mode_automatic_trigger_title">Turn on automatically</string>
+ <string name="zen_mode_automatic_trigger_title">When to turn on automatically</string>
- <!-- Do not disturb: Title prompting a user to choose a calendar to use for an automatic rule [CHAR LIMIT=30] -->
- <string name="zen_mode_set_calendar_title">Add a calendar</string>
-
- <!-- Do not disturb: Link text prompting a user to click through to setting a calendar [CHAR LIMIT=40] -->
- <string name="zen_mode_set_calendar_link">Use your calendar</string>
-
- <!-- Do not disturb: Title on the page where users choose a calendar to determine the schedule for an automatically-triggered DND rule. [CHAR LIMIT=30] -->
- <string name="zen_mode_set_calendar_category_title">Schedule</string>
+ <!-- Priority Modes: Title prompting a user to choose a calendar to use for an automatic rule [CHAR LIMIT=30] -->
+ <string name="zen_mode_set_calendar_title">Event schedule</string>
+ <!-- Priority Modes: Title prompting a user to choose a calendar to use for an automatic rule [CHAR LIMIT=30] -->
+ <string name="zen_mode_set_calendar_which_calendar">Turn on during events for</string>
+ <!-- Priority Modes: Title prompting a user to choose a calendar to use for an automatic rule [CHAR LIMIT=30] -->
+ <string name="zen_mode_set_calendar_which_reply">Where invite reply is</string>
<!-- Do not disturb: Title prompting a user to set a time-based schedule to use for an automatic rule [CHAR LIMIT=30] -->
- <string name="zen_mode_set_schedule_title">Set a schedule</string>
+ <string name="zen_mode_set_schedule_title">Time schedule</string>
<!-- Do not disturb: Link text prompting a user to click through to setting a time-based schedule [CHAR LIMIT=40] -->
<string name="zen_mode_set_schedule_link">Schedule</string>
@@ -8090,9 +8092,6 @@
<!-- Duration in hours and minutes for the length of a Do Not Disturb schedule. For example "1 hr, 22 min" -->
<string name="zen_mode_schedule_duration"><xliff:g example="10" id="hours">%1$d</xliff:g> hr, <xliff:g example="20" id="minutes">%2$d</xliff:g> min</string>
- <!-- Priority Modes: Label for switch to enable/disable a rule turning on automatically; links to an app-provided configuration page [CHAR LIMIT=40] -->
- <string name="zen_mode_configuration_link_title">Turn on automatically</string>
-
<!-- Do not disturb: Title do not disturb settings representing automatic (scheduled) do not disturb rules. [CHAR LIMIT=30] -->
<string name="zen_mode_schedule_category_title">Schedule</string>
@@ -8120,10 +8119,10 @@
<!-- Do not disturb: Subtitle for the Visual signals option to toggle on/off visual signals/alerts when the screen is on/when screen is off. [CHAR LIMIT=30] -->
<string name="zen_mode_visual_signals_settings_subtitle">Allow visual signals</string>
- <!-- Do not disturb: mode page section title [CHAR LIMIT=80] -->
- <string name="mode_interruption_filter_title">Stay focused</string>
- <!-- Do not disturb: mode page section title [CHAR LIMIT=80] -->
- <string name="mode_device_effects_title">Additional actions</string>
+ <!-- Priority Modes: mode page section title [CHAR LIMIT=80] -->
+ <string name="mode_interruption_filter_title">Notification filters</string>
+ <!-- Priority Modes: mode page section title [CHAR LIMIT=80] -->
+ <string name="mode_device_effects_title">More settings</string>
<!-- Summary for the Sound Do not Disturb option when DND isn't currently on. [CHAR LIMIT=NONE]-->
<string name="modes_sound_summary_off">
@@ -8174,7 +8173,7 @@
}
</string>
<!-- Modes: setting for whether the mode should filter (silence/hide) notifications/volume streams -->
- <string name="mode_notification_filter_title">Filter interruptions</string>
+ <string name="mode_notification_filter_title">Limit what can notify you</string>
<!-- Modes: subtext when a mode is not filtering (silence/hide) notifications/volume streams -->
<string name="mode_no_notification_filter">No interruptions are filtered</string>
@@ -8867,9 +8866,10 @@
<string name="notif_listener_more_settings_desc">More settings are available inside this app</string>
<!-- Title for Polite Notifications setting [CHAR LIMIT=45]-->
- <string name="notification_polite_title">Adaptive Notifications</string>
- <string name="notification_polite_main_control_title">Use adaptive notifications</string>
- <string name="notification_polite_description">When you get many notifications within a short time, your phone will lower volume and minimize pop-ups on screen for up to two minutes. Calls, alarms, and priority conversations still vibrate, make a sound, or show up on the screen, and all notifications are easy to find when you pull down from the top of the screen.</string>
+ <string name="notification_polite_title">Notification cooldown</string>
+ <string name="notification_polite_main_control_title">Use notification cooldown</string>
+ <string name="notification_polite_description">When you receive many notifications within a short time, your device will lower its volume and minimize alerts for up to 2 minutes. Calls, alarms, and priority conversations are not affected.
+ \n\nNotifications received during the cooldown can be found by pulling down from the top of the screen.</string>
<string name="notification_polite_work">Apply to work profiles</string>
<string name="notification_polite_work_summary">Apply to work profile apps</string>
@@ -9209,6 +9209,8 @@
<!-- [CHAR LIMIT=120] Zen mode settings: Title for conversations settings page -->
<string name="zen_mode_conversations_title">Conversations</string>
<string name="zen_mode_from_all_conversations">All conversations</string>
+ <!-- [CHAR LIMIT=40] Version of zen_mode_from_all_conversations when it is a non-first member of a list -->
+ <string name="zen_mode_from_all_conversations_second">all conversations</string>
<string name="zen_mode_from_important_conversations">Priority conversations</string>
<!-- [CHAR LIMIT=40] Version of the above for "priority conversations" when it is a non-first member of a list -->
<string name="zen_mode_from_important_conversations_second">priority conversations</string>
@@ -9361,6 +9363,8 @@
<string name="zen_mode_apps_work_app"><xliff:g id="app_label" example="Chrome">%s</xliff:g> (Work)</string>
<!-- Text displayed (for a brief time) while the list of bypassing apps is being fetched. Will be replaced by a zen_mode_apps_subtext. [CHAR_LIMIT=60] -->
<string name="zen_mode_apps_calculating">Calculating\u2026</string>
+ <!-- Priority Modes: Format for a string displayed when there are more items (e.g. apps, contacts) that can be shown. For example, we show (A)(B)(C)(+5), where this string represents the "+5" value. Needs to be as compact as possible, since it will be drawn in a really small area. [CHAR_LIMIT=4] -->
+ <string name="zen_mode_plus_n_items">+<xliff:g id="number" example="42">%d</xliff:g></string>
<!-- [CHAR LIMIT=100] Zen mode settings: Allow apps to bypass DND -->
<string name="zen_mode_bypassing_apps">Allow apps to override</string>
@@ -9417,6 +9421,8 @@
<!-- [CHAR LIMIT=120] Zen mode settings: Summary for people category -->
<string name="zen_mode_people_some">Some people can interrupt</string>
<!-- [CHAR LIMIT=120] Zen mode settings: Summary for people category -->
+ <string name="zen_mode_people_repeat_callers">Repeat callers can interrupt</string>
+ <!-- [CHAR LIMIT=120] Zen mode settings: Summary for people category -->
<string name="zen_mode_people_all">All people can interrupt</string>
<!-- [CHAR LIMIT=50] Zen mode settings: Repeat callers option -->
@@ -9466,7 +9472,7 @@
<string name="zen_mode_rename_title">Edit mode</string>
<!-- Priority Modes: Title for the "add mode" screen [CHAR LIMIT=20] -->
- <string name="zen_mode_new_custom_title">Add mode</string>
+ <string name="zen_mode_new_custom_title">Create a mode</string>
<!-- Priority Modes: Default name for new custom modes [CHAR LIMIT=30] -->
<string name="zen_mode_new_custom_default_name">Custom mode</string>
@@ -9474,6 +9480,49 @@
<!-- Priority Modes: Hint for the EditText for editing a mode's name [CHAR LIMIT=30] -->
<string name="zen_mode_edit_name_hint">Mode name</string>
+ <!-- Priority Modes: Trigger title for modes of type SCHEDULE_CALENDAR. [CHAR LIMIT=30] -->
+ <string name="zen_mode_trigger_title_schedule_calendar">Calendar events</string>
+ <!-- Priority Modes: Trigger title for modes of type BEDTIME. [CHAR LIMIT=30] -->
+ <string name="zen_mode_trigger_title_bedtime">Bedtime routine</string>
+ <!-- Priority Modes: Trigger title for modes of type DRIVING. [CHAR LIMIT=30] -->
+ <string name="zen_mode_trigger_title_driving">While driving</string>
+ <!-- Priority Modes: Generic trigger title for modes of other types [CHAR LIMIT=30] -->
+ <string name="zen_mode_trigger_title_generic">App settings</string>
+ <!-- Priority Modes: Generic trigger summary for modes where the owner app did not provide a triggerDescription but did provide a configurationActivity to call [CHAR LIMIT=60] -->
+ <string name="zen_mode_trigger_summary_settings_in_app">Info and settings in <xliff:g id="app_name" example="The Awesome App">%1$s</xliff:g></string>
+ <!-- Priority Modes: Generic trigger summary for modes where the owner app did not provide neither a triggerDescription nor a configurationActivity to call [CHAR LIMIT=60] -->
+ <string name="zen_mode_trigger_summary_managed_by_app">Managed by <xliff:g id="app_name" example="The Awesome App">%1$s</xliff:g></string>
+
+ <!-- Priority Modes: Title of the confirmation dialog for disabling an enabled mode [CHAR LIMIT=20] -->
+ <string name="zen_mode_confirm_disable_mode_title">Disable <xliff:g id="mode_name" example="Driving Mode">%1$s</xliff:g>?</string>
+ <!-- Priority Modes: Message body of the confirmation dialog for disabling an enabled mode [CHAR LIMIT=NONE] -->
+ <string name="zen_mode_confirm_disable_message">This mode will never turn on when disabled</string>
+ <!-- Priority Modes: Button to disable a mode [CHAR LIMIT=20] -->
+ <string name="zen_mode_action_disable">Disable</string>
+ <!-- Priority Modes: Title of the confirmation dialog for enabling a disabled mode [CHAR LIMIT=20] -->
+ <string name="zen_mode_confirm_enable_mode_title">Enable <xliff:g id="mode_name" example="Driving Mode">%1$s</xliff:g>?</string>
+ <!-- Priority Modes: Message body of the confirmation dialog for enabling a disabled mode [CHAR LIMIT=NONE] -->
+ <string name="zen_mode_confirm_enable_message">This mode may turn on automatically based on its settings</string>
+ <!-- Priority Modes: Button to disable a mode [CHAR LIMIT=20] -->
+ <string name="zen_mode_action_enable">Enable</string>
+
+ <!-- Priority Modes: Blurb for a mode that activates during a fixed time schedule (e.g. 9:00-17:00). [CHAR LIMIT=NONE] -->
+ <string name="zen_mode_blurb_schedule_time">Set a mode that follows a regular schedule</string>
+ <!-- Priority Modes: Blurb for a mode that activates during calendar events. [CHAR LIMIT=NONE] -->
+ <string name="zen_mode_blurb_schedule_calendar">Set a mode to sync with calendar events and invite responses</string>
+ <!-- Priority Modes: Blurb for a mode of type BEDTIME. [CHAR LIMIT=NONE] -->
+ <string name="zen_mode_blurb_bedtime">Design a calming sleep routine. Set alarms, dim the screen, and block notifications.</string>
+ <!-- Priority Modes: Blurb for a mode of type DRIVING. [CHAR LIMIT=NONE] -->
+ <string name="zen_mode_blurb_driving">Prioritize safety on the road for a focused and distraction-free drive</string>
+ <!-- Priority Modes: Blurb for a mode of type IMMERSIVE. [CHAR LIMIT=NONE] -->
+ <string name="zen_mode_blurb_immersive">Block distractions or interruptions from your device to gain focus</string>
+ <!-- Priority Modes: Blurb for a mode of type THEATER. [CHAR LIMIT=NONE] -->
+ <string name="zen_mode_blurb_theater">Eliminate all distractions for a quiet environment</string>
+ <!-- Priority Modes: Blurb for a mode of type MANAGED. [CHAR LIMIT=NONE] -->
+ <string name="zen_mode_blurb_managed">Personalize device experiences and settings for different users</string>
+ <!-- Priority Modes: Blurb for modes that are not of a specific type (OTHER, UNKNOWN). [CHAR LIMIT=NONE] -->
+ <string name="zen_mode_blurb_generic">Minimize interruptions by only allowing important people and apps to reach you</string>
+
<!-- Content description for help icon button [CHAR LIMIT=20] -->
<string name="warning_button_text">Warning</string>
@@ -12231,16 +12280,11 @@
<!-- Default title for the settings panel [CHAR LIMIT=NONE] -->
<string name="settings_panel_title">Settings Panel</string>
- <!-- Title for enabling freeform windows (desktop mode) developer option toggle [CHAR LIMIT=50] -->
+ <!-- Title for a toggle that enables freeform windows. Freeform windows enables users to freely arrange and resize overlapping apps. [CHAR LIMIT=50] -->
<string name="enable_desktop_mode">Enable freeform windows</string>
- <!-- Summary for enabling freeform windows (desktop mode) developer option toggle [CHAR LIMIT=NONE] -->
- <string name="enable_desktop_mode_summary">Enable support for freeform windows.</string>
- <!-- TODO(b/348193756): Rename resources for this toggle to indicate that it is for secondary display -->
- <!-- Title for enabling freeform windows (desktop mode) on secondary display developer option toggle [CHAR LIMIT=50] -->
- <string name="force_desktop_mode">Enable freeform windowing on second display</string>
- <!-- Summary for enabling freeform windows (desktop mode) on secondary display developer option toggle [CHAR LIMIT=NONE] -->
- <string name="force_desktop_mode_summary">Enable freeform windows only on secondary display.</string>
+ <!-- Title for a toggle that enables freeform windows on secondary display. Freeform windows enables users to freely arrange and resize overlapping apps. [CHAR LIMIT=50] -->
+ <string name="enable_desktop_mode_on_secondary_display">Enable freeform windows on secondary display</string>
<!-- UI debug setting: enable non-resizables in multi window [CHAR LIMIT=60] -->
<string name="enable_non_resizable_multi_window">Enable non-resizable in multi window</string>
@@ -12696,9 +12740,6 @@
<!-- Provider Model: Link text to bring the user to "scanning settings" screen. [CHAR LIMIT=NONE]-->
<string name="wifi_scan_change">Change</string>
- <!-- Summary text separator for preferences including a short description
- (eg. "Connected / 5G"). [CHAR LIMIT=50] -->
- <string name="preference_summary_default_combination"><xliff:g id="state" example="Connected">%1$s</xliff:g> / <xliff:g id="networkMode" example="LTE">%2$s</xliff:g></string>
<!-- Provider Model:
Summary indicating that a SIM has an active mobile data connection [CHAR LIMIT=50] -->
<string name="mobile_data_connection_active">Connected</string>
@@ -13203,14 +13244,12 @@
<!-- The content description for accessibility tools of the customize button. It specifies which screensaver the user is customizing [CHAR LIMIT=NONE] -->
<string name="customize_button_description">Customize <xliff:g id="screensaver_name" example="Art Gallery">%1$s</xliff:g></string>
- <!-- Dialog body text used to explain a reboot is required after enabling freeform support for
- it to work [CHAR LIMIT=none] -->
- <string name="reboot_dialog_enable_freeform_support">A reboot is required to enable legacy freeform windowing support.</string>
- <!-- Dialog body text used to explain a reboot is required after overriding freeform windowing (desktop mode) support. [CHAR LIMIT=none] -->
- <string name="reboot_dialog_override_desktop_mode">A reboot is required to change freeform windowing support.</string>
- <!-- Dialog body text used to explain a reboot is required after forcing freeform windowing (desktop mode) on
- secondary displays. [CHAR LIMIT=none] -->
- <string name="reboot_dialog_force_desktop_mode">A reboot is required to force freeform windowing on secondary displays.</string>
+ <!-- Dialog body text used to explain a reboot is required after enabling freeform window support for it to work. Freeform windows enables users to freely arrange and resize overlapping apps. [CHAR LIMIT=none] -->
+ <string name="reboot_dialog_enable_freeform_support">A reboot is required to enable freeform window support.</string>
+ <!-- Dialog body text used to explain a reboot is required after updating availability of freeform windows. Freeform windows enables users to freely arrange and resize overlapping apps. [CHAR LIMIT=none] -->
+ <string name="reboot_dialog_override_desktop_mode">A reboot is required to update availability of freeform windows.</string>
+ <!-- Dialog body text used to explain a reboot is required after enabling freeform windows on secondary displays. Freeform windows enables users to freely arrange and resize overlapping apps. [CHAR LIMIT=none] -->
+ <string name="reboot_dialog_enable_desktop_mode_on_secondary_display">A reboot is required to enable freeform windows on secondary displays.</string>
<!-- Text on the dialog button to reboot the device now [CHAR LIMIT=50] -->
<string name="reboot_dialog_reboot_now">Reboot now</string>
<!-- Text on the dialog button to reboot the device later [CHAR LIMIT=50] -->
@@ -13441,7 +13480,7 @@
<!-- Label of the color option show in the summary of screen flash preference. [CHAR LIMIT=60] -->
<string name="screen_flash_color_violet">Violet</string>
<!-- Button to save the selection in screen flash color selection dialog. [CHAR LIMIT=20] -->
- <string name="color_selector_dialog_done">Done</string>
+ <string name="color_selector_dialog_save">Save</string>
<!-- Button to close the dialog without saving in screen flash color selection dialog. [CHAR LIMIT=20] -->
<string name="color_selector_dialog_cancel">Cancel</string>
@@ -13735,6 +13774,8 @@
<string name="audio_streams_main_page_qr_code_scanner_summary">Scan an audio stream QR code to listen with <xliff:g example="LE headset" id="device_name">%1$s</xliff:g></string>
<!-- Le audio streams password dialog [CHAR LIMIT=NONE] -->
<string name="audio_streams_main_page_password_dialog_cannot_edit">Can\u0027t edit password while sharing. To change the password, first turn off audio sharing.</string>
+ <!-- Text for audio sharing qrcode scanner [CHAR LIMIT=none]-->
+ <string name="audio_streams_qr_code_scanner_label">QR code scanner</string>
<!-- url for learning more about bluetooth audio sharing -->
diff --git a/res/values/styles.xml b/res/values/styles.xml
index 2d40af0..c02378e 100644
--- a/res/values/styles.xml
+++ b/res/values/styles.xml
@@ -955,11 +955,16 @@
<item name="biometricsEnrollProgressHelpWithTalkback">@color/udfps_enroll_progress_help_with_talkback</item>
</style>
- <style name="ScreenLockPasswordHintTextFontStyle">
+ <style name="ScreenLockPasswordHintTextFontStyleError">
<item name="android:textColor">?android:attr/colorError</item>
<item name="android:fontFamily">google-sans-text</item>
</style>
+ <style name="ScreenLockPasswordHintTextFontStyle">
+ <item name="android:textColor">?android:attr/textColorPrimary</item>
+ <item name="android:fontFamily">google-sans-text</item>
+ </style>
+
<style name="PrivateSpaceSetupTextFontStyle" parent="@android:style/TextAppearance.DeviceDefault">
<item name="android:textColor">?android:attr/textColorPrimary</item>
<item name="android:fontFamily">google-sans-text</item>
diff --git a/res/xml/bluetooth_audio_streams_dialog.xml b/res/xml/bluetooth_audio_streams_dialog.xml
index 8b20a14..d2b3933 100644
--- a/res/xml/bluetooth_audio_streams_dialog.xml
+++ b/res/xml/bluetooth_audio_streams_dialog.xml
@@ -45,6 +45,7 @@
<TextView
android:id="@+id/dialog_title"
android:textAppearance="@android:style/TextAppearance.DeviceDefault.Headline"
+ android:textColor="?android:attr/textColorPrimary"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="15dp"
@@ -54,6 +55,7 @@
<TextView
android:id="@+id/dialog_subtitle"
android:textAppearance="@android:style/TextAppearance.DeviceDefault.Small"
+ android:textColor="?android:attr/textColorSecondary"
android:textStyle="bold"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
@@ -65,6 +67,7 @@
<TextView
android:id="@+id/dialog_subtitle_2"
android:textAppearance="@android:style/TextAppearance.DeviceDefault.Small"
+ android:textColor="?android:attr/textColorSecondary"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="15dp"
diff --git a/res/xml/development_settings.xml b/res/xml/development_settings.xml
index 9420f59..9032849 100644
--- a/res/xml/development_settings.xml
+++ b/res/xml/development_settings.xml
@@ -507,6 +507,11 @@
android:title="@string/show_key_presses"
android:summary="@string/show_key_presses_summary" />
+ <SwitchPreference
+ android:key="touchpad_visualizer"
+ android:title="@string/touchpad_visualizer"
+ android:summary="@string/touchpad_visualizer_summary" />
+
</PreferenceCategory>
<PreferenceCategory
@@ -739,18 +744,15 @@
<SwitchPreferenceCompat
android:key="override_desktop_mode_features"
- android:title="@string/enable_desktop_mode"
- android:summary="@string/enable_desktop_mode_summary" />
+ android:title="@string/enable_desktop_mode" />
<SwitchPreferenceCompat
android:key="enable_freeform_support"
- android:title="@string/enable_freeform_support"
- android:summary="@string/enable_freeform_support_summary" />
+ android:title="@string/enable_freeform_support" />
<SwitchPreferenceCompat
android:key="force_desktop_mode_on_external_displays"
- android:title="@string/force_desktop_mode"
- android:summary="@string/force_desktop_mode_summary" />
+ android:title="@string/enable_desktop_mode_on_secondary_display"/>
<SwitchPreferenceCompat
android:key="enable_non_resizable_multi_window"
diff --git a/res/xml/external_display_settings.xml b/res/xml/external_display_settings.xml
index 0047211..e4dc5bb 100644
--- a/res/xml/external_display_settings.xml
+++ b/res/xml/external_display_settings.xml
@@ -17,6 +17,5 @@
<PreferenceScreen
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:settings="http://schemas.android.com/apk/res-auto"
- settings:keywords="@string/keywords_external_display"
android:title="@string/external_display_settings_title">
</PreferenceScreen>
diff --git a/res/xml/mobile_network_settings.xml b/res/xml/mobile_network_settings.xml
index 51cbbe6..eb80ac8 100644
--- a/res/xml/mobile_network_settings.xml
+++ b/res/xml/mobile_network_settings.xml
@@ -85,9 +85,10 @@
android:summary="@string/auto_data_switch_summary"
settings:controller="com.android.settings.network.telephony.AutoDataSwitchPreferenceController"/>
+ <!-- Settings search is handled by RoamingSearchItem. -->
<com.android.settings.spa.preference.ComposePreference
android:key="button_roaming_key"
- android:title="@string/roaming"
+ settings:searchable="false"
settings:controller="com.android.settings.network.telephony.RoamingPreferenceController"/>
<Preference
@@ -112,10 +113,12 @@
android:selectable="false"
settings:searchable="false"/>
+ <!-- Settings search is handled by MmsMessageSearchItem. -->
<SwitchPreferenceCompat
android:key="mms_message"
android:title="@string/mms_message_title"
android:summary="@string/mms_message_summary"
+ settings:searchable="false"
settings:controller="com.android.settings.network.telephony.MmsMessagePreferenceController"/>
<SwitchPreferenceCompat
@@ -149,6 +152,7 @@
android:summary="@string/contact_discovery_opt_in_summary"
settings:controller="com.android.settings.network.telephony.ContactDiscoveryPreferenceController"/>
+ <!-- Settings search is handled by PreferredNetworkModeSearchItem. -->
<ListPreference
android:key="preferred_network_mode_key"
android:title="@string/preferred_network_mode_title"
@@ -156,8 +160,10 @@
android:entries="@array/preferred_network_mode_choices"
android:entryValues="@array/preferred_network_mode_values"
android:dialogTitle="@string/preferred_network_mode_dialogtitle"
+ settings:searchable="false"
settings:controller="com.android.settings.network.telephony.PreferredNetworkModePreferenceController"/>
+ <!-- Settings search is handled by EnabledNetworkModeSearchItem. -->
<ListPreference
android:key="enabled_networks_key"
android:title="@string/preferred_network_mode_title"
@@ -165,6 +171,7 @@
android:entries="@array/enabled_networks_choices"
android:entryValues="@array/enabled_networks_values"
android:dialogTitle="@string/preferred_network_mode_dialogtitle"
+ settings:searchable="false"
settings:controller="com.android.settings.network.telephony.EnabledNetworkModePreferenceController"/>
<Preference
@@ -199,10 +206,12 @@
android:title="@string/call_category"
settings:controller="com.android.settings.network.telephony.CallingPreferenceCategoryController">
+ <!-- Settings search is handled by WifiCallingSearchItem. -->
<Preference
android:key="wifi_calling"
android:title="@string/wifi_calling_settings_title"
android:summary="@string/wifi_calling_summary"
+ settings:searchable="false"
settings:controller="com.android.settings.network.telephony.WifiCallingPreferenceController">
<intent android:action="android.intent.action.MAIN"
android:targetPackage="com.android.settings"
@@ -291,10 +300,10 @@
settings:controller=
"com.android.settings.network.telephony.NullAlgorithmsPreferenceController"/>
+ <!-- Settings search is handled by NrAdvancedCallingSearchItem. -->
<com.android.settings.spa.preference.ComposePreference
android:key="nr_advanced_calling"
- android:title="@string/nr_advanced_calling_title"
- settings:keywords="@string/keywords_nr_advanced_calling"
+ settings:searchable="false"
settings:controller="com.android.settings.network.telephony.NrAdvancedCallingPreferenceController"/>
</PreferenceCategory>
diff --git a/res/xml/modes_calls_settings.xml b/res/xml/modes_calls_settings.xml
index f2ba7f1..b564020 100644
--- a/res/xml/modes_calls_settings.xml
+++ b/res/xml/modes_calls_settings.xml
@@ -24,14 +24,21 @@
<PreferenceCategory
android:key="zen_mode_settings_category_calls"
- android:title="@string/zen_mode_calls_header"
- settings:allowDividerBelow="true">
+ android:title="@string/zen_mode_calls_header">
</PreferenceCategory>
+ <com.android.settings.applications.SpacePreference
+ android:key="hearing_aid_space_layout"
+ android:layout_height="16dp"/>
+
<!-- Repeat callers -->
<SwitchPreferenceCompat
android:key="zen_mode_repeat_callers"
- android:title="@string/zen_mode_repeat_callers_title"
- settings:allowDividerAbove="true"/>
+ android:title="@string/zen_mode_repeat_callers_title" />
+ <com.android.settingslib.widget.FooterPreference
+ android:key="info_footer"
+ android:title="@string/zen_mode_calls_footer"
+ android:selectable="false"
+ settings:searchable="false"/>
</PreferenceScreen>
diff --git a/res/xml/modes_display_settings.xml b/res/xml/modes_display_settings.xml
index 53268ec..98db7b8 100644
--- a/res/xml/modes_display_settings.xml
+++ b/res/xml/modes_display_settings.xml
@@ -24,22 +24,27 @@
android:title="@string/mode_display_options_section">
<Preference
android:key="notification_visibility"
- android:title="@string/zen_mode_restrict_notifications_title" />
+ android:title="@string/zen_mode_restrict_notifications_title"
+ android:icon="@drawable/ic_zen_mode_category_display" />
<SwitchPreferenceCompat
android:key="effect_greyscale"
android:title="@string/mode_grayscale_title"
- android:summary="@string/mode_grayscale_summary"/>
+ android:summary="@string/mode_grayscale_summary"
+ android:icon="@drawable/ic_zen_mode_display_grayscale" />
<SwitchPreferenceCompat
android:key="effect_aod"
android:title="@string/mode_aod_title"
- android:summary="@string/mode_aod_summary"/>
+ android:summary="@string/mode_aod_summary"
+ android:icon="@drawable/ic_zen_mode_display_aod" />
<SwitchPreferenceCompat
android:key="effect_wallpaper"
android:title="@string/mode_wallpaper_title"
- android:summary="@string/mode_wallpaper_summary"/>
+ android:summary="@string/mode_wallpaper_summary"
+ android:icon="@drawable/ic_zen_mode_display_wallpaper" />
<SwitchPreferenceCompat
android:key="effect_dark_theme"
android:title="@string/mode_dark_theme_title"
- android:summary="@string/mode_dark_theme_summary"/>
+ android:summary="@string/mode_dark_theme_summary"
+ android:icon="@drawable/ic_zen_mode_display_dark_theme" />
</PreferenceCategory>
</PreferenceScreen>
diff --git a/res/xml/modes_list_settings.xml b/res/xml/modes_list_settings.xml
index 8207af0..5c67218 100644
--- a/res/xml/modes_list_settings.xml
+++ b/res/xml/modes_list_settings.xml
@@ -20,11 +20,12 @@
xmlns:settings="http://schemas.android.com/apk/res-auto"
android:title="@string/zen_modes_list_title">
- <!-- TODO: b/333682392 - add strings for summary as appropriate -->
+ <com.android.settingslib.widget.TopIntroPreference
+ android:title="@string/zen_modes_list_intro" />
<PreferenceCategory
android:key="zen_modes_list">
- <!-- Preferences leading to rules are added in this PreferenceCategory. -->
+ <!-- Preferences leading to individual mode pages are added in this PreferenceCategory. -->
</PreferenceCategory>
<Preference
diff --git a/res/xml/modes_messages_settings.xml b/res/xml/modes_messages_settings.xml
index d4aee3d..b87de0b 100644
--- a/res/xml/modes_messages_settings.xml
+++ b/res/xml/modes_messages_settings.xml
@@ -26,4 +26,10 @@
android:key="zen_mode_settings_category_messages"
android:title="@string/zen_mode_messages_header">
</PreferenceCategory>
+
+ <com.android.settingslib.widget.FooterPreference
+ android:key="info_footer"
+ android:title="@string/zen_mode_messages_footer"
+ android:selectable="false"
+ settings:searchable="false"/>
</PreferenceScreen>
diff --git a/res/xml/modes_people_settings.xml b/res/xml/modes_people_settings.xml
index 136a357..af292ad 100644
--- a/res/xml/modes_people_settings.xml
+++ b/res/xml/modes_people_settings.xml
@@ -17,6 +17,7 @@
<PreferenceScreen
xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:settings="http://schemas.android.com/apk/res-auto"
android:title="@string/zen_category_people" >
<!-- Calls & Messages -->
@@ -26,10 +27,18 @@
<Preference
android:key="zen_mode_people_messages"
- android:title="@string/zen_mode_messages_title"/>
+ android:title="@string/zen_mode_messages_title"
+ android:icon="@drawable/ic_zen_mode_people_messages" />
<Preference
android:key="zen_mode_people_calls"
- android:title="@string/zen_mode_calls_title"/>
+ android:title="@string/zen_mode_calls_title"
+ android:icon="@drawable/ic_zen_mode_people_calls" />
</PreferenceCategory>
+
+ <com.android.settingslib.widget.FooterPreference
+ android:key="info_footer"
+ android:title="@string/zen_mode_people_footer"
+ android:selectable="false"
+ settings:searchable="false"/>
</PreferenceScreen>
diff --git a/res/xml/modes_rule_settings.xml b/res/xml/modes_rule_settings.xml
index 0c687b2..d2f573c 100644
--- a/res/xml/modes_rule_settings.xml
+++ b/res/xml/modes_rule_settings.xml
@@ -23,11 +23,37 @@
android:key="header"
android:layout="@layout/settings_entity_header" />
+ <com.android.settings.applications.SpacePreference
+ android:layout_height="16dp" />
+
+ <com.android.settings.notification.modes.ZenModeBlurbPreference
+ android:key="mode_blurb" />
+
+ <com.android.settings.applications.SpacePreference
+ android:layout_height="8dp" />
+
<com.android.settingslib.widget.LayoutPreference
android:key="activate"
android:selectable="false"
android:layout="@layout/modes_activation_button"/>
+ <com.android.settings.applications.SpacePreference
+ android:layout_height="16dp" />
+
+ <!-- automatic trigger section; preference changes programmatically depending on type -->
+ <PreferenceCategory
+ android:key="zen_automatic_trigger_category"
+ android:title="@string/zen_mode_automatic_trigger_title">
+ <!-- For configuring the trigger on tap and enabling/disabling the mode with the switch. -->
+ <com.android.settingslib.PrimarySwitchPreference
+ android:key="zen_automatic_trigger_settings" />
+ <!-- For adding a trigger for custom manual modes (no switch). -->
+ <Preference
+ android:key="zen_add_automatic_trigger"
+ android:title="@string/zen_mode_select_schedule"
+ android:icon="@drawable/ic_add_24dp" />
+ </PreferenceCategory>
+
<PreferenceCategory
android:title="@string/mode_interruption_filter_title"
android:key="modes_filters">
@@ -36,25 +62,20 @@
android:key="allow_filtering"
android:title="@string/mode_notification_filter_title"/>
- <Preference
- android:key="zen_mode_people"
- android:title="@string/zen_category_people"/>
+ <com.android.settings.notification.modes.CircularIconsPreference
+ android:key="zen_mode_people"
+ android:title="@string/zen_category_people"
+ android:icon="@drawable/ic_zen_mode_category_people" />
- <Preference
+ <com.android.settings.notification.modes.CircularIconsPreference
android:key="zen_mode_apps"
- android:title="@string/zen_category_apps"/>
+ android:title="@string/zen_category_apps"
+ android:icon="@drawable/ic_zen_mode_category_apps" />
- <Preference
- android:key="zen_other_settings"
- android:title="@string/zen_category_exceptions" />
- </PreferenceCategory>
-
- <!-- automatic trigger section; preference changes programmatically depending on type -->
- <PreferenceCategory
- android:key="zen_automatic_trigger_category"
- android:title="@string/zen_mode_automatic_trigger_title">
- <com.android.settingslib.PrimarySwitchPreference
- android:key="zen_automatic_trigger_settings" />
+ <com.android.settings.notification.modes.CircularIconsPreference
+ android:key="zen_other_settings"
+ android:title="@string/zen_category_exceptions"
+ android:icon="@drawable/ic_zen_mode_category_other" />
</PreferenceCategory>
<PreferenceCategory
@@ -62,10 +83,12 @@
android:key="modes_additional_actions">
<Preference
android:key="mode_display_settings"
- android:title="@string/mode_display_settings_title" />
+ android:title="@string/mode_display_settings_title"
+ android:icon="@drawable/ic_zen_mode_category_display" />
<Preference
android:key="mode_manual_duration"
- android:title="@string/zen_category_duration" />
+ android:title="@string/zen_category_duration"
+ android:icon="@drawable/ic_zen_mode_category_duration" />
</PreferenceCategory>
</PreferenceScreen>
\ No newline at end of file
diff --git a/res/xml/modes_set_calendar.xml b/res/xml/modes_set_calendar.xml
index 02eb26e..be094f2 100644
--- a/res/xml/modes_set_calendar.xml
+++ b/res/xml/modes_set_calendar.xml
@@ -23,20 +23,18 @@
android:title="@string/zen_mode_set_calendar_title">
<PreferenceCategory
- android:key="zen_mode_event_category"
- android:title="@string/zen_mode_set_calendar_category_title">
+ android:key="zen_mode_event_category">
- <!-- TODO: b/333682392 - use correct strings for below two prefs -->
<!-- During events for -->
<DropDownPreference
android:key="calendar"
- android:title="@string/zen_mode_event_rule_calendar"
+ android:title="@string/zen_mode_set_calendar_which_calendar"
android:summary="%s" />
<!-- Where reply is -->
<DropDownPreference
android:key="reply"
- android:title="@string/zen_mode_event_rule_reply"
+ android:title="@string/zen_mode_set_calendar_which_reply"
android:summary="%s" />
</PreferenceCategory>
diff --git a/res/xml/more_security_privacy_settings.xml b/res/xml/more_security_privacy_settings.xml
index 799ff1e..f200493 100644
--- a/res/xml/more_security_privacy_settings.xml
+++ b/res/xml/more_security_privacy_settings.xml
@@ -92,7 +92,7 @@
"com.android.settings.sound.MediaControlsLockScreenPreferenceController" />
<!-- Allow software fallback for camera extensions -->
- <SwitchPreference
+ <SwitchPreferenceCompat
android:key="privacy_camera_extensions_fallback"
android:title="@string/camera_extensions_fallback_title"
android:summary="@string/camera_extensions_fallback_description"
diff --git a/res/xml/physical_keyboard_settings.xml b/res/xml/physical_keyboard_settings.xml
index dd2b709..2063618 100644
--- a/res/xml/physical_keyboard_settings.xml
+++ b/res/xml/physical_keyboard_settings.xml
@@ -53,5 +53,11 @@
android:title="@string/slow_keys"
android:defaultValue="false" />
+ <SwitchPreferenceCompat
+ android:key="accessibility_mouse_keys"
+ android:title="@string/mouse_keys"
+ android:summary="@string/mouse_keys_summary"
+ android:defaultValue="false" />
+
</PreferenceCategory>
</PreferenceScreen>
diff --git a/res/xml/polite_notifications_settings.xml b/res/xml/polite_notifications_settings.xml
index 3baf88f..c0b3980 100644
--- a/res/xml/polite_notifications_settings.xml
+++ b/res/xml/polite_notifications_settings.xml
@@ -17,20 +17,20 @@
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:settings="http://schemas.android.com/apk/res-auto"
+ xmlns:app="http://schemas.android.com/apk/res-auto"
android:title="@string/notification_polite_title">
<com.android.settingslib.widget.TopIntroPreference
android:key="polite_notification_desc"
android:title="@string/notification_polite_description"/>
-<!-- TODO(b/330606963): add the illustration back when animation is ready-->
-<!-- <com.android.settingslib.widget.IllustrationPreference-->
-<!-- android:key="bubbles_illustration"-->
-<!-- settings:searchable="false"-->
-<!-- android:selectable="false"-->
-<!-- app:lottie_rawRes="@raw/lottie_bubbles"-->
-<!-- app:lottie_cacheComposition="false"-->
-<!-- settings:dynamicColor="true" />-->
+ <com.android.settingslib.widget.IllustrationPreference
+ android:key="notification_cooldown_illustration"
+ settings:searchable="false"
+ android:selectable="false"
+ app:lottie_rawRes="@raw/lottie_notification_cooldown"
+ app:lottie_cacheComposition="false"
+ settings:dynamicColor="true"/>
<com.android.settingslib.widget.MainSwitchPreference
android:key="polite_notification_global_pref"
diff --git a/res/xml/power_usage_advanced.xml b/res/xml/power_usage_advanced.xml
index c129453..f0104e5 100644
--- a/res/xml/power_usage_advanced.xml
+++ b/res/xml/power_usage_advanced.xml
@@ -27,7 +27,7 @@
"com.android.settings.fuelgauge.batteryusage.BatteryTipsController"
settings:isPreferenceVisible="false">
- <com.android.settings.fuelgauge.batteryusage.BatteryTipsCardPreference
+ <com.android.settings.widget.TipCardPreference
android:key="battery_tips_card"
settings:isPreferenceVisible="false" />
diff --git a/res/xml/private_space_hide_locked.xml b/res/xml/private_space_hide_locked.xml
index d166b73..56dd151 100644
--- a/res/xml/private_space_hide_locked.xml
+++ b/res/xml/private_space_hide_locked.xml
@@ -21,7 +21,8 @@
<com.android.settingslib.widget.IllustrationPreference
android:key="private_space_hide_illustration"
settings:searchable="false"
- settings:lottie_rawRes="@raw/private_space_hide_when_locked_illustration"/>
+ settings:lottie_rawRes="@raw/private_space_hide_when_locked_illustration"
+ settings:controller="com.android.settings.privatespace.HidePrivateSpaceIllustrationController"/>
<com.android.settingslib.widget.MainSwitchPreference
android:key="hide_when_locked"
@@ -35,7 +36,9 @@
settings:searchable="false" />
<PreferenceCategory
- android:title="@string/private_space_access_header">
+ android:key="private_space_access"
+ android:title="@string/private_space_access_header"
+ settings:controller="com.android.settings.privatespace.HidePrivateSpaceCategoryController">
<Preference
android:key="search_when_locked_footer"
diff --git a/res/xml/security_settings_fingerprint_limbo.xml b/res/xml/security_settings_fingerprint_limbo.xml
index 02a3dfb..8b97c83 100644
--- a/res/xml/security_settings_fingerprint_limbo.xml
+++ b/res/xml/security_settings_fingerprint_limbo.xml
@@ -18,7 +18,8 @@
<PreferenceScreen
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:settings="http://schemas.android.com/apk/res-auto"
- android:title="@string/security_settings_fingerprint_preference_title">
+ android:title="@string/security_settings_fingerprint_preference_title"
+ settings:searchable="false">
<PreferenceCategory
android:key="security_settings_fingerprints_enrolled"
diff --git a/res/xml/sound_settings.xml b/res/xml/sound_settings.xml
index 15312c8..393009e 100644
--- a/res/xml/sound_settings.xml
+++ b/res/xml/sound_settings.xml
@@ -105,6 +105,14 @@
settings:keywords="@string/keywords_sounds_and_notifications_interruptions"
settings:controller="com.android.settings.notification.zen.ZenModePreferenceController"/>
+ <com.android.settingslib.RestrictedPreference
+ android:key="modes_notifications"
+ android:order="-130"
+ android:title="@string/zen_modes_list_title"
+ settings:useAdminDisabledSummary="true"
+ android:fragment="com.android.settings.notification.modes.ZenModesListFragment"
+ settings:controller="com.android.settings.notification.modes.ZenModesLinkPreferenceController"/>
+
<!-- Phone ringtone -->
<com.android.settings.DefaultRingtonePreference
android:key="phone_ringtone"
diff --git a/src/com/android/settings/MainClear.java b/src/com/android/settings/MainClear.java
index 9d219d7..ab7a714 100644
--- a/src/com/android/settings/MainClear.java
+++ b/src/com/android/settings/MainClear.java
@@ -182,10 +182,13 @@
}
if (requestCode == KEYGUARD_REQUEST) {
+ final int userId = getActivity().getUserId();
if (Utils.requestBiometricAuthenticationForMandatoryBiometrics(getActivity(),
false /* biometricsSuccessfullyAuthenticated */,
- false /* biometricsAuthenticationRequested */)) {
- Utils.launchBiometricPromptForMandatoryBiometrics(this, BIOMETRICS_REQUEST);
+ false /* biometricsAuthenticationRequested */,
+ userId)) {
+ Utils.launchBiometricPromptForMandatoryBiometrics(this, BIOMETRICS_REQUEST,
+ userId, false /* hideBackground */);
return;
}
}
diff --git a/src/com/android/settings/MainClearConfirm.java b/src/com/android/settings/MainClearConfirm.java
index 042c5c2..a5fbebf 100644
--- a/src/com/android/settings/MainClearConfirm.java
+++ b/src/com/android/settings/MainClearConfirm.java
@@ -89,8 +89,7 @@
final PersistentDataBlockManager pdbManager;
// pre-flight check hardware support PersistentDataBlockManager
if (!SystemProperties.get(PERSISTENT_DATA_BLOCK_PROP).equals("")) {
- pdbManager = (PersistentDataBlockManager)
- getActivity().getSystemService(Context.PERSISTENT_DATA_BLOCK_SERVICE);
+ pdbManager = getActivity().getSystemService(PersistentDataBlockManager.class);
} else {
pdbManager = null;
}
@@ -152,6 +151,11 @@
return false;
}
+ // Do not try to erase factory reset protection data if the protection is alive.
+ if (pdbManager.isFactoryResetProtectionActive()) {
+ return false;
+ }
+
// The persistent data block will persist if the device is still being provisioned.
if (isDeviceStillBeingProvisioned()) {
return false;
diff --git a/src/com/android/settings/Utils.java b/src/com/android/settings/Utils.java
index e94769a..badcb63 100644
--- a/src/com/android/settings/Utils.java
+++ b/src/com/android/settings/Utils.java
@@ -25,6 +25,7 @@
import static android.text.format.DateUtils.FORMAT_SHOW_DATE;
import static com.android.settings.password.ConfirmDeviceCredentialActivity.BIOMETRIC_PROMPT_AUTHENTICATORS;
+import static com.android.settings.password.ConfirmDeviceCredentialActivity.BIOMETRIC_PROMPT_HIDE_BACKGROUND;
import static com.android.settings.password.ConfirmDeviceCredentialActivity.BIOMETRIC_PROMPT_NEGATIVE_BUTTON_TEXT;
import android.app.ActionBar;
@@ -1487,23 +1488,25 @@
/**
* Request biometric authentication if all requirements for mandatory biometrics is satisfied.
- * @param context of the corresponding activity/fragment
+ *
+ * @param context of the corresponding activity/fragment
* @param biometricsSuccessfullyAuthenticated if the user has already authenticated using
* biometrics
- * @param biometricsAuthenticationRequested if the activity/fragment has already requested for
- * biometric prompt
+ * @param biometricsAuthenticationRequested if the activity/fragment has already requested for
+ * biometric prompt
+ * @param userId user id for the authentication request
* @return true if all requirements for mandatory biometrics is satisfied
*/
public static boolean requestBiometricAuthenticationForMandatoryBiometrics(
@NonNull Context context,
boolean biometricsSuccessfullyAuthenticated,
- boolean biometricsAuthenticationRequested) {
+ boolean biometricsAuthenticationRequested, int userId) {
final BiometricManager biometricManager = context.getSystemService(BiometricManager.class);
if (biometricManager == null) {
Log.e(TAG, "Biometric Manager is null.");
return false;
}
- final int status = biometricManager.canAuthenticate(
+ final int status = biometricManager.canAuthenticate(userId,
BiometricManager.Authenticators.MANDATORY_BIOMETRICS);
return android.hardware.biometrics.Flags.mandatoryBiometrics()
&& status == BiometricManager.BIOMETRIC_SUCCESS
@@ -1513,15 +1516,17 @@
/**
* Launch biometric prompt for mandatory biometrics. Call
- * {@link #requestBiometricAuthenticationForMandatoryBiometrics(Context, boolean, boolean)}
+ * {@link #requestBiometricAuthenticationForMandatoryBiometrics(Context, boolean, boolean, int)}
* to check if all requirements for mandatory biometrics is satisfied
* before launching biometric prompt.
*
- * @param fragment corresponding fragment of the surface
- * @param requestCode for starting the new activity
+ * @param fragment corresponding fragment of the surface
+ * @param requestCode for starting the new activity
+ * @param userId user id for the authentication request
+ * @param hideBackground if the background activity screen needs to be hidden
*/
public static void launchBiometricPromptForMandatoryBiometrics(@NonNull Fragment fragment,
- int requestCode) {
+ int requestCode, int userId, boolean hideBackground) {
final Intent intent = new Intent();
intent.putExtra(BIOMETRIC_PROMPT_AUTHENTICATORS,
BiometricManager.Authenticators.MANDATORY_BIOMETRICS);
@@ -1529,8 +1534,11 @@
fragment.getString(R.string.cancel));
intent.putExtra(KeyguardManager.EXTRA_DESCRIPTION,
fragment.getString(R.string.mandatory_biometrics_prompt_description));
+ intent.putExtra(ChooseLockSettingsHelper.EXTRA_KEY_ALLOW_ANY_USER, true);
+ intent.putExtra(EXTRA_USER_ID, userId);
+ intent.putExtra(BIOMETRIC_PROMPT_HIDE_BACKGROUND, hideBackground);
intent.setClassName(SETTINGS_PACKAGE_NAME,
- ConfirmDeviceCredentialActivity.class.getName());
+ ConfirmDeviceCredentialActivity.InternalActivity.class.getName());
fragment.startActivityForResult(intent, requestCode);
}
diff --git a/src/com/android/settings/accessibility/AccessibilityDialogUtils.java b/src/com/android/settings/accessibility/AccessibilityDialogUtils.java
index ca3a7b1..a1f59c8 100644
--- a/src/com/android/settings/accessibility/AccessibilityDialogUtils.java
+++ b/src/com/android/settings/accessibility/AccessibilityDialogUtils.java
@@ -19,53 +19,22 @@
import static com.android.settings.accessibility.ItemInfoArrayAdapter.ItemInfo;
import android.app.Dialog;
-import android.app.settings.SettingsEnums;
import android.content.Context;
import android.content.DialogInterface;
-import android.content.res.TypedArray;
-import android.graphics.drawable.Drawable;
-import android.icu.text.MessageFormat;
-import android.text.Spannable;
-import android.text.SpannableString;
-import android.text.SpannableStringBuilder;
-import android.text.TextUtils;
-import android.text.method.LinkMovementMethod;
-import android.text.style.ImageSpan;
-import android.util.Log;
-import android.view.LayoutInflater;
import android.view.View;
import android.widget.AbsListView;
import android.widget.AdapterView;
-import android.widget.CheckBox;
-import android.widget.ImageView;
-import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.ScrollView;
-import android.widget.TextView;
-import androidx.annotation.ColorInt;
-import androidx.annotation.DrawableRes;
-import androidx.annotation.IntDef;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
-import androidx.annotation.RawRes;
import androidx.appcompat.app.AlertDialog;
-import androidx.core.content.ContextCompat;
-
-import com.android.server.accessibility.Flags;
-import com.android.settings.R;
-import com.android.settings.core.SubSettingLauncher;
-import com.android.settings.utils.AnnotationSpan;
-import com.android.settingslib.widget.LottieColorUtils;
-
-import com.airbnb.lottie.LottieAnimationView;
-import com.airbnb.lottie.LottieDrawable;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.util.List;
-
/**
* Utility class for creating the edit dialog.
*/
@@ -75,25 +44,20 @@
/** Denotes the dialog emuns for show dialog. */
@Retention(RetentionPolicy.SOURCE)
public @interface DialogEnums {
-
- /** OPEN: Settings > Accessibility > Any toggle service > Shortcut > Settings. */
- int EDIT_SHORTCUT = 1;
-
- /** OPEN: Settings > Accessibility > Magnification > Shortcut > Settings. */
- int MAGNIFICATION_EDIT_SHORTCUT = 1001;
-
/**
* OPEN: Settings > Accessibility > Downloaded toggle service > Toggle use service to
* enable service.
*/
int ENABLE_WARNING_FROM_TOGGLE = 1002;
- /** OPEN: Settings > Accessibility > Downloaded toggle service > Shortcut checkbox. */
+ /**
+ * OPEN: Settings > Accessibility > Downloaded toggle service > Shortcut options
+ * settings.
+ */
int ENABLE_WARNING_FROM_SHORTCUT = 1003;
/**
- * OPEN: Settings > Accessibility > Downloaded toggle service > Shortcut checkbox
- * toggle.
+ * OPEN: Settings > Accessibility > Downloaded toggle service > Shortcut toggle
*/
int ENABLE_WARNING_FROM_SHORTCUT_TOGGLE = 1004;
@@ -128,83 +92,6 @@
}
/**
- * IntDef enum for dialog type that indicates different dialog for user to choose the shortcut
- * type.
- */
- @Retention(RetentionPolicy.SOURCE)
- @IntDef({
- DialogType.EDIT_SHORTCUT_GENERIC,
- DialogType.EDIT_SHORTCUT_GENERIC_SUW,
- DialogType.EDIT_SHORTCUT_MAGNIFICATION,
- DialogType.EDIT_SHORTCUT_MAGNIFICATION_SUW,
- })
-
- public @interface DialogType {
- int EDIT_SHORTCUT_GENERIC = 0;
- int EDIT_SHORTCUT_GENERIC_SUW = 1;
- int EDIT_SHORTCUT_MAGNIFICATION = 2;
- int EDIT_SHORTCUT_MAGNIFICATION_SUW = 3;
- }
-
- /**
- * Method to show the edit shortcut dialog.
- *
- * @param context A valid context
- * @param dialogType The type of edit shortcut dialog
- * @param dialogTitle The title of edit shortcut dialog
- * @param listener The listener to determine the action of edit shortcut dialog
- * @return A edit shortcut dialog for showing
- */
- public static AlertDialog showEditShortcutDialog(Context context, int dialogType,
- CharSequence dialogTitle, DialogInterface.OnClickListener listener) {
- final AlertDialog alertDialog = createDialog(context, dialogType, dialogTitle, listener);
- alertDialog.show();
- setScrollIndicators(alertDialog);
- return alertDialog;
- }
-
- /**
- * Updates the shortcut content in edit shortcut dialog.
- *
- * @param context A valid context
- * @param editShortcutDialog Need to be a type of edit shortcut dialog
- * @return True if the update is successful
- */
- public static boolean updateShortcutInDialog(Context context,
- Dialog editShortcutDialog) {
- final View container = editShortcutDialog.findViewById(R.id.container_layout);
- if (container != null) {
- initSoftwareShortcut(context, container);
- initHardwareShortcut(context, container);
- return true;
- }
- return false;
- }
-
- private static AlertDialog createDialog(Context context, int dialogType,
- CharSequence dialogTitle, DialogInterface.OnClickListener listener) {
-
- final AlertDialog alertDialog = new AlertDialog.Builder(context)
- .setView(createEditDialogContentView(context, dialogType))
- .setTitle(dialogTitle)
- .setPositiveButton(R.string.save, listener)
- .setNegativeButton(R.string.cancel,
- (DialogInterface dialog, int which) -> dialog.dismiss())
- .create();
-
- return alertDialog;
- }
-
- /**
- * Sets the scroll indicators for dialog view. The indicators appears while content view is
- * out of vision for vertical scrolling.
- */
- private static void setScrollIndicators(AlertDialog dialog) {
- final ScrollView scrollView = dialog.findViewById(R.id.container_layout);
- setScrollIndicators(scrollView);
- }
-
- /**
* Sets the scroll indicators for dialog view. The indicators appear while content view is
* out of vision for vertical scrolling.
*
@@ -218,284 +105,6 @@
}
/**
- * Get a content View for the edit shortcut dialog.
- *
- * @param context A valid context
- * @param dialogType The type of edit shortcut dialog
- * @return A content view suitable for viewing
- */
- private static View createEditDialogContentView(Context context, int dialogType) {
- final LayoutInflater inflater = (LayoutInflater) context.getSystemService(
- Context.LAYOUT_INFLATER_SERVICE);
-
- View contentView = null;
-
- switch (dialogType) {
- case DialogType.EDIT_SHORTCUT_GENERIC:
- contentView = inflater.inflate(
- R.layout.accessibility_edit_shortcut, null);
- initSoftwareShortcut(context, contentView);
- initHardwareShortcut(context, contentView);
- break;
- case DialogType.EDIT_SHORTCUT_GENERIC_SUW:
- contentView = inflater.inflate(
- R.layout.accessibility_edit_shortcut, null);
- initSoftwareShortcutForSUW(context, contentView);
- initHardwareShortcut(context, contentView);
- break;
- case DialogType.EDIT_SHORTCUT_MAGNIFICATION:
- contentView = inflater.inflate(
- R.layout.accessibility_edit_shortcut_magnification, null);
- initSoftwareShortcut(context, contentView);
- initHardwareShortcut(context, contentView);
- if (Flags.enableMagnificationMultipleFingerMultipleTapGesture()) {
- initTwoFingerDoubleTapMagnificationShortcut(context, contentView);
- }
- initMagnifyShortcut(context, contentView);
- initAdvancedWidget(contentView);
- break;
- case DialogType.EDIT_SHORTCUT_MAGNIFICATION_SUW:
- contentView = inflater.inflate(
- R.layout.accessibility_edit_shortcut_magnification, null);
- initSoftwareShortcutForSUW(context, contentView);
- initHardwareShortcut(context, contentView);
- if (Flags.enableMagnificationMultipleFingerMultipleTapGesture()) {
- initTwoFingerDoubleTapMagnificationShortcut(context, contentView);
- }
- initMagnifyShortcut(context, contentView);
- initAdvancedWidget(contentView);
- break;
- default:
- throw new IllegalArgumentException();
- }
-
- return contentView;
- }
-
- private static void setupShortcutWidget(View view, CharSequence titleText,
- CharSequence summaryText, @DrawableRes int imageResId) {
- setupShortcutWidgetWithTitleAndSummary(view, titleText, summaryText);
- setupShortcutWidgetWithImageResource(view, imageResId);
- }
-
- private static void setupShortcutWidgetWithImageRawResource(Context context,
- View view, CharSequence titleText,
- CharSequence summaryText, @RawRes int imageRawResId) {
- setupShortcutWidgetWithTitleAndSummary(view, titleText, summaryText);
- setupShortcutWidgetWithImageRawResource(context, view, imageRawResId);
- }
-
- private static void setupShortcutWidgetWithTitleAndSummary(View view, CharSequence titleText,
- CharSequence summaryText) {
- final CheckBox checkBox = view.findViewById(R.id.checkbox);
- checkBox.setText(titleText);
-
- final TextView summary = view.findViewById(R.id.summary);
- if (TextUtils.isEmpty(summaryText)) {
- summary.setVisibility(View.GONE);
- } else {
- summary.setText(summaryText);
- summary.setMovementMethod(LinkMovementMethod.getInstance());
- summary.setFocusable(false);
- }
- }
-
- private static void setupShortcutWidgetWithImageResource(View view,
- @DrawableRes int imageResId) {
- final ImageView imageView = view.findViewById(R.id.image);
- imageView.setImageResource(imageResId);
- }
-
- private static void setupShortcutWidgetWithImageRawResource(Context context, View view,
- @RawRes int imageRawResId) {
- final LottieAnimationView lottieView = view.findViewById(R.id.image);
- lottieView.setFailureListener(
- result -> Log.w(TAG, "Invalid image raw resource id: " + imageRawResId,
- result));
- lottieView.setAnimation(imageRawResId);
- lottieView.setRepeatCount(LottieDrawable.INFINITE);
- LottieColorUtils.applyDynamicColors(context, lottieView);
- lottieView.playAnimation();
- }
-
- private static void initSoftwareShortcutForSUW(Context context, View view) {
- final View dialogView = view.findViewById(R.id.software_shortcut);
- final CharSequence title = context.getText(
- R.string.accessibility_shortcut_edit_dialog_title_software);
- final TextView summary = dialogView.findViewById(R.id.summary);
- final int lineHeight = summary.getLineHeight();
-
- setupShortcutWidget(dialogView, title,
- retrieveSoftwareShortcutSummaryForSUW(context, lineHeight),
- retrieveSoftwareShortcutImageResId(context));
- }
-
- private static void initSoftwareShortcut(Context context, View view) {
- final View dialogView = view.findViewById(R.id.software_shortcut);
- final TextView summary = dialogView.findViewById(R.id.summary);
- final int lineHeight = summary.getLineHeight();
-
- setupShortcutWidget(dialogView,
- retrieveTitle(context),
- retrieveSoftwareShortcutSummary(context, lineHeight),
- retrieveSoftwareShortcutImageResId(context));
- }
-
- private static void initHardwareShortcut(Context context, View view) {
- final View dialogView = view.findViewById(R.id.hardware_shortcut);
- final CharSequence title = context.getText(
- R.string.accessibility_shortcut_edit_dialog_title_hardware);
- final CharSequence summary = context.getText(
- R.string.accessibility_shortcut_edit_dialog_summary_hardware);
- setupShortcutWidget(dialogView, title, summary,
- R.drawable.a11y_shortcut_type_hardware);
- }
-
- private static void initMagnifyShortcut(Context context, View view) {
- final View dialogView = view.findViewById(R.id.triple_tap_shortcut);
- final CharSequence title = context.getText(
- R.string.accessibility_shortcut_edit_dialog_title_triple_tap);
- String summary = context.getString(
- R.string.accessibility_shortcut_edit_dialog_summary_triple_tap);
- // Format the number '3' in the summary.
- final Object[] arguments = {3};
- summary = MessageFormat.format(summary, arguments);
-
- setupShortcutWidgetWithImageRawResource(context, dialogView, title, summary,
- R.raw.a11y_shortcut_type_triple_tap);
- }
-
- private static void initTwoFingerDoubleTapMagnificationShortcut(Context context, View view) {
- // TODO(b/306153204): Update shortcut string and image when UX provides them
- final View dialogView = view.findViewById(R.id.two_finger_triple_tap_shortcut);
- final CharSequence title = context.getText(
- R.string.accessibility_shortcut_edit_dialog_title_two_finger_double_tap);
- String summary = context.getString(
- R.string.accessibility_shortcut_edit_dialog_summary_two_finger_double_tap);
- // Format the number '2' in the summary.
- final Object[] arguments = {2};
- summary = MessageFormat.format(summary, arguments);
-
- setupShortcutWidgetWithImageRawResource(context, dialogView, title, summary,
- R.raw.a11y_shortcut_type_triple_tap);
-
- dialogView.setVisibility(View.VISIBLE);
- }
-
- private static void initAdvancedWidget(View view) {
- final LinearLayout advanced = view.findViewById(R.id.advanced_shortcut);
- final View tripleTap = view.findViewById(R.id.triple_tap_shortcut);
- advanced.setOnClickListener((View v) -> {
- advanced.setVisibility(View.GONE);
- tripleTap.setVisibility(View.VISIBLE);
- });
- }
-
- private static CharSequence retrieveSoftwareShortcutSummaryForSUW(Context context,
- int lineHeight) {
- final SpannableStringBuilder sb = new SpannableStringBuilder();
- if (!AccessibilityUtil.isFloatingMenuEnabled(context)) {
- sb.append(getSummaryStringWithIcon(context, lineHeight));
- }
- return sb;
- }
-
- private static CharSequence retrieveTitle(Context context) {
- int resId;
- if (AccessibilityUtil.isFloatingMenuEnabled(context)) {
- resId = R.string.accessibility_shortcut_edit_dialog_title_software;
- } else if (AccessibilityUtil.isGestureNavigateEnabled(context)) {
- resId = R.string.accessibility_shortcut_edit_dialog_title_software_by_gesture;
- } else {
- resId = R.string.accessibility_shortcut_edit_dialog_title_software;
- }
- return context.getText(resId);
- }
-
- private static CharSequence retrieveSoftwareShortcutSummary(Context context, int lineHeight) {
- final SpannableStringBuilder sb = new SpannableStringBuilder();
- if (AccessibilityUtil.isFloatingMenuEnabled(context)) {
- sb.append(getCustomizeAccessibilityButtonLink(context));
- } else if (AccessibilityUtil.isGestureNavigateEnabled(context)) {
- final int resId = AccessibilityUtil.isTouchExploreEnabled(context)
- ? R.string.accessibility_shortcut_edit_dialog_summary_software_gesture_talkback
- : R.string.accessibility_shortcut_edit_dialog_summary_software_gesture;
- sb.append(context.getText(resId));
- sb.append("\n\n");
- sb.append(getCustomizeAccessibilityButtonLink(context));
- } else {
- sb.append(getSummaryStringWithIcon(context, lineHeight));
- sb.append("\n\n");
- sb.append(getCustomizeAccessibilityButtonLink(context));
- }
- return sb;
- }
-
- private static int retrieveSoftwareShortcutImageResId(Context context) {
- int resId;
- if (AccessibilityUtil.isFloatingMenuEnabled(context)) {
- resId = R.drawable.a11y_shortcut_type_software_floating;
- } else if (AccessibilityUtil.isGestureNavigateEnabled(context)) {
- resId = AccessibilityUtil.isTouchExploreEnabled(context)
- ? R.drawable.a11y_shortcut_type_software_gesture_talkback
- : R.drawable.a11y_shortcut_type_software_gesture;
- } else {
- resId = R.drawable.a11y_shortcut_type_software;
- }
- return resId;
- }
-
- private static CharSequence getCustomizeAccessibilityButtonLink(Context context) {
- final View.OnClickListener linkListener = v -> new SubSettingLauncher(context)
- .setDestination(AccessibilityButtonFragment.class.getName())
- .setSourceMetricsCategory(
- SettingsEnums.SWITCH_SHORTCUT_DIALOG_ACCESSIBILITY_BUTTON_SETTINGS)
- .launch();
- final AnnotationSpan.LinkInfo linkInfo = new AnnotationSpan.LinkInfo(
- AnnotationSpan.LinkInfo.DEFAULT_ANNOTATION, linkListener);
- return AnnotationSpan.linkify(context.getText(
- R.string.accessibility_shortcut_edit_dialog_summary_software_floating), linkInfo);
- }
-
- private static SpannableString getSummaryStringWithIcon(Context context, int lineHeight) {
- final String summary = context
- .getString(R.string.accessibility_shortcut_edit_dialog_summary_software);
- final SpannableString spannableMessage = SpannableString.valueOf(summary);
-
- // Icon
- final int indexIconStart = summary.indexOf("%s");
- final int indexIconEnd = indexIconStart + 2;
- final Drawable icon = context.getDrawable(R.drawable.ic_accessibility_new);
- final ImageSpan imageSpan = new ImageSpan(icon);
- imageSpan.setContentDescription("");
- icon.setBounds(0, 0, lineHeight, lineHeight);
- spannableMessage.setSpan(
- imageSpan, indexIconStart, indexIconEnd,
- Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
- return spannableMessage;
- }
-
- /**
- * Returns the color associated with the specified attribute in the context's theme.
- */
- @ColorInt
- private static int getThemeAttrColor(final Context context, final int attributeColor) {
- final int colorResId = getAttrResourceId(context, attributeColor);
- return ContextCompat.getColor(context, colorResId);
- }
-
- /**
- * Returns the identifier of the resolved resource assigned to the given attribute.
- */
- private static int getAttrResourceId(final Context context, final int attributeColor) {
- final int[] attrs = {attributeColor};
- final TypedArray typedArray = context.obtainStyledAttributes(attrs);
- final int colorResId = typedArray.getResourceId(0, 0);
- typedArray.recycle();
- return colorResId;
- }
-
- /**
* Creates a dialog with the given view.
*
* @param context A valid context
diff --git a/src/com/android/settings/accessibility/AccessibilitySettings.java b/src/com/android/settings/accessibility/AccessibilitySettings.java
index d746434..f3eab93 100644
--- a/src/com/android/settings/accessibility/AccessibilitySettings.java
+++ b/src/com/android/settings/accessibility/AccessibilitySettings.java
@@ -75,7 +75,8 @@
private static final String CATEGORY_AUDIO = "audio_category";
private static final String CATEGORY_SPEECH = "speech_category";
private static final String CATEGORY_DISPLAY = "display_category";
- private static final String CATEGORY_DOWNLOADED_SERVICES = "user_installed_services_category";
+ @VisibleForTesting
+ static final String CATEGORY_DOWNLOADED_SERVICES = "user_installed_services_category";
private static final String CATEGORY_KEYBOARD_OPTIONS = "physical_keyboard_options_category";
@VisibleForTesting
static final String CATEGORY_INTERACTION_CONTROL = "interaction_control_category";
@@ -154,7 +155,7 @@
};
@VisibleForTesting
- final AccessibilitySettingsContentObserver mSettingsContentObserver;
+ AccessibilitySettingsContentObserver mSettingsContentObserver;
private final Map<String, PreferenceCategory> mCategoryToPrefCategoryMap =
new ArrayMap<>();
@@ -168,9 +169,14 @@
private boolean mIsForeground = true;
public AccessibilitySettings() {
+ mSettingsContentObserver = new AccessibilitySettingsContentObserver(mHandler);
+ }
+
+ private void initializeSettingsContentObserver() {
// Observe changes to anything that the shortcut can toggle, so we can reflect updates
final Collection<AccessibilityShortcutController.FrameworkFeatureInfo> features =
- AccessibilityShortcutController.getFrameworkShortcutFeaturesMap().values();
+ AccessibilityShortcutController
+ .getFrameworkShortcutFeaturesMap().values();
final List<String> shortcutFeatureKeys = new ArrayList<>(features.size());
for (AccessibilityShortcutController.FrameworkFeatureInfo feature : features) {
final String key = feature.getSettingKey();
@@ -188,7 +194,6 @@
shortcutFeatureKeys.add(Settings.Secure.ACCESSIBILITY_STICKY_KEYS);
shortcutFeatureKeys.add(Settings.Secure.ACCESSIBILITY_SLOW_KEYS);
shortcutFeatureKeys.add(Settings.Secure.ACCESSIBILITY_BOUNCE_KEYS);
- mSettingsContentObserver = new AccessibilitySettingsContentObserver(mHandler);
mSettingsContentObserver.registerKeysToObserverCallback(shortcutFeatureKeys,
key -> onContentChanged());
}
@@ -213,6 +218,7 @@
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
+ initializeSettingsContentObserver();
initializeAllPreferences();
updateAllPreferences();
mNeedPreferencesUpdate = false;
@@ -297,7 +303,7 @@
final CharSequence serviceSummary = info.loadSummary(context.getPackageManager());
final String stateSummaryCombo = context.getString(
- R.string.preference_summary_default_combination,
+ com.android.settingslib.R.string.preference_summary_default_combination,
serviceState, serviceSummary);
return TextUtils.isEmpty(serviceSummary) ? serviceState : stateSummaryCombo;
@@ -375,6 +381,7 @@
}
protected void updateServicePreferences() {
+ final AccessibilityManager a11yManager = AccessibilityManager.getInstance(getPrefContext());
// Since services category is auto generated we have to do a pass
// to generate it since services can come and go and then based on
// the global accessibility state to decided whether it is enabled.
@@ -405,8 +412,18 @@
AccessibilityUtils.ACCESSIBILITY_MENU_IN_SYSTEM,
mCategoryToPrefCategoryMap.get(CATEGORY_INTERACTION_CONTROL));
- final List<RestrictedPreference> preferenceList = getInstalledAccessibilityList(
- getPrefContext());
+ final List<AccessibilityShortcutInfo> installedShortcutList =
+ a11yManager.getInstalledAccessibilityShortcutListAsUser(getPrefContext(),
+ UserHandle.myUserId());
+ final List<AccessibilityServiceInfo> modifiableInstalledServiceList =
+ new ArrayList<>(a11yManager.getInstalledAccessibilityServiceList());
+ final List<RestrictedPreference> preferenceList = getInstalledAccessibilityPreferences(
+ getPrefContext(), installedShortcutList, modifiableInstalledServiceList);
+
+ if (Flags.checkPrebundledIsPreinstalled()) {
+ removeNonPreinstalledComponents(mPreBundledServiceComponentToCategoryMap,
+ installedShortcutList, modifiableInstalledServiceList);
+ }
final PreferenceCategory downloadedServicesCategory =
mCategoryToPrefCategoryMap.get(CATEGORY_DOWNLOADED_SERVICES);
@@ -451,13 +468,21 @@
updatePreferenceCategoryVisibility(CATEGORY_KEYBOARD_OPTIONS);
}
- private List<RestrictedPreference> getInstalledAccessibilityList(Context context) {
- final AccessibilityManager a11yManager = AccessibilityManager.getInstance(context);
+ /**
+ * Gets a list of {@link RestrictedPreference}s for the provided a11y shortcuts and services.
+ *
+ * <p>{@code modifiableInstalledServiceList} may be modified to remove any entries with
+ * matching package name and label as an entry in {@code installedShortcutList}.
+ *
+ * @param installedShortcutList A list of installed {@link AccessibilityShortcutInfo}s.
+ * @param modifiableInstalledServiceList A modifiable list of installed
+ * {@link AccessibilityServiceInfo}s.
+ */
+ private List<RestrictedPreference> getInstalledAccessibilityPreferences(Context context,
+ List<AccessibilityShortcutInfo> installedShortcutList,
+ List<AccessibilityServiceInfo> modifiableInstalledServiceList) {
final RestrictedPreferenceHelper preferenceHelper = new RestrictedPreferenceHelper(context);
- final List<AccessibilityShortcutInfo> installedShortcutList =
- a11yManager.getInstalledAccessibilityShortcutListAsUser(context,
- UserHandle.myUserId());
final List<AccessibilityActivityPreference> activityList =
preferenceHelper.createAccessibilityActivityPreferenceList(installedShortcutList);
final Set<Pair<String, CharSequence>> packageLabelPairs =
@@ -466,16 +491,14 @@
a11yActivityPref.getPackageName(), a11yActivityPref.getLabel())
).collect(Collectors.toSet());
- // Remove duplicate item here, new a ArrayList to copy unmodifiable list result
- // (getInstalledAccessibilityServiceList).
- final List<AccessibilityServiceInfo> installedServiceList = new ArrayList<>(
- a11yManager.getInstalledAccessibilityServiceList());
+ // Remove duplicate A11yServices that are already shown as A11yActivities.
if (!packageLabelPairs.isEmpty()) {
- installedServiceList.removeIf(
+ modifiableInstalledServiceList.removeIf(
target -> containsPackageAndLabelInList(packageLabelPairs, target));
}
final List<RestrictedPreference> serviceList =
- preferenceHelper.createAccessibilityServicePreferenceList(installedServiceList);
+ preferenceHelper.createAccessibilityServicePreferenceList(
+ modifiableInstalledServiceList);
final List<RestrictedPreference> preferenceList = new ArrayList<>();
preferenceList.addAll(activityList);
@@ -484,6 +507,22 @@
return preferenceList;
}
+ private static void removeNonPreinstalledComponents(
+ Map<ComponentName, PreferenceCategory> componentToCategory,
+ List<AccessibilityShortcutInfo> shortcutInfos,
+ List<AccessibilityServiceInfo> serviceInfos) {
+ for (AccessibilityShortcutInfo info : shortcutInfos) {
+ if (!info.getActivityInfo().applicationInfo.isSystemApp()) {
+ componentToCategory.remove(info.getComponentName());
+ }
+ }
+ for (AccessibilityServiceInfo info : serviceInfos) {
+ if (!info.getResolveInfo().serviceInfo.applicationInfo.isSystemApp()) {
+ componentToCategory.remove(info.getComponentName());
+ }
+ }
+ }
+
private boolean containsPackageAndLabelInList(
Set<Pair<String, CharSequence>> packageLabelPairs,
AccessibilityServiceInfo targetServiceInfo) {
@@ -574,7 +613,7 @@
}
}
- private boolean isAnyHardKeyboardsExist() {
+ static boolean isAnyHardKeyboardsExist() {
for (int deviceId : InputDevice.getDeviceIds()) {
final InputDevice device = InputDevice.getDevice(deviceId);
if (device != null && !device.isVirtual() && device.isFullKeyboard()) {
diff --git a/src/com/android/settings/accessibility/AccessibilityShortcutPreferenceFragment.java b/src/com/android/settings/accessibility/AccessibilityShortcutPreferenceFragment.java
index 0f55a11..e92c86b 100644
--- a/src/com/android/settings/accessibility/AccessibilityShortcutPreferenceFragment.java
+++ b/src/com/android/settings/accessibility/AccessibilityShortcutPreferenceFragment.java
@@ -39,7 +39,6 @@
import android.view.View;
import android.view.ViewGroup;
import android.view.accessibility.AccessibilityManager;
-import android.widget.CheckBox;
import androidx.annotation.Nullable;
import androidx.annotation.VisibleForTesting;
@@ -66,19 +65,13 @@
public abstract class AccessibilityShortcutPreferenceFragment extends RestrictedDashboardFragment
implements ShortcutPreference.OnClickCallback {
private static final String KEY_SHORTCUT_PREFERENCE = "shortcut_preference";
- protected static final String KEY_SAVED_USER_SHORTCUT_TYPE = "shortcut_type";
protected static final String KEY_SAVED_QS_TOOLTIP_RESHOW = "qs_tooltip_reshow";
- protected static final int NOT_SET = -1;
- // Save user's shortcutType value when savedInstance has value (e.g. device rotated).
- protected int mSavedCheckBoxValue = NOT_SET;
protected ShortcutPreference mShortcutPreference;
protected Dialog mDialog;
private AccessibilityManager.TouchExplorationStateChangeListener
mTouchExplorationStateChangeListener;
private AccessibilitySettingsContentObserver mSettingsContentObserver;
- private CheckBox mSoftwareTypeCheckBox;
- private CheckBox mHardwareTypeCheckBox;
private AccessibilityQuickSettingsTooltipWindow mTooltipWindow;
private boolean mNeedsQSTooltipReshow = false;
private int mNeedsQSTooltipType = QuickSettingsTooltipType.GUIDE_TO_EDIT;
@@ -105,10 +98,6 @@
// Restore the user shortcut type and tooltip.
if (savedInstanceState != null) {
- if (savedInstanceState.containsKey(KEY_SAVED_USER_SHORTCUT_TYPE)) {
- mSavedCheckBoxValue = savedInstanceState.getInt(KEY_SAVED_USER_SHORTCUT_TYPE,
- NOT_SET);
- }
if (savedInstanceState.containsKey(KEY_SAVED_QS_TOOLTIP_RESHOW)) {
mNeedsQSTooltipReshow = savedInstanceState.getBoolean(KEY_SAVED_QS_TOOLTIP_RESHOW);
}
@@ -153,7 +142,6 @@
getPreferenceScreen().addPreference(mShortcutPreference);
mTouchExplorationStateChangeListener = isTouchExplorationEnabled -> {
- removeDialog(DialogEnums.EDIT_SHORTCUT);
mShortcutPreference.setSummary(getShortcutTypeSummary(getPrefContext()));
};
@@ -185,8 +173,6 @@
mSettingsContentObserver.register(getContentResolver());
updateShortcutPreferenceData();
updateShortcutPreference();
-
- updateEditShortcutDialogIfNeeded();
}
@Override
@@ -200,10 +186,6 @@
@Override
public void onSaveInstanceState(Bundle outState) {
- final int value = getShortcutTypeCheckBoxValue();
- if (value != NOT_SET) {
- outState.putInt(KEY_SAVED_USER_SHORTCUT_TYPE, value);
- }
final boolean isTooltipWindowShowing = mTooltipWindow != null && mTooltipWindow.isShowing();
if (mNeedsQSTooltipReshow || isTooltipWindowShowing) {
outState.putBoolean(KEY_SAVED_QS_TOOLTIP_RESHOW, /* value= */ true);
@@ -215,15 +197,6 @@
@Override
public Dialog onCreateDialog(int dialogId) {
switch (dialogId) {
- case DialogEnums.EDIT_SHORTCUT:
- final int dialogType = WizardManagerHelper.isAnySetupWizard(getIntent())
- ? AccessibilityDialogUtils.DialogType.EDIT_SHORTCUT_GENERIC_SUW :
- AccessibilityDialogUtils.DialogType.EDIT_SHORTCUT_GENERIC;
- mDialog = AccessibilityDialogUtils.showEditShortcutDialog(
- getPrefContext(), dialogType, getShortcutTitle(),
- this::callOnAlertDialogCheckboxClicked);
- setupEditShortcutDialog(mDialog);
- return mDialog;
case DialogEnums.LAUNCH_ACCESSIBILITY_TUTORIAL:
if (WizardManagerHelper.isAnySetupWizard(getIntent())) {
mDialog = AccessibilityShortcutsTutorial
@@ -250,8 +223,6 @@
@Override
public int getDialogMetricsCategory(int dialogId) {
switch (dialogId) {
- case DialogEnums.EDIT_SHORTCUT:
- return SettingsEnums.DIALOG_ACCESSIBILITY_SERVICE_EDIT_SHORTCUT;
case DialogEnums.LAUNCH_ACCESSIBILITY_TUTORIAL:
return SettingsEnums.DIALOG_ACCESSIBILITY_TUTORIAL;
default:
@@ -261,17 +232,13 @@
@Override
public void onSettingsClicked(ShortcutPreference preference) {
- if (Flags.editShortcutsInFullScreen()) {
- EditShortcutsPreferenceFragment.showEditShortcutScreen(
- getContext(),
- getMetricsCategory(),
- getShortcutTitle(),
- getComponentName(),
- getIntent()
- );
- } else {
- showDialog(DialogEnums.EDIT_SHORTCUT);
- }
+ EditShortcutsPreferenceFragment.showEditShortcutScreen(
+ getContext(),
+ getMetricsCategory(),
+ getShortcutTitle(),
+ getComponentName(),
+ getIntent()
+ );
}
@Override
@@ -301,38 +268,6 @@
return KEY_SHORTCUT_PREFERENCE;
}
- @VisibleForTesting
- void setupEditShortcutDialog(Dialog dialog) {
- final View dialogSoftwareView = dialog.findViewById(R.id.software_shortcut);
- mSoftwareTypeCheckBox = dialogSoftwareView.findViewById(R.id.checkbox);
- setDialogTextAreaClickListener(dialogSoftwareView, mSoftwareTypeCheckBox);
-
- final View dialogHardwareView = dialog.findViewById(R.id.hardware_shortcut);
- mHardwareTypeCheckBox = dialogHardwareView.findViewById(R.id.checkbox);
- setDialogTextAreaClickListener(dialogHardwareView, mHardwareTypeCheckBox);
-
- updateEditShortcutDialogCheckBox();
- }
-
- /**
- * Returns accumulated {@link UserShortcutType} checkbox value or
- * {@code NOT_SET} if checkboxes did not exist.
- */
- protected int getShortcutTypeCheckBoxValue() {
- if (mSoftwareTypeCheckBox == null || mHardwareTypeCheckBox == null) {
- return NOT_SET;
- }
-
- int value = DEFAULT;
- if (mSoftwareTypeCheckBox.isChecked()) {
- value |= SOFTWARE;
- }
- if (mHardwareTypeCheckBox.isChecked()) {
- value |= HARDWARE;
- }
- return value;
- }
-
/**
* Returns the shortcut type list which has been checked by user.
*/
@@ -364,35 +299,6 @@
showQuickSettingsTooltipIfNeeded();
}
- /**
- * This method will be invoked when a button in the edit shortcut dialog is clicked.
- *
- * @param dialog The dialog that received the click
- * @param which The button that was clicked
- */
- protected void callOnAlertDialogCheckboxClicked(DialogInterface dialog, int which) {
- if (getComponentName() == null) {
- return;
- }
-
- final int value = getShortcutTypeCheckBoxValue();
- saveNonEmptyUserShortcutType(value);
- AccessibilityUtil.optInAllValuesToSettings(getPrefContext(), value, getComponentName());
- AccessibilityUtil.optOutAllValuesFromSettings(getPrefContext(), ~value, getComponentName());
- final boolean shortcutAssigned = value != DEFAULT;
- mShortcutPreference.setChecked(shortcutAssigned);
- mShortcutPreference.setSummary(getShortcutTypeSummary(getPrefContext()));
-
- if (mHardwareTypeCheckBox.isChecked()) {
- AccessibilityUtil.skipVolumeShortcutDialogTimeoutRestriction(getPrefContext());
- }
-
- // Show the quick setting tooltip if the shortcut assigned in the first time
- if (shortcutAssigned) {
- showQuickSettingsTooltipIfNeeded();
- }
- }
-
@VisibleForTesting
void initGeneralCategory() {
final PreferenceCategory generalCategory = new PreferenceCategory(getPrefContext());
@@ -402,24 +308,6 @@
getPreferenceScreen().addPreference(generalCategory);
}
- private void updateEditShortcutDialogIfNeeded() {
- if (mDialog == null || !mDialog.isShowing()) {
- return;
- }
- AccessibilityDialogUtils.updateShortcutInDialog(getContext(), mDialog);
- }
-
- @VisibleForTesting
- void saveNonEmptyUserShortcutType(int type) {
- if (type == DEFAULT) {
- return;
- }
-
- final PreferredShortcut shortcut = new PreferredShortcut(
- getComponentName().flattenToString(), type);
- PreferredShortcuts.saveUserShortcutType(getPrefContext(), shortcut);
- }
-
/**
* Overrides to return customized description for general category above shortcut
*
@@ -442,11 +330,6 @@
return false;
}
- private void setDialogTextAreaClickListener(View dialogView, CheckBox checkBox) {
- final View dialogTextArea = dialogView.findViewById(R.id.container);
- dialogTextArea.setOnClickListener(v -> checkBox.toggle());
- }
-
protected CharSequence getShortcutTypeSummary(Context context) {
if (!mShortcutPreference.isSettingsEditable()) {
return context.getText(R.string.accessibility_shortcut_edit_dialog_title_hardware);
@@ -486,28 +369,6 @@
null, LocaleUtils.getConcatenatedString(list));
}
- private void updateEditShortcutDialogCheckBox() {
- // If it is during onConfigChanged process then restore the value, or get the saved value
- // when shortcutPreference is checked.
- int value = restoreOnConfigChangedValue();
- if (value == NOT_SET) {
- final int lastNonEmptyUserShortcutType = getUserPreferredShortcutTypes();
- value = mShortcutPreference.isChecked() ? lastNonEmptyUserShortcutType
- : DEFAULT;
- }
-
- mSoftwareTypeCheckBox.setChecked(
- hasShortcutType(value, SOFTWARE));
- mHardwareTypeCheckBox.setChecked(
- hasShortcutType(value, HARDWARE));
- }
-
- private int restoreOnConfigChangedValue() {
- final int savedValue = mSavedCheckBoxValue;
- mSavedCheckBoxValue = NOT_SET;
- return savedValue;
- }
-
private boolean hasShortcutType(int value, @UserShortcutType int type) {
return (value & type) == type;
}
diff --git a/src/com/android/settings/accessibility/CaptioningAppearancePreferenceController.java b/src/com/android/settings/accessibility/CaptioningAppearancePreferenceController.java
index 74cb534..700a013 100644
--- a/src/com/android/settings/accessibility/CaptioningAppearancePreferenceController.java
+++ b/src/com/android/settings/accessibility/CaptioningAppearancePreferenceController.java
@@ -42,7 +42,8 @@
@Override
public CharSequence getSummary() {
- return mContext.getString(R.string.preference_summary_default_combination,
+ return mContext.getString(
+ com.android.settingslib.R.string.preference_summary_default_combination,
geFontScaleSummary(), getPresetSummary());
}
diff --git a/src/com/android/settings/accessibility/DaltonizerSaturationSeekbarPreferenceController.java b/src/com/android/settings/accessibility/DaltonizerSaturationSeekbarPreferenceController.java
index 7dcd661..2997185 100644
--- a/src/com/android/settings/accessibility/DaltonizerSaturationSeekbarPreferenceController.java
+++ b/src/com/android/settings/accessibility/DaltonizerSaturationSeekbarPreferenceController.java
@@ -17,26 +17,50 @@
import android.content.ContentResolver;
import android.content.Context;
+import android.database.ContentObserver;
+import android.os.Handler;
+import android.os.Looper;
import android.provider.Settings;
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import androidx.lifecycle.DefaultLifecycleObserver;
+import androidx.lifecycle.LifecycleOwner;
+import androidx.preference.Preference;
import androidx.preference.PreferenceScreen;
import com.android.server.accessibility.Flags;
+import com.android.settings.R;
import com.android.settings.core.SliderPreferenceController;
import com.android.settings.widget.SeekBarPreference;
/**
* The controller of the seekbar preference for the saturation level of color correction.
*/
-public class DaltonizerSaturationSeekbarPreferenceController extends SliderPreferenceController {
+public class DaltonizerSaturationSeekbarPreferenceController
+ extends SliderPreferenceController
+ implements DefaultLifecycleObserver {
private static final int DEFAULT_SATURATION_LEVEL = 7;
private static final int SATURATION_MAX = 10;
- private static final int SATURATION_MIN = 0;
+ private static final int SATURATION_MIN = 1;
private int mSliderPosition;
private final ContentResolver mContentResolver;
+ @Nullable
+ private SeekBarPreference mPreference;
+
+ public final ContentObserver mContentObserver = new ContentObserver(
+ new Handler(Looper.getMainLooper())) {
+ @Override
+ public void onChange(boolean selfChange) {
+ if (mPreference != null) {
+ updateState(mPreference);
+ }
+ }
+ };
+
public DaltonizerSaturationSeekbarPreferenceController(Context context,
String preferenceKey) {
super(context, preferenceKey);
@@ -50,9 +74,32 @@
}
@Override
+ public void onStart(@NonNull LifecycleOwner owner) {
+ if (!isAvailable()) return;
+ mContentResolver.registerContentObserver(
+ Settings.Secure.getUriFor(Settings.Secure.ACCESSIBILITY_DISPLAY_DALTONIZER),
+ true,
+ mContentObserver
+ );
+ mContentResolver.registerContentObserver(
+ Settings.Secure.getUriFor(Settings.Secure.ACCESSIBILITY_DISPLAY_DALTONIZER_ENABLED),
+ true,
+ mContentObserver
+ );
+ }
+
+ @Override
+ public void onStop(@NonNull LifecycleOwner owner) {
+ if (!isAvailable()) return;
+ mContentResolver.unregisterContentObserver(mContentObserver);
+ mPreference = null;
+ }
+
+ @Override
public void displayPreference(PreferenceScreen screen) {
super.displayPreference(screen);
SeekBarPreference preference = screen.findPreference(getPreferenceKey());
+ mPreference = preference;
preference.setMax(getMax());
preference.setMin(getMin());
preference.setProgress(mSliderPosition);
@@ -62,7 +109,7 @@
@Override
public int getAvailabilityStatus() {
if (Flags.enableColorCorrectionSaturation()) {
- return AVAILABLE;
+ return shouldSeekBarEnabled() ? AVAILABLE : DISABLED_DEPENDENT_SETTING;
}
return CONDITIONALLY_UNAVAILABLE;
}
@@ -86,6 +133,21 @@
}
@Override
+ public void updateState(Preference preference) {
+ if (preference == null) {
+ return;
+ }
+
+ var shouldSeekbarEnabled = shouldSeekBarEnabled();
+ // setSummary not working yet on SeekBarPreference.
+ String summary = shouldSeekbarEnabled
+ ? ""
+ : mContext.getString(R.string.daltonizer_saturation_unavailable_summary);
+ preference.setSummary(summary);
+ preference.setEnabled(shouldSeekbarEnabled);
+ }
+
+ @Override
public int getMax() {
return SATURATION_MAX;
}
@@ -94,4 +156,16 @@
public int getMin() {
return SATURATION_MIN;
}
+
+ private boolean shouldSeekBarEnabled() {
+ int enabled = Settings.Secure.getInt(
+ mContentResolver, Settings.Secure.ACCESSIBILITY_DISPLAY_DALTONIZER_ENABLED, 0);
+ int mode = Settings.Secure.getInt(
+ mContentResolver, Settings.Secure.ACCESSIBILITY_DISPLAY_DALTONIZER, -1);
+
+ // enabled == 0 is disabled and also default.
+ // mode == 0 is gray scale where saturation level isn't applicable.
+ // mode == -1 is disabled and also default.
+ return enabled != 0 && mode != -1 && mode != 0;
+ }
}
diff --git a/src/com/android/settings/accessibility/FlashNotificationsPreviewPreferenceController.java b/src/com/android/settings/accessibility/FlashNotificationsPreviewPreferenceController.java
index ae1adfa..fe69b2b 100644
--- a/src/com/android/settings/accessibility/FlashNotificationsPreviewPreferenceController.java
+++ b/src/com/android/settings/accessibility/FlashNotificationsPreviewPreferenceController.java
@@ -110,7 +110,7 @@
if (preference == null) {
return;
}
- preference.setEnabled(FlashNotificationsUtil.getFlashNotificationsState(mContext)
+ preference.setVisible(FlashNotificationsUtil.getFlashNotificationsState(mContext)
!= FlashNotificationsUtil.State.OFF);
}
}
diff --git a/src/com/android/settings/accessibility/InvisibleToggleAccessibilityServicePreferenceFragment.java b/src/com/android/settings/accessibility/InvisibleToggleAccessibilityServicePreferenceFragment.java
index eb7b27d..9c8560b 100644
--- a/src/com/android/settings/accessibility/InvisibleToggleAccessibilityServicePreferenceFragment.java
+++ b/src/com/android/settings/accessibility/InvisibleToggleAccessibilityServicePreferenceFragment.java
@@ -17,7 +17,6 @@
package com.android.settings.accessibility;
import android.accessibilityservice.AccessibilityServiceInfo;
-import android.content.DialogInterface;
import com.android.settingslib.accessibility.AccessibilityUtils;
@@ -63,17 +62,4 @@
super.onAllowButtonFromShortcutToggleClicked();
AccessibilityUtils.setAccessibilityServiceState(getContext(), mComponentName, true);
}
-
- /**
- * {@inheritDoc}
- *
- * Enables accessibility service when shortcutPreference is checked.
- */
- @Override
- protected void callOnAlertDialogCheckboxClicked(DialogInterface dialog, int which) {
- super.callOnAlertDialogCheckboxClicked(dialog, which);
-
- final boolean enabled = mShortcutPreference.isChecked();
- AccessibilityUtils.setAccessibilityServiceState(getContext(), mComponentName, enabled);
- }
}
diff --git a/src/com/android/settings/accessibility/KeyboardBounceKeyPreferenceController.java b/src/com/android/settings/accessibility/KeyboardBounceKeyPreferenceController.java
index 6d988ac..840caa6 100644
--- a/src/com/android/settings/accessibility/KeyboardBounceKeyPreferenceController.java
+++ b/src/com/android/settings/accessibility/KeyboardBounceKeyPreferenceController.java
@@ -19,16 +19,21 @@
import android.content.Context;
import android.hardware.input.InputSettings;
+import android.util.Log;
+
+import androidx.annotation.NonNull;
import com.android.settings.R;
import com.android.settings.core.TogglePreferenceController;
import com.android.settings.inputmethod.PhysicalKeyboardFragment;
+import java.util.List;
+
/**
* A toggle preference controller for keyboard bounce key.
*/
public class KeyboardBounceKeyPreferenceController extends TogglePreferenceController {
-
+ private static final String TAG = "BounceKeyPrefController";
static final String PREF_KEY = "toggle_keyboard_bounce_keys";
public KeyboardBounceKeyPreferenceController(Context context, String preferenceKey) {
@@ -58,4 +63,17 @@
public int getSliceHighlightMenuRes() {
return R.string.menu_key_accessibility;
}
+
+ @Override
+ public void updateNonIndexableKeys(@NonNull List<String> keys) {
+ super.updateNonIndexableKeys(keys);
+
+ if (Flags.fixA11ySettingsSearch() && !AccessibilitySettings.isAnyHardKeyboardsExist()) {
+ if (keys.contains(getPreferenceKey())) {
+ Log.w(TAG, "Skipping updateNonIndexableKeys, key already in list.");
+ return;
+ }
+ keys.add(getPreferenceKey());
+ }
+ }
}
diff --git a/src/com/android/settings/accessibility/KeyboardSlowKeyPreferenceController.java b/src/com/android/settings/accessibility/KeyboardSlowKeyPreferenceController.java
index 8bd2316..bb9d950 100644
--- a/src/com/android/settings/accessibility/KeyboardSlowKeyPreferenceController.java
+++ b/src/com/android/settings/accessibility/KeyboardSlowKeyPreferenceController.java
@@ -19,15 +19,21 @@
import android.content.Context;
import android.hardware.input.InputSettings;
+import android.util.Log;
+
+import androidx.annotation.NonNull;
import com.android.settings.R;
import com.android.settings.core.TogglePreferenceController;
import com.android.settings.inputmethod.PhysicalKeyboardFragment;
+import java.util.List;
+
/**
* A toggle preference controller for keyboard slow key.
*/
public class KeyboardSlowKeyPreferenceController extends TogglePreferenceController {
+ private static final String TAG = "SlowKeyPrefController";
static final String PREF_KEY = "toggle_keyboard_slow_keys";
@@ -58,4 +64,17 @@
public int getSliceHighlightMenuRes() {
return R.string.menu_key_accessibility;
}
+
+ @Override
+ public void updateNonIndexableKeys(@NonNull List<String> keys) {
+ super.updateNonIndexableKeys(keys);
+
+ if (Flags.fixA11ySettingsSearch() && !AccessibilitySettings.isAnyHardKeyboardsExist()) {
+ if (keys.contains(getPreferenceKey())) {
+ Log.w(TAG, "Skipping updateNonIndexableKeys, key already in list.");
+ return;
+ }
+ keys.add(getPreferenceKey());
+ }
+ }
}
diff --git a/src/com/android/settings/accessibility/KeyboardStickyKeyPreferenceController.java b/src/com/android/settings/accessibility/KeyboardStickyKeyPreferenceController.java
index ee5559d..c896c9c 100644
--- a/src/com/android/settings/accessibility/KeyboardStickyKeyPreferenceController.java
+++ b/src/com/android/settings/accessibility/KeyboardStickyKeyPreferenceController.java
@@ -19,15 +19,20 @@
import android.content.Context;
import android.hardware.input.InputSettings;
+import android.util.Log;
+
+import androidx.annotation.NonNull;
import com.android.settings.R;
import com.android.settings.core.TogglePreferenceController;
+import java.util.List;
+
/**
* A toggle preference controller for keyboard sticky key.
*/
public class KeyboardStickyKeyPreferenceController extends TogglePreferenceController {
-
+ private static final String TAG = "StickyKeyPrefController";
static final String PREF_KEY = "toggle_keyboard_sticky_keys";
public KeyboardStickyKeyPreferenceController(Context context, String preferenceKey) {
@@ -55,4 +60,17 @@
public int getSliceHighlightMenuRes() {
return R.string.menu_key_accessibility;
}
+
+ @Override
+ public void updateNonIndexableKeys(@NonNull List<String> keys) {
+ super.updateNonIndexableKeys(keys);
+
+ if (Flags.fixA11ySettingsSearch() && !AccessibilitySettings.isAnyHardKeyboardsExist()) {
+ if (keys.contains(getPreferenceKey())) {
+ Log.w(TAG, "Skipping updateNonIndexableKeys, key already in list.");
+ return;
+ }
+ keys.add(getPreferenceKey());
+ }
+ }
}
diff --git a/src/com/android/settings/accessibility/KeyboardVibrationTogglePreferenceController.java b/src/com/android/settings/accessibility/KeyboardVibrationTogglePreferenceController.java
index 3ba0f0d..833638b 100644
--- a/src/com/android/settings/accessibility/KeyboardVibrationTogglePreferenceController.java
+++ b/src/com/android/settings/accessibility/KeyboardVibrationTogglePreferenceController.java
@@ -29,7 +29,6 @@
import android.os.Handler;
import android.os.VibrationAttributes;
import android.os.Vibrator;
-import android.os.vibrator.Flags;
import android.provider.Settings;
import android.util.Log;
@@ -110,8 +109,7 @@
@Override
public int getAvailabilityStatus() {
- if (Flags.keyboardCategoryEnabled()
- && mContext.getResources().getBoolean(
+ if (mContext.getResources().getBoolean(
com.android.internal.R.bool.config_keyboardVibrationSettingsSupported)) {
return AVAILABLE;
}
diff --git a/src/com/android/settings/accessibility/RestrictedPreferenceHelper.java b/src/com/android/settings/accessibility/RestrictedPreferenceHelper.java
index 2cabc76..c324130 100644
--- a/src/com/android/settings/accessibility/RestrictedPreferenceHelper.java
+++ b/src/com/android/settings/accessibility/RestrictedPreferenceHelper.java
@@ -128,7 +128,13 @@
AccessibilityActivityPreference preference = new AccessibilityActivityPreference(
mContext, componentName.getPackageName(), activityInfo.applicationInfo.uid,
info);
- setRestrictedPreferenceEnabled(preference, permittedServices, serviceEnabled);
+ if (Flags.neverRestrictAccessibilityActivity()) {
+ // Accessibility Activities do not have elevated privileges so restricting
+ // them based on ECM or device admin does not give any value.
+ preference.setEnabled(true);
+ } else {
+ setRestrictedPreferenceEnabled(preference, permittedServices, serviceEnabled);
+ }
preferenceList.add(preference);
}
return preferenceList;
diff --git a/src/com/android/settings/accessibility/ScreenFlashNotificationColorDialogFragment.java b/src/com/android/settings/accessibility/ScreenFlashNotificationColorDialogFragment.java
index ca77f16..2be843c 100644
--- a/src/com/android/settings/accessibility/ScreenFlashNotificationColorDialogFragment.java
+++ b/src/com/android/settings/accessibility/ScreenFlashNotificationColorDialogFragment.java
@@ -28,11 +28,13 @@
import android.graphics.Color;
import android.os.Bundle;
import android.os.UserHandle;
+import android.provider.Settings;
import android.view.View;
import androidx.annotation.ColorInt;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
+import androidx.annotation.VisibleForTesting;
import androidx.appcompat.app.AlertDialog;
import androidx.fragment.app.DialogFragment;
@@ -40,8 +42,6 @@
import java.util.Timer;
import java.util.TimerTask;
-import java.util.function.Consumer;
-
/**
* DialogFragment for Screen flash notification color picker.
@@ -49,30 +49,33 @@
public class ScreenFlashNotificationColorDialogFragment extends DialogFragment implements
ColorSelectorLayout.OnCheckedChangeListener {
+ private static final int DEFAULT_COLOR = Color.TRANSPARENT;
private static final int PREVIEW_LONG_TIME_MS = 5000;
private static final int BETWEEN_STOP_AND_START_DELAY_MS = 250;
private static final int MARGIN_FOR_STOP_DELAY_MS = 100;
+ @VisibleForTesting
+ static final String EXTRA_COLOR = "extra_color";
@ColorInt
- private int mCurrentColor = Color.TRANSPARENT;
- private Consumer<Integer> mConsumer;
+ private int mCurrentColor = DEFAULT_COLOR;
private Timer mTimer = null;
private Boolean mIsPreview = false;
- static ScreenFlashNotificationColorDialogFragment getInstance(int initialColor,
- Consumer<Integer> colorConsumer) {
+ static ScreenFlashNotificationColorDialogFragment getInstance(int initialColor) {
final ScreenFlashNotificationColorDialogFragment result =
new ScreenFlashNotificationColorDialogFragment();
- result.mCurrentColor = initialColor;
- result.mConsumer = colorConsumer != null ? colorConsumer : i -> {
- };
+ Bundle bundle = new Bundle();
+ bundle.putInt(EXTRA_COLOR, initialColor);
+ result.setArguments(bundle);
return result;
}
@NonNull
@Override
public Dialog onCreateDialog(@Nullable Bundle savedInstanceState) {
+ mCurrentColor = getArguments().getInt(EXTRA_COLOR, DEFAULT_COLOR);
+
final View dialogView = getLayoutInflater().inflate(R.layout.layout_color_selector_dialog,
null);
@@ -89,9 +92,10 @@
.setNeutralButton(R.string.flash_notifications_preview, null)
.setNegativeButton(R.string.color_selector_dialog_cancel, (dialog, which) -> {
})
- .setPositiveButton(R.string.color_selector_dialog_done, (dialog, which) -> {
+ .setPositiveButton(R.string.color_selector_dialog_save, (dialog, which) -> {
mCurrentColor = colorSelectorLayout.getCheckedColor(DEFAULT_SCREEN_FLASH_COLOR);
- mConsumer.accept(mCurrentColor);
+ Settings.System.putInt(getContext().getContentResolver(),
+ Settings.System.SCREEN_FLASH_NOTIFICATION_COLOR, mCurrentColor);
})
.create();
createdDialog.setOnShowListener(
diff --git a/src/com/android/settings/accessibility/ScreenFlashNotificationPreferenceController.java b/src/com/android/settings/accessibility/ScreenFlashNotificationPreferenceController.java
index bd54aca..3ebcd1c 100644
--- a/src/com/android/settings/accessibility/ScreenFlashNotificationPreferenceController.java
+++ b/src/com/android/settings/accessibility/ScreenFlashNotificationPreferenceController.java
@@ -21,10 +21,17 @@
import static com.android.settings.accessibility.FlashNotificationsUtil.DEFAULT_SCREEN_FLASH_COLOR;
import android.content.Context;
+import android.database.ContentObserver;
import android.graphics.Color;
+import android.net.Uri;
+import android.os.Handler;
import android.provider.Settings;
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
import androidx.fragment.app.Fragment;
+import androidx.lifecycle.DefaultLifecycleObserver;
+import androidx.lifecycle.LifecycleOwner;
import androidx.preference.Preference;
import androidx.preference.PreferenceScreen;
@@ -32,18 +39,21 @@
import com.android.settings.core.TogglePreferenceController;
import com.android.settings.overlay.FeatureFactory;
-import java.util.function.Consumer;
-
/**
* Controller for Screen flash notification.
*/
-public class ScreenFlashNotificationPreferenceController extends TogglePreferenceController {
+public class ScreenFlashNotificationPreferenceController extends
+ TogglePreferenceController implements DefaultLifecycleObserver {
+
+ private final FlashNotificationColorContentObserver mFlashNotificationColorContentObserver;
private Fragment mParentFragment;
private Preference mPreference;
public ScreenFlashNotificationPreferenceController(Context context, String preferenceKey) {
super(context, preferenceKey);
+ mFlashNotificationColorContentObserver = new FlashNotificationColorContentObserver(
+ new Handler(mContext.getMainLooper()));
}
public void setParentFragment(Fragment parentFragment) {
@@ -51,6 +61,16 @@
}
@Override
+ public void onStart(@NonNull LifecycleOwner owner) {
+ mFlashNotificationColorContentObserver.register(mContext);
+ }
+
+ @Override
+ public void onStop(@NonNull LifecycleOwner owner) {
+ mFlashNotificationColorContentObserver.unregister(mContext);
+ }
+
+ @Override
public int getAvailabilityStatus() {
return AVAILABLE;
}
@@ -100,14 +120,8 @@
Settings.System.SCREEN_FLASH_NOTIFICATION_COLOR,
DEFAULT_SCREEN_FLASH_COLOR);
- final Consumer<Integer> consumer = color -> {
- Settings.System.putInt(mContext.getContentResolver(),
- Settings.System.SCREEN_FLASH_NOTIFICATION_COLOR, color);
- refreshColorSummary();
- };
-
ScreenFlashNotificationColorDialogFragment
- .getInstance(initialColor, consumer)
+ .getInstance(initialColor)
.show(mParentFragment.getParentFragmentManager(),
ScreenFlashNotificationColorDialogFragment.class.getSimpleName());
return true;
@@ -128,4 +142,37 @@
private void refreshColorSummary() {
if (mPreference != null) mPreference.setSummary(getSummary());
}
+
+ private final class FlashNotificationColorContentObserver extends ContentObserver {
+ private final Uri mColorUri = Settings.System.getUriFor(
+ Settings.System.SCREEN_FLASH_NOTIFICATION_COLOR);
+
+ FlashNotificationColorContentObserver(Handler handler) {
+ super(handler);
+ }
+
+ /**
+ * Register this observer to given {@link Context}, to be called from lifecycle
+ * {@code onStart} method.
+ */
+ public void register(@NonNull Context context) {
+ context.getContentResolver().registerContentObserver(
+ mColorUri, /* notifyForDescendants= */ false, this);
+ }
+
+ /**
+ * Unregister this observer from given {@link Context}, to be called from lifecycle
+ * {@code onStop} method.
+ */
+ public void unregister(@NonNull Context context) {
+ context.getContentResolver().unregisterContentObserver(this);
+ }
+
+ @Override
+ public void onChange(boolean selfChange, @Nullable Uri uri) {
+ if (mColorUri.equals(uri)) {
+ refreshColorSummary();
+ }
+ }
+ }
}
diff --git a/src/com/android/settings/accessibility/ToggleAccessibilityServicePreferenceFragment.java b/src/com/android/settings/accessibility/ToggleAccessibilityServicePreferenceFragment.java
index a79098b..e41d857 100644
--- a/src/com/android/settings/accessibility/ToggleAccessibilityServicePreferenceFragment.java
+++ b/src/com/android/settings/accessibility/ToggleAccessibilityServicePreferenceFragment.java
@@ -40,7 +40,6 @@
import android.util.Log;
import android.view.Menu;
import android.view.MenuInflater;
-import android.view.View;
import android.view.accessibility.AccessibilityManager;
import android.widget.CompoundButton;
@@ -411,17 +410,6 @@
}
}
- private void onDialogButtonFromEnableToggleClicked(View view) {
- final int viewId = view.getId();
- if (viewId == R.id.permission_enable_allow_button) {
- onAllowButtonFromEnableToggleClicked();
- } else if (viewId == R.id.permission_enable_deny_button) {
- onDenyButtonFromEnableToggleClicked();
- } else {
- throw new IllegalArgumentException("Unexpected view id");
- }
- }
-
private void onDialogButtonFromUninstallClicked() {
mWarningDialog.dismiss();
final Intent uninstallIntent = createUninstallPackageActivityIntent();
@@ -491,17 +479,6 @@
mWarningDialog.dismiss();
}
- void onDialogButtonFromShortcutToggleClicked(View view) {
- final int viewId = view.getId();
- if (viewId == R.id.permission_enable_allow_button) {
- onAllowButtonFromShortcutToggleClicked();
- } else if (viewId == R.id.permission_enable_deny_button) {
- onDenyButtonFromShortcutToggleClicked();
- } else {
- throw new IllegalArgumentException("Unexpected view id");
- }
- }
-
void onAllowButtonFromShortcutToggleClicked() {
mShortcutPreference.setChecked(true);
@@ -526,17 +503,13 @@
private void onAllowButtonFromShortcutClicked() {
mIsDialogShown.set(false);
- if (Flags.editShortcutsInFullScreen()) {
- EditShortcutsPreferenceFragment.showEditShortcutScreen(
- getContext(),
- getMetricsCategory(),
- getShortcutTitle(),
- mComponentName,
- getIntent()
- );
- } else {
- showPopupDialog(DialogEnums.EDIT_SHORTCUT);
- }
+ EditShortcutsPreferenceFragment.showEditShortcutScreen(
+ getContext(),
+ getMetricsCategory(),
+ getShortcutTitle(),
+ mComponentName,
+ getIntent()
+ );
if (mWarningDialog != null) {
mWarningDialog.dismiss();
diff --git a/src/com/android/settings/accessibility/ToggleFeaturePreferenceFragment.java b/src/com/android/settings/accessibility/ToggleFeaturePreferenceFragment.java
index 8bbc7a8..0ac29bc 100644
--- a/src/com/android/settings/accessibility/ToggleFeaturePreferenceFragment.java
+++ b/src/com/android/settings/accessibility/ToggleFeaturePreferenceFragment.java
@@ -47,7 +47,6 @@
import android.view.ViewGroup;
import android.view.accessibility.AccessibilityManager;
import android.view.accessibility.AccessibilityManager.TouchExplorationStateChangeListener;
-import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.CompoundButton.OnCheckedChangeListener;
import android.widget.ImageView;
@@ -62,7 +61,6 @@
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.shortcuts.EditShortcutsPreferenceFragment;
import com.android.settings.dashboard.DashboardFragment;
@@ -88,11 +86,9 @@
public static final String KEY_GENERAL_CATEGORY = "general_categories";
public static final String KEY_SHORTCUT_PREFERENCE = "shortcut_preference";
- public static final int NOT_SET = -1;
protected static final String KEY_TOP_INTRO_PREFERENCE = "top_intro";
protected static final String KEY_USE_SERVICE_PREFERENCE = "use_service";
protected static final String KEY_HTML_DESCRIPTION_PREFERENCE = "html_description";
- protected static final String KEY_SAVED_USER_SHORTCUT_TYPE = "shortcut_type";
protected static final String KEY_SAVED_QS_TOOLTIP_RESHOW = "qs_tooltip_reshow";
protected static final String KEY_SAVED_QS_TOOLTIP_TYPE = "qs_tooltip_type";
protected static final String KEY_ANIMATED_IMAGE = "animated_image";
@@ -117,15 +113,10 @@
protected Uri mImageUri;
protected CharSequence mHtmlDescription;
protected CharSequence mTopIntroTitle;
- // Save user's shortcutType value when savedInstance has value (e.g. device rotated).
- protected int mSavedCheckBoxValue = NOT_SET;
private CharSequence mDescription;
private TouchExplorationStateChangeListener mTouchExplorationStateChangeListener;
private AccessibilitySettingsContentObserver mSettingsContentObserver;
- private CheckBox mSoftwareTypeCheckBox;
- private CheckBox mHardwareTypeCheckBox;
-
private AccessibilityQuickSettingsTooltipWindow mTooltipWindow;
private boolean mNeedsQSTooltipReshow = false;
private int mNeedsQSTooltipType = QuickSettingsTooltipType.GUIDE_TO_EDIT;
@@ -148,10 +139,6 @@
onProcessArguments(getArguments());
// Restore the user shortcut type and tooltip.
if (savedInstanceState != null) {
- if (savedInstanceState.containsKey(KEY_SAVED_USER_SHORTCUT_TYPE)) {
- mSavedCheckBoxValue = savedInstanceState.getInt(KEY_SAVED_USER_SHORTCUT_TYPE,
- NOT_SET);
- }
if (savedInstanceState.containsKey(KEY_SAVED_QS_TOOLTIP_RESHOW)) {
mNeedsQSTooltipReshow = savedInstanceState.getBoolean(KEY_SAVED_QS_TOOLTIP_RESHOW);
}
@@ -209,7 +196,6 @@
updateToggleServiceTitle(mToggleServiceSwitchPreference);
mTouchExplorationStateChangeListener = isTouchExplorationEnabled -> {
- removeDialog(DialogEnums.EDIT_SHORTCUT);
mShortcutPreference.setSummary(getShortcutTypeSummary(getPrefContext()));
};
@@ -220,14 +206,6 @@
@Override
public Dialog onCreateDialog(int dialogId) {
switch (dialogId) {
- case DialogEnums.EDIT_SHORTCUT:
- final int dialogType = isAnySetupWizard()
- ? DialogType.EDIT_SHORTCUT_GENERIC_SUW : DialogType.EDIT_SHORTCUT_GENERIC;
- mDialog = AccessibilityDialogUtils.showEditShortcutDialog(
- getPrefContext(), dialogType, getShortcutTitle(),
- this::callOnAlertDialogCheckboxClicked);
- setupEditShortcutDialog(mDialog);
- return mDialog;
case DialogEnums.LAUNCH_ACCESSIBILITY_TUTORIAL:
if (isAnySetupWizard()) {
mDialog = AccessibilityShortcutsTutorial
@@ -278,8 +256,6 @@
mSettingsContentObserver.register(getContentResolver());
updateShortcutPreferenceData();
updateShortcutPreference();
-
- updateEditShortcutDialogIfNeeded();
}
@Override
@@ -293,10 +269,6 @@
@Override
public void onSaveInstanceState(Bundle outState) {
- final int value = getShortcutTypeCheckBoxValue();
- if (value != NOT_SET) {
- outState.putInt(KEY_SAVED_USER_SHORTCUT_TYPE, value);
- }
final boolean isTooltipWindowShowing = mTooltipWindow != null && mTooltipWindow.isShowing();
if (mNeedsQSTooltipReshow || isTooltipWindowShowing) {
outState.putBoolean(KEY_SAVED_QS_TOOLTIP_RESHOW, /* value= */ true);
@@ -318,8 +290,6 @@
@Override
public int getDialogMetricsCategory(int dialogId) {
switch (dialogId) {
- case DialogEnums.EDIT_SHORTCUT:
- return SettingsEnums.DIALOG_ACCESSIBILITY_SERVICE_EDIT_SHORTCUT;
case DialogEnums.LAUNCH_ACCESSIBILITY_TUTORIAL:
return SettingsEnums.DIALOG_ACCESSIBILITY_TUTORIAL;
default:
@@ -656,69 +626,10 @@
mFooterPreferenceController.displayPreference(screen);
}
- @VisibleForTesting
- void setupEditShortcutDialog(Dialog dialog) {
- final View dialogSoftwareView = dialog.findViewById(R.id.software_shortcut);
- mSoftwareTypeCheckBox = dialogSoftwareView.findViewById(R.id.checkbox);
- setDialogTextAreaClickListener(dialogSoftwareView, mSoftwareTypeCheckBox);
-
- final View dialogHardwareView = dialog.findViewById(R.id.hardware_shortcut);
- mHardwareTypeCheckBox = dialogHardwareView.findViewById(R.id.checkbox);
- setDialogTextAreaClickListener(dialogHardwareView, mHardwareTypeCheckBox);
-
- updateEditShortcutDialogCheckBox();
- }
-
- private void setDialogTextAreaClickListener(View dialogView, CheckBox checkBox) {
- final View dialogTextArea = dialogView.findViewById(R.id.container);
- dialogTextArea.setOnClickListener(v -> checkBox.toggle());
- }
-
- private void updateEditShortcutDialogCheckBox() {
- // If it is during onConfigChanged process then restore the value, or get the saved value
- // when shortcutPreference is checked.
- int value = restoreOnConfigChangedValue();
- if (value == NOT_SET) {
- final int lastNonEmptyUserShortcutType = getUserPreferredShortcutTypes();
- value = mShortcutPreference.isChecked() ? lastNonEmptyUserShortcutType
- : DEFAULT;
- }
-
- mSoftwareTypeCheckBox.setChecked(
- hasShortcutType(value, SOFTWARE));
- mHardwareTypeCheckBox.setChecked(
- hasShortcutType(value, HARDWARE));
- }
-
- private int restoreOnConfigChangedValue() {
- final int savedValue = mSavedCheckBoxValue;
- mSavedCheckBoxValue = NOT_SET;
- return savedValue;
- }
-
private boolean hasShortcutType(int value, @UserShortcutType int type) {
return (value & type) == type;
}
- /**
- * Returns accumulated {@link UserShortcutType} checkbox value or {@code NOT_SET} if checkboxes
- * did not exist.
- */
- protected int getShortcutTypeCheckBoxValue() {
- if (mSoftwareTypeCheckBox == null || mHardwareTypeCheckBox == null) {
- return NOT_SET;
- }
-
- int value = DEFAULT;
- if (mSoftwareTypeCheckBox.isChecked()) {
- value |= SOFTWARE;
- }
- if (mHardwareTypeCheckBox.isChecked()) {
- value |= HARDWARE;
- }
- return value;
- }
-
protected CharSequence getShortcutTypeSummary(Context context) {
if (!mShortcutPreference.isSettingsEditable()) {
return context.getText(R.string.accessibility_shortcut_edit_dialog_title_hardware);
@@ -782,35 +693,6 @@
showQuickSettingsTooltipIfNeeded();
}
- /**
- * This method will be invoked when a button in the edit shortcut dialog is clicked.
- *
- * @param dialog The dialog that received the click
- * @param which The button that was clicked
- */
- protected void callOnAlertDialogCheckboxClicked(DialogInterface dialog, int which) {
- if (mComponentName == null) {
- return;
- }
-
- final int value = getShortcutTypeCheckBoxValue();
- saveNonEmptyUserShortcutType(value);
- AccessibilityUtil.optInAllValuesToSettings(getPrefContext(), value, mComponentName);
- AccessibilityUtil.optOutAllValuesFromSettings(getPrefContext(), ~value, mComponentName);
- final boolean shortcutAssigned = value != DEFAULT;
- mShortcutPreference.setChecked(shortcutAssigned);
- mShortcutPreference.setSummary(getShortcutTypeSummary(getPrefContext()));
-
- if (mHardwareTypeCheckBox.isChecked()) {
- AccessibilityUtil.skipVolumeShortcutDialogTimeoutRestriction(getPrefContext());
- }
-
- // Show the quick setting tooltip if the shortcut assigned in the first time
- if (shortcutAssigned) {
- showQuickSettingsTooltipIfNeeded();
- }
- }
-
protected void updateShortcutPreferenceData() {
if (mComponentName == null) {
return;
@@ -861,13 +743,9 @@
@Override
public void onSettingsClicked(ShortcutPreference preference) {
- if (com.android.settings.accessibility.Flags.editShortcutsInFullScreen()) {
- EditShortcutsPreferenceFragment.showEditShortcutScreen(
- requireContext(), getMetricsCategory(), getShortcutTitle(),
- mComponentName, getIntent());
- } else {
- showDialog(DialogEnums.EDIT_SHORTCUT);
- }
+ EditShortcutsPreferenceFragment.showEditShortcutScreen(
+ requireContext(), getMetricsCategory(), getShortcutTitle(),
+ mComponentName, getIntent());
}
/**
@@ -904,24 +782,6 @@
}
}
- private void updateEditShortcutDialogIfNeeded() {
- if (mDialog == null || !mDialog.isShowing()) {
- return;
- }
- AccessibilityDialogUtils.updateShortcutInDialog(getContext(), mDialog);
- }
-
- @VisibleForTesting
- void saveNonEmptyUserShortcutType(int type) {
- if (type == DEFAULT) {
- return;
- }
-
- final PreferredShortcut shortcut = new PreferredShortcut(
- mComponentName.flattenToString(), type);
- PreferredShortcuts.saveUserShortcutType(getPrefContext(), shortcut);
- }
-
/**
* Shows the quick settings tooltip if the quick settings feature is assigned. The tooltip only
* shows once.
diff --git a/src/com/android/settings/accessibility/ToggleScreenMagnificationPreferenceFragment.java b/src/com/android/settings/accessibility/ToggleScreenMagnificationPreferenceFragment.java
index 34ed5cb..a030a0a 100644
--- a/src/com/android/settings/accessibility/ToggleScreenMagnificationPreferenceFragment.java
+++ b/src/com/android/settings/accessibility/ToggleScreenMagnificationPreferenceFragment.java
@@ -33,7 +33,6 @@
import android.content.ComponentName;
import android.content.ContentResolver;
import android.content.Context;
-import android.content.DialogInterface;
import android.content.pm.PackageManager;
import android.icu.text.CaseMap;
import android.icu.text.MessageFormat;
@@ -48,7 +47,6 @@
import android.view.ViewGroup;
import android.view.accessibility.AccessibilityManager;
import android.view.accessibility.AccessibilityManager.TouchExplorationStateChangeListener;
-import android.widget.CheckBox;
import androidx.annotation.Nullable;
import androidx.annotation.StringRes;
@@ -62,7 +60,6 @@
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.shortcuts.EditShortcutsPreferenceFragment;
import com.android.settings.utils.LocaleUtils;
@@ -92,10 +89,6 @@
// TODO(b/147021230): Move duplicated functions with android/internal/accessibility into util.
private TouchExplorationStateChangeListener mTouchExplorationStateChangeListener;
- private CheckBox mSoftwareTypeCheckBox;
- private CheckBox mHardwareTypeCheckBox;
- private CheckBox mTripleTapTypeCheckBox;
- @Nullable private CheckBox mTwoFingerTripleTapTypeCheckBox;
private DialogCreatable mDialogDelegate;
@Nullable
@@ -119,7 +112,6 @@
.appendPath(String.valueOf(R.raw.a11y_magnification_banner))
.build();
mTouchExplorationStateChangeListener = isTouchExplorationEnabled -> {
- removeDialog(DialogEnums.EDIT_SHORTCUT);
mShortcutPreference.setSummary(getShortcutTypeSummary(getPrefContext()));
};
@@ -184,15 +176,6 @@
case DialogEnums.GESTURE_NAVIGATION_TUTORIAL:
return AccessibilityShortcutsTutorial
.showAccessibilityGestureTutorialDialog(getPrefContext());
- case DialogEnums.MAGNIFICATION_EDIT_SHORTCUT:
- final CharSequence dialogTitle = getShortcutTitle();
- final int dialogType = mInSetupWizard
- ? DialogType.EDIT_SHORTCUT_MAGNIFICATION_SUW
- : DialogType.EDIT_SHORTCUT_MAGNIFICATION;
- mDialog = AccessibilityDialogUtils.showEditShortcutDialog(getPrefContext(),
- dialogType, dialogTitle, this::callOnAlertDialogCheckboxClicked);
- setupMagnificationEditShortcutDialog(mDialog);
- return mDialog;
default:
return super.onCreateDialog(dialogId);
}
@@ -365,95 +348,6 @@
mDialogDelegate = delegate;
}
- @Override
- protected int getShortcutTypeCheckBoxValue() {
- if (mSoftwareTypeCheckBox == null || mHardwareTypeCheckBox == null) {
- return NOT_SET;
- }
-
- int value = DEFAULT;
- if (mSoftwareTypeCheckBox.isChecked()) {
- value |= SOFTWARE;
- }
- if (mHardwareTypeCheckBox.isChecked()) {
- value |= HARDWARE;
- }
- if (mTripleTapTypeCheckBox.isChecked()) {
- value |= TRIPLETAP;
- }
- if (Flags.enableMagnificationMultipleFingerMultipleTapGesture()) {
- if (mTwoFingerTripleTapTypeCheckBox.isChecked()) {
- value |= TWOFINGER_DOUBLETAP;
- }
- }
- return value;
- }
-
- @VisibleForTesting
- void setupMagnificationEditShortcutDialog(Dialog dialog) {
- final View dialogSoftwareView = dialog.findViewById(R.id.software_shortcut);
- mSoftwareTypeCheckBox = dialogSoftwareView.findViewById(R.id.checkbox);
- setDialogTextAreaClickListener(dialogSoftwareView, mSoftwareTypeCheckBox);
-
- final View dialogHardwareView = dialog.findViewById(R.id.hardware_shortcut);
- mHardwareTypeCheckBox = dialogHardwareView.findViewById(R.id.checkbox);
- setDialogTextAreaClickListener(dialogHardwareView, mHardwareTypeCheckBox);
-
- if (Flags.enableMagnificationMultipleFingerMultipleTapGesture()) {
- final View dialogTwoFignerTripleTapView =
- dialog.findViewById(R.id.two_finger_triple_tap_shortcut);
- mTwoFingerTripleTapTypeCheckBox = dialogTwoFignerTripleTapView.findViewById(
- R.id.checkbox);
- setDialogTextAreaClickListener(
- dialogTwoFignerTripleTapView, mTwoFingerTripleTapTypeCheckBox);
- }
-
- final View dialogTripleTapView = dialog.findViewById(R.id.triple_tap_shortcut);
- mTripleTapTypeCheckBox = dialogTripleTapView.findViewById(R.id.checkbox);
- setDialogTextAreaClickListener(dialogTripleTapView, mTripleTapTypeCheckBox);
-
- final View advancedView = dialog.findViewById(R.id.advanced_shortcut);
- if (mTripleTapTypeCheckBox.isChecked()) {
- advancedView.setVisibility(View.GONE);
- dialogTripleTapView.setVisibility(View.VISIBLE);
- }
-
- updateMagnificationEditShortcutDialogCheckBox();
- }
-
- private void setDialogTextAreaClickListener(View dialogView, CheckBox checkBox) {
- final View dialogTextArea = dialogView.findViewById(R.id.container);
- dialogTextArea.setOnClickListener(v -> checkBox.toggle());
- }
-
- private void updateMagnificationEditShortcutDialogCheckBox() {
- // If it is during onConfigChanged process then restore the value, or get the saved value
- // when shortcutPreference is checked.
- int value = restoreOnConfigChangedValue();
- if (value == NOT_SET) {
- final int lastNonEmptyUserShortcutType = getUserPreferredShortcutTypes();
- value = mShortcutPreference.isChecked() ? lastNonEmptyUserShortcutType
- : DEFAULT;
- }
-
- mSoftwareTypeCheckBox.setChecked(
- hasShortcutType(value, SOFTWARE));
- mHardwareTypeCheckBox.setChecked(
- hasShortcutType(value, HARDWARE));
- mTripleTapTypeCheckBox.setChecked(
- hasShortcutType(value, TRIPLETAP));
- if (Flags.enableMagnificationMultipleFingerMultipleTapGesture()) {
- mTwoFingerTripleTapTypeCheckBox.setChecked(
- hasShortcutType(value, TWOFINGER_DOUBLETAP));
- }
- }
-
- private int restoreOnConfigChangedValue() {
- final int savedValue = mSavedCheckBoxValue;
- mSavedCheckBoxValue = NOT_SET;
- return savedValue;
- }
-
private boolean hasShortcutType(int value, @UserShortcutType int type) {
return (value & type) == type;
}
@@ -573,22 +467,6 @@
}
@Override
- protected void callOnAlertDialogCheckboxClicked(DialogInterface dialog, int which) {
- final int value = getShortcutTypeCheckBoxValue();
-
- saveNonEmptyUserShortcutType(value);
- optInAllMagnificationValuesToSettings(getPrefContext(), value);
- optOutAllMagnificationValuesFromSettings(getPrefContext(), ~value);
- mShortcutPreference.setChecked(value != DEFAULT);
- mShortcutPreference.setSummary(
- getShortcutTypeSummary(getPrefContext()));
-
- if (mHardwareTypeCheckBox.isChecked()) {
- AccessibilityUtil.skipVolumeShortcutDialogTimeoutRestriction(getPrefContext());
- }
- }
-
- @Override
public int getHelpResource() {
return R.string.help_url_magnification;
}
@@ -613,8 +491,6 @@
return SettingsEnums.DIALOG_TOGGLE_SCREEN_MAGNIFICATION_GESTURE_NAVIGATION;
case DialogEnums.ACCESSIBILITY_BUTTON_TUTORIAL:
return SettingsEnums.DIALOG_TOGGLE_SCREEN_MAGNIFICATION_ACCESSIBILITY_BUTTON;
- case DialogEnums.MAGNIFICATION_EDIT_SHORTCUT:
- return SettingsEnums.DIALOG_MAGNIFICATION_EDIT_SHORTCUT;
default:
return super.getDialogMetricsCategory(dialogId);
}
@@ -664,16 +540,12 @@
@Override
public void onSettingsClicked(ShortcutPreference preference) {
- if (com.android.settings.accessibility.Flags.editShortcutsInFullScreen()) {
- EditShortcutsPreferenceFragment.showEditShortcutScreen(
- requireContext(),
- getMetricsCategory(),
- getShortcutTitle(),
- MAGNIFICATION_COMPONENT_NAME,
- getIntent());
- } else {
- showDialog(DialogEnums.MAGNIFICATION_EDIT_SHORTCUT);
- }
+ EditShortcutsPreferenceFragment.showEditShortcutScreen(
+ requireContext(),
+ getMetricsCategory(),
+ getShortcutTitle(),
+ MAGNIFICATION_COMPONENT_NAME,
+ getIntent());
}
@Override
@@ -713,17 +585,6 @@
}
@VisibleForTesting
- void saveNonEmptyUserShortcutType(int type) {
- if (type == DEFAULT) {
- return;
- }
-
- final PreferredShortcut shortcut = new PreferredShortcut(
- MAGNIFICATION_CONTROLLER_NAME, type);
- PreferredShortcuts.saveUserShortcutType(getPrefContext(), shortcut);
- }
-
- @VisibleForTesting
static void optInAllMagnificationValuesToSettings(Context context, int shortcutTypes) {
if ((shortcutTypes & SOFTWARE) == SOFTWARE) {
optInMagnificationValueToSettings(context, SOFTWARE);
@@ -974,7 +835,8 @@
? context.getText(R.string.accessibility_summary_shortcut_enabled)
: context.getText(R.string.generic_accessibility_feature_shortcut_off);
final CharSequence featureSummary = context.getText(R.string.magnification_feature_summary);
- return context.getString(R.string.preference_summary_default_combination,
+ return context.getString(
+ com.android.settingslib.R.string.preference_summary_default_combination,
featureState, featureSummary);
}
diff --git a/src/com/android/settings/accessibility/shortcuts/EditShortcutsPreferenceFragment.java b/src/com/android/settings/accessibility/shortcuts/EditShortcutsPreferenceFragment.java
index 9e1290e..d04b34a 100644
--- a/src/com/android/settings/accessibility/shortcuts/EditShortcutsPreferenceFragment.java
+++ b/src/com/android/settings/accessibility/shortcuts/EditShortcutsPreferenceFragment.java
@@ -20,6 +20,7 @@
import static android.provider.Settings.Secure.ACCESSIBILITY_BUTTON_MODE;
import static android.provider.Settings.Secure.ACCESSIBILITY_BUTTON_TARGETS;
import static android.provider.Settings.Secure.ACCESSIBILITY_DISPLAY_MAGNIFICATION_ENABLED;
+import static android.provider.Settings.Secure.ACCESSIBILITY_GESTURE_TARGETS;
import static android.provider.Settings.Secure.ACCESSIBILITY_MAGNIFICATION_TWO_FINGER_TRIPLE_TAP_ENABLED;
import static android.provider.Settings.Secure.ACCESSIBILITY_QS_TARGETS;
import static android.provider.Settings.Secure.ACCESSIBILITY_SHORTCUT_TARGET_SERVICE;
@@ -60,7 +61,6 @@
import com.android.settings.R;
import com.android.settings.SetupWizardUtils;
import com.android.settings.accessibility.AccessibilitySetupWizardUtils;
-import com.android.settings.accessibility.Flags;
import com.android.settings.accessibility.PreferredShortcuts;
import com.android.settings.core.SubSettingLauncher;
import com.android.settings.dashboard.DashboardFragment;
@@ -94,7 +94,8 @@
Settings.Secure.getUriFor(ACCESSIBILITY_BUTTON_MODE);
private static final Uri BUTTON_SHORTCUT_SETTING =
Settings.Secure.getUriFor(ACCESSIBILITY_BUTTON_TARGETS);
-
+ private static final Uri GESTURE_SHORTCUT_SETTING =
+ Settings.Secure.getUriFor(ACCESSIBILITY_GESTURE_TARGETS);
private static final Uri TRIPLE_TAP_SHORTCUT_SETTING =
Settings.Secure.getUriFor(ACCESSIBILITY_DISPLAY_MAGNIFICATION_ENABLED);
private static final Uri TWO_FINGERS_DOUBLE_TAP_SHORTCUT_SETTING =
@@ -108,6 +109,7 @@
VOLUME_KEYS_SHORTCUT_SETTING,
BUTTON_SHORTCUT_MODE_SETTING,
BUTTON_SHORTCUT_SETTING,
+ GESTURE_SHORTCUT_SETTING,
TRIPLE_TAP_SHORTCUT_SETTING,
TWO_FINGERS_DOUBLE_TAP_SHORTCUT_SETTING,
QUICK_SETTINGS_SHORTCUT_SETTING,
@@ -174,6 +176,8 @@
} else if (BUTTON_SHORTCUT_MODE_SETTING.equals(uri)
|| BUTTON_SHORTCUT_SETTING.equals(uri)) {
refreshSoftwareShortcutControllers();
+ } else if (GESTURE_SHORTCUT_SETTING.equals(uri)) {
+ refreshPreferenceController(GestureShortcutOptionController.class);
} else if (TRIPLE_TAP_SHORTCUT_SETTING.equals(uri)) {
refreshPreferenceController(TripleTapShortcutOptionController.class);
} else if (TWO_FINGERS_DOUBLE_TAP_SHORTCUT_SETTING.equals(uri)) {
@@ -199,8 +203,7 @@
Activity activity = getActivity();
if (!activity.getIntent().getAction().equals(
- Settings.ACTION_ACCESSIBILITY_SHORTCUT_SETTINGS)
- || !Flags.editShortcutsInFullScreen()) {
+ Settings.ACTION_ACCESSIBILITY_SHORTCUT_SETTINGS)) {
return;
}
diff --git a/src/com/android/settings/accessibility/shortcuts/FloatingButtonShortcutOptionController.java b/src/com/android/settings/accessibility/shortcuts/FloatingButtonShortcutOptionController.java
index 2242cab..20ff12d 100644
--- a/src/com/android/settings/accessibility/shortcuts/FloatingButtonShortcutOptionController.java
+++ b/src/com/android/settings/accessibility/shortcuts/FloatingButtonShortcutOptionController.java
@@ -50,7 +50,14 @@
@Override
protected boolean isShortcutAvailable() {
- return AccessibilityUtil.isFloatingMenuEnabled(mContext);
+ if (android.provider.Flags.a11yStandaloneGestureEnabled()) {
+ // FAB should be available when in gesture navigation mode,
+ // or if we're in the FAB button mode while in navbar navigation mode.
+ return AccessibilityUtil.isGestureNavigateEnabled(mContext)
+ || AccessibilityUtil.isFloatingMenuEnabled(mContext);
+ } else {
+ return AccessibilityUtil.isFloatingMenuEnabled(mContext);
+ }
}
@Nullable
diff --git a/src/com/android/settings/accessibility/shortcuts/GestureShortcutOptionController.java b/src/com/android/settings/accessibility/shortcuts/GestureShortcutOptionController.java
index e65aab9..3c19b5d 100644
--- a/src/com/android/settings/accessibility/shortcuts/GestureShortcutOptionController.java
+++ b/src/com/android/settings/accessibility/shortcuts/GestureShortcutOptionController.java
@@ -16,6 +16,8 @@
package com.android.settings.accessibility.shortcuts;
+import static com.android.internal.accessibility.common.ShortcutConstants.UserShortcutType.GESTURE;
+
import android.content.Context;
import android.text.SpannableStringBuilder;
@@ -52,10 +54,21 @@
}
@Override
+ protected int getShortcutType() {
+ return android.provider.Flags.a11yStandaloneGestureEnabled()
+ ? GESTURE : super.getShortcutType();
+ }
+
+ @Override
protected boolean isShortcutAvailable() {
- return !isInSetupWizard()
- && !AccessibilityUtil.isFloatingMenuEnabled(mContext)
- && AccessibilityUtil.isGestureNavigateEnabled(mContext);
+ if (android.provider.Flags.a11yStandaloneGestureEnabled()) {
+ return !isInSetupWizard()
+ && AccessibilityUtil.isGestureNavigateEnabled(mContext);
+ } else {
+ return !isInSetupWizard()
+ && AccessibilityUtil.isGestureNavigateEnabled(mContext)
+ && !AccessibilityUtil.isFloatingMenuEnabled(mContext);
+ }
}
@Override
@@ -68,9 +81,8 @@
final SpannableStringBuilder sb = new SpannableStringBuilder();
sb.append(instruction);
- if (!isInSetupWizard()) {
- sb.append("\n\n");
- sb.append(getCustomizeAccessibilityButtonLink());
+ if (!isInSetupWizard() && !android.provider.Flags.a11yStandaloneGestureEnabled()) {
+ sb.append("\n\n").append(getCustomizeAccessibilityButtonLink());
}
return sb;
diff --git a/src/com/android/settings/activityembedding/ActivityEmbeddingRulesController.java b/src/com/android/settings/activityembedding/ActivityEmbeddingRulesController.java
index 1ee980e..72a0f08 100644
--- a/src/com/android/settings/activityembedding/ActivityEmbeddingRulesController.java
+++ b/src/com/android/settings/activityembedding/ActivityEmbeddingRulesController.java
@@ -50,6 +50,7 @@
import com.android.settings.overlay.FeatureFactory;
import com.android.settings.password.ChooseLockPattern;
import com.android.settings.privatespace.PrivateSpaceSetupActivity;
+import com.android.settings.privatespace.delete.PrivateSpaceDeleteActivity;
import com.android.settings.remoteauth.RemoteAuthActivity;
import com.android.settings.remoteauth.RemoteAuthActivityInternal;
@@ -263,6 +264,9 @@
addActivityFilter(activityFilters, RemoteAuthActivityInternal.class);
addActivityFilter(activityFilters, ChooseLockPattern.class);
addActivityFilter(activityFilters, PrivateSpaceSetupActivity.class);
+ if (android.multiuser.Flags.fixLargeDisplayPrivateSpaceSettings()) {
+ addActivityFilter(activityFilters, PrivateSpaceDeleteActivity.class);
+ }
String action = mContext.getString(R.string.config_avatar_picker_action);
addActivityFilter(activityFilters, new Intent(action));
diff --git a/src/com/android/settings/activityembedding/EmbeddedDeepLinkUtils.kt b/src/com/android/settings/activityembedding/EmbeddedDeepLinkUtils.kt
index ab32fc1..9bbb723 100644
--- a/src/com/android/settings/activityembedding/EmbeddedDeepLinkUtils.kt
+++ b/src/com/android/settings/activityembedding/EmbeddedDeepLinkUtils.kt
@@ -34,7 +34,7 @@
private const val TAG = "EmbeddedDeepLinkUtils"
@JvmStatic
- fun Activity.tryStartMultiPaneDeepLink(
+ fun Context.tryStartMultiPaneDeepLink(
intent: Intent,
highlightMenuKey: String? = null,
): Boolean {
diff --git a/src/com/android/settings/applications/AppStorageSettings.java b/src/com/android/settings/applications/AppStorageSettings.java
index e45657f..0f52053 100644
--- a/src/com/android/settings/applications/AppStorageSettings.java
+++ b/src/com/android/settings/applications/AppStorageSettings.java
@@ -324,9 +324,11 @@
private void initMoveDialog() {
final Context context = getActivity();
final StorageManager storage = context.getSystemService(StorageManager.class);
-
- final List<VolumeInfo> candidates = context.getPackageManager()
- .getPackageCandidateVolumes(mAppEntry.info);
+ final PackageManager pm = context.getPackageManager();
+ final List<VolumeInfo> candidates =
+ mAppEntry != null && pm != null
+ ? pm.getPackageCandidateVolumes(mAppEntry.info)
+ : Collections.emptyList();
if (candidates.size() > 1) {
Collections.sort(candidates, VolumeInfo.getDescriptionComparator());
diff --git a/src/com/android/settings/applications/specialaccess/interactacrossprofiles/InteractAcrossProfilesDetails.java b/src/com/android/settings/applications/specialaccess/interactacrossprofiles/InteractAcrossProfilesDetails.java
index d40a075..5df5914 100644
--- a/src/com/android/settings/applications/specialaccess/interactacrossprofiles/InteractAcrossProfilesDetails.java
+++ b/src/com/android/settings/applications/specialaccess/interactacrossprofiles/InteractAcrossProfilesDetails.java
@@ -72,9 +72,9 @@
import com.android.settingslib.RestrictedSwitchPreference;
import com.android.settingslib.widget.LayoutPreference;
-import java.util.Collections;
+import java.util.Arrays;
+import java.util.HashSet;
import java.util.Optional;
-import java.util.Set;
public class InteractAcrossProfilesDetails extends AppInfoBase
implements Preference.OnPreferenceClickListener {
@@ -571,8 +571,8 @@
String disallowedPackagesString = Settings.Global.getString(getContentResolver(),
CONNECTED_APPS_DISALLOWED_PACKAGES);
- Set<String> allowedPackagesSet = getSetFromString(allowedPackagesString);
- Set<String> disallowedPackagesSet = getSetFromString(disallowedPackagesString);
+ HashSet<String> allowedPackagesSet = getSetFromString(allowedPackagesString);
+ HashSet<String> disallowedPackagesSet = getSetFromString(disallowedPackagesString);
if (enabled) {
allowedPackagesSet.add(crossProfilePackage);
@@ -592,9 +592,9 @@
String.join(",", disallowedPackagesSet));
}
- private Set<String> getSetFromString(String packages) {
+ private HashSet<String> getSetFromString(String packages) {
return Optional.ofNullable(packages)
- .map(pkg -> Set.of(pkg.split(",")))
- .orElse(Collections.emptySet());
+ .map(pkg -> new HashSet<>(Arrays.asList(pkg.split(","))))
+ .orElseGet(HashSet::new);
}
}
diff --git a/src/com/android/settings/backup/SettingsBackupHelper.java b/src/com/android/settings/backup/SettingsBackupHelper.java
index 556ab72..73760a4 100644
--- a/src/com/android/settings/backup/SettingsBackupHelper.java
+++ b/src/com/android/settings/backup/SettingsBackupHelper.java
@@ -28,19 +28,30 @@
/** Backup agent for Settings APK */
public class SettingsBackupHelper extends BackupAgentHelper {
public static final String SOUND_BACKUP_HELPER = "SoundSettingsBackup";
+ public static final String ACCESSIBILITY_APPEARANCE_BACKUP_HELPER =
+ "AccessibilityAppearanceSettingsBackup";
@Override
public void onCreate() {
super.onCreate();
BackupRestoreStorageManager.getInstance(this).addBackupAgentHelpers(this);
+ OnboardingFeatureProvider onboardingFeatureProvider =
+ FeatureFactory.getFeatureFactory().getOnboardingFeatureProvider();
+
if (Flags.enableSoundBackup()) {
- OnboardingFeatureProvider onboardingFeatureProvider =
- FeatureFactory.getFeatureFactory().getOnboardingFeatureProvider();
if (onboardingFeatureProvider != null) {
addHelper(SOUND_BACKUP_HELPER, onboardingFeatureProvider.
getSoundBackupHelper(this, this.getBackupRestoreEventLogger()));
}
}
+
+ if (Flags.accessibilityAppearanceSettingsBackupEnabled()) {
+ if (onboardingFeatureProvider != null) {
+ addHelper(ACCESSIBILITY_APPEARANCE_BACKUP_HELPER,
+ onboardingFeatureProvider.getAccessibilityAppearanceBackupHelper(
+ this, this.getBackupRestoreEventLogger()));
+ }
+ }
}
@Override
diff --git a/src/com/android/settings/biometrics/combination/BiometricsSettingsBase.java b/src/com/android/settings/biometrics/combination/BiometricsSettingsBase.java
index caa7327..11194ce 100644
--- a/src/com/android/settings/biometrics/combination/BiometricsSettingsBase.java
+++ b/src/com/android/settings/biometrics/combination/BiometricsSettingsBase.java
@@ -65,7 +65,8 @@
static final int CONFIRM_REQUEST = 2001;
private static final int CHOOSE_LOCK_REQUEST = 2002;
protected static final int ACTIVE_UNLOCK_REQUEST = 2003;
- private static final int BIOMETRIC_AUTH_REQUEST = 2004;
+ @VisibleForTesting
+ static final int BIOMETRIC_AUTH_REQUEST = 2004;
private static final String SAVE_STATE_CONFIRM_CREDETIAL = "confirm_credential";
private static final String DO_NOT_FINISH_ACTIVITY = "do_not_finish_activity";
@@ -143,9 +144,10 @@
launchChooseOrConfirmLock();
} else if (Utils.requestBiometricAuthenticationForMandatoryBiometrics(
getActivity(), mBiometricsSuccessfullyAuthenticated,
- mBiometricsAuthenticationRequested)) {
+ mBiometricsAuthenticationRequested, mUserId)) {
mBiometricsAuthenticationRequested = true;
- Utils.launchBiometricPromptForMandatoryBiometrics(this, BIOMETRIC_AUTH_REQUEST);
+ Utils.launchBiometricPromptForMandatoryBiometrics(this, BIOMETRIC_AUTH_REQUEST,
+ mUserId, true /* hideBackground */);
}
updateUnlockPhonePreferenceSummary();
@@ -160,10 +162,11 @@
public void onResume() {
super.onResume();
if (Utils.requestBiometricAuthenticationForMandatoryBiometrics(getActivity(),
- mBiometricsSuccessfullyAuthenticated, mBiometricsAuthenticationRequested)
+ mBiometricsSuccessfullyAuthenticated, mBiometricsAuthenticationRequested, mUserId)
&& mGkPwHandle != 0L) {
mBiometricsAuthenticationRequested = true;
- Utils.launchBiometricPromptForMandatoryBiometrics(this, BIOMETRIC_AUTH_REQUEST);
+ Utils.launchBiometricPromptForMandatoryBiometrics(this, BIOMETRIC_AUTH_REQUEST,
+ mUserId, true /* hideBackground */);
}
if (!mConfirmCredential) {
mDoNotFinishActivity = false;
diff --git a/src/com/android/settings/biometrics/face/FaceSettings.java b/src/com/android/settings/biometrics/face/FaceSettings.java
index 2a0dd83..bcd5231 100644
--- a/src/com/android/settings/biometrics/face/FaceSettings.java
+++ b/src/com/android/settings/biometrics/face/FaceSettings.java
@@ -289,9 +289,11 @@
finish();
}
} else if (Utils.requestBiometricAuthenticationForMandatoryBiometrics(getActivity(),
- mBiometricsSuccessfullyAuthenticated, mBiometricsAuthenticationRequested)) {
+ mBiometricsSuccessfullyAuthenticated, mBiometricsAuthenticationRequested,
+ mUserId)) {
mBiometricsAuthenticationRequested = true;
- Utils.launchBiometricPromptForMandatoryBiometrics(this, BIOMETRIC_AUTH_REQUEST);
+ Utils.launchBiometricPromptForMandatoryBiometrics(this, BIOMETRIC_AUTH_REQUEST,
+ mUserId, true /* hideBackground */);
} else {
mAttentionController.setToken(mToken);
mEnrollController.setToken(mToken);
diff --git a/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollEnrolling.java b/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollEnrolling.java
index 795f999..b32ab4f 100644
--- a/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollEnrolling.java
+++ b/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollEnrolling.java
@@ -74,6 +74,7 @@
import com.android.settings.core.instrumentation.InstrumentedDialogFragment;
import com.android.settings.overlay.FeatureFactory;
import com.android.settingslib.display.DisplayDensityUtils;
+import com.android.systemui.unfold.compat.ScreenSizeFoldProvider;
import com.airbnb.lottie.LottieAnimationView;
import com.airbnb.lottie.LottieComposition;
@@ -89,7 +90,6 @@
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.util.List;
-import java.util.function.Function;
/**
* Activity which handles the actual enrolling for fingerprint.
@@ -197,8 +197,10 @@
private OrientationEventListener mOrientationEventListener;
private int mPreviousRotation = 0;
- @NonNull
- private SfpsEnrollmentFeature mSfpsEnrollmentFeature = new EmptySfpsEnrollmentFeature();
+ private boolean mIsFolded = false;
+
+ private SfpsEnrollmentFeature mSfpsEnrollmentFeature;
+
@Nullable
private UdfpsEnrollCalibrator mCalibrator;
@@ -386,6 +388,7 @@
@Override
protected void onStart() {
super.onStart();
+ setupScreenFoldCallbackWhenNecessary();
updateProgress(false /* animate */);
updateTitleAndDescription(true);
if (mRestoring) {
@@ -393,6 +396,19 @@
}
}
+ private void setupScreenFoldCallbackWhenNecessary() {
+ if (mCanAssumeSfps) {
+ // These two fields will be cleaned up in BiometricEnrollBase#onStop.
+ mScreenSizeFoldProvider = new ScreenSizeFoldProvider(getApplicationContext());
+ mFoldCallback = isFolded -> {
+ mIsFolded = isFolded;
+ maybeHideSfpsText(getResources().getConfiguration());
+ };
+ // The callback will be unregistered in BiometricEnrollBase#onStop.
+ mScreenSizeFoldProvider.registerCallback(mFoldCallback, getMainExecutor());
+ }
+ }
+
@Override
public void onEnterAnimationComplete() {
super.onEnterAnimationComplete();
@@ -1156,13 +1172,12 @@
private void maybeHideSfpsText(@NonNull Configuration newConfig) {
final HeaderMixin headerMixin = getLayout().getMixin(HeaderMixin.class);
final DescriptionMixin descriptionMixin = getLayout().getMixin(DescriptionMixin.class);
- final boolean isLandscape = newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE;
if (mCanAssumeSfps) {
// hide the description
descriptionMixin.getTextView().setVisibility(View.GONE);
headerMixin.getTextView().setHyphenationFrequency(HYPHENATION_FREQUENCY_NONE);
- if (isLandscape) {
+ if (mSfpsEnrollmentFeature.shouldAdjustHeaderText(newConfig, mIsFolded)) {
headerMixin.setAutoTextSizeEnabled(true);
headerMixin.getTextView().setMinLines(0);
headerMixin.getTextView().setMaxLines(10);
@@ -1209,32 +1224,4 @@
}
}
- private static class EmptySfpsEnrollmentFeature implements SfpsEnrollmentFeature {
- private final String exceptionStr = "Assume sfps but no SfpsEnrollmentFeature impl.";
-
- @Override
- public int getCurrentSfpsEnrollStage(int progressSteps, Function<Integer, Integer> mapper) {
- throw new IllegalStateException(exceptionStr);
- }
-
- @Override
- public int getFeaturedStageHeaderResource(int stage) {
- throw new IllegalStateException(exceptionStr);
- }
-
- @Override
- public int getSfpsEnrollLottiePerStage(int stage) {
- throw new IllegalStateException(exceptionStr);
- }
-
- @Override
- public float getEnrollStageThreshold(@NonNull Context context, int index) {
- throw new IllegalStateException(exceptionStr);
- }
-
- @Override
- public Animator getHelpAnimator(@NonNull View target) {
- throw new IllegalStateException(exceptionStr);
- }
- }
}
diff --git a/src/com/android/settings/biometrics/fingerprint/FingerprintRemoveSidecar.java b/src/com/android/settings/biometrics/fingerprint/FingerprintRemoveSidecar.java
index 73eccdc..2737d38 100644
--- a/src/com/android/settings/biometrics/fingerprint/FingerprintRemoveSidecar.java
+++ b/src/com/android/settings/biometrics/fingerprint/FingerprintRemoveSidecar.java
@@ -23,6 +23,7 @@
import android.util.Log;
import androidx.annotation.Nullable;
+import androidx.annotation.VisibleForTesting;
import com.android.settings.core.InstrumentedFragment;
@@ -51,7 +52,8 @@
}
}
- private FingerprintManager.RemovalCallback
+ @VisibleForTesting
+ FingerprintManager.RemovalCallback
mRemoveCallback = new FingerprintManager.RemovalCallback() {
@Override
public void onRemovalSucceeded(Fingerprint fingerprint, int remaining) {
diff --git a/src/com/android/settings/biometrics/fingerprint/FingerprintSettings.java b/src/com/android/settings/biometrics/fingerprint/FingerprintSettings.java
index cb7d617..526ae8f6 100644
--- a/src/com/android/settings/biometrics/fingerprint/FingerprintSettings.java
+++ b/src/com/android/settings/biometrics/fingerprint/FingerprintSettings.java
@@ -42,6 +42,8 @@
import android.os.Handler;
import android.os.UserHandle;
import android.os.UserManager;
+import android.os.VibrationEffect;
+import android.os.Vibrator;
import android.text.InputFilter;
import android.text.Spanned;
import android.text.TextUtils;
@@ -109,6 +111,9 @@
private static final int RESULT_FINISHED = BiometricEnrollBase.RESULT_FINISHED;
private static final int RESULT_SKIP = BiometricEnrollBase.RESULT_SKIP;
private static final int RESULT_TIMEOUT = BiometricEnrollBase.RESULT_TIMEOUT;
+ @VisibleForTesting
+ static final VibrationEffect SUCCESS_VIBRATION_EFFECT =
+ VibrationEffect.get(VibrationEffect.EFFECT_CLICK);
@Override
public Intent getIntent() {
@@ -159,11 +164,27 @@
public static final BaseSearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
new BaseSearchIndexProvider(R.xml.security_settings_fingerprint) {
+
+ @Override
+ protected boolean isPageSearchEnabled(Context context) {
+ return super.isPageSearchEnabled(context) &&
+ hasEnrolledFingerprints(context);
+ }
+
@Override
public List<AbstractPreferenceController>
createPreferenceControllers(Context context) {
return createThePreferenceControllers(context);
}
+
+ private boolean hasEnrolledFingerprints(Context context) {
+ final FingerprintManager fingerprintManager =
+ Utils.getFingerprintManagerOrNull(context);
+ if (fingerprintManager != null) {
+ return fingerprintManager.hasEnrolledTemplates(UserHandle.myUserId());
+ }
+ return false;
+ }
};
private static List<AbstractPreferenceController> createThePreferenceControllers(Context
@@ -226,6 +247,7 @@
private static final int MSG_FINGER_AUTH_FAIL = 1002;
private static final int MSG_FINGER_AUTH_ERROR = 1003;
private static final int MSG_FINGER_AUTH_HELP = 1004;
+ private static final int MSG_RELOAD_FINGERPRINT_TEMPLATES = 1005;
private static final int CONFIRM_REQUEST = 101;
@VisibleForTesting
@@ -268,6 +290,7 @@
private FingerprintAuthenticateSidecar mAuthenticateSidecar;
private FingerprintRemoveSidecar mRemovalSidecar;
private HashMap<Integer, String> mFingerprintsRenaming;
+ private Vibrator mVibrator;
@Nullable
private UdfpsEnrollCalibrator mCalibrator;
@@ -313,6 +336,8 @@
if (activity != null) {
Toast.makeText(activity, errString, Toast.LENGTH_SHORT);
}
+ mHandler.obtainMessage(MSG_RELOAD_FINGERPRINT_TEMPLATES)
+ .sendToTarget();
updateDialog();
}
@@ -331,11 +356,7 @@
switch (msg.what) {
case MSG_REFRESH_FINGERPRINT_TEMPLATES:
removeFingerprintPreference(msg.arg1);
- updateAddPreference();
- if (isSfps()) {
- updateFingerprintUnlockCategoryVisibility();
- }
- updatePreferences();
+ updatePreferencesAfterFingerprintRemoved();
break;
case MSG_FINGER_AUTH_SUCCESS:
highlightFingerprintItem(msg.arg1);
@@ -347,10 +368,13 @@
case MSG_FINGER_AUTH_ERROR:
handleError(msg.arg1 /* errMsgId */, (CharSequence) msg.obj /* errStr */);
break;
+ case MSG_RELOAD_FINGERPRINT_TEMPLATES:
+ updatePreferencesAfterFingerprintRemoved();
+ break;
case MSG_FINGER_AUTH_HELP: {
// Not used
+ break;
}
- break;
}
}
};
@@ -483,14 +507,17 @@
mLaunchedConfirm = true;
launchChooseOrConfirmLock();
} else if (Utils.requestBiometricAuthenticationForMandatoryBiometrics(getActivity(),
- mBiometricsSuccessfullyAuthenticated, mBiometricsAuthenticationRequested)) {
+ mBiometricsSuccessfullyAuthenticated, mBiometricsAuthenticationRequested,
+ mUserId)) {
mBiometricsAuthenticationRequested = true;
- Utils.launchBiometricPromptForMandatoryBiometrics(this, BIOMETRIC_AUTH_REQUEST);
+ Utils.launchBiometricPromptForMandatoryBiometrics(this, BIOMETRIC_AUTH_REQUEST,
+ mUserId, true /* hideBackground */);
} else if (!mHasFirstEnrolled) {
mIsEnrolling = true;
addFirstFingerprint(null);
}
}
+ mVibrator = getContext().getSystemService(Vibrator.class);
final PreferenceScreen root = getPreferenceScreen();
root.removeAll();
addPreferencesFromResource(getPreferenceScreenResId());
@@ -568,6 +595,7 @@
protected void removeFingerprintPreference(int fingerprintId) {
String name = genKey(fingerprintId);
+ Log.e(TAG, "removeFingerprintPreference : " + fingerprintId);
Preference prefToRemove = findPreference(name);
if (prefToRemove != null) {
if (!getPreferenceScreen().removePreference(prefToRemove)) {
@@ -692,6 +720,14 @@
});
}
+ private void updatePreferencesAfterFingerprintRemoved() {
+ updateAddPreference();
+ if (isSfps()) {
+ updateFingerprintUnlockCategoryVisibility();
+ }
+ updatePreferences();
+ }
+
private void updateAddPreference() {
if (getActivity() == null) {
return; // Activity went away
@@ -767,9 +803,11 @@
.getUdfpsEnrollCalibrator(getActivity().getApplicationContext(), null, null);
if (Utils.requestBiometricAuthenticationForMandatoryBiometrics(getActivity(),
- mBiometricsSuccessfullyAuthenticated, mBiometricsAuthenticationRequested)) {
+ mBiometricsSuccessfullyAuthenticated, mBiometricsAuthenticationRequested,
+ mUserId)) {
mBiometricsAuthenticationRequested = true;
- Utils.launchBiometricPromptForMandatoryBiometrics(this, BIOMETRIC_AUTH_REQUEST);
+ Utils.launchBiometricPromptForMandatoryBiometrics(this,
+ BIOMETRIC_AUTH_REQUEST, mUserId, true /* hideBackground */);
}
}
@@ -1064,6 +1102,7 @@
}
private void highlightFingerprintItem(int fpId) {
+ mVibrator.vibrate(SUCCESS_VIBRATION_EFFECT);
String prefName = genKey(fpId);
FingerprintPreference fpref = (FingerprintPreference) findPreference(prefName);
final Drawable highlight = getHighlightDrawable();
@@ -1182,7 +1221,7 @@
@Override
public int getMetricsCategory() {
- return SettingsEnums.DIALOG_FINGERPINT_EDIT;
+ return SettingsEnums.DIALOG_FINGERPRINT_DELETE;
}
@Override
@@ -1344,7 +1383,7 @@
@Override
public int getMetricsCategory() {
- return SettingsEnums.DIALOG_FINGERPINT_EDIT;
+ return SettingsEnums.DIALOG_FINGERPRINT_RENAME;
}
}
diff --git a/src/com/android/settings/biometrics/fingerprint/feature/SfpsEnrollmentFeature.java b/src/com/android/settings/biometrics/fingerprint/feature/SfpsEnrollmentFeature.java
index bdf9530..2d31b0c 100644
--- a/src/com/android/settings/biometrics/fingerprint/feature/SfpsEnrollmentFeature.java
+++ b/src/com/android/settings/biometrics/fingerprint/feature/SfpsEnrollmentFeature.java
@@ -18,6 +18,7 @@
import android.animation.Animator;
import android.content.Context;
+import android.content.res.Configuration;
import android.view.View;
import androidx.annotation.NonNull;
@@ -114,4 +115,13 @@
* @param remaining remaining
*/
default void handleOnEnrollmentProgressChange(int steps, int remaining) {}
+
+ /**
+ * Indicates if the properties of header text view like auto text size or min / max lines
+ * should be adjusted.
+ * @param conf the current configuration
+ * @param isFolded is the device folded
+ * @return true if should adjust auto size and max lines of header; otherwise false
+ */
+ boolean shouldAdjustHeaderText(@NonNull Configuration conf, boolean isFolded);
}
diff --git a/src/com/android/settings/biometrics/fingerprint/feature/SfpsEnrollmentFeatureImpl.java b/src/com/android/settings/biometrics/fingerprint/feature/SfpsEnrollmentFeatureImpl.java
index 60ced6e..bf97478 100644
--- a/src/com/android/settings/biometrics/fingerprint/feature/SfpsEnrollmentFeatureImpl.java
+++ b/src/com/android/settings/biometrics/fingerprint/feature/SfpsEnrollmentFeatureImpl.java
@@ -26,6 +26,7 @@
import android.animation.Animator;
import android.animation.ObjectAnimator;
import android.content.Context;
+import android.content.res.Configuration;
import android.hardware.fingerprint.FingerprintManager;
import android.view.View;
import android.view.animation.AccelerateInterpolator;
@@ -107,4 +108,9 @@
help.setAutoCancel(false);
return help;
}
+
+ @Override
+ public boolean shouldAdjustHeaderText(@NonNull Configuration conf, boolean isFolded) {
+ return conf.orientation == Configuration.ORIENTATION_LANDSCAPE;
+ }
}
diff --git a/src/com/android/settings/biometrics/fingerprint2/BiometricsEnvironment.kt b/src/com/android/settings/biometrics/fingerprint2/BiometricsEnvironment.kt
index 215692a..9bc920a 100644
--- a/src/com/android/settings/biometrics/fingerprint2/BiometricsEnvironment.kt
+++ b/src/com/android/settings/biometrics/fingerprint2/BiometricsEnvironment.kt
@@ -16,7 +16,9 @@
package com.android.settings.biometrics.fingerprint2
+import android.content.pm.PackageManager
import android.hardware.fingerprint.FingerprintManager
+import android.os.ServiceManager.ServiceNotFoundException
import android.view.MotionEvent
import android.view.accessibility.AccessibilityManager
import androidx.fragment.app.FragmentActivity
@@ -74,8 +76,15 @@
private val backgroundDispatcher = executorService.asCoroutineDispatcher()
private val applicationScope = MainScope()
private val gateKeeperPasswordProvider = GatekeeperPasswordProvider(LockPatternUtils(context))
- private val fingerprintManager =
- context.getSystemService(FragmentActivity.FINGERPRINT_SERVICE) as FingerprintManager?
+ private val fingerprintManager = try {
+ if (context.packageManager.hasSystemFeature(PackageManager.FEATURE_FINGERPRINT)) {
+ context.getSystemService(FragmentActivity.FINGERPRINT_SERVICE) as FingerprintManager?
+ } else {
+ null
+ }
+ } catch (exception: ServiceNotFoundException){
+ null
+ }
private val fingerprintSensorRepository: FingerprintSensorRepository =
FingerprintSensorRepositoryImpl(fingerprintManager, backgroundDispatcher, applicationScope)
diff --git a/src/com/android/settings/biometrics/fingerprint2/ui/settings/fragment/FingerprintDeletionDialog.kt b/src/com/android/settings/biometrics/fingerprint2/ui/settings/fragment/FingerprintDeletionDialog.kt
index 46f64de..cb36721 100644
--- a/src/com/android/settings/biometrics/fingerprint2/ui/settings/fragment/FingerprintDeletionDialog.kt
+++ b/src/com/android/settings/biometrics/fingerprint2/ui/settings/fragment/FingerprintDeletionDialog.kt
@@ -42,7 +42,7 @@
lateinit var onCancelListener: DialogInterface.OnCancelListener
override fun getMetricsCategory(): Int {
- return SettingsEnums.DIALOG_FINGERPINT_EDIT
+ return SettingsEnums.DIALOG_FINGERPRINT_DELETE
}
override fun onCancel(dialog: DialogInterface) {
diff --git a/src/com/android/settings/biometrics/fingerprint2/ui/settings/fragment/FingerprintSettingsRenameDialog.kt b/src/com/android/settings/biometrics/fingerprint2/ui/settings/fragment/FingerprintSettingsRenameDialog.kt
index 9fef0c5..2f251de 100644
--- a/src/com/android/settings/biometrics/fingerprint2/ui/settings/fragment/FingerprintSettingsRenameDialog.kt
+++ b/src/com/android/settings/biometrics/fingerprint2/ui/settings/fragment/FingerprintSettingsRenameDialog.kt
@@ -95,7 +95,7 @@
}
override fun getMetricsCategory(): Int {
- return SettingsEnums.DIALOG_FINGERPINT_EDIT
+ return SettingsEnums.DIALOG_FINGERPRINT_RENAME
}
companion object {
diff --git a/src/com/android/settings/bluetooth/AvailableMediaBluetoothDeviceUpdater.java b/src/com/android/settings/bluetooth/AvailableMediaBluetoothDeviceUpdater.java
index 183de7f..bb56c50 100644
--- a/src/com/android/settings/bluetooth/AvailableMediaBluetoothDeviceUpdater.java
+++ b/src/com/android/settings/bluetooth/AvailableMediaBluetoothDeviceUpdater.java
@@ -23,7 +23,6 @@
import androidx.preference.Preference;
import com.android.settings.connecteddevice.DevicePreferenceCallback;
-import com.android.settings.connecteddevice.audiosharing.AudioSharingUtils;
import com.android.settingslib.bluetooth.BluetoothUtils;
import com.android.settingslib.bluetooth.CachedBluetoothDevice;
import com.android.settingslib.bluetooth.LocalBluetoothManager;
@@ -77,7 +76,7 @@
// It would show in Available Devices group if the audio sharing flag is disabled or
// the device is not in the audio sharing session.
if (cachedDevice.isConnectedLeAudioDevice()) {
- if (AudioSharingUtils.isFeatureEnabled()
+ if (BluetoothUtils.isAudioSharingEnabled()
&& BluetoothUtils.hasConnectedBroadcastSource(
cachedDevice, mLocalBtManager)) {
Log.d(
diff --git a/src/com/android/settings/bluetooth/BluetoothDetailsHeaderController.java b/src/com/android/settings/bluetooth/BluetoothDetailsHeaderController.java
index 5ffa8cf..462f422 100644
--- a/src/com/android/settings/bluetooth/BluetoothDetailsHeaderController.java
+++ b/src/com/android/settings/bluetooth/BluetoothDetailsHeaderController.java
@@ -47,7 +47,7 @@
@Override
public boolean isAvailable() {
- boolean hasLeAudio = mCachedDevice.getConnectableProfiles()
+ boolean hasLeAudio = mCachedDevice.getUiAccessibleProfiles()
.stream()
.anyMatch(profile -> profile.getProfileId() == BluetoothProfile.LE_AUDIO);
return !BluetoothUtils.isAdvancedDetailsHeader(mCachedDevice.getDevice()) && !hasLeAudio;
diff --git a/src/com/android/settings/bluetooth/BluetoothDetailsPairOtherController.java b/src/com/android/settings/bluetooth/BluetoothDetailsPairOtherController.java
index d1d00d8..e29dcb0 100644
--- a/src/com/android/settings/bluetooth/BluetoothDetailsPairOtherController.java
+++ b/src/com/android/settings/bluetooth/BluetoothDetailsPairOtherController.java
@@ -50,7 +50,6 @@
CachedBluetoothDevice device,
Lifecycle lifecycle) {
super(context, fragment, device, lifecycle);
- lifecycle.addObserver(this);
}
@Override
diff --git a/src/com/android/settings/bluetooth/BluetoothDetailsProfilesController.java b/src/com/android/settings/bluetooth/BluetoothDetailsProfilesController.java
index 91d7a2e..0897a43 100644
--- a/src/com/android/settings/bluetooth/BluetoothDetailsProfilesController.java
+++ b/src/com/android/settings/bluetooth/BluetoothDetailsProfilesController.java
@@ -89,7 +89,7 @@
private LocalBluetoothManager mManager;
private LocalBluetoothProfileManager mProfileManager;
private CachedBluetoothDevice mCachedDevice;
- private List<CachedBluetoothDevice> mAllOfCachedDevices;
+ private Set<CachedBluetoothDevice> mCachedDeviceGroup;
private Map<String, List<CachedBluetoothDevice>> mProfileDeviceMap =
new HashMap<String, List<CachedBluetoothDevice>>();
private boolean mIsLeContactSharingEnabled = false;
@@ -105,8 +105,7 @@
mManager = manager;
mProfileManager = mManager.getProfileManager();
mCachedDevice = device;
- mAllOfCachedDevices = Utils.getAllOfCachedBluetoothDevices(mManager, mCachedDevice);
- lifecycle.addObserver(this);
+ mCachedDeviceGroup = Utils.findAllCachedBluetoothDevicesByGroupId(mManager, mCachedDevice);
}
@Override
@@ -309,19 +308,18 @@
* Helper to get the list of connectable and special profiles.
*/
private List<LocalBluetoothProfile> getProfiles() {
- List<LocalBluetoothProfile> result = new ArrayList<LocalBluetoothProfile>();
+ List<LocalBluetoothProfile> result = new ArrayList<>();
mProfileDeviceMap.clear();
- if (mAllOfCachedDevices == null || mAllOfCachedDevices.isEmpty()) {
+ if (mCachedDeviceGroup == null || mCachedDeviceGroup.isEmpty()) {
return result;
}
- for (CachedBluetoothDevice cachedItem : mAllOfCachedDevices) {
- List<LocalBluetoothProfile> tmpResult = cachedItem.getConnectableProfiles();
+ for (CachedBluetoothDevice cachedItem : mCachedDeviceGroup) {
+ List<LocalBluetoothProfile> tmpResult = cachedItem.getUiAccessibleProfiles();
for (LocalBluetoothProfile profile : tmpResult) {
if (mProfileDeviceMap.containsKey(profile.toString())) {
mProfileDeviceMap.get(profile.toString()).add(cachedItem);
} else {
- List<CachedBluetoothDevice> tmpCachedDeviceList =
- new ArrayList<CachedBluetoothDevice>();
+ List<CachedBluetoothDevice> tmpCachedDeviceList = new ArrayList<>();
tmpCachedDeviceList.add(cachedItem);
mProfileDeviceMap.put(profile.toString(), tmpCachedDeviceList);
result.add(profile);
@@ -334,12 +332,14 @@
// Only provide PBAP cabability if the client device has requested PBAP.
if (pbapPermission != BluetoothDevice.ACCESS_UNKNOWN) {
final PbapServerProfile psp = mManager.getProfileManager().getPbapProfile();
- result.add(psp);
+ if (psp != null) {
+ result.add(psp);
+ }
}
final MapProfile mapProfile = mManager.getProfileManager().getMapProfile();
final int mapPermission = device.getMessageAccessPermission();
- if (mapPermission != BluetoothDevice.ACCESS_UNKNOWN) {
+ if (mapPermission != BluetoothDevice.ACCESS_UNKNOWN && mapProfile != null) {
result.add(mapProfile);
}
@@ -355,6 +355,10 @@
}
boolean hearingAidSupported = result.contains(
mManager.getProfileManager().getHearingAidProfile());
+ // Remove hearing aids toggle anyway since showing the toggle will confuse users
+ if (hearingAidSupported) {
+ result.remove(mManager.getProfileManager().getHearingAidProfile());
+ }
if (leAudioSupported && !classicAudioSupported && !hearingAidSupported) {
mIsLeAudioOnlyDevice = true;
}
@@ -510,7 +514,7 @@
@Override
public void onPause() {
- for (CachedBluetoothDevice item : mAllOfCachedDevices) {
+ for (CachedBluetoothDevice item : mCachedDeviceGroup) {
item.unregisterCallback(this);
}
mProfileManager.removeServiceListener(this);
@@ -519,7 +523,7 @@
@Override
public void onResume() {
updateLeAudioConfig();
- for (CachedBluetoothDevice item : mAllOfCachedDevices) {
+ for (CachedBluetoothDevice item : mCachedDeviceGroup) {
item.registerCallback(this);
}
mProfileManager.addServiceListener(this);
@@ -541,11 +545,11 @@
@Override
public void onDeviceAttributesChanged() {
- for (CachedBluetoothDevice item : mAllOfCachedDevices) {
+ for (CachedBluetoothDevice item : mCachedDeviceGroup) {
item.unregisterCallback(this);
}
- mAllOfCachedDevices = Utils.getAllOfCachedBluetoothDevices(mManager, mCachedDevice);
- for (CachedBluetoothDevice item : mAllOfCachedDevices) {
+ mCachedDeviceGroup = Utils.findAllCachedBluetoothDevicesByGroupId(mManager, mCachedDevice);
+ for (CachedBluetoothDevice item : mCachedDeviceGroup) {
item.registerCallback(this);
}
diff --git a/src/com/android/settings/bluetooth/BluetoothDevicePreference.java b/src/com/android/settings/bluetooth/BluetoothDevicePreference.java
index ac0c63b..209c900 100644
--- a/src/com/android/settings/bluetooth/BluetoothDevicePreference.java
+++ b/src/com/android/settings/bluetooth/BluetoothDevicePreference.java
@@ -46,6 +46,7 @@
import com.android.settings.overlay.FeatureFactory;
import com.android.settings.widget.GearPreference;
import com.android.settingslib.bluetooth.CachedBluetoothDevice;
+import com.android.settingslib.bluetooth.LocalBluetoothManager;
import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
import com.android.settingslib.utils.ThreadUtils;
@@ -55,6 +56,7 @@
import java.util.Set;
import java.util.concurrent.RejectedExecutionException;
import java.util.concurrent.atomic.AtomicInteger;
+import java.util.stream.Collectors;
/**
* BluetoothDevicePreference is the preference type used to display each remote
@@ -76,7 +78,10 @@
}
private final CachedBluetoothDevice mCachedDevice;
+ private Set<CachedBluetoothDevice> mCachedDeviceGroup;
+
private final UserManager mUserManager;
+ private final LocalBluetoothManager mLocalBtManager;
private Set<BluetoothDevice> mBluetoothDevices;
@VisibleForTesting
@@ -113,6 +118,21 @@
@Override
public void onDeviceAttributesChanged() {
onPreferenceAttributesChanged();
+ Set<CachedBluetoothDevice> newCachedDeviceGroup = new HashSet<>(
+ Utils.findAllCachedBluetoothDevicesByGroupId(mLocalBtManager, mCachedDevice));
+ if (!mCachedDeviceGroup.equals(newCachedDeviceGroup)) {
+ for (CachedBluetoothDevice cachedBluetoothDevice : mCachedDeviceGroup) {
+ cachedBluetoothDevice.unregisterCallback(this);
+ }
+ unregisterMetadataChangedListener();
+
+ mCachedDeviceGroup = newCachedDeviceGroup;
+
+ for (CachedBluetoothDevice cachedBluetoothDevice : mCachedDeviceGroup) {
+ cachedBluetoothDevice.registerCallback(getContext().getMainExecutor(), this);
+ }
+ registerMetadataChangedListener();
+ }
}
}
@@ -121,6 +141,7 @@
super(context, null);
mResources = getContext().getResources();
mUserManager = (UserManager) context.getSystemService(Context.USER_SERVICE);
+ mLocalBtManager = Utils.getLocalBluetoothManager(context);
mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
mShowDevicesWithoutNames = showDeviceWithoutNames;
@@ -131,6 +152,8 @@
}
mCachedDevice = cachedDevice;
+ mCachedDeviceGroup = new HashSet<>(
+ Utils.findAllCachedBluetoothDevicesByGroupId(mLocalBtManager, mCachedDevice));
mCallback = new BluetoothDevicePreferenceCallback();
mId = sNextId.getAndIncrement();
mType = type;
@@ -164,7 +187,9 @@
protected void onPrepareForRemoval() {
super.onPrepareForRemoval();
if (!mIsCallbackRemoved) {
- mCachedDevice.unregisterCallback(mCallback);
+ for (CachedBluetoothDevice cachedBluetoothDevice : mCachedDeviceGroup) {
+ cachedBluetoothDevice.unregisterCallback(mCallback);
+ }
unregisterMetadataChangedListener();
mIsCallbackRemoved = true;
}
@@ -178,7 +203,9 @@
public void onAttached() {
super.onAttached();
if (mIsCallbackRemoved) {
- mCachedDevice.registerCallback(mCallback);
+ for (CachedBluetoothDevice cachedBluetoothDevice : mCachedDeviceGroup) {
+ cachedBluetoothDevice.registerCallback(getContext().getMainExecutor(), mCallback);
+ }
registerMetadataChangedListener();
mIsCallbackRemoved = false;
}
@@ -189,7 +216,9 @@
public void onDetached() {
super.onDetached();
if (!mIsCallbackRemoved) {
- mCachedDevice.unregisterCallback(mCallback);
+ for (CachedBluetoothDevice cachedBluetoothDevice : mCachedDeviceGroup) {
+ cachedBluetoothDevice.unregisterCallback(mCallback);
+ }
unregisterMetadataChangedListener();
mIsCallbackRemoved = true;
}
@@ -200,16 +229,11 @@
Log.d(TAG, "No mBluetoothAdapter");
return;
}
- if (mBluetoothDevices == null) {
- mBluetoothDevices = new HashSet<>();
- }
- mBluetoothDevices.clear();
- if (mCachedDevice.getDevice() != null) {
- mBluetoothDevices.add(mCachedDevice.getDevice());
- }
- for (CachedBluetoothDevice cbd : mCachedDevice.getMemberDevice()) {
- mBluetoothDevices.add(cbd.getDevice());
- }
+
+ mBluetoothDevices = mCachedDeviceGroup.stream()
+ .map(CachedBluetoothDevice::getDevice)
+ .collect(Collectors.toCollection(HashSet::new));
+
if (mBluetoothDevices.isEmpty()) {
Log.d(TAG, "No BT device to register.");
return;
diff --git a/src/com/android/settings/bluetooth/BluetoothEnabler.java b/src/com/android/settings/bluetooth/BluetoothEnabler.java
index df5cc72..a5d0bc6 100644
--- a/src/com/android/settings/bluetooth/BluetoothEnabler.java
+++ b/src/com/android/settings/bluetooth/BluetoothEnabler.java
@@ -132,7 +132,7 @@
new Thread(() -> {
try {
- mIsSatelliteOn.set(mSatelliteRepository.requestIsEnabled(
+ mIsSatelliteOn.set(mSatelliteRepository.requestIsSessionStarted(
Executors.newSingleThreadExecutor()).get(3000, TimeUnit.MILLISECONDS));
} catch (InterruptedException | ExecutionException | TimeoutException e) {
Log.e(TAG, "Error to get satellite status : " + e);
diff --git a/src/com/android/settings/bluetooth/BluetoothPairingDetail.java b/src/com/android/settings/bluetooth/BluetoothPairingDetail.java
index ca53854..ebb07bd 100644
--- a/src/com/android/settings/bluetooth/BluetoothPairingDetail.java
+++ b/src/com/android/settings/bluetooth/BluetoothPairingDetail.java
@@ -79,7 +79,7 @@
boolean isSatelliteOn = true;
try {
isSatelliteOn =
- satelliteRepository.requestIsEnabled(
+ satelliteRepository.requestIsSessionStarted(
Executors.newSingleThreadExecutor()).get(3000, TimeUnit.MILLISECONDS);
} catch (InterruptedException | ExecutionException | TimeoutException e) {
Log.e(TAG, "Error to get satellite status : " + e);
diff --git a/src/com/android/settings/bluetooth/BluetoothPairingDialogFragment.java b/src/com/android/settings/bluetooth/BluetoothPairingDialogFragment.java
index 33e6fc3..e6b197c 100644
--- a/src/com/android/settings/bluetooth/BluetoothPairingDialogFragment.java
+++ b/src/com/android/settings/bluetooth/BluetoothPairingDialogFragment.java
@@ -41,6 +41,7 @@
import com.android.settings.R;
import com.android.settings.core.instrumentation.InstrumentedDialogFragment;
+import com.android.settings.flags.Flags;
/**
* A dialogFragment used by {@link BluetoothPairingDialog} to create an appropriately styled dialog
@@ -87,12 +88,15 @@
@Override
public void onDestroy() {
super.onDestroy();
- if (mPairingController.getDialogType()
- != BluetoothPairingController.DISPLAY_PASSKEY_DIALOG) {
- /* Cancel pairing unless explicitly accepted by user */
- if (!mPositiveClicked) {
- mPairingController.onCancel();
- }
+ /* Cancel pairing unless 1) explicitly accepted by user 2) the event is triggered by
+ * orientation change. */
+ boolean shouldCancelPairing =
+ Flags.disableBondingCancellationForOrientationChange()
+ ? !mPositiveClicked && !getActivity().isChangingConfigurations()
+ : !mPositiveClicked;
+ if (mPairingController.getDialogType() != BluetoothPairingController.DISPLAY_PASSKEY_DIALOG
+ && shouldCancelPairing) {
+ mPairingController.onCancel();
}
}
diff --git a/src/com/android/settings/bluetooth/LeAudioBluetoothDetailsHeaderController.java b/src/com/android/settings/bluetooth/LeAudioBluetoothDetailsHeaderController.java
index a64874d..a5e9cde 100644
--- a/src/com/android/settings/bluetooth/LeAudioBluetoothDetailsHeaderController.java
+++ b/src/com/android/settings/bluetooth/LeAudioBluetoothDetailsHeaderController.java
@@ -47,7 +47,7 @@
import com.android.settingslib.core.lifecycle.events.OnStop;
import com.android.settingslib.widget.LayoutPreference;
-import java.util.List;
+import java.util.Set;
/**
* This class adds a header with device name and status (connected/disconnected, etc.).
@@ -90,7 +90,7 @@
LayoutPreference mLayoutPreference;
LocalBluetoothManager mManager;
private CachedBluetoothDevice mCachedDevice;
- private List<CachedBluetoothDevice> mAllOfCachedDevices;
+ private Set<CachedBluetoothDevice> mCachedDeviceGroup;
@VisibleForTesting
Handler mHandler = new Handler(Looper.getMainLooper());
@VisibleForTesting
@@ -107,7 +107,7 @@
if (mCachedDevice == null || mProfileManager == null) {
return CONDITIONALLY_UNAVAILABLE;
}
- boolean hasLeAudio = mCachedDevice.getConnectableProfiles()
+ boolean hasLeAudio = mCachedDevice.getUiAccessibleProfiles()
.stream()
.anyMatch(profile -> profile.getProfileId() == BluetoothProfile.LE_AUDIO);
@@ -128,7 +128,7 @@
return;
}
mIsRegisterCallback = true;
- for (CachedBluetoothDevice item : mAllOfCachedDevices) {
+ for (CachedBluetoothDevice item : mCachedDeviceGroup) {
item.registerCallback(this);
}
refresh();
@@ -139,7 +139,7 @@
if (!mIsRegisterCallback) {
return;
}
- for (CachedBluetoothDevice item : mAllOfCachedDevices) {
+ for (CachedBluetoothDevice item : mCachedDeviceGroup) {
item.unregisterCallback(this);
}
@@ -155,7 +155,7 @@
mCachedDevice = cachedBluetoothDevice;
mManager = bluetoothManager;
mProfileManager = bluetoothManager.getProfileManager();
- mAllOfCachedDevices = Utils.getAllOfCachedBluetoothDevices(mManager, mCachedDevice);
+ mCachedDeviceGroup = Utils.findAllCachedBluetoothDevicesByGroupId(mManager, mCachedDevice);
}
@VisibleForTesting
@@ -230,7 +230,7 @@
// Init the battery layouts.
hideAllOfBatteryLayouts();
LeAudioProfile leAudioProfile = mProfileManager.getLeAudioProfile();
- if (mAllOfCachedDevices.isEmpty()) {
+ if (mCachedDeviceGroup.isEmpty()) {
Log.e(TAG, "There is no LeAudioProfile.");
return;
}
@@ -244,7 +244,7 @@
return;
}
- for (CachedBluetoothDevice cachedDevice : mAllOfCachedDevices) {
+ for (CachedBluetoothDevice cachedDevice : mCachedDeviceGroup) {
int deviceId = leAudioProfile.getAudioLocation(cachedDevice.getDevice());
Log.d(TAG, "LeAudioDevices:" + cachedDevice.getDevice().getAnonymizedAddress()
+ ", deviceId:" + deviceId);
@@ -300,15 +300,15 @@
@Override
public void onDeviceAttributesChanged() {
- for (CachedBluetoothDevice item : mAllOfCachedDevices) {
+ for (CachedBluetoothDevice item : mCachedDeviceGroup) {
item.unregisterCallback(this);
}
- mAllOfCachedDevices = Utils.getAllOfCachedBluetoothDevices(mManager, mCachedDevice);
- for (CachedBluetoothDevice item : mAllOfCachedDevices) {
+ mCachedDeviceGroup = Utils.findAllCachedBluetoothDevicesByGroupId(mManager, mCachedDevice);
+ for (CachedBluetoothDevice item : mCachedDeviceGroup) {
item.registerCallback(this);
}
- if (!mAllOfCachedDevices.isEmpty()) {
+ if (!mCachedDeviceGroup.isEmpty()) {
refresh();
}
}
diff --git a/src/com/android/settings/bluetooth/OWNERS b/src/com/android/settings/bluetooth/OWNERS
index 0a3dec9..4edd1e4 100644
--- a/src/com/android/settings/bluetooth/OWNERS
+++ b/src/com/android/settings/bluetooth/OWNERS
@@ -1,8 +1,4 @@
# Default reviewers for this and subdirectories.
-hughchen@google.com
-timhypeng@google.com
-siyuanh@google.com
-robertluo@google.com
yiyishen@google.com
yqian@google.com
chelseahao@google.com
diff --git a/src/com/android/settings/bluetooth/Utils.java b/src/com/android/settings/bluetooth/Utils.java
index f6288b2..b1d9de7 100644
--- a/src/com/android/settings/bluetooth/Utils.java
+++ b/src/com/android/settings/bluetooth/Utils.java
@@ -48,8 +48,9 @@
import com.google.common.base.Supplier;
-import java.util.ArrayList;
+import java.util.HashSet;
import java.util.List;
+import java.util.Set;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.FutureTask;
@@ -239,12 +240,12 @@
* @param cachedBluetoothDevice The main cachedBluetoothDevice.
* @return all cachedBluetoothDevices with the same groupId.
*/
- public static List<CachedBluetoothDevice> getAllOfCachedBluetoothDevices(
+ public static Set<CachedBluetoothDevice> findAllCachedBluetoothDevicesByGroupId(
LocalBluetoothManager localBtMgr,
CachedBluetoothDevice cachedBluetoothDevice) {
- List<CachedBluetoothDevice> cachedBluetoothDevices = new ArrayList<>();
+ Set<CachedBluetoothDevice> cachedBluetoothDevices = new HashSet<>();
if (cachedBluetoothDevice == null) {
- Log.e(TAG, "getAllOfCachedBluetoothDevices: no cachedBluetoothDevice");
+ Log.e(TAG, "findAllCachedBluetoothDevicesByGroupId: no cachedBluetoothDevice");
return cachedBluetoothDevices;
}
int deviceGroupId = cachedBluetoothDevice.getGroupId();
@@ -254,7 +255,7 @@
}
if (localBtMgr == null) {
- Log.e(TAG, "getAllOfCachedBluetoothDevices: no LocalBluetoothManager");
+ Log.e(TAG, "findAllCachedBluetoothDevicesByGroupId: no LocalBluetoothManager");
return cachedBluetoothDevices;
}
CachedBluetoothDevice mainDevice =
@@ -262,16 +263,14 @@
.filter(cachedDevice -> cachedDevice.getGroupId() == deviceGroupId)
.findFirst().orElse(null);
if (mainDevice == null) {
- Log.e(TAG, "getAllOfCachedBluetoothDevices: groupId = " + deviceGroupId
+ Log.e(TAG, "findAllCachedBluetoothDevicesByGroupId: groupId = " + deviceGroupId
+ ", no main device.");
return cachedBluetoothDevices;
}
cachedBluetoothDevice = mainDevice;
cachedBluetoothDevices.add(cachedBluetoothDevice);
- for (CachedBluetoothDevice member : cachedBluetoothDevice.getMemberDevice()) {
- cachedBluetoothDevices.add(member);
- }
- Log.d(TAG, "getAllOfCachedBluetoothDevices: groupId = " + deviceGroupId
+ cachedBluetoothDevices.addAll(cachedBluetoothDevice.getMemberDevice());
+ Log.d(TAG, "findAllCachedBluetoothDevicesByGroupId: groupId = " + deviceGroupId
+ " , cachedBluetoothDevice = " + cachedBluetoothDevice
+ " , deviceList = " + cachedBluetoothDevices);
return cachedBluetoothDevices;
diff --git a/src/com/android/settings/bluetooth/ui/MultiTogglePreferenceGroup.kt b/src/com/android/settings/bluetooth/ui/MultiTogglePreferenceGroup.kt
new file mode 100644
index 0000000..e4ca00d
--- /dev/null
+++ b/src/com/android/settings/bluetooth/ui/MultiTogglePreferenceGroup.kt
@@ -0,0 +1,293 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.bluetooth.ui
+
+import androidx.compose.animation.core.animateFloatAsState
+import androidx.compose.foundation.background
+import androidx.compose.foundation.layout.Arrangement
+import androidx.compose.foundation.layout.Box
+import androidx.compose.foundation.layout.Column
+import androidx.compose.foundation.layout.PaddingValues
+import androidx.compose.foundation.layout.Row
+import androidx.compose.foundation.layout.Spacer
+import androidx.compose.foundation.layout.fillMaxSize
+import androidx.compose.foundation.layout.fillMaxWidth
+import androidx.compose.foundation.layout.height
+import androidx.compose.foundation.layout.offset
+import androidx.compose.foundation.layout.padding
+import androidx.compose.foundation.layout.size
+import androidx.compose.foundation.layout.width
+import androidx.compose.foundation.shape.RoundedCornerShape
+import androidx.compose.material3.BasicAlertDialog
+import androidx.compose.material3.Button
+import androidx.compose.material3.ButtonDefaults
+import androidx.compose.material3.Card
+import androidx.compose.material3.ExperimentalMaterial3Api
+import androidx.compose.material3.Icon
+import androidx.compose.material3.LocalContentColor
+import androidx.compose.material3.MaterialTheme
+import androidx.compose.material3.Surface
+import androidx.compose.material3.Text
+import androidx.compose.runtime.Composable
+import androidx.compose.runtime.getValue
+import androidx.compose.runtime.mutableStateOf
+import androidx.compose.runtime.remember
+import androidx.compose.runtime.setValue
+import androidx.compose.ui.Alignment
+import androidx.compose.ui.Modifier
+import androidx.compose.ui.geometry.Rect
+import androidx.compose.ui.graphics.Color
+import androidx.compose.ui.graphics.asImageBitmap
+import androidx.compose.ui.layout.boundsInParent
+import androidx.compose.ui.layout.onGloballyPositioned
+import androidx.compose.ui.platform.LocalDensity
+import androidx.compose.ui.res.painterResource
+import androidx.compose.ui.semantics.Role
+import androidx.compose.ui.semantics.contentDescription
+import androidx.compose.ui.semantics.role
+import androidx.compose.ui.semantics.semantics
+import androidx.compose.ui.semantics.toggleableState
+import androidx.compose.ui.state.ToggleableState
+import androidx.compose.ui.text.style.TextAlign
+import androidx.compose.ui.unit.dp
+import androidx.compose.ui.unit.sp
+import androidx.compose.ui.window.DialogProperties
+import com.android.settings.R
+import com.android.settingslib.bluetooth.devicesettings.shared.model.DeviceSettingModel
+import com.android.settingslib.bluetooth.devicesettings.shared.model.DeviceSettingStateModel
+import com.android.settingslib.spa.framework.theme.SettingsDimension
+import com.android.settingslib.spa.widget.dialog.getDialogWidth
+
+@Composable
+fun MultiTogglePreferenceGroup(
+ preferenceModels: List<DeviceSettingModel.MultiTogglePreference>,
+) {
+ var settingIdForPopUp by remember { mutableStateOf<Int?>(null) }
+
+ settingIdForPopUp?.let { id ->
+ preferenceModels.find { it.id == id }?.let { dialog(it) { settingIdForPopUp = null } }
+ }
+
+ Row(
+ modifier = Modifier.padding(SettingsDimension.itemPadding),
+ verticalAlignment = Alignment.CenterVertically,
+ horizontalArrangement = Arrangement.spacedBy(24.dp),
+ ) {
+ preferenceModels.forEach { preferenceModel ->
+ Column(
+ modifier = Modifier.weight(1f),
+ verticalArrangement = Arrangement.Top,
+ horizontalAlignment = Alignment.CenterHorizontally,
+ ) {
+ Row {
+ Surface(
+ modifier = Modifier.height(64.dp),
+ shape = RoundedCornerShape(28.dp),
+ color = MaterialTheme.colorScheme.surface
+ ) {
+ Button(
+ modifier =
+ Modifier.fillMaxSize().padding(8.dp).semantics {
+ role = Role.Switch
+ toggleableState =
+ if (preferenceModel.isActive) {
+ ToggleableState.On
+ } else {
+ ToggleableState.Off
+ }
+ contentDescription = preferenceModel.title
+ },
+ onClick = { settingIdForPopUp = preferenceModel.id },
+ shape = RoundedCornerShape(20.dp),
+ colors = getButtonColors(preferenceModel.isActive),
+ contentPadding = PaddingValues(0.dp)
+ ) {
+ Icon(
+ preferenceModel.toggles[preferenceModel.state.selectedIndex]
+ .icon
+ .asImageBitmap(),
+ contentDescription = null,
+ modifier = Modifier.size(24.dp),
+ tint = LocalContentColor.current
+ )
+ }
+ }
+ }
+ Row { Text(text = preferenceModel.title, fontSize = 12.sp) }
+ }
+ }
+ }
+}
+
+@Composable
+private fun getButtonColors(isActive: Boolean) =
+ if (isActive) {
+ ButtonDefaults.buttonColors(
+ containerColor = MaterialTheme.colorScheme.tertiaryContainer,
+ contentColor = MaterialTheme.colorScheme.onTertiaryContainer,
+ )
+ } else {
+ ButtonDefaults.buttonColors(
+ containerColor = Color.Transparent,
+ contentColor = MaterialTheme.colorScheme.onSurfaceVariant,
+ )
+ }
+
+@OptIn(ExperimentalMaterial3Api::class)
+@Composable
+private fun dialog(
+ multiTogglePreference: DeviceSettingModel.MultiTogglePreference,
+ onDismiss: () -> Unit
+) {
+ BasicAlertDialog(
+ onDismissRequest = { onDismiss() },
+ modifier = Modifier.width(getDialogWidth()),
+ properties = DialogProperties(usePlatformDefaultWidth = false),
+ content = {
+ Card(
+ shape = RoundedCornerShape(28.dp),
+ modifier = Modifier.fillMaxWidth().height(192.dp),
+ content = {
+ Box {
+ Button(
+ onClick = { onDismiss() },
+ modifier = Modifier.padding(8.dp).align(Alignment.TopEnd).size(48.dp),
+ contentPadding = PaddingValues(12.dp),
+ colors =
+ ButtonDefaults.buttonColors(containerColor = Color.Transparent),
+ ) {
+ Icon(
+ painterResource(id = R.drawable.ic_close),
+ null,
+ tint = MaterialTheme.colorScheme.inverseSurface
+ )
+ }
+ Box(modifier = Modifier.padding(horizontal = 8.dp, vertical = 20.dp)) {
+ dialogContent(multiTogglePreference)
+ }
+ }
+ },
+ )
+ }
+ )
+}
+
+@Composable
+private fun dialogContent(multiTogglePreference: DeviceSettingModel.MultiTogglePreference) {
+ Column {
+ Row(
+ modifier = Modifier.fillMaxWidth().height(24.dp),
+ verticalAlignment = Alignment.CenterVertically,
+ horizontalArrangement = Arrangement.SpaceEvenly,
+ ) {
+ Text(text = multiTogglePreference.title, fontSize = 16.sp)
+ }
+ Spacer(modifier = Modifier.height(20.dp))
+ var selectedRect by remember { mutableStateOf<Rect?>(null) }
+ val offset =
+ selectedRect?.let { rect ->
+ animateFloatAsState(targetValue = rect.left, finishedListener = {}).value
+ }
+
+ Row(
+ modifier =
+ Modifier.fillMaxWidth()
+ .height(64.dp)
+ .background(
+ MaterialTheme.colorScheme.surface,
+ shape = RoundedCornerShape(28.dp)
+ ),
+ verticalAlignment = Alignment.CenterVertically,
+ horizontalArrangement = Arrangement.SpaceEvenly,
+ ) {
+ Box {
+ offset?.let { offset ->
+ with(LocalDensity.current) {
+ Box(
+ modifier =
+ Modifier.offset(offset.toDp(), 0.dp)
+ .height(selectedRect!!.height.toDp())
+ .width(selectedRect!!.width.toDp())
+ .background(
+ MaterialTheme.colorScheme.tertiaryContainer,
+ shape = RoundedCornerShape(20.dp)
+ )
+ )
+ }
+ }
+ Row {
+ for ((idx, toggle) in multiTogglePreference.toggles.withIndex()) {
+ val selected = idx == multiTogglePreference.state.selectedIndex
+ Column(
+ modifier =
+ Modifier.weight(1f)
+ .padding(horizontal = 8.dp)
+ .height(48.dp)
+ .background(
+ Color.Transparent,
+ shape = RoundedCornerShape(28.dp)
+ )
+ .onGloballyPositioned { layoutCoordinates ->
+ if (selected) {
+ selectedRect = layoutCoordinates.boundsInParent()
+ }
+ },
+ verticalArrangement = Arrangement.Center,
+ horizontalAlignment = Alignment.CenterHorizontally,
+ ) {
+ Button(
+ onClick = {
+ multiTogglePreference.updateState(
+ DeviceSettingStateModel.MultiTogglePreferenceState(idx)
+ )
+ },
+ modifier = Modifier.fillMaxSize(),
+ colors =
+ ButtonDefaults.buttonColors(
+ containerColor = Color.Transparent,
+ contentColor = LocalContentColor.current
+ ),
+ ) {
+ Icon(
+ bitmap = toggle.icon.asImageBitmap(),
+ null,
+ modifier = Modifier.size(24.dp),
+ tint = LocalContentColor.current
+ )
+ }
+ }
+ }
+ }
+ }
+ }
+ Spacer(modifier = Modifier.height(12.dp))
+ Row(
+ modifier = Modifier.fillMaxWidth().height(32.dp),
+ verticalAlignment = Alignment.CenterVertically,
+ horizontalArrangement = Arrangement.SpaceEvenly,
+ ) {
+ for (toggle in multiTogglePreference.toggles) {
+ Text(
+ text = toggle.label,
+ fontSize = 12.sp,
+ textAlign = TextAlign.Center,
+ modifier = Modifier.weight(1f).padding(horizontal = 8.dp)
+ )
+ }
+ }
+ }
+}
diff --git a/src/com/android/settings/connecteddevice/AvailableMediaDeviceGroupController.java b/src/com/android/settings/connecteddevice/AvailableMediaDeviceGroupController.java
index 420fb97..c67995a 100644
--- a/src/com/android/settings/connecteddevice/AvailableMediaDeviceGroupController.java
+++ b/src/com/android/settings/connecteddevice/AvailableMediaDeviceGroupController.java
@@ -45,7 +45,6 @@
import com.android.settings.bluetooth.BluetoothDeviceUpdater;
import com.android.settings.bluetooth.Utils;
import com.android.settings.connecteddevice.audiosharing.AudioSharingDialogHandler;
-import com.android.settings.connecteddevice.audiosharing.AudioSharingUtils;
import com.android.settings.core.BasePreferenceController;
import com.android.settings.dashboard.DashboardFragment;
import com.android.settings.overlay.FeatureFactory;
@@ -180,7 +179,7 @@
super(context, KEY);
mBtManager = Utils.getLocalBtManager(mContext);
mExecutor = Executors.newSingleThreadExecutor();
- if (AudioSharingUtils.isFeatureEnabled()) {
+ if (BluetoothUtils.isAudioSharingEnabled()) {
mBroadcast =
mBtManager == null
? null
@@ -201,7 +200,7 @@
Log.d(TAG, "onStart() Bluetooth is not supported on this device");
return;
}
- if (AudioSharingUtils.isFeatureEnabled()) {
+ if (BluetoothUtils.isAudioSharingEnabled()) {
registerAudioSharingCallbacks();
}
mBtManager.getEventManager().registerCallback(this);
@@ -217,7 +216,7 @@
Log.d(TAG, "onStop() Bluetooth is not supported on this device");
return;
}
- if (AudioSharingUtils.isFeatureEnabled()) {
+ if (BluetoothUtils.isAudioSharingEnabled()) {
unregisterAudioSharingCallbacks();
}
if (mBluetoothDeviceUpdater != null) {
@@ -279,7 +278,7 @@
public void onDeviceClick(Preference preference) {
final CachedBluetoothDevice cachedDevice =
((BluetoothDevicePreference) preference).getBluetoothDevice();
- if (AudioSharingUtils.isFeatureEnabled() && mDialogHandler != null) {
+ if (BluetoothUtils.isAudioSharingEnabled() && mDialogHandler != null) {
mDialogHandler.handleDeviceConnected(cachedDevice, /* userTriggered= */ true);
FeatureFactory.getFeatureFactory().getMetricsFeatureProvider()
.action(mContext, SettingsEnums.ACTION_MEDIA_DEVICE_CLICK);
@@ -295,7 +294,7 @@
fragment.getContext(),
AvailableMediaDeviceGroupController.this,
fragment.getMetricsCategory());
- if (AudioSharingUtils.isFeatureEnabled()) {
+ if (BluetoothUtils.isAudioSharingEnabled()) {
mDialogHandler = new AudioSharingDialogHandler(mContext, fragment);
}
}
@@ -342,8 +341,8 @@
if (isAudioModeOngoingCall(mContext)) {
// in phone call
titleResId = R.string.connected_device_call_device_title;
- } else if (AudioSharingUtils.isFeatureEnabled()
- && AudioSharingUtils.isBroadcasting(mBtManager)) {
+ } else if (BluetoothUtils.isAudioSharingEnabled()
+ && BluetoothUtils.isBroadcasting(mBtManager)) {
// without phone call, in audio sharing
titleResId = R.string.audio_sharing_media_device_group_title;
} else {
diff --git a/src/com/android/settings/connecteddevice/ConnectedDeviceDashboardFragment.java b/src/com/android/settings/connecteddevice/ConnectedDeviceDashboardFragment.java
index 27001d6..5184176 100644
--- a/src/com/android/settings/connecteddevice/ConnectedDeviceDashboardFragment.java
+++ b/src/com/android/settings/connecteddevice/ConnectedDeviceDashboardFragment.java
@@ -28,13 +28,13 @@
import com.android.settings.SettingsActivity;
import com.android.settings.Utils;
import com.android.settings.connecteddevice.audiosharing.AudioSharingDevicePreferenceController;
-import com.android.settings.connecteddevice.audiosharing.AudioSharingUtils;
import com.android.settings.core.SettingsUIDeviceConfig;
import com.android.settings.dashboard.DashboardFragment;
import com.android.settings.overlay.FeatureFactory;
import com.android.settings.overlay.SurveyFeatureProvider;
import com.android.settings.search.BaseSearchIndexProvider;
import com.android.settings.slices.SlicePreferenceController;
+import com.android.settingslib.bluetooth.BluetoothUtils;
import com.android.settingslib.bluetooth.HearingAidStatsLogUtils;
import com.android.settingslib.search.SearchIndexable;
@@ -87,7 +87,7 @@
+ ", action : "
+ action);
}
- if (AudioSharingUtils.isFeatureEnabled()) {
+ if (BluetoothUtils.isAudioSharingEnabled()) {
use(AudioSharingDevicePreferenceController.class).init(this);
}
use(AvailableMediaDeviceGroupController.class).init(this);
diff --git a/src/com/android/settings/connecteddevice/OWNERS b/src/com/android/settings/connecteddevice/OWNERS
index 5215a8f..4edd1e4 100644
--- a/src/com/android/settings/connecteddevice/OWNERS
+++ b/src/com/android/settings/connecteddevice/OWNERS
@@ -1,7 +1,4 @@
# Default reviewers for this and subdirectories.
-hughchen@google.com
-timhypeng@google.com
-robertluo@google.com
yiyishen@google.com
yqian@google.com
chelseahao@google.com
diff --git a/src/com/android/settings/connecteddevice/audiosharing/AudioSharingActivity.java b/src/com/android/settings/connecteddevice/audiosharing/AudioSharingActivity.java
index 1ec53f9..08b21a1 100644
--- a/src/com/android/settings/connecteddevice/audiosharing/AudioSharingActivity.java
+++ b/src/com/android/settings/connecteddevice/audiosharing/AudioSharingActivity.java
@@ -19,12 +19,13 @@
import android.os.Bundle;
import com.android.settings.SettingsActivity;
+import com.android.settingslib.bluetooth.BluetoothUtils;
public class AudioSharingActivity extends SettingsActivity {
@Override
protected void onCreate(Bundle savedState) {
super.onCreate(savedState);
- if (!AudioSharingUtils.isFeatureEnabled()) {
+ if (!BluetoothUtils.isAudioSharingEnabled()) {
finish();
}
}
diff --git a/src/com/android/settings/connecteddevice/audiosharing/AudioSharingBasePreferenceController.java b/src/com/android/settings/connecteddevice/audiosharing/AudioSharingBasePreferenceController.java
index e933e41..96c5d45 100644
--- a/src/com/android/settings/connecteddevice/audiosharing/AudioSharingBasePreferenceController.java
+++ b/src/com/android/settings/connecteddevice/audiosharing/AudioSharingBasePreferenceController.java
@@ -29,6 +29,7 @@
import com.android.settings.bluetooth.Utils;
import com.android.settings.core.BasePreferenceController;
+import com.android.settingslib.bluetooth.BluetoothUtils;
import com.android.settingslib.bluetooth.LocalBluetoothLeBroadcast;
import com.android.settingslib.bluetooth.LocalBluetoothManager;
import com.android.settingslib.bluetooth.LocalBluetoothProfileManager;
@@ -54,7 +55,7 @@
@Override
public int getAvailabilityStatus() {
- return AudioSharingUtils.isFeatureEnabled() ? AVAILABLE : UNSUPPORTED_ON_DEVICE;
+ return BluetoothUtils.isAudioSharingEnabled() ? AVAILABLE : UNSUPPORTED_ON_DEVICE;
}
@Override
diff --git a/src/com/android/settings/connecteddevice/audiosharing/AudioSharingBluetoothDeviceUpdater.java b/src/com/android/settings/connecteddevice/audiosharing/AudioSharingBluetoothDeviceUpdater.java
index 21eb4d1..60a8a13 100644
--- a/src/com/android/settings/connecteddevice/audiosharing/AudioSharingBluetoothDeviceUpdater.java
+++ b/src/com/android/settings/connecteddevice/audiosharing/AudioSharingBluetoothDeviceUpdater.java
@@ -55,7 +55,7 @@
if (isDeviceConnected(cachedDevice) && isDeviceInCachedDevicesList(cachedDevice)) {
// If device is LE audio device and has a broadcast source,
// it would show in audio sharing devices group.
- if (AudioSharingUtils.isFeatureEnabled()
+ if (BluetoothUtils.isAudioSharingEnabled()
&& cachedDevice.isConnectedLeAudioDevice()
&& BluetoothUtils.hasConnectedBroadcastSource(cachedDevice, mLocalBtManager)) {
isFilterMatched = true;
diff --git a/src/com/android/settings/connecteddevice/audiosharing/AudioSharingCallAudioDialogFragment.java b/src/com/android/settings/connecteddevice/audiosharing/AudioSharingCallAudioDialogFragment.java
index 5e0ec07..fa9f94d 100644
--- a/src/com/android/settings/connecteddevice/audiosharing/AudioSharingCallAudioDialogFragment.java
+++ b/src/com/android/settings/connecteddevice/audiosharing/AudioSharingCallAudioDialogFragment.java
@@ -29,6 +29,7 @@
import com.android.settings.R;
import com.android.settings.core.instrumentation.InstrumentedDialogFragment;
+import com.android.settingslib.bluetooth.BluetoothUtils;
import java.util.List;
@@ -36,6 +37,7 @@
public class AudioSharingCallAudioDialogFragment extends InstrumentedDialogFragment {
private static final String TAG = "CallsAndAlarmsDialog";
private static final String BUNDLE_KEY_DEVICE_ITEMS = "bundle_key_device_items";
+ private static final String BUNDLE_KEY_CHECKED_ITEM_INDEX = "bundle_key_checked_index";
// The host creates an instance of this dialog fragment must implement this interface to receive
// event callbacks.
@@ -65,8 +67,9 @@
public static void show(
@NonNull Fragment host,
@NonNull List<AudioSharingDeviceItem> deviceItems,
+ int checkedItemIndex,
@NonNull DialogEventListener listener) {
- if (!AudioSharingUtils.isFeatureEnabled()) return;
+ if (!BluetoothUtils.isAudioSharingEnabled()) return;
final FragmentManager manager;
try {
manager = host.getChildFragmentManager();
@@ -78,6 +81,7 @@
if (manager.findFragmentByTag(TAG) == null) {
final Bundle bundle = new Bundle();
bundle.putParcelableList(BUNDLE_KEY_DEVICE_ITEMS, deviceItems);
+ bundle.putInt(BUNDLE_KEY_CHECKED_ITEM_INDEX, checkedItemIndex);
final AudioSharingCallAudioDialogFragment dialog =
new AudioSharingCallAudioDialogFragment();
dialog.setArguments(bundle);
@@ -91,6 +95,7 @@
Bundle arguments = requireArguments();
List<AudioSharingDeviceItem> deviceItems =
arguments.getParcelable(BUNDLE_KEY_DEVICE_ITEMS, List.class);
+ int checkedItemIndex = arguments.getInt(BUNDLE_KEY_CHECKED_ITEM_INDEX, -1);
AlertDialog.Builder builder =
new AlertDialog.Builder(getActivity())
.setTitle(R.string.audio_sharing_call_audio_title);
@@ -98,18 +103,11 @@
Log.d(TAG, "Create dialog error: null deviceItems");
return builder.create();
}
- int checkedItem = -1;
- for (AudioSharingDeviceItem item : deviceItems) {
- int fallbackActiveGroupId = AudioSharingUtils.getFallbackActiveGroupId(getContext());
- if (item.getGroupId() == fallbackActiveGroupId) {
- checkedItem = deviceItems.indexOf(item);
- }
- }
String[] choices =
deviceItems.stream().map(AudioSharingDeviceItem::getName).toArray(String[]::new);
builder.setSingleChoiceItems(
choices,
- checkedItem,
+ checkedItemIndex,
(dialog, which) -> {
if (sListener != null) {
sListener.onItemClick(deviceItems.get(which));
diff --git a/src/com/android/settings/connecteddevice/audiosharing/AudioSharingCallAudioPreferenceController.java b/src/com/android/settings/connecteddevice/audiosharing/AudioSharingCallAudioPreferenceController.java
index 6ba7183..168fce5 100644
--- a/src/com/android/settings/connecteddevice/audiosharing/AudioSharingCallAudioPreferenceController.java
+++ b/src/com/android/settings/connecteddevice/audiosharing/AudioSharingCallAudioPreferenceController.java
@@ -16,8 +16,6 @@
package com.android.settings.connecteddevice.audiosharing;
-import static com.android.settings.connecteddevice.audiosharing.AudioSharingUtils.SETTINGS_KEY_FALLBACK_DEVICE_GROUP_ID;
-
import android.app.settings.SettingsEnums;
import android.bluetooth.BluetoothAdapter;
import android.bluetooth.BluetoothCsipSetCoordinator;
@@ -68,7 +66,7 @@
/** PreferenceController to control the dialog to choose the active device for calls and alarms */
public class AudioSharingCallAudioPreferenceController extends AudioSharingBasePreferenceController
implements BluetoothCallback {
- private static final String TAG = "CallsAndAlarmsPreferenceController";
+ private static final String TAG = "CallAudioPrefController";
private static final String PREF_KEY = "calls_and_alarms";
@VisibleForTesting
@@ -87,7 +85,7 @@
private final ContentObserver mSettingsObserver;
private final MetricsFeatureProvider mMetricsFeatureProvider;
@Nullable private Fragment mFragment;
- Map<Integer, List<CachedBluetoothDevice>> mGroupedConnectedDevices = new HashMap<>();
+ Map<Integer, List<BluetoothDevice>> mGroupedConnectedDevices = new HashMap<>();
private List<AudioSharingDeviceItem> mDeviceItemsInSharingSession = new ArrayList<>();
private final AtomicBoolean mCallbacksRegistered = new AtomicBoolean(false);
@@ -197,24 +195,27 @@
}
updateDeviceItemsInSharingSession();
if (!mDeviceItemsInSharingSession.isEmpty()) {
+ int checkedItemIndex = getActiveItemIndex(mDeviceItemsInSharingSession);
AudioSharingCallAudioDialogFragment.show(
mFragment,
mDeviceItemsInSharingSession,
+ checkedItemIndex,
(AudioSharingDeviceItem item) -> {
int currentGroupId =
- AudioSharingUtils.getFallbackActiveGroupId(
- mContext);
+ BluetoothUtils.getPrimaryGroupIdForBroadcast(
+ mContext.getContentResolver());
if (item.getGroupId() == currentGroupId) {
Log.d(
TAG,
"Skip set fallback active device: unchanged");
return;
}
- List<CachedBluetoothDevice> devices =
+ List<BluetoothDevice> devices =
mGroupedConnectedDevices.getOrDefault(
item.getGroupId(), ImmutableList.of());
CachedBluetoothDevice lead =
- AudioSharingUtils.getLeadDevice(devices);
+ AudioSharingUtils.getLeadDevice(
+ mCacheManager, devices);
if (lead != null) {
Log.d(
TAG,
@@ -300,7 +301,7 @@
Log.d(TAG, "registerCallbacks()");
mEventManager.registerCallback(this);
mContentResolver.registerContentObserver(
- Settings.Secure.getUriFor(SETTINGS_KEY_FALLBACK_DEVICE_GROUP_ID),
+ Settings.Secure.getUriFor(BluetoothUtils.getPrimaryGroupIdUriForBroadcast()),
false,
mSettingsObserver);
mAssistant.registerServiceCallBack(mExecutor, mBroadcastAssistantCallback);
@@ -347,7 +348,8 @@
*/
private void updateSummary() {
updateDeviceItemsInSharingSession();
- int fallbackActiveGroupId = AudioSharingUtils.getFallbackActiveGroupId(mContext);
+ int fallbackActiveGroupId =
+ BluetoothUtils.getPrimaryGroupIdForBroadcast(mContext.getContentResolver());
if (fallbackActiveGroupId != BluetoothCsipSetCoordinator.GROUP_ID_INVALID) {
for (AudioSharingDeviceItem item : mDeviceItemsInSharingSession) {
if (item.getGroupId() == fallbackActiveGroupId) {
@@ -386,6 +388,18 @@
mBtManager, mGroupedConnectedDevices, /* filterByInSharing= */ true);
}
+ private int getActiveItemIndex(List<AudioSharingDeviceItem> deviceItems) {
+ int checkedItemIndex = -1;
+ int fallbackActiveGroupId =
+ BluetoothUtils.getPrimaryGroupIdForBroadcast(mContext.getContentResolver());
+ for (AudioSharingDeviceItem item : deviceItems) {
+ if (item.getGroupId() == fallbackActiveGroupId) {
+ return deviceItems.indexOf(item);
+ }
+ }
+ return checkedItemIndex;
+ }
+
@VisibleForTesting
void logCallAudioDeviceChange(int currentGroupId, CachedBluetoothDevice target) {
var unused =
@@ -393,7 +407,7 @@
() -> {
ChangeCallAudioType type = ChangeCallAudioType.UNKNOWN;
if (mCacheManager != null) {
- int targetDeviceGroupId = AudioSharingUtils.getGroupId(target);
+ int targetDeviceGroupId = BluetoothUtils.getGroupId(target);
List<BluetoothDevice> mostRecentDevices =
BluetoothAdapter.getDefaultAdapter()
.getMostRecentlyConnectedDevices();
@@ -405,7 +419,7 @@
mCacheManager.findDevice(device);
int groupId =
cachedDevice != null
- ? AudioSharingUtils.getGroupId(cachedDevice)
+ ? BluetoothUtils.getGroupId(cachedDevice)
: BluetoothCsipSetCoordinator.GROUP_ID_INVALID;
if (groupId != BluetoothCsipSetCoordinator.GROUP_ID_INVALID) {
if (groupId == targetDeviceGroupId) {
diff --git a/src/com/android/settings/connecteddevice/audiosharing/AudioSharingCompatibilityPreferenceController.java b/src/com/android/settings/connecteddevice/audiosharing/AudioSharingCompatibilityPreferenceController.java
index 42a9038..52df1d3 100644
--- a/src/com/android/settings/connecteddevice/audiosharing/AudioSharingCompatibilityPreferenceController.java
+++ b/src/com/android/settings/connecteddevice/audiosharing/AudioSharingCompatibilityPreferenceController.java
@@ -34,6 +34,7 @@
import com.android.settings.bluetooth.Utils;
import com.android.settings.core.TogglePreferenceController;
import com.android.settings.overlay.FeatureFactory;
+import com.android.settingslib.bluetooth.BluetoothUtils;
import com.android.settingslib.bluetooth.LocalBluetoothLeBroadcast;
import com.android.settingslib.bluetooth.LocalBluetoothManager;
import com.android.settingslib.bluetooth.LocalBluetoothProfileManager;
@@ -154,7 +155,7 @@
@Override
public int getAvailabilityStatus() {
- return AudioSharingUtils.isFeatureEnabled() ? AVAILABLE : UNSUPPORTED_ON_DEVICE;
+ return BluetoothUtils.isAudioSharingEnabled() ? AVAILABLE : UNSUPPORTED_ON_DEVICE;
}
@Override
@@ -242,7 +243,7 @@
var unused =
ThreadUtils.postOnBackgroundThread(
() -> {
- boolean isBroadcasting = AudioSharingUtils.isBroadcasting(mBtManager);
+ boolean isBroadcasting = BluetoothUtils.isBroadcasting(mBtManager);
AudioSharingUtils.postOnMainThread(
mContext,
() -> {
diff --git a/src/com/android/settings/connecteddevice/audiosharing/AudioSharingConfirmDialogFragment.java b/src/com/android/settings/connecteddevice/audiosharing/AudioSharingConfirmDialogFragment.java
index 61b1df1..3750cf1 100644
--- a/src/com/android/settings/connecteddevice/audiosharing/AudioSharingConfirmDialogFragment.java
+++ b/src/com/android/settings/connecteddevice/audiosharing/AudioSharingConfirmDialogFragment.java
@@ -29,6 +29,7 @@
import com.android.settings.R;
import com.android.settings.core.instrumentation.InstrumentedDialogFragment;
+import com.android.settingslib.bluetooth.BluetoothUtils;
public class AudioSharingConfirmDialogFragment extends InstrumentedDialogFragment {
private static final String TAG = "AudioSharingConfirmDialog";
@@ -44,7 +45,7 @@
* @param host The Fragment this dialog will be hosted.
*/
public static void show(Fragment host) {
- if (!AudioSharingUtils.isFeatureEnabled()) return;
+ if (!BluetoothUtils.isAudioSharingEnabled()) return;
final FragmentManager manager;
try {
manager = host.getChildFragmentManager();
diff --git a/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDevicePreferenceController.java b/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDevicePreferenceController.java
index cc883fe..d6ad4bc 100644
--- a/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDevicePreferenceController.java
+++ b/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDevicePreferenceController.java
@@ -296,7 +296,7 @@
@Override
public int getAvailabilityStatus() {
- return AudioSharingUtils.isFeatureEnabled() && mBluetoothDeviceUpdater != null
+ return BluetoothUtils.isAudioSharingEnabled() && mBluetoothDeviceUpdater != null
? AVAILABLE_UNSEARCHABLE
: UNSUPPORTED_ON_DEVICE;
}
@@ -437,7 +437,7 @@
}
private boolean isMediaDevice(CachedBluetoothDevice cachedDevice) {
- return cachedDevice.getConnectableProfiles().stream()
+ return cachedDevice.getUiAccessibleProfiles().stream()
.anyMatch(
profile ->
profile instanceof A2dpProfile
diff --git a/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDeviceVolumeControlUpdater.java b/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDeviceVolumeControlUpdater.java
index 0fbb892..548d17c 100644
--- a/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDeviceVolumeControlUpdater.java
+++ b/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDeviceVolumeControlUpdater.java
@@ -16,13 +16,9 @@
package com.android.settings.connecteddevice.audiosharing;
-import android.app.settings.SettingsEnums;
-import android.bluetooth.BluetoothCsipSetCoordinator;
import android.bluetooth.BluetoothDevice;
import android.content.Context;
-import android.media.AudioManager;
import android.util.Log;
-import android.widget.SeekBar;
import androidx.annotation.Nullable;
import androidx.annotation.VisibleForTesting;
@@ -40,7 +36,7 @@
public class AudioSharingDeviceVolumeControlUpdater extends BluetoothDeviceUpdater
implements Preference.OnPreferenceClickListener {
- private static final String TAG = "AudioSharingDeviceVolumeControlUpdater";
+ private static final String TAG = "AudioSharingVolUpdater";
@VisibleForTesting
static final String PREF_KEY_PREFIX = "audio_sharing_volume_control_";
@@ -67,7 +63,7 @@
// If device is LE audio device and in a sharing session on current sharing device,
// it would show in volume control group.
if (cachedDevice.isConnectedLeAudioDevice()
- && AudioSharingUtils.isBroadcasting(mBtManager)
+ && BluetoothUtils.isBroadcasting(mBtManager)
&& BluetoothUtils.hasConnectedBroadcastSource(cachedDevice, mBtManager)) {
isFilterMatched = true;
}
@@ -91,36 +87,9 @@
if (cachedDevice == null) return;
final BluetoothDevice device = cachedDevice.getDevice();
if (!mPreferenceMap.containsKey(device)) {
- SeekBar.OnSeekBarChangeListener listener =
- new SeekBar.OnSeekBarChangeListener() {
- @Override
- public void onProgressChanged(
- SeekBar seekBar, int progress, boolean fromUser) {}
-
- @Override
- public void onStartTrackingTouch(SeekBar seekBar) {}
-
- @Override
- public void onStopTrackingTouch(SeekBar seekBar) {
- int progress = seekBar.getProgress();
- int groupId = AudioSharingUtils.getGroupId(cachedDevice);
- if (groupId != BluetoothCsipSetCoordinator.GROUP_ID_INVALID
- && groupId
- == AudioSharingUtils.getFallbackActiveGroupId(
- mContext)) {
- // Set media stream volume for primary buds, audio manager will
- // update all buds volume in the audio sharing.
- setAudioManagerStreamVolume(progress);
- } else {
- // Set buds volume for other buds.
- setDeviceVolume(cachedDevice, progress);
- }
- }
- };
AudioSharingDeviceVolumePreference vPreference =
new AudioSharingDeviceVolumePreference(mPrefContext, cachedDevice);
vPreference.initialize();
- vPreference.setOnSeekBarChangeListener(listener);
vPreference.setKey(getPreferenceKeyPrefix() + cachedDevice.hashCode());
vPreference.setIcon(com.android.settingslib.R.drawable.ic_bt_untethered_earbuds);
vPreference.setTitle(cachedDevice.getName());
@@ -154,35 +123,4 @@
@Override
public void refreshPreference() {}
-
- private void setDeviceVolume(CachedBluetoothDevice cachedDevice, int progress) {
- if (mVolumeControl != null) {
- mVolumeControl.setDeviceVolume(
- cachedDevice.getDevice(), progress, /* isGroupOp= */ true);
- mMetricsFeatureProvider.action(
- mContext,
- SettingsEnums.ACTION_AUDIO_SHARING_CHANGE_MEDIA_DEVICE_VOLUME,
- /* isPrimary= */ false);
- }
- }
-
- private void setAudioManagerStreamVolume(int progress) {
- int seekbarRange =
- AudioSharingDeviceVolumePreference.MAX_VOLUME
- - AudioSharingDeviceVolumePreference.MIN_VOLUME;
- try {
- AudioManager audioManager = mContext.getSystemService(AudioManager.class);
- int streamVolumeRange =
- audioManager.getStreamMaxVolume(AudioManager.STREAM_MUSIC)
- - audioManager.getStreamMinVolume(AudioManager.STREAM_MUSIC);
- int volume = Math.round((float) progress * streamVolumeRange / seekbarRange);
- audioManager.setStreamVolume(AudioManager.STREAM_MUSIC, volume, 0);
- mMetricsFeatureProvider.action(
- mContext,
- SettingsEnums.ACTION_AUDIO_SHARING_CHANGE_MEDIA_DEVICE_VOLUME,
- /* isPrimary= */ true);
- } catch (RuntimeException e) {
- Log.e(TAG, "Fail to setAudioManagerStreamVolumeForFallbackDevice, error = " + e);
- }
- }
}
diff --git a/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDeviceVolumeGroupController.java b/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDeviceVolumeGroupController.java
index ee2ba7b..42de10a 100644
--- a/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDeviceVolumeGroupController.java
+++ b/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDeviceVolumeGroupController.java
@@ -16,8 +16,6 @@
package com.android.settings.connecteddevice.audiosharing;
-import static com.android.settings.connecteddevice.audiosharing.AudioSharingUtils.SETTINGS_KEY_FALLBACK_DEVICE_GROUP_ID;
-
import android.annotation.IntRange;
import android.bluetooth.BluetoothCsipSetCoordinator;
import android.bluetooth.BluetoothDevice;
@@ -63,7 +61,7 @@
public class AudioSharingDeviceVolumeGroupController extends AudioSharingBasePreferenceController
implements DevicePreferenceCallback {
- private static final String TAG = "AudioSharingDeviceVolumeGroupController";
+ private static final String TAG = "AudioSharingVolCtlr";
private static final String KEY = "audio_sharing_device_volume_group";
@Nullable private final LocalBluetoothManager mBtManager;
@@ -91,11 +89,11 @@
? null
: mBtManager.getCachedDeviceManager().findDevice(device);
if (cachedDevice == null) return;
- int groupId = AudioSharingUtils.getGroupId(cachedDevice);
+ int groupId = BluetoothUtils.getGroupId(cachedDevice);
mValueMap.put(groupId, volume);
for (AudioSharingDeviceVolumePreference preference : mVolumePreferences) {
if (preference.getCachedDevice() != null
- && AudioSharingUtils.getGroupId(preference.getCachedDevice())
+ && BluetoothUtils.getGroupId(preference.getCachedDevice())
== groupId) {
// If the callback return invalid volume, try to
// get the volume from AudioManager.STREAM_MUSIC
@@ -256,7 +254,7 @@
volumePref.setOrder(getPreferenceOrderForDevice(cachedDevice));
mVolumePreferences.add(volumePref);
if (volumePref.getProgress() > 0) return;
- int volume = mValueMap.getOrDefault(AudioSharingUtils.getGroupId(cachedDevice), -1);
+ int volume = mValueMap.getOrDefault(BluetoothUtils.getGroupId(cachedDevice), -1);
// If the volume is invalid, try to get the volume from AudioManager.STREAM_MUSIC
int finalVolume = getAudioVolumeIfNeeded(volume);
Log.d(
@@ -369,7 +367,7 @@
mVolumeControl.registerCallback(mExecutor, mVolumeControlCallback);
mBluetoothDeviceUpdater.registerCallback();
mContentResolver.registerContentObserver(
- Settings.Secure.getUriFor(SETTINGS_KEY_FALLBACK_DEVICE_GROUP_ID),
+ Settings.Secure.getUriFor(BluetoothUtils.getPrimaryGroupIdUriForBroadcast()),
false,
mSettingsObserver);
mCallbacksRegistered.set(true);
@@ -415,10 +413,10 @@
}
private int getPreferenceOrderForDevice(@NonNull CachedBluetoothDevice cachedDevice) {
- int groupId = AudioSharingUtils.getGroupId(cachedDevice);
+ int groupId = BluetoothUtils.getGroupId(cachedDevice);
// The fallback device rank first among the audio sharing device list.
return (groupId != BluetoothCsipSetCoordinator.GROUP_ID_INVALID
- && groupId == AudioSharingUtils.getFallbackActiveGroupId(mContext))
+ && groupId == BluetoothUtils.getPrimaryGroupIdForBroadcast(mContentResolver))
? 0
: 1;
}
diff --git a/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDeviceVolumePreference.java b/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDeviceVolumePreference.java
index 01afc02..816ec6e 100644
--- a/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDeviceVolumePreference.java
+++ b/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDeviceVolumePreference.java
@@ -16,27 +16,46 @@
package com.android.settings.connecteddevice.audiosharing;
+import android.app.settings.SettingsEnums;
+import android.bluetooth.BluetoothCsipSetCoordinator;
+import android.bluetooth.BluetoothDevice;
import android.content.Context;
+import android.media.AudioManager;
+import android.util.Log;
import android.widget.SeekBar;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import com.android.settings.R;
+import com.android.settings.bluetooth.Utils;
+import com.android.settings.overlay.FeatureFactory;
import com.android.settings.widget.SeekBarPreference;
+import com.android.settingslib.bluetooth.BluetoothUtils;
import com.android.settingslib.bluetooth.CachedBluetoothDevice;
+import com.android.settingslib.bluetooth.LocalBluetoothManager;
+import com.android.settingslib.bluetooth.VolumeControlProfile;
+import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
+import com.android.settingslib.utils.ThreadUtils;
public class AudioSharingDeviceVolumePreference extends SeekBarPreference {
+ private static final String TAG = "AudioSharingVolPref";
+
public static final int MIN_VOLUME = 0;
public static final int MAX_VOLUME = 255;
+ private final Context mContext;
private final CachedBluetoothDevice mCachedDevice;
@Nullable protected SeekBar mSeekBar;
+ private Boolean mTrackingTouch = false;
+ private MetricsFeatureProvider mMetricsFeatureProvider =
+ FeatureFactory.getFeatureFactory().getMetricsFeatureProvider();
public AudioSharingDeviceVolumePreference(
Context context, @NonNull CachedBluetoothDevice device) {
super(context);
setLayoutResource(R.layout.preference_volume_slider);
+ mContext = context;
mCachedDevice = device;
}
@@ -54,4 +73,95 @@
setMax(MAX_VOLUME);
setMin(MIN_VOLUME);
}
+
+ @Override
+ public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
+ super.onProgressChanged(seekBar, progress, fromUser);
+ // When user use talk back swipe up/down or use Switch Access to change the volume bar
+ // progress, there is no onStopTrackingTouch triggered. So we need to check this scenario
+ // and update the device volume here.
+ if (fromUser && !mTrackingTouch) {
+ Log.d(TAG, "onProgressChanged from user and not in touch, handleProgressChange.");
+ handleProgressChange(progress);
+ }
+ }
+
+ @Override
+ public void onStartTrackingTouch(SeekBar seekBar) {
+ mTrackingTouch = true;
+ super.onStartTrackingTouch(seekBar);
+ }
+
+ @Override
+ public void onStopTrackingTouch(SeekBar seekBar) {
+ mTrackingTouch = false;
+ super.onStopTrackingTouch(seekBar);
+ // When user touch the volume bar to change volume, we only update the device volume when
+ // user stop touching the bar.
+ Log.d(TAG, "onStopTrackingTouch, handleProgressChange.");
+ handleProgressChange(seekBar.getProgress());
+ }
+
+ private void handleProgressChange(int progress) {
+ var unused =
+ ThreadUtils.postOnBackgroundThread(
+ () -> {
+ int groupId = BluetoothUtils.getGroupId(mCachedDevice);
+ if (groupId != BluetoothCsipSetCoordinator.GROUP_ID_INVALID
+ && groupId
+ == BluetoothUtils.getPrimaryGroupIdForBroadcast(
+ mContext.getContentResolver())) {
+ // Set media stream volume for primary buds, audio manager will
+ // update all buds volume in the audio sharing.
+ setAudioManagerStreamVolume(progress);
+ } else {
+ // Set buds volume for other buds.
+ setDeviceVolume(mCachedDevice.getDevice(), progress);
+ }
+ });
+ }
+
+ private void setDeviceVolume(@Nullable BluetoothDevice device, int progress) {
+ if (device == null) {
+ Log.d(TAG, "Skip set device volume, device is null");
+ return;
+ }
+ LocalBluetoothManager btManager = Utils.getLocalBtManager(mContext);
+ VolumeControlProfile vc =
+ btManager == null ? null : btManager.getProfileManager().getVolumeControlProfile();
+ if (vc != null) {
+ vc.setDeviceVolume(device, progress, /* isGroupOp= */ true);
+ mMetricsFeatureProvider.action(
+ mContext,
+ SettingsEnums.ACTION_AUDIO_SHARING_CHANGE_MEDIA_DEVICE_VOLUME,
+ /* isPrimary= */ false);
+ Log.d(
+ TAG,
+ "set device volume, device = "
+ + device.getAnonymizedAddress()
+ + " volume = "
+ + progress);
+ }
+ }
+
+ private void setAudioManagerStreamVolume(int progress) {
+ int seekbarRange =
+ AudioSharingDeviceVolumePreference.MAX_VOLUME
+ - AudioSharingDeviceVolumePreference.MIN_VOLUME;
+ try {
+ AudioManager audioManager = mContext.getSystemService(AudioManager.class);
+ int streamVolumeRange =
+ audioManager.getStreamMaxVolume(AudioManager.STREAM_MUSIC)
+ - audioManager.getStreamMinVolume(AudioManager.STREAM_MUSIC);
+ int volume = Math.round((float) progress * streamVolumeRange / seekbarRange);
+ audioManager.setStreamVolume(AudioManager.STREAM_MUSIC, volume, 0);
+ mMetricsFeatureProvider.action(
+ mContext,
+ SettingsEnums.ACTION_AUDIO_SHARING_CHANGE_MEDIA_DEVICE_VOLUME,
+ /* isPrimary= */ true);
+ Log.d(TAG, "set music stream volume, volume = " + progress);
+ } catch (RuntimeException e) {
+ Log.e(TAG, "Fail to setAudioManagerStreamVolumeForFallbackDevice, error = " + e);
+ }
+ }
}
diff --git a/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDialogFragment.java b/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDialogFragment.java
index f00cf73..1ae541c 100644
--- a/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDialogFragment.java
+++ b/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDialogFragment.java
@@ -30,7 +30,11 @@
import androidx.fragment.app.FragmentManager;
import com.android.settings.R;
+import com.android.settings.bluetooth.BluetoothPairingDetail;
+import com.android.settings.connecteddevice.audiosharing.audiostreams.AudioStreamsQrCodeFragment;
+import com.android.settings.core.SubSettingLauncher;
import com.android.settings.core.instrumentation.InstrumentedDialogFragment;
+import com.android.settingslib.bluetooth.BluetoothUtils;
import com.google.common.collect.Iterables;
@@ -76,7 +80,7 @@
@NonNull List<AudioSharingDeviceItem> deviceItems,
@NonNull DialogEventListener listener,
@NonNull Pair<Integer, Object>[] eventData) {
- if (!AudioSharingUtils.isFeatureEnabled()) return;
+ if (!BluetoothUtils.isAudioSharingEnabled()) return;
final FragmentManager manager;
try {
manager = host.getChildFragmentManager();
@@ -129,9 +133,27 @@
builder.setTitle(R.string.audio_sharing_share_dialog_title)
.setCustomImage(R.drawable.audio_sharing_guidance)
.setCustomMessage(R.string.audio_sharing_dialog_connect_device_content)
- .setNegativeButton(
- R.string.audio_sharing_close_button_label,
- (dig, which) -> onCancelClick());
+ .setCustomPositiveButton(
+ R.string.audio_sharing_pair_button_label,
+ v -> {
+ dismiss();
+ new SubSettingLauncher(getContext())
+ .setDestination(BluetoothPairingDetail.class.getName())
+ .setSourceMetricsCategory(getMetricsCategory())
+ .launch();
+ logDialogPositiveBtnClick();
+ })
+ .setCustomNegativeButton(
+ R.string.audio_sharing_qrcode_button_label,
+ v -> {
+ dismiss();
+ new SubSettingLauncher(getContext())
+ .setTitleRes(R.string.audio_streams_qr_code_page_title)
+ .setDestination(AudioStreamsQrCodeFragment.class.getName())
+ .setSourceMetricsCategory(getMetricsCategory())
+ .launch();
+ logDialogNegativeBtnClick();
+ });
} else if (deviceItems.size() == 1) {
AudioSharingDeviceItem deviceItem = Iterables.getOnlyElement(deviceItems);
builder.setTitle(
@@ -144,11 +166,7 @@
v -> {
if (sListener != null) {
sListener.onItemClick(deviceItem);
- mMetricsFeatureProvider.action(
- getContext(),
- SettingsEnums
- .ACTION_AUDIO_SHARING_DIALOG_POSITIVE_BTN_CLICKED,
- sEventData);
+ logDialogPositiveBtnClick();
}
dismiss();
})
@@ -164,6 +182,7 @@
(AudioSharingDeviceItem item) -> {
if (sListener != null) {
sListener.onItemClick(item);
+ logDialogPositiveBtnClick();
}
dismiss();
},
@@ -177,11 +196,22 @@
private void onCancelClick() {
if (sListener != null) {
sListener.onCancelClick();
- mMetricsFeatureProvider.action(
- getContext(),
- SettingsEnums.ACTION_AUDIO_SHARING_DIALOG_NEGATIVE_BTN_CLICKED,
- sEventData);
+ logDialogNegativeBtnClick();
}
dismiss();
}
+
+ private void logDialogPositiveBtnClick() {
+ mMetricsFeatureProvider.action(
+ getContext(),
+ SettingsEnums.ACTION_AUDIO_SHARING_DIALOG_POSITIVE_BTN_CLICKED,
+ sEventData);
+ }
+
+ private void logDialogNegativeBtnClick() {
+ mMetricsFeatureProvider.action(
+ getContext(),
+ SettingsEnums.ACTION_AUDIO_SHARING_DIALOG_NEGATIVE_BTN_CLICKED,
+ sEventData);
+ }
}
diff --git a/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDialogHandler.java b/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDialogHandler.java
index 81d7979..14c19de 100644
--- a/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDialogHandler.java
+++ b/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDialogHandler.java
@@ -16,6 +16,8 @@
package com.android.settings.connecteddevice.audiosharing;
+import static java.util.stream.Collectors.toList;
+
import android.app.settings.SettingsEnums;
import android.bluetooth.BluetoothCsipSetCoordinator;
import android.bluetooth.BluetoothDevice;
@@ -38,6 +40,7 @@
import com.android.settings.overlay.FeatureFactory;
import com.android.settingslib.bluetooth.BluetoothUtils;
import com.android.settingslib.bluetooth.CachedBluetoothDevice;
+import com.android.settingslib.bluetooth.CachedBluetoothDeviceManager;
import com.android.settingslib.bluetooth.LocalBluetoothLeBroadcast;
import com.android.settingslib.bluetooth.LocalBluetoothLeBroadcastAssistant;
import com.android.settingslib.bluetooth.LocalBluetoothManager;
@@ -49,14 +52,14 @@
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
-import java.util.Objects;
import java.util.concurrent.Executor;
public class AudioSharingDialogHandler {
- private static final String TAG = "AudioSharingDialogHandler";
+ private static final String TAG = "AudioSharingDlgHandler";
private final Context mContext;
private final Fragment mHostFragment;
@Nullable private final LocalBluetoothManager mLocalBtManager;
+ @Nullable private final CachedBluetoothDeviceManager mDeviceManager;
@Nullable private final LocalBluetoothLeBroadcast mBroadcast;
@Nullable private final LocalBluetoothLeBroadcastAssistant mAssistant;
private final MetricsFeatureProvider mMetricsFeatureProvider;
@@ -163,6 +166,7 @@
mContext = context;
mHostFragment = fragment;
mLocalBtManager = Utils.getLocalBluetoothManager(context);
+ mDeviceManager = mLocalBtManager != null ? mLocalBtManager.getCachedDeviceManager() : null;
mBroadcast =
mLocalBtManager != null
? mLocalBtManager.getProfileManager().getLeAudioBroadcastProfile()
@@ -212,7 +216,7 @@
if (isBroadcasting) {
// Show stop audio sharing dialog when an ineligible (non LE audio) remote device
// connected during a sharing session.
- Map<Integer, List<CachedBluetoothDevice>> groupedDevices =
+ Map<Integer, List<BluetoothDevice>> groupedDevices =
AudioSharingUtils.fetchConnectedDevicesByGroupId(mLocalBtManager);
List<AudioSharingDeviceItem> deviceItemsInSharingSession =
AudioSharingUtils.buildOrderedConnectedLeadAudioSharingDeviceItem(
@@ -256,19 +260,19 @@
@NonNull CachedBluetoothDevice cachedDevice,
boolean isBroadcasting,
boolean userTriggered) {
- Map<Integer, List<CachedBluetoothDevice>> groupedDevices =
+ Map<Integer, List<BluetoothDevice>> groupedDevices =
AudioSharingUtils.fetchConnectedDevicesByGroupId(mLocalBtManager);
BluetoothDevice btDevice = cachedDevice.getDevice();
String deviceAddress = btDevice == null ? "" : btDevice.getAnonymizedAddress();
+ int groupId = BluetoothUtils.getGroupId(cachedDevice);
if (isBroadcasting) {
// If another device within the same is already in the sharing session, add source to
// the device automatically.
- int groupId = AudioSharingUtils.getGroupId(cachedDevice);
if (groupedDevices.containsKey(groupId)
&& groupedDevices.get(groupId).stream()
.anyMatch(
device ->
- BluetoothUtils.hasConnectedBroadcastSource(
+ BluetoothUtils.hasConnectedBroadcastSourceForBtDevice(
device, mLocalBtManager))) {
Log.d(
TAG,
@@ -352,14 +356,17 @@
} else {
// Build a list of AudioSharingDeviceItem for connected devices other than cachedDevice.
List<AudioSharingDeviceItem> deviceItems = new ArrayList<>();
- for (List<CachedBluetoothDevice> devices : groupedDevices.values()) {
+ for (Map.Entry<Integer, List<BluetoothDevice>> entry : groupedDevices.entrySet()) {
+ if (entry.getKey() == groupId) continue;
// Use random device in the group within the sharing session to represent the group.
- CachedBluetoothDevice device = devices.get(0);
- if (AudioSharingUtils.getGroupId(device)
- == AudioSharingUtils.getGroupId(cachedDevice)) {
- continue;
+ for (BluetoothDevice device : entry.getValue()) {
+ CachedBluetoothDevice cDevice =
+ mDeviceManager != null ? mDeviceManager.findDevice(device) : null;
+ if (cDevice != null) {
+ deviceItems.add(AudioSharingUtils.buildAudioSharingDeviceItem(cDevice));
+ break;
+ }
}
- deviceItems.add(AudioSharingUtils.buildAudioSharingDeviceItem(device));
}
// Show audio sharing join dialog when the second eligible (LE audio) remote
// device connect and no sharing session.
@@ -368,13 +375,10 @@
new AudioSharingJoinDialogFragment.DialogEventListener() {
@Override
public void onShareClick() {
- mTargetSinks = new ArrayList<>();
- for (List<CachedBluetoothDevice> devices :
- groupedDevices.values()) {
- for (CachedBluetoothDevice device : devices) {
- mTargetSinks.add(device.getDevice());
- }
- }
+ mTargetSinks =
+ groupedDevices.values().stream()
+ .flatMap(items -> items.stream())
+ .collect(toList());
Log.d(TAG, "Start broadcast with sinks = " + mTargetSinks.size());
if (mBroadcast != null) {
mBroadcast.startPrivateBroadcast();
@@ -435,7 +439,7 @@
/** Close opening dialogs for le audio device */
public void closeOpeningDialogsForLeaDevice(@NonNull CachedBluetoothDevice cachedDevice) {
if (mHostFragment == null) return;
- int groupId = AudioSharingUtils.getGroupId(cachedDevice);
+ int groupId = BluetoothUtils.getGroupId(cachedDevice);
List<Fragment> fragments;
try {
fragments = mHostFragment.getChildFragmentManager().getFragments();
@@ -447,7 +451,7 @@
CachedBluetoothDevice device = getCachedBluetoothDeviceFromDialog(fragment);
if (device != null
&& groupId != BluetoothCsipSetCoordinator.GROUP_ID_INVALID
- && AudioSharingUtils.getGroupId(device) == groupId) {
+ && BluetoothUtils.getGroupId(device) == groupId) {
Log.d(TAG, "Remove staled opening dialog for group " + groupId);
((DialogFragment) fragment).dismiss();
logDialogDismissEvent(fragment);
@@ -493,9 +497,9 @@
}
private void removeSourceForGroup(
- int groupId, Map<Integer, List<CachedBluetoothDevice>> groupedDevices) {
+ int groupId, Map<Integer, List<BluetoothDevice>> groupedDevices) {
if (mAssistant == null) {
- Log.d(TAG, "Fail to add source due to null profiles, group = " + groupId);
+ Log.d(TAG, "Fail to remove source due to null profiles, group = " + groupId);
return;
}
if (!groupedDevices.containsKey(groupId)) {
@@ -503,8 +507,6 @@
return;
}
groupedDevices.getOrDefault(groupId, ImmutableList.of()).stream()
- .map(CachedBluetoothDevice::getDevice)
- .filter(Objects::nonNull)
.forEach(
device -> {
for (BluetoothLeBroadcastReceiveState source :
@@ -515,7 +517,7 @@
}
private void addSourceForGroup(
- int groupId, Map<Integer, List<CachedBluetoothDevice>> groupedDevices) {
+ int groupId, Map<Integer, List<BluetoothDevice>> groupedDevices) {
if (mBroadcast == null || mAssistant == null) {
Log.d(TAG, "Fail to add source due to null profiles, group = " + groupId);
return;
@@ -525,8 +527,6 @@
return;
}
groupedDevices.getOrDefault(groupId, ImmutableList.of()).stream()
- .map(CachedBluetoothDevice::getDevice)
- .filter(Objects::nonNull)
.forEach(
device ->
mAssistant.addSource(
diff --git a/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDisconnectDialogFragment.java b/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDisconnectDialogFragment.java
index 66e327b..7d91644 100644
--- a/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDisconnectDialogFragment.java
+++ b/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDisconnectDialogFragment.java
@@ -32,6 +32,7 @@
import com.android.settings.R;
import com.android.settings.core.instrumentation.InstrumentedDialogFragment;
import com.android.settings.overlay.FeatureFactory;
+import com.android.settingslib.bluetooth.BluetoothUtils;
import com.android.settingslib.bluetooth.CachedBluetoothDevice;
import com.android.settingslib.utils.ThreadUtils;
@@ -83,7 +84,7 @@
@NonNull CachedBluetoothDevice newDevice,
@NonNull DialogEventListener listener,
@NonNull Pair<Integer, Object>[] eventData) {
- if (!AudioSharingUtils.isFeatureEnabled()) return;
+ if (!BluetoothUtils.isAudioSharingEnabled()) return;
final FragmentManager manager;
try {
manager = host.getChildFragmentManager();
@@ -93,8 +94,8 @@
}
AlertDialog dialog = AudioSharingDialogHelper.getDialogIfShowing(manager, TAG);
if (dialog != null) {
- int newGroupId = AudioSharingUtils.getGroupId(newDevice);
- if (sNewDevice != null && newGroupId == AudioSharingUtils.getGroupId(sNewDevice)) {
+ int newGroupId = BluetoothUtils.getGroupId(newDevice);
+ if (sNewDevice != null && newGroupId == BluetoothUtils.getGroupId(sNewDevice)) {
Log.d(
TAG,
String.format(
diff --git a/src/com/android/settings/connecteddevice/audiosharing/AudioSharingJoinDialogFragment.java b/src/com/android/settings/connecteddevice/audiosharing/AudioSharingJoinDialogFragment.java
index 9afa186..9571241 100644
--- a/src/com/android/settings/connecteddevice/audiosharing/AudioSharingJoinDialogFragment.java
+++ b/src/com/android/settings/connecteddevice/audiosharing/AudioSharingJoinDialogFragment.java
@@ -32,6 +32,7 @@
import com.android.settings.R;
import com.android.settings.bluetooth.Utils;
import com.android.settings.core.instrumentation.InstrumentedDialogFragment;
+import com.android.settingslib.bluetooth.BluetoothUtils;
import com.android.settingslib.bluetooth.CachedBluetoothDevice;
import java.util.List;
@@ -58,7 +59,7 @@
@Override
public int getMetricsCategory() {
- return AudioSharingUtils.isBroadcasting(Utils.getLocalBtManager(getContext()))
+ return BluetoothUtils.isBroadcasting(Utils.getLocalBtManager(getContext()))
? SettingsEnums.DIALOG_AUDIO_SHARING_ADD_DEVICE
: SettingsEnums.DIALOG_START_AUDIO_SHARING;
}
@@ -80,7 +81,7 @@
@NonNull CachedBluetoothDevice newDevice,
@NonNull DialogEventListener listener,
@NonNull Pair<Integer, Object>[] eventData) {
- if (!AudioSharingUtils.isFeatureEnabled()) return;
+ if (!BluetoothUtils.isAudioSharingEnabled()) return;
final FragmentManager manager;
try {
manager = host.getChildFragmentManager();
diff --git a/src/com/android/settings/connecteddevice/audiosharing/AudioSharingNamePreference.java b/src/com/android/settings/connecteddevice/audiosharing/AudioSharingNamePreference.java
index bfccdc4..0a90e7b 100644
--- a/src/com/android/settings/connecteddevice/audiosharing/AudioSharingNamePreference.java
+++ b/src/com/android/settings/connecteddevice/audiosharing/AudioSharingNamePreference.java
@@ -92,6 +92,8 @@
shareButton.setVisibility(View.VISIBLE);
shareButton.setImageDrawable(getContext().getDrawable(R.drawable.ic_qrcode_24dp));
shareButton.setOnClickListener(unused -> launchAudioSharingQrCodeFragment());
+ shareButton.setContentDescription(
+ getContext().getString(R.string.audio_sharing_qrcode_button_label));
}
private void configureInvisibleStateForQrCodeIcon(ImageButton shareButton, View divider) {
diff --git a/src/com/android/settings/connecteddevice/audiosharing/AudioSharingNamePreferenceController.java b/src/com/android/settings/connecteddevice/audiosharing/AudioSharingNamePreferenceController.java
index 894ba48..a1a9698 100644
--- a/src/com/android/settings/connecteddevice/audiosharing/AudioSharingNamePreferenceController.java
+++ b/src/com/android/settings/connecteddevice/audiosharing/AudioSharingNamePreferenceController.java
@@ -16,7 +16,7 @@
package com.android.settings.connecteddevice.audiosharing;
-import static com.android.settings.connecteddevice.audiosharing.AudioSharingUtils.isBroadcasting;
+import static com.android.settingslib.bluetooth.BluetoothUtils.isBroadcasting;
import android.app.settings.SettingsEnums;
import android.bluetooth.BluetoothLeBroadcast;
@@ -174,7 +174,7 @@
@Override
public int getAvailabilityStatus() {
- return AudioSharingUtils.isFeatureEnabled() ? AVAILABLE : UNSUPPORTED_ON_DEVICE;
+ return BluetoothUtils.isAudioSharingEnabled() ? AVAILABLE : UNSUPPORTED_ON_DEVICE;
}
@Override
diff --git a/src/com/android/settings/connecteddevice/audiosharing/AudioSharingPasswordPreferenceController.java b/src/com/android/settings/connecteddevice/audiosharing/AudioSharingPasswordPreferenceController.java
index 14930e1..9a27a93 100644
--- a/src/com/android/settings/connecteddevice/audiosharing/AudioSharingPasswordPreferenceController.java
+++ b/src/com/android/settings/connecteddevice/audiosharing/AudioSharingPasswordPreferenceController.java
@@ -16,7 +16,7 @@
package com.android.settings.connecteddevice.audiosharing;
-import static com.android.settings.connecteddevice.audiosharing.AudioSharingUtils.isBroadcasting;
+import static com.android.settingslib.bluetooth.BluetoothUtils.isBroadcasting;
import android.app.settings.SettingsEnums;
import android.content.ContentResolver;
@@ -39,6 +39,7 @@
import com.android.settings.core.BasePreferenceController;
import com.android.settings.overlay.FeatureFactory;
import com.android.settings.widget.ValidatedEditTextPreference;
+import com.android.settingslib.bluetooth.BluetoothUtils;
import com.android.settingslib.bluetooth.LocalBluetoothLeBroadcast;
import com.android.settingslib.bluetooth.LocalBluetoothManager;
import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
@@ -112,7 +113,7 @@
@Override
public int getAvailabilityStatus() {
- return AudioSharingUtils.isFeatureEnabled() ? AVAILABLE : UNSUPPORTED_ON_DEVICE;
+ return BluetoothUtils.isAudioSharingEnabled() ? AVAILABLE : UNSUPPORTED_ON_DEVICE;
}
@Override
diff --git a/src/com/android/settings/connecteddevice/audiosharing/AudioSharingPlaySoundPreferenceController.java b/src/com/android/settings/connecteddevice/audiosharing/AudioSharingPlaySoundPreferenceController.java
index 11b195c..59494db 100644
--- a/src/com/android/settings/connecteddevice/audiosharing/AudioSharingPlaySoundPreferenceController.java
+++ b/src/com/android/settings/connecteddevice/audiosharing/AudioSharingPlaySoundPreferenceController.java
@@ -33,6 +33,7 @@
import com.android.settings.R;
import com.android.settings.overlay.FeatureFactory;
+import com.android.settingslib.bluetooth.BluetoothUtils;
import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
public class AudioSharingPlaySoundPreferenceController
@@ -56,7 +57,7 @@
@Override
public int getAvailabilityStatus() {
- return (mRingtone != null && AudioSharingUtils.isFeatureEnabled())
+ return (mRingtone != null && BluetoothUtils.isAudioSharingEnabled())
? AVAILABLE
: UNSUPPORTED_ON_DEVICE;
}
diff --git a/src/com/android/settings/connecteddevice/audiosharing/AudioSharingPreferenceController.java b/src/com/android/settings/connecteddevice/audiosharing/AudioSharingPreferenceController.java
index 0244889..3c078ef 100644
--- a/src/com/android/settings/connecteddevice/audiosharing/AudioSharingPreferenceController.java
+++ b/src/com/android/settings/connecteddevice/audiosharing/AudioSharingPreferenceController.java
@@ -34,6 +34,7 @@
import com.android.settings.core.BasePreferenceController;
import com.android.settingslib.bluetooth.BluetoothCallback;
import com.android.settingslib.bluetooth.BluetoothEventManager;
+import com.android.settingslib.bluetooth.BluetoothUtils;
import com.android.settingslib.bluetooth.LocalBluetoothLeBroadcast;
import com.android.settingslib.bluetooth.LocalBluetoothManager;
import com.android.settingslib.utils.ThreadUtils;
@@ -134,12 +135,12 @@
@Override
public int getAvailabilityStatus() {
- return AudioSharingUtils.isFeatureEnabled() ? AVAILABLE : UNSUPPORTED_ON_DEVICE;
+ return BluetoothUtils.isAudioSharingEnabled() ? AVAILABLE : UNSUPPORTED_ON_DEVICE;
}
@Override
public CharSequence getSummary() {
- return AudioSharingUtils.isBroadcasting(mBtManager)
+ return BluetoothUtils.isBroadcasting(mBtManager)
? mContext.getString(R.string.audio_sharing_summary_on)
: mContext.getString(R.string.audio_sharing_summary_off);
}
diff --git a/src/com/android/settings/connecteddevice/audiosharing/AudioSharingReceiver.java b/src/com/android/settings/connecteddevice/audiosharing/AudioSharingReceiver.java
index 2b976d2..371613f 100644
--- a/src/com/android/settings/connecteddevice/audiosharing/AudioSharingReceiver.java
+++ b/src/com/android/settings/connecteddevice/audiosharing/AudioSharingReceiver.java
@@ -32,6 +32,7 @@
import com.android.settings.R;
import com.android.settings.bluetooth.Utils;
import com.android.settings.overlay.FeatureFactory;
+import com.android.settingslib.bluetooth.BluetoothUtils;
import com.android.settingslib.bluetooth.LocalBluetoothLeBroadcast;
import com.android.settingslib.bluetooth.LocalBluetoothManager;
import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
@@ -48,7 +49,7 @@
@Override
public void onReceive(Context context, Intent intent) {
- if (!AudioSharingUtils.isFeatureEnabled()) {
+ if (!BluetoothUtils.isAudioSharingEnabled()) {
Log.w(TAG, "Skip handling received intent, flag is off.");
return;
}
@@ -80,9 +81,15 @@
break;
case ACTION_LE_AUDIO_SHARING_STOP:
LocalBluetoothManager manager = Utils.getLocalBtManager(context);
- AudioSharingUtils.stopBroadcasting(manager);
- metricsFeatureProvider.action(
- context, SettingsEnums.ACTION_STOP_AUDIO_SHARING_FROM_NOTIFICATION);
+ if (BluetoothUtils.isBroadcasting(manager)) {
+ AudioSharingUtils.stopBroadcasting(manager);
+ metricsFeatureProvider.action(
+ context, SettingsEnums.ACTION_STOP_AUDIO_SHARING_FROM_NOTIFICATION);
+ } else {
+ cancelSharingNotification(context);
+ metricsFeatureProvider.action(
+ context, SettingsEnums.ACTION_CANCEL_AUDIO_SHARING_NOTIFICATION);
+ }
break;
default:
Log.w(TAG, "Received unexpected intent " + intent.getAction());
diff --git a/src/com/android/settings/connecteddevice/audiosharing/AudioSharingStopDialogFragment.java b/src/com/android/settings/connecteddevice/audiosharing/AudioSharingStopDialogFragment.java
index d026fa7..5b71f51 100644
--- a/src/com/android/settings/connecteddevice/audiosharing/AudioSharingStopDialogFragment.java
+++ b/src/com/android/settings/connecteddevice/audiosharing/AudioSharingStopDialogFragment.java
@@ -32,6 +32,7 @@
import com.android.settings.R;
import com.android.settings.core.instrumentation.InstrumentedDialogFragment;
import com.android.settings.overlay.FeatureFactory;
+import com.android.settingslib.bluetooth.BluetoothUtils;
import com.android.settingslib.bluetooth.CachedBluetoothDevice;
import com.android.settingslib.utils.ThreadUtils;
@@ -80,7 +81,7 @@
@NonNull CachedBluetoothDevice newDevice,
@NonNull DialogEventListener listener,
@NonNull Pair<Integer, Object>[] eventData) {
- if (!AudioSharingUtils.isFeatureEnabled()) return;
+ if (!BluetoothUtils.isAudioSharingEnabled()) return;
final FragmentManager manager;
try {
manager = host.getChildFragmentManager();
@@ -90,9 +91,9 @@
}
AlertDialog dialog = AudioSharingDialogHelper.getDialogIfShowing(manager, TAG);
if (dialog != null) {
- int newGroupId = AudioSharingUtils.getGroupId(newDevice);
+ int newGroupId = BluetoothUtils.getGroupId(newDevice);
if (sCachedDevice != null
- && newGroupId == AudioSharingUtils.getGroupId(sCachedDevice)) {
+ && newGroupId == BluetoothUtils.getGroupId(sCachedDevice)) {
Log.d(
TAG,
String.format(
diff --git a/src/com/android/settings/connecteddevice/audiosharing/AudioSharingSwitchBarController.java b/src/com/android/settings/connecteddevice/audiosharing/AudioSharingSwitchBarController.java
index 9705566..8396e48 100644
--- a/src/com/android/settings/connecteddevice/audiosharing/AudioSharingSwitchBarController.java
+++ b/src/com/android/settings/connecteddevice/audiosharing/AudioSharingSwitchBarController.java
@@ -23,7 +23,6 @@
import android.bluetooth.BluetoothLeBroadcastAssistant;
import android.bluetooth.BluetoothLeBroadcastMetadata;
import android.bluetooth.BluetoothLeBroadcastReceiveState;
-import android.bluetooth.BluetoothProfile;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
@@ -31,6 +30,9 @@
import android.util.FeatureFlagUtils;
import android.util.Log;
import android.util.Pair;
+import android.view.View;
+import android.view.ViewGroup;
+import android.view.accessibility.AccessibilityEvent;
import android.widget.CompoundButton;
import android.widget.CompoundButton.OnCheckedChangeListener;
@@ -45,7 +47,7 @@
import com.android.settings.core.BasePreferenceController;
import com.android.settings.overlay.FeatureFactory;
import com.android.settings.widget.SettingsMainSwitchBar;
-import com.android.settingslib.bluetooth.CachedBluetoothDevice;
+import com.android.settingslib.bluetooth.BluetoothUtils;
import com.android.settingslib.bluetooth.LocalBluetoothLeBroadcast;
import com.android.settingslib.bluetooth.LocalBluetoothLeBroadcastAssistant;
import com.android.settingslib.bluetooth.LocalBluetoothManager;
@@ -60,17 +62,15 @@
import java.util.List;
import java.util.Locale;
import java.util.Map;
-import java.util.Objects;
import java.util.concurrent.Executor;
import java.util.concurrent.Executors;
import java.util.concurrent.atomic.AtomicBoolean;
-import java.util.stream.Collectors;
public class AudioSharingSwitchBarController extends BasePreferenceController
implements DefaultLifecycleObserver,
- OnCheckedChangeListener,
- LocalBluetoothProfileManager.ServiceListener {
- private static final String TAG = "AudioSharingSwitchBarCtl";
+ OnCheckedChangeListener,
+ LocalBluetoothProfileManager.ServiceListener {
+ private static final String TAG = "AudioSharingSwitchCtlr";
private static final String PREF_KEY = "audio_sharing_main_switch";
interface OnAudioSharingStateChangedListener {
@@ -100,7 +100,7 @@
private final Executor mExecutor;
private final MetricsFeatureProvider mMetricsFeatureProvider;
private final OnAudioSharingStateChangedListener mListener;
- private Map<Integer, List<CachedBluetoothDevice>> mGroupedConnectedDevices = new HashMap<>();
+ private Map<Integer, List<BluetoothDevice>> mGroupedConnectedDevices = new HashMap<>();
private List<BluetoothDevice> mTargetActiveSinks = new ArrayList<>();
private List<AudioSharingDeviceItem> mDeviceItemsForSharing = new ArrayList<>();
@VisibleForTesting IntentFilter mIntentFilter;
@@ -284,6 +284,7 @@
: mProfileManager.getLeAudioBroadcastAssistantProfile();
mExecutor = Executors.newSingleThreadExecutor();
mMetricsFeatureProvider = FeatureFactory.getFeatureFactory().getMetricsFeatureProvider();
+ mSwitchBar.getRootView().setAccessibilityDelegate(new MainSwitchAccessibilityDelegate());
}
@Override
@@ -327,7 +328,7 @@
return;
}
mSwitchBar.setEnabled(false);
- boolean isBroadcasting = AudioSharingUtils.isBroadcasting(mBtManager);
+ boolean isBroadcasting = BluetoothUtils.isBroadcasting(mBtManager);
if (isChecked) {
if (isBroadcasting) {
Log.d(TAG, "Skip startAudioSharing, already broadcasting.");
@@ -337,12 +338,9 @@
// FeatureFlagUtils.SETTINGS_NEED_CONNECTED_BLE_DEVICE_FOR_BROADCAST is always true in
// prod. We can turn off the flag for debug purpose.
if (FeatureFlagUtils.isEnabled(
- mContext,
- FeatureFlagUtils.SETTINGS_NEED_CONNECTED_BLE_DEVICE_FOR_BROADCAST)
- && mAssistant
- .getDevicesMatchingConnectionStates(
- new int[] {BluetoothProfile.STATE_CONNECTED})
- .isEmpty()) {
+ mContext,
+ FeatureFlagUtils.SETTINGS_NEED_CONNECTED_BLE_DEVICE_FOR_BROADCAST)
+ && mAssistant.getAllConnectedDevices().isEmpty()) {
// Pop up dialog to ask users to connect at least one lea buds before audio sharing.
AudioSharingUtils.postOnMainThread(
mContext,
@@ -368,7 +366,7 @@
@Override
public int getAvailabilityStatus() {
- return AudioSharingUtils.isFeatureEnabled() ? AVAILABLE : UNSUPPORTED_ON_DEVICE;
+ return BluetoothUtils.isAudioSharingEnabled() ? AVAILABLE : UNSUPPORTED_ON_DEVICE;
}
@Override
@@ -453,13 +451,11 @@
mDeviceItemsForSharing = new ArrayList<>(deviceItems);
mTargetActiveSinks = new ArrayList<>();
if (!deviceItems.isEmpty() && deviceItems.get(0).isActive()) {
- for (CachedBluetoothDevice device :
+ // If active device exists for audio sharing, share to it
+ // automatically once the broadcast is started.
+ mTargetActiveSinks =
mGroupedConnectedDevices.getOrDefault(
- deviceItems.get(0).getGroupId(), ImmutableList.of())) {
- // If active device exists for audio sharing, share to it
- // automatically once the broadcast is started.
- mTargetActiveSinks.add(device.getDevice());
- }
+ deviceItems.get(0).getGroupId(), ImmutableList.of());
mDeviceItemsForSharing.remove(0);
}
if (mBroadcast != null) {
@@ -483,11 +479,11 @@
var unused =
ThreadUtils.postOnBackgroundThread(
() -> {
- boolean isBroadcasting = AudioSharingUtils.isBroadcasting(mBtManager);
+ boolean isBroadcasting = BluetoothUtils.isBroadcasting(mBtManager);
boolean isStateReady =
isBluetoothOn()
&& AudioSharingUtils.isAudioSharingProfileReady(
- mProfileManager);
+ mProfileManager);
AudioSharingUtils.postOnMainThread(
mContext,
() -> {
@@ -540,12 +536,8 @@
@Override
public void onItemClick(@NonNull AudioSharingDeviceItem item) {
AudioSharingUtils.addSourceToTargetSinks(
- mGroupedConnectedDevices
- .getOrDefault(item.getGroupId(), ImmutableList.of())
- .stream()
- .map(CachedBluetoothDevice::getDevice)
- .filter(Objects::nonNull)
- .collect(Collectors.toList()),
+ mGroupedConnectedDevices.getOrDefault(
+ item.getGroupId(), ImmutableList.of()),
mBtManager);
mGroupedConnectedDevices.clear();
mDeviceItemsForSharing.clear();
@@ -567,4 +559,19 @@
}
});
}
+
+ private static final class MainSwitchAccessibilityDelegate extends View.AccessibilityDelegate {
+ @Override
+ public boolean onRequestSendAccessibilityEvent(
+ @NonNull ViewGroup host, @NonNull View view, @NonNull AccessibilityEvent event) {
+ if (event.getEventType() == AccessibilityEvent.TYPE_WINDOW_CONTENT_CHANGED
+ && (event.getContentChangeTypes()
+ & AccessibilityEvent.CONTENT_CHANGE_TYPE_ENABLED)
+ != 0) {
+ Log.d(TAG, "Skip accessibility event for CONTENT_CHANGE_TYPE_ENABLED");
+ return false;
+ }
+ return super.onRequestSendAccessibilityEvent(host, view, event);
+ }
+ }
}
diff --git a/src/com/android/settings/connecteddevice/audiosharing/AudioSharingUtils.java b/src/com/android/settings/connecteddevice/audiosharing/AudioSharingUtils.java
index 29f605c..0c2dc36 100644
--- a/src/com/android/settings/connecteddevice/audiosharing/AudioSharingUtils.java
+++ b/src/com/android/settings/connecteddevice/audiosharing/AudioSharingUtils.java
@@ -22,14 +22,12 @@
import static com.android.settings.connecteddevice.audiosharing.AudioSharingUtils.MetricKey.METRIC_KEY_SOURCE_PAGE_ID;
import static com.android.settings.connecteddevice.audiosharing.AudioSharingUtils.MetricKey.METRIC_KEY_USER_TRIGGERED;
-import android.bluetooth.BluetoothAdapter;
+import static java.util.stream.Collectors.toList;
+
import android.bluetooth.BluetoothCsipSetCoordinator;
import android.bluetooth.BluetoothDevice;
import android.bluetooth.BluetoothLeBroadcastMetadata;
-import android.bluetooth.BluetoothProfile;
-import android.bluetooth.BluetoothStatusCodes;
import android.content.Context;
-import android.provider.Settings;
import android.util.Log;
import android.util.Pair;
import android.widget.Toast;
@@ -44,20 +42,17 @@
import com.android.settingslib.bluetooth.LocalBluetoothLeBroadcast;
import com.android.settingslib.bluetooth.LocalBluetoothLeBroadcastAssistant;
import com.android.settingslib.bluetooth.LocalBluetoothManager;
-import com.android.settingslib.bluetooth.LocalBluetoothProfile;
import com.android.settingslib.bluetooth.LocalBluetoothProfileManager;
import com.android.settingslib.bluetooth.VolumeControlProfile;
-import com.android.settingslib.flags.Flags;
import java.util.ArrayList;
+import java.util.Comparator;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
-import java.util.stream.Collectors;
+import java.util.Objects;
public class AudioSharingUtils {
- public static final String SETTINGS_KEY_FALLBACK_DEVICE_GROUP_ID =
- "bluetooth_le_broadcast_fallback_active_group_id";
private static final String TAG = "AudioSharingUtils";
private static final boolean DEBUG = BluetoothUtils.D;
@@ -70,15 +65,15 @@
}
/**
- * Fetch {@link CachedBluetoothDevice}s connected to the broadcast assistant. The devices are
- * grouped by CSIP group id.
+ * Fetch {@link BluetoothDevice}s connected to the broadcast assistant. The devices are grouped
+ * by CSIP group id.
*
* @param localBtManager The BT manager to provide BT functions.
* @return A map of connected devices grouped by CSIP group id.
*/
- public static Map<Integer, List<CachedBluetoothDevice>> fetchConnectedDevicesByGroupId(
+ public static Map<Integer, List<BluetoothDevice>> fetchConnectedDevicesByGroupId(
@Nullable LocalBluetoothManager localBtManager) {
- Map<Integer, List<CachedBluetoothDevice>> groupedDevices = new HashMap<>();
+ Map<Integer, List<BluetoothDevice>> groupedDevices = new HashMap<>();
if (localBtManager == null) {
Log.d(TAG, "Skip fetchConnectedDevicesByGroupId due to bt manager is null");
return groupedDevices;
@@ -89,9 +84,7 @@
Log.d(TAG, "Skip fetchConnectedDevicesByGroupId due to assistant profile is null");
return groupedDevices;
}
- List<BluetoothDevice> connectedDevices =
- assistant.getDevicesMatchingConnectionStates(
- new int[] {BluetoothProfile.STATE_CONNECTED});
+ List<BluetoothDevice> connectedDevices = assistant.getAllConnectedDevices();
CachedBluetoothDeviceManager cacheManager = localBtManager.getCachedDeviceManager();
for (BluetoothDevice device : connectedDevices) {
CachedBluetoothDevice cachedDevice = cacheManager.findDevice(device);
@@ -99,7 +92,7 @@
Log.d(TAG, "Skip device due to not being cached: " + device.getAnonymizedAddress());
continue;
}
- int groupId = getGroupId(cachedDevice);
+ int groupId = BluetoothUtils.getGroupId(cachedDevice);
if (groupId == BluetoothCsipSetCoordinator.GROUP_ID_INVALID) {
Log.d(
TAG,
@@ -109,7 +102,7 @@
if (!groupedDevices.containsKey(groupId)) {
groupedDevices.put(groupId, new ArrayList<>());
}
- groupedDevices.get(groupId).add(cachedDevice);
+ groupedDevices.get(groupId).add(device);
}
if (DEBUG) {
Log.d(TAG, "fetchConnectedDevicesByGroupId: " + groupedDevices);
@@ -132,11 +125,16 @@
*/
public static List<CachedBluetoothDevice> buildOrderedConnectedLeadDevices(
@Nullable LocalBluetoothManager localBtManager,
- Map<Integer, List<CachedBluetoothDevice>> groupedConnectedDevices,
+ Map<Integer, List<BluetoothDevice>> groupedConnectedDevices,
boolean filterByInSharing) {
List<CachedBluetoothDevice> orderedDevices = new ArrayList<>();
- for (List<CachedBluetoothDevice> devices : groupedConnectedDevices.values()) {
- CachedBluetoothDevice leadDevice = getLeadDevice(devices);
+ if (localBtManager == null) {
+ Log.d(TAG, "Skip buildOrderedConnectedLeadDevices due to bt manager is null");
+ return orderedDevices;
+ }
+ CachedBluetoothDeviceManager deviceManager = localBtManager.getCachedDeviceManager();
+ for (List<BluetoothDevice> devices : groupedConnectedDevices.values()) {
+ CachedBluetoothDevice leadDevice = getLeadDevice(deviceManager, devices);
if (leadDevice == null) {
Log.d(TAG, "Skip due to no lead device");
continue;
@@ -151,52 +149,39 @@
}
orderedDevices.add(leadDevice);
}
- orderedDevices.sort(
- (CachedBluetoothDevice d1, CachedBluetoothDevice d2) -> {
- // Active above not inactive
- int comparison =
- (isActiveLeAudioDevice(d2) ? 1 : 0)
- - (isActiveLeAudioDevice(d1) ? 1 : 0);
- if (comparison != 0) return comparison;
- // Bonded above not bonded
- comparison =
- (d2.getBondState() == BluetoothDevice.BOND_BONDED ? 1 : 0)
- - (d1.getBondState() == BluetoothDevice.BOND_BONDED ? 1 : 0);
- if (comparison != 0) return comparison;
- // Bond timestamp available above unavailable
- comparison =
- (d2.getBondTimestamp() != null ? 1 : 0)
- - (d1.getBondTimestamp() != null ? 1 : 0);
- if (comparison != 0) return comparison;
- // Order by bond timestamp if it is available
- // Otherwise order by device name
- return d1.getBondTimestamp() != null
- ? d1.getBondTimestamp().compareTo(d2.getBondTimestamp())
- : d1.getName().compareTo(d2.getName());
- });
+ orderedDevices.sort(sCachedDeviceComparator);
return orderedDevices;
}
/**
* Get the lead device from a list of devices with same group id.
*
+ * @param deviceManager CachedBluetoothDeviceManager
* @param devices A list of devices with same group id.
* @return The lead device
*/
@Nullable
public static CachedBluetoothDevice getLeadDevice(
- @NonNull List<CachedBluetoothDevice> devices) {
- if (devices.isEmpty()) return null;
- for (CachedBluetoothDevice device : devices) {
- if (!device.getMemberDevice().isEmpty()) {
- return device;
+ @Nullable CachedBluetoothDeviceManager deviceManager,
+ @NonNull List<BluetoothDevice> devices) {
+ if (deviceManager == null || devices.isEmpty()) return null;
+ List<CachedBluetoothDevice> cachedDevices =
+ devices.stream()
+ .map(device -> deviceManager.findDevice(device))
+ .filter(Objects::nonNull)
+ .collect(toList());
+ for (CachedBluetoothDevice cachedDevice : cachedDevices) {
+ if (!cachedDevice.getMemberDevice().isEmpty()) {
+ return cachedDevice;
}
}
- CachedBluetoothDevice leadDevice = devices.get(0);
+ CachedBluetoothDevice leadDevice = cachedDevices.isEmpty() ? null : cachedDevices.get(0);
Log.d(
TAG,
"No lead device in the group, pick arbitrary device as the lead: "
- + leadDevice.getDevice().getAnonymizedAddress());
+ + (leadDevice == null
+ ? "null"
+ : leadDevice.getDevice().getAnonymizedAddress()));
return leadDevice;
}
@@ -216,13 +201,13 @@
@NonNull
public static List<AudioSharingDeviceItem> buildOrderedConnectedLeadAudioSharingDeviceItem(
@Nullable LocalBluetoothManager localBtManager,
- Map<Integer, List<CachedBluetoothDevice>> groupedConnectedDevices,
+ Map<Integer, List<BluetoothDevice>> groupedConnectedDevices,
boolean filterByInSharing) {
return buildOrderedConnectedLeadDevices(
localBtManager, groupedConnectedDevices, filterByInSharing)
.stream()
.map(AudioSharingUtils::buildAudioSharingDeviceItem)
- .collect(Collectors.toList());
+ .collect(toList());
}
/** Build {@link AudioSharingDeviceItem} from {@link CachedBluetoothDevice}. */
@@ -230,7 +215,7 @@
CachedBluetoothDevice cachedDevice) {
return new AudioSharingDeviceItem(
cachedDevice.getName(),
- getGroupId(cachedDevice),
+ BluetoothUtils.getGroupId(cachedDevice),
isActiveLeAudioDevice(cachedDevice));
}
@@ -250,16 +235,6 @@
.execute(() -> Toast.makeText(context, message, Toast.LENGTH_LONG).show());
}
- /** Returns if the le audio sharing is enabled. */
- public static boolean isFeatureEnabled() {
- BluetoothAdapter adapter = BluetoothAdapter.getDefaultAdapter();
- return Flags.enableLeAudioSharing()
- && adapter.isLeAudioBroadcastSourceSupported()
- == BluetoothStatusCodes.FEATURE_SUPPORTED
- && adapter.isLeAudioBroadcastAssistantSupported()
- == BluetoothStatusCodes.FEATURE_SUPPORTED;
- }
-
/** Add source to target sinks. */
public static void addSourceToTargetSinks(
List<BluetoothDevice> sinks, @Nullable LocalBluetoothManager localBtManager) {
@@ -289,9 +264,7 @@
Log.d(TAG, "skip addSourceToTargetDevices: There is no broadcastMetadata.");
return;
}
- List<BluetoothDevice> connectedDevices =
- assistant.getDevicesMatchingConnectionStates(
- new int[] {BluetoothProfile.STATE_CONNECTED});
+ List<BluetoothDevice> connectedDevices = assistant.getAllConnectedDevices();
for (BluetoothDevice sink : sinks) {
if (connectedDevices.contains(sink)) {
Log.d(
@@ -312,14 +285,6 @@
}
}
- /** Returns if the broadcast is on-going. */
- public static boolean isBroadcasting(@Nullable LocalBluetoothManager manager) {
- if (manager == null) return false;
- LocalBluetoothLeBroadcast broadcast =
- manager.getProfileManager().getLeAudioBroadcastProfile();
- return broadcast != null && broadcast.isEnabled(null);
- }
-
/** Stops the latest broadcast. */
public static void stopBroadcasting(@Nullable LocalBluetoothManager manager) {
if (manager == null) {
@@ -335,37 +300,6 @@
}
}
- /**
- * Get CSIP group id for {@link CachedBluetoothDevice}.
- *
- * <p>If CachedBluetoothDevice#getGroupId is invalid, fetch group id from
- * LeAudioProfile#getGroupId.
- */
- public static int getGroupId(CachedBluetoothDevice cachedDevice) {
- int groupId = cachedDevice.getGroupId();
- String anonymizedAddress = cachedDevice.getDevice().getAnonymizedAddress();
- if (groupId != BluetoothCsipSetCoordinator.GROUP_ID_INVALID) {
- Log.d(TAG, "getGroupId by CSIP profile for device: " + anonymizedAddress);
- return groupId;
- }
- for (LocalBluetoothProfile profile : cachedDevice.getProfiles()) {
- if (profile instanceof LeAudioProfile) {
- Log.d(TAG, "getGroupId by LEA profile for device: " + anonymizedAddress);
- return ((LeAudioProfile) profile).getGroupId(cachedDevice.getDevice());
- }
- }
- Log.d(TAG, "getGroupId return invalid id for device: " + anonymizedAddress);
- return BluetoothCsipSetCoordinator.GROUP_ID_INVALID;
- }
-
- /** Get the fallback active group id from SettingsProvider. */
- public static int getFallbackActiveGroupId(@NonNull Context context) {
- return Settings.Secure.getInt(
- context.getContentResolver(),
- SETTINGS_KEY_FALLBACK_DEVICE_GROUP_ID,
- BluetoothCsipSetCoordinator.GROUP_ID_INVALID);
- }
-
/** Post the runnable to main thread. */
public static void postOnMainThread(@NonNull Context context, @NonNull Runnable runnable) {
context.getMainExecutor().execute(runnable);
@@ -422,4 +356,27 @@
Pair.create(METRIC_KEY_CANDIDATE_DEVICE_COUNT.ordinal(), candidateDeviceCount)
};
}
+
+ private static final Comparator<CachedBluetoothDevice> sCachedDeviceComparator =
+ (CachedBluetoothDevice d1, CachedBluetoothDevice d2) -> {
+ // Active above not inactive
+ int comparison =
+ (isActiveLeAudioDevice(d2) ? 1 : 0) - (isActiveLeAudioDevice(d1) ? 1 : 0);
+ if (comparison != 0) return comparison;
+ // Bonded above not bonded
+ comparison =
+ (d2.getBondState() == BluetoothDevice.BOND_BONDED ? 1 : 0)
+ - (d1.getBondState() == BluetoothDevice.BOND_BONDED ? 1 : 0);
+ if (comparison != 0) return comparison;
+ // Bond timestamp available above unavailable
+ comparison =
+ (d2.getBondTimestamp() != null ? 1 : 0)
+ - (d1.getBondTimestamp() != null ? 1 : 0);
+ if (comparison != 0) return comparison;
+ // Order by bond timestamp if it is available
+ // Otherwise order by device name
+ return d1.getBondTimestamp() != null
+ ? d1.getBondTimestamp().compareTo(d2.getBondTimestamp())
+ : d1.getName().compareTo(d2.getName());
+ };
}
diff --git a/src/com/android/settings/connecteddevice/audiosharing/StreamSettingsCategoryController.java b/src/com/android/settings/connecteddevice/audiosharing/StreamSettingsCategoryController.java
index e9953a5..40f86d0 100644
--- a/src/com/android/settings/connecteddevice/audiosharing/StreamSettingsCategoryController.java
+++ b/src/com/android/settings/connecteddevice/audiosharing/StreamSettingsCategoryController.java
@@ -33,6 +33,7 @@
import com.android.settings.bluetooth.Utils;
import com.android.settings.core.BasePreferenceController;
+import com.android.settingslib.bluetooth.BluetoothUtils;
import com.android.settingslib.bluetooth.LocalBluetoothManager;
import com.android.settingslib.bluetooth.LocalBluetoothProfileManager;
@@ -90,7 +91,7 @@
@Override
public int getAvailabilityStatus() {
- return AudioSharingUtils.isFeatureEnabled() ? AVAILABLE : UNSUPPORTED_ON_DEVICE;
+ return BluetoothUtils.isAudioSharingEnabled() ? AVAILABLE : UNSUPPORTED_ON_DEVICE;
}
@Override
diff --git a/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamConfirmDialog.java b/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamConfirmDialog.java
index 148c776..4c17a7c 100644
--- a/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamConfirmDialog.java
+++ b/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamConfirmDialog.java
@@ -23,7 +23,6 @@
import android.app.settings.SettingsEnums;
import android.bluetooth.BluetoothDevice;
import android.bluetooth.BluetoothLeBroadcastMetadata;
-import android.bluetooth.BluetoothProfile;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
@@ -36,10 +35,10 @@
import com.android.settings.R;
import com.android.settings.bluetooth.Utils;
import com.android.settings.connecteddevice.ConnectedDeviceDashboardFragment;
-import com.android.settings.connecteddevice.audiosharing.AudioSharingUtils;
import com.android.settings.core.SubSettingLauncher;
import com.android.settings.core.instrumentation.InstrumentedDialogFragment;
import com.android.settingslib.bluetooth.BluetoothLeBroadcastMetadataExt;
+import com.android.settingslib.bluetooth.BluetoothUtils;
import com.android.settingslib.bluetooth.LocalBluetoothLeBroadcastAssistant;
public class AudioStreamConfirmDialog extends InstrumentedDialogFragment {
@@ -211,7 +210,7 @@
}
private int getDialogId(boolean hasMetadata, boolean hasConnectedDevice) {
- if (!AudioSharingUtils.isFeatureEnabled()) {
+ if (!BluetoothUtils.isAudioSharingEnabled()) {
return SettingsEnums.DIALOG_AUDIO_STREAM_CONFIRM_FEATURE_UNSUPPORTED;
}
if (!hasConnectedDevice) {
@@ -233,9 +232,7 @@
if (assistant == null) {
return null;
}
- var devices =
- assistant.getDevicesMatchingConnectionStates(
- new int[] {BluetoothProfile.STATE_CONNECTED});
+ var devices = assistant.getAllConnectedDevices();
return devices.isEmpty() ? null : devices.get(0);
}
diff --git a/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamConfirmDialogActivity.java b/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamConfirmDialogActivity.java
index 88e2322..3437524 100644
--- a/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamConfirmDialogActivity.java
+++ b/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamConfirmDialogActivity.java
@@ -25,6 +25,7 @@
import com.android.settings.SettingsActivity;
import com.android.settings.bluetooth.Utils;
import com.android.settings.connecteddevice.audiosharing.AudioSharingUtils;
+import com.android.settingslib.bluetooth.BluetoothUtils;
import com.android.settingslib.bluetooth.LocalBluetoothProfileManager;
public class AudioStreamConfirmDialogActivity extends SettingsActivity
@@ -49,7 +50,7 @@
@Override
protected void createUiFromIntent(@Nullable Bundle savedState, Intent intent) {
- if (AudioSharingUtils.isFeatureEnabled()
+ if (BluetoothUtils.isAudioSharingEnabled()
&& !AudioSharingUtils.isAudioSharingProfileReady(mProfileManager)) {
Log.d(TAG, "createUiFromIntent() : supported but not ready, skip createUiFromIntent");
mSavedState = savedState;
@@ -66,7 +67,7 @@
@Override
public void onStart() {
- if (AudioSharingUtils.isFeatureEnabled()
+ if (BluetoothUtils.isAudioSharingEnabled()
&& !AudioSharingUtils.isAudioSharingProfileReady(mProfileManager)) {
Log.d(TAG, "onStart() : supported but not ready, listen to service ready");
if (mProfileManager != null) {
@@ -86,7 +87,7 @@
@Override
public void onServiceConnected() {
- if (AudioSharingUtils.isFeatureEnabled()
+ if (BluetoothUtils.isAudioSharingEnabled()
&& AudioSharingUtils.isAudioSharingProfileReady(mProfileManager)) {
if (mProfileManager != null) {
mProfileManager.removeServiceListener(this);
diff --git a/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamMediaService.java b/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamMediaService.java
index ad358ed..d5be2bb 100644
--- a/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamMediaService.java
+++ b/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamMediaService.java
@@ -43,9 +43,9 @@
import com.android.settings.R;
import com.android.settings.bluetooth.Utils;
-import com.android.settings.connecteddevice.audiosharing.AudioSharingUtils;
import com.android.settings.overlay.FeatureFactory;
import com.android.settingslib.bluetooth.BluetoothCallback;
+import com.android.settingslib.bluetooth.BluetoothUtils;
import com.android.settingslib.bluetooth.CachedBluetoothDevice;
import com.android.settingslib.bluetooth.CachedBluetoothDeviceManager;
import com.android.settingslib.bluetooth.LocalBluetoothLeBroadcastAssistant;
@@ -122,7 +122,7 @@
@Override
public void onCreate() {
- if (!AudioSharingUtils.isFeatureEnabled()) {
+ if (!BluetoothUtils.isAudioSharingEnabled()) {
return;
}
@@ -172,7 +172,7 @@
public void onDestroy() {
Log.d(TAG, "onDestroy()");
super.onDestroy();
- if (!AudioSharingUtils.isFeatureEnabled()) {
+ if (!BluetoothUtils.isAudioSharingEnabled()) {
return;
}
if (mLocalBtManager != null) {
diff --git a/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamPreference.java b/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamPreference.java
index 071cf57..175e037 100644
--- a/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamPreference.java
+++ b/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamPreference.java
@@ -43,23 +43,12 @@
* Update preference UI based on connection status
*
* @param isConnected Is this stream connected
- * @param summary Summary text
- * @param onPreferenceClickListener Click listener for the preference
*/
- void setIsConnected(
- boolean isConnected,
- String summary,
- @Nullable OnPreferenceClickListener onPreferenceClickListener) {
- if (mIsConnected == isConnected
- && getSummary() == summary
- && getOnPreferenceClickListener() == onPreferenceClickListener) {
- // Nothing to update.
- return;
+ void setIsConnected(boolean isConnected) {
+ if (mIsConnected != isConnected) {
+ mIsConnected = isConnected;
+ notifyChanged();
}
- mIsConnected = isConnected;
- setSummary(summary);
- setOnPreferenceClickListener(onPreferenceClickListener);
- notifyChanged();
}
@VisibleForTesting
diff --git a/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamStateHandler.java b/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamStateHandler.java
index 4bb8475..758984f 100644
--- a/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamStateHandler.java
+++ b/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamStateHandler.java
@@ -16,8 +16,12 @@
package com.android.settings.connecteddevice.audiosharing.audiostreams;
+import static android.text.Spanned.SPAN_EXCLUSIVE_INCLUSIVE;
+
import android.os.Handler;
import android.os.Looper;
+import android.text.SpannableString;
+import android.text.style.ForegroundColorSpan;
import android.util.Log;
import androidx.annotation.Nullable;
@@ -26,6 +30,7 @@
import androidx.preference.Preference;
import com.android.settings.overlay.FeatureFactory;
+import com.android.settingslib.Utils;
import com.android.settingslib.bluetooth.BluetoothUtils;
import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
import com.android.settingslib.utils.ThreadUtils;
@@ -68,15 +73,31 @@
// Update UI
ThreadUtils.postOnMainThread(
- () ->
- preference.setIsConnected(
- newState
- == AudioStreamsProgressCategoryController.AudioStreamState
- .SOURCE_ADDED,
- getSummary() != EMPTY_STRING_RES
- ? preference.getContext().getString(getSummary())
- : "",
- getOnClickListener(controller)));
+ () -> {
+ String summary =
+ getSummary() != EMPTY_STRING_RES
+ ? preference.getContext().getString(getSummary())
+ : "";
+ if (newState
+ == AudioStreamsProgressCategoryController.AudioStreamState
+ .ADD_SOURCE_BAD_CODE) {
+ SpannableString summarySpan = new SpannableString(summary);
+ int colorError = Utils.getColorErrorDefaultColor(preference.getContext());
+ summarySpan.setSpan(
+ new ForegroundColorSpan(colorError),
+ 0,
+ summary.length(),
+ SPAN_EXCLUSIVE_INCLUSIVE);
+ preference.setSummary(summarySpan);
+ } else {
+ preference.setSummary(summary);
+ }
+ preference.setIsConnected(
+ newState
+ == AudioStreamsProgressCategoryController.AudioStreamState
+ .SOURCE_ADDED);
+ preference.setOnPreferenceClickListener(getOnClickListener(controller));
+ });
}
/**
diff --git a/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamsHelper.java b/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamsHelper.java
index 6e335a0..c219e0b 100644
--- a/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamsHelper.java
+++ b/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamsHelper.java
@@ -26,13 +26,15 @@
import android.bluetooth.BluetoothLeAudioContentMetadata;
import android.bluetooth.BluetoothLeBroadcastMetadata;
import android.bluetooth.BluetoothLeBroadcastReceiveState;
-import android.bluetooth.BluetoothProfile;
import android.content.Context;
import android.content.Intent;
+import android.content.res.Configuration;
import android.util.Log;
import androidx.annotation.VisibleForTesting;
+import androidx.fragment.app.FragmentActivity;
+import com.android.settings.R;
import com.android.settings.connecteddevice.audiosharing.AudioSharingUtils;
import com.android.settingslib.bluetooth.BluetoothUtils;
import com.android.settingslib.bluetooth.CachedBluetoothDevice;
@@ -41,6 +43,7 @@
import com.android.settingslib.bluetooth.LocalBluetoothProfileManager;
import com.android.settingslib.utils.ThreadUtils;
+import com.google.android.material.appbar.AppBarLayout;
import com.google.common.base.Strings;
import java.util.ArrayList;
@@ -277,9 +280,7 @@
Log.w(TAG, "getConnectedBluetoothDevices(): LeBroadcastAssistant is null!");
return emptyList();
}
- List<BluetoothDevice> connectedDevices =
- leBroadcastAssistant.getDevicesMatchingConnectionStates(
- new int[] {BluetoothProfile.STATE_CONNECTED});
+ List<BluetoothDevice> connectedDevices = leBroadcastAssistant.getAllConnectedDevices();
Optional<CachedBluetoothDevice> cachedBluetoothDevice =
inSharingOnly
? getCachedBluetoothDeviceInSharing(manager)
@@ -349,4 +350,16 @@
intent.putParcelableArrayListExtra(DEVICES, new ArrayList<>(devices));
context.startService(intent);
}
+
+ static void configureAppBarByOrientation(@Nullable FragmentActivity activity) {
+ if (activity != null) {
+ AppBarLayout appBarLayout = activity.findViewById(R.id.app_bar);
+ if (appBarLayout != null) {
+ boolean canAppBarExpand =
+ activity.getResources().getConfiguration().orientation
+ == Configuration.ORIENTATION_PORTRAIT;
+ appBarLayout.setExpanded(canAppBarExpand);
+ }
+ }
+ }
}
diff --git a/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamsQrCodeFragment.java b/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamsQrCodeFragment.java
index e4c0794..3c362c0 100644
--- a/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamsQrCodeFragment.java
+++ b/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamsQrCodeFragment.java
@@ -55,12 +55,14 @@
@Override
public final View onCreateView(
LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
- return inflater.inflate(R.xml.bluetooth_audio_streams_qr_code, container, false);
+ return inflater.inflate(R.layout.bluetooth_audio_streams_qr_code, container, false);
}
@Override
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
+ // Collapse or expand the app bar based on orientation for better display the qr code image.
+ AudioStreamsHelper.configureAppBarByOrientation(getActivity());
var unused = ThreadUtils.postOnBackgroundThread(
() -> {
BluetoothLeBroadcastMetadata broadcastMetadata = getBroadcastMetadata();
diff --git a/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamsQrCodeScanFragment.java b/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamsQrCodeScanFragment.java
index 8df4317..76854a4 100644
--- a/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamsQrCodeScanFragment.java
+++ b/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamsQrCodeScanFragment.java
@@ -116,6 +116,8 @@
@Override
public final View onCreateView(
LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
+ // Collapse or expand the app bar based on orientation for better display the qr camera.
+ AudioStreamsHelper.configureAppBarByOrientation(getActivity());
return inflater.inflate(
R.layout.qrcode_scanner_fragment, container, /* attachToRoot */ false);
}
diff --git a/src/com/android/settings/connecteddevice/display/ExternalDisplayPreferenceFragment.java b/src/com/android/settings/connecteddevice/display/ExternalDisplayPreferenceFragment.java
index 09f8e92..7b5bef6 100644
--- a/src/com/android/settings/connecteddevice/display/ExternalDisplayPreferenceFragment.java
+++ b/src/com/android/settings/connecteddevice/display/ExternalDisplayPreferenceFragment.java
@@ -48,9 +48,6 @@
import com.android.settings.connecteddevice.display.ExternalDisplaySettingsConfiguration.DisplayListener;
import com.android.settings.connecteddevice.display.ExternalDisplaySettingsConfiguration.Injector;
import com.android.settings.core.SubSettingLauncher;
-import com.android.settings.search.BaseSearchIndexProvider;
-import com.android.settingslib.search.Indexable;
-import com.android.settingslib.search.SearchIndexable;
import com.android.settingslib.widget.FooterPreference;
import com.android.settingslib.widget.IllustrationPreference;
import com.android.settingslib.widget.MainSwitchPreference;
@@ -63,12 +60,8 @@
/**
* The Settings screen for External Displays configuration and connection management.
*/
-@SearchIndexable(forTarget = SearchIndexable.ALL & ~SearchIndexable.ARC)
-public class ExternalDisplayPreferenceFragment extends SettingsPreferenceFragmentBase
- implements Indexable {
+public class ExternalDisplayPreferenceFragment extends SettingsPreferenceFragmentBase {
static final int EXTERNAL_DISPLAY_SETTINGS_RESOURCE = R.xml.external_display_settings;
- public static final BaseSearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
- new BaseSearchIndexProvider(EXTERNAL_DISPLAY_SETTINGS_RESOURCE);
static final String DISPLAYS_LIST_PREFERENCE_KEY = "displays_list_preference";
static final String EXTERNAL_DISPLAY_USE_PREFERENCE_KEY = "external_display_use_preference";
static final String EXTERNAL_DISPLAY_ROTATION_KEY = "external_display_rotation";
@@ -77,7 +70,7 @@
R.string.external_display_change_resolution_footer_title;
static final int EXTERNAL_DISPLAY_LANDSCAPE_DRAWABLE =
R.drawable.external_display_mirror_landscape;
- static final int EXTERANAL_DISPLAY_TITLE_RESOURCE =
+ static final int EXTERNAL_DISPLAY_TITLE_RESOURCE =
R.string.external_display_settings_title;
static final int EXTERNAL_DISPLAY_USE_TITLE_RESOURCE =
R.string.external_display_use_title;
@@ -332,7 +325,7 @@
return;
}
}
- activity.setTitle(EXTERANAL_DISPLAY_TITLE_RESOURCE);
+ activity.setTitle(EXTERNAL_DISPLAY_TITLE_RESOURCE);
}
private void showTextWhenNoDisplaysToShow(@NonNull final PreferenceScreen screen,
diff --git a/src/com/android/settings/connecteddevice/display/ExternalDisplaySettingsConfiguration.java b/src/com/android/settings/connecteddevice/display/ExternalDisplaySettingsConfiguration.java
index 89d464c..c9ea8ae 100644
--- a/src/com/android/settings/connecteddevice/display/ExternalDisplaySettingsConfiguration.java
+++ b/src/com/android/settings/connecteddevice/display/ExternalDisplaySettingsConfiguration.java
@@ -23,6 +23,8 @@
import static android.hardware.display.DisplayManager.EVENT_FLAG_DISPLAY_REMOVED;
import static android.view.Display.INVALID_DISPLAY;
+import static com.android.server.display.feature.flags.Flags.enableModeLimitForExternalDisplay;
+
import android.content.Context;
import android.hardware.display.DisplayManager;
import android.hardware.display.DisplayManagerGlobal;
@@ -271,6 +273,13 @@
public void setUserPreferredDisplayMode(int displayId, @NonNull Mode mode) {
DisplayManagerGlobal.getInstance().setUserPreferredDisplayMode(displayId, mode);
}
+
+ /**
+ * @return true if the display mode limit flag enabled.
+ */
+ public boolean isModeLimitForExternalDisplayEnabled() {
+ return enableModeLimitForExternalDisplay();
+ }
}
public abstract static class DisplayListener implements DisplayManager.DisplayListener {
diff --git a/src/com/android/settings/connecteddevice/display/ResolutionPreferenceFragment.java b/src/com/android/settings/connecteddevice/display/ResolutionPreferenceFragment.java
index 10314cb..db81be8 100644
--- a/src/com/android/settings/connecteddevice/display/ResolutionPreferenceFragment.java
+++ b/src/com/android/settings/connecteddevice/display/ResolutionPreferenceFragment.java
@@ -52,7 +52,7 @@
import java.util.HashSet;
public class ResolutionPreferenceFragment extends SettingsPreferenceFragmentBase {
- private static final String TAG = "ResolutionPreferenceFragment";
+ private static final String TAG = "ResolutionPreference";
static final int DEFAULT_LOW_REFRESH_RATE = 60;
static final String MORE_OPTIONS_KEY = "more_options";
static final String TOP_OPTIONS_KEY = "top_options";
@@ -60,6 +60,8 @@
R.string.external_display_more_options_title;
static final int EXTERNAL_DISPLAY_RESOLUTION_SETTINGS_RESOURCE =
R.xml.external_display_resolution_settings;
+ static final String DISPLAY_MODE_LIMIT_OVERRIDE_PROP = "persist.sys.com.android.server.display"
+ + ".feature.flags.enable_mode_limit_for_external_display-override";
@Nullable
private Injector mInjector;
@Nullable
@@ -323,16 +325,29 @@
}
}
+ private boolean isDisplayResolutionLimitEnabled() {
+ if (mInjector == null) {
+ return false;
+ }
+ var flagOverride = mInjector.getSystemProperty(DISPLAY_MODE_LIMIT_OVERRIDE_PROP);
+ var isOverrideEnabled = "true".equals(flagOverride);
+ var isOverrideEnabledOrNotSet = !"false".equals(flagOverride);
+ return (mInjector.isModeLimitForExternalDisplayEnabled() && isOverrideEnabledOrNotSet)
+ || isOverrideEnabled;
+ }
+
private void updateDisplayModeLimits(@Nullable Context context) {
if (context == null) {
return;
}
mExternalDisplayPeakRefreshRate = getResources(context).getInteger(
com.android.internal.R.integer.config_externalDisplayPeakRefreshRate);
- mExternalDisplayPeakWidth = getResources(context).getInteger(
+ if (isDisplayResolutionLimitEnabled()) {
+ mExternalDisplayPeakWidth = getResources(context).getInteger(
com.android.internal.R.integer.config_externalDisplayPeakWidth);
- mExternalDisplayPeakHeight = getResources(context).getInteger(
+ mExternalDisplayPeakHeight = getResources(context).getInteger(
com.android.internal.R.integer.config_externalDisplayPeakHeight);
+ }
mRefreshRateSynchronizationEnabled = getResources(context).getBoolean(
com.android.internal.R.bool.config_refreshRateSynchronizationEnabled);
Log.d(TAG, "mExternalDisplayPeakRefreshRate=" + mExternalDisplayPeakRefreshRate);
diff --git a/src/com/android/settings/core/BasePreferenceController.java b/src/com/android/settings/core/BasePreferenceController.java
index 5763d3b..3f91fb7 100644
--- a/src/com/android/settings/core/BasePreferenceController.java
+++ b/src/com/android/settings/core/BasePreferenceController.java
@@ -263,6 +263,16 @@
|| availabilityStatus == DISABLED_DEPENDENT_SETTING);
}
+ private boolean isAvailableForSearch() {
+ if (mIsForWork && mWorkProfileUser == null) {
+ return false;
+ }
+
+ final int availabilityStatus = getAvailabilityStatus();
+ return (availabilityStatus == AVAILABLE
+ || availabilityStatus == DISABLED_DEPENDENT_SETTING);
+ }
+
/**
* @return {@code false} if the setting is not applicable to the device. This covers both
* settings which were only introduced in future versions of android, or settings that have
@@ -303,18 +313,12 @@
* Called by SearchIndexProvider#getNonIndexableKeys
*/
public void updateNonIndexableKeys(List<String> keys) {
- final boolean shouldSuppressFromSearch = !isAvailable()
- || getAvailabilityStatus() == AVAILABLE_UNSEARCHABLE;
- if (shouldSuppressFromSearch) {
- final String key = getPreferenceKey();
- if (TextUtils.isEmpty(key)) {
- Log.w(TAG, "Skipping updateNonIndexableKeys due to empty key " + toString());
- return;
- }
- if (keys.contains(key)) {
- Log.w(TAG, "Skipping updateNonIndexableKeys, key already in list. " + toString());
- return;
- }
+ final String key = getPreferenceKey();
+ if (TextUtils.isEmpty(key)) {
+ Log.w(TAG, "Skipping updateNonIndexableKeys due to empty key " + this);
+ return;
+ }
+ if (!keys.contains(key) && !isAvailableForSearch()) {
keys.add(key);
}
}
diff --git a/src/com/android/settings/datausage/DataSaverSummary.kt b/src/com/android/settings/datausage/DataSaverSummary.kt
index cdd46f2..e118bd6 100644
--- a/src/com/android/settings/datausage/DataSaverSummary.kt
+++ b/src/com/android/settings/datausage/DataSaverSummary.kt
@@ -19,6 +19,7 @@
import android.content.Context
import android.os.Bundle
import android.telephony.SubscriptionManager
+import android.view.View
import com.android.settings.R
import com.android.settings.SettingsActivity
import com.android.settings.dashboard.DashboardFragment
@@ -45,8 +46,8 @@
dataSaverBackend = DataSaverBackend(requireContext())
}
- override fun onActivityCreated(savedInstanceState: Bundle?) {
- super.onActivityCreated(savedInstanceState)
+ override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
+ super.onViewCreated(view, savedInstanceState)
switchBar = (activity as SettingsActivity).switchBar.apply {
setTitle(getString(R.string.data_saver_switch_title))
show()
diff --git a/src/com/android/settings/datausage/lib/AppDataUsageRepository.kt b/src/com/android/settings/datausage/lib/AppDataUsageRepository.kt
index 0055463..6ed9f7c 100644
--- a/src/com/android/settings/datausage/lib/AppDataUsageRepository.kt
+++ b/src/com/android/settings/datausage/lib/AppDataUsageRepository.kt
@@ -28,6 +28,7 @@
import android.util.SparseBooleanArray
import androidx.annotation.VisibleForTesting
import androidx.core.util.keyIterator
+import androidx.core.util.valueIterator
import com.android.settings.R
import com.android.settings.datausage.lib.NetworkStatsRepository.Companion.Bucket
import com.android.settingslib.AppItem
@@ -49,33 +50,30 @@
@VisibleForTesting
fun getAppPercent(carrierId: Int?, buckets: List<Bucket>): List<Pair<AppItem, Int>> {
- val items = ArrayList<AppItem>()
val knownItems = SparseArray<AppItem>()
val profiles = context.userManager.userProfiles
val userManager : UserManager = context.getSystemService(Context.USER_SERVICE) as UserManager
val userIdToIsHiddenMap = profiles.associate { profile ->
profile.identifier to shouldSkipProfile(userManager, profile)
}
- bindStats(buckets, userIdToIsHiddenMap, knownItems, items)
+ bindStats(buckets, userIdToIsHiddenMap, knownItems)
val restrictedUids = context.getSystemService(NetworkPolicyManager::class.java)!!
.getUidsWithPolicy(NetworkPolicyManager.POLICY_REJECT_METERED_BACKGROUND)
for (uid in restrictedUids) {
// Only splice in restricted state for current user or managed users
- if (!profiles.contains(UserHandle.getUserHandleForUid(uid))) {
- continue
- }
- var item = knownItems[uid]
- if (item == null) {
- item = AppItem(uid)
- item.total = 0
- item.addUid(uid)
- items.add(item)
- knownItems.put(item.key, item)
- }
+ if (UserHandle.getUserHandleForUid(uid) !in profiles) continue
+ val item =
+ knownItems[uid]
+ ?: AppItem(uid).apply {
+ category = AppItem.CATEGORY_APP
+ addUid(uid)
+ knownItems.put(uid, this)
+ }
item.restricted = true
}
- val filteredItems = filterItems(carrierId, items).sorted()
+ val filteredItems =
+ filterItems(carrierId, knownItems.valueIterator().asSequence().toList()).sorted()
val largest: Long = filteredItems.maxOfOrNull { it.total } ?: 0
return filteredItems.map { item ->
val percentTotal = if (largest > 0) (item.total * 100 / largest).toInt() else 0
@@ -106,7 +104,6 @@
buckets: List<Bucket>,
userIdToIsHiddenMap: Map<Int, Boolean>,
knownItems: SparseArray<AppItem>,
- items: ArrayList<AppItem>,
) {
for (bucket in buckets) {
// Decide how to collapse items together
@@ -126,7 +123,6 @@
knownItems = knownItems,
bucket = bucket,
itemCategory = AppItem.CATEGORY_USER,
- items = items,
)
}
collapseKey = getAppUid(uid)
@@ -157,7 +153,6 @@
knownItems = knownItems,
bucket = bucket,
itemCategory = category,
- items = items,
)
}
}
@@ -187,15 +182,13 @@
knownItems: SparseArray<AppItem>,
bucket: Bucket,
itemCategory: Int,
- items: ArrayList<AppItem>,
) {
- var item = knownItems[collapseKey]
- if (item == null) {
- item = AppItem(collapseKey)
- item.category = itemCategory
- items.add(item)
- knownItems.put(item.key, item)
- }
+ val item =
+ knownItems[collapseKey]
+ ?: AppItem(collapseKey).apply {
+ category = itemCategory
+ knownItems.put(collapseKey, this)
+ }
item.addUid(bucket.uid)
item.total += bucket.bytes
}
diff --git a/src/com/android/settings/datetime/AutoTimePreferenceController.java b/src/com/android/settings/datetime/AutoTimePreferenceController.java
index 434eba9..2942acb 100644
--- a/src/com/android/settings/datetime/AutoTimePreferenceController.java
+++ b/src/com/android/settings/datetime/AutoTimePreferenceController.java
@@ -39,6 +39,11 @@
public AutoTimePreferenceController(Context context, String preferenceKey) {
super(context, preferenceKey);
mTimeManager = context.getSystemService(TimeManager.class);
+ // This is a no-op implementation of UpdateTimeAndDateCallback to avoid a NPE when
+ // setTimeAndDateCallback() isn't called, e.g. for slices and other cases where the
+ // controller is instantiated outside of the context of the real Date & Time settings
+ // screen.
+ mCallback = (c) -> {};
}
public void setDateAndTimeCallback(UpdateTimeAndDateCallback callback) {
diff --git a/src/com/android/settings/datetime/AutoTimeZonePreferenceController.java b/src/com/android/settings/datetime/AutoTimeZonePreferenceController.java
index 011cc97..3a1f995 100644
--- a/src/com/android/settings/datetime/AutoTimeZonePreferenceController.java
+++ b/src/com/android/settings/datetime/AutoTimeZonePreferenceController.java
@@ -40,6 +40,11 @@
public AutoTimeZonePreferenceController(Context context, String preferenceKey) {
super(context, preferenceKey);
mTimeManager = context.getSystemService(TimeManager.class);
+ // This is a no-op implementation of UpdateTimeAndDateCallback to avoid a NPE when
+ // setTimeAndDateCallback() isn't called, e.g. for slices and other cases where the
+ // controller is instantiated outside of the context of the real Date & Time settings
+ // screen.
+ mCallback = (c) -> {};
}
/**
diff --git a/src/com/android/settings/datetime/TimeFormatPreferenceController.java b/src/com/android/settings/datetime/TimeFormatPreferenceController.java
index 22f7509..19805ad 100644
--- a/src/com/android/settings/datetime/TimeFormatPreferenceController.java
+++ b/src/com/android/settings/datetime/TimeFormatPreferenceController.java
@@ -43,6 +43,11 @@
public TimeFormatPreferenceController(Context context, String key) {
super(context, key);
mDummyDate = Calendar.getInstance();
+ // This is a no-op implementation of UpdateTimeAndDateCallback to avoid a NPE when
+ // setTimeAndDateCallback() isn't called, e.g. for slices and other cases where the
+ // controller is instantiated outside of the context of the real Date & Time settings
+ // screen.
+ mUpdateTimeAndDateCallback = (c) -> {};
}
/**
diff --git a/src/com/android/settings/development/AdbQrcodeScannerFragment.java b/src/com/android/settings/development/AdbQrcodeScannerFragment.java
index 1d38454..ca44747 100644
--- a/src/com/android/settings/development/AdbQrcodeScannerFragment.java
+++ b/src/com/android/settings/development/AdbQrcodeScannerFragment.java
@@ -16,7 +16,6 @@
package com.android.settings.development;
-import android.annotation.Nullable;
import android.app.Activity;
import android.content.BroadcastReceiver;
import android.content.Context;
@@ -27,7 +26,6 @@
import android.graphics.Matrix;
import android.graphics.Rect;
import android.graphics.SurfaceTexture;
-import android.net.wifi.WifiConfiguration;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
@@ -49,6 +47,7 @@
import com.android.settings.SetupWizardUtils;
import com.android.settings.wifi.dpp.AdbQrCode;
import com.android.settings.wifi.dpp.WifiDppQrCodeBaseFragment;
+import com.android.settings.wifi.dpp.WifiNetworkConfig;
import com.android.settingslib.qrcode.QrCamera;
import com.android.settingslib.qrcode.QrDecorateView;
@@ -82,8 +81,7 @@
/** QR code data scanned by camera */
private AdbQrCode mAdbQrCode;
- @Nullable
- private WifiConfiguration mAdbConfig;
+ private WifiNetworkConfig mAdbConfig;
private IAdbManager mAdbManager;
@@ -289,16 +287,13 @@
AdbQrCode.triggerVibrationForQrCodeRecognition(getContext());
mVerifyingTextView.sendAccessibilityEvent(AccessibilityEvent.TYPE_VIEW_FOCUSED);
try {
- if (mAdbConfig != null) {
- mAdbManager.enablePairingByQrCode(mAdbConfig.SSID,
- mAdbConfig.preSharedKey);
- return;
- }
+ mAdbManager.enablePairingByQrCode(mAdbConfig.getSsid(),
+ mAdbConfig.getPreSharedKey());
} catch (RemoteException e) {
- Log.e(TAG, "Unable to enable QR code pairing" + e);
+ Log.e(TAG, "Unable to enable QR code pairing");
+ getActivity().setResult(Activity.RESULT_CANCELED);
+ getActivity().finish();
}
- getActivity().setResult(Activity.RESULT_CANCELED);
- getActivity().finish();
}
@Override
diff --git a/src/com/android/settings/development/BluetoothMaxConnectedAudioDevicesPreferenceController.java b/src/com/android/settings/development/BluetoothMaxConnectedAudioDevicesPreferenceController.java
index a1467c8..467a8ca 100644
--- a/src/com/android/settings/development/BluetoothMaxConnectedAudioDevicesPreferenceController.java
+++ b/src/com/android/settings/development/BluetoothMaxConnectedAudioDevicesPreferenceController.java
@@ -45,9 +45,10 @@
super(context);
final BluetoothManager bluetoothManager = context.getSystemService(BluetoothManager.class);
-
- mDefaultMaxConnectedAudioDevices =
- bluetoothManager.getAdapter().getMaxConnectedAudioDevices();
+ if(bluetoothManager != null && bluetoothManager.getAdapter() != null) {
+ mDefaultMaxConnectedAudioDevices =
+ bluetoothManager.getAdapter().getMaxConnectedAudioDevices();
+ }
}
@Override
diff --git a/src/com/android/settings/development/DesktopModeSecondaryDisplayPreferenceController.java b/src/com/android/settings/development/DesktopModeSecondaryDisplayPreferenceController.java
index ff513c2..2bce9ad 100644
--- a/src/com/android/settings/development/DesktopModeSecondaryDisplayPreferenceController.java
+++ b/src/com/android/settings/development/DesktopModeSecondaryDisplayPreferenceController.java
@@ -67,9 +67,16 @@
Settings.Global.putInt(mContext.getContentResolver(),
DEVELOPMENT_FORCE_DESKTOP_MODE_ON_EXTERNAL_DISPLAYS,
isEnabled ? SETTING_VALUE_ON : SETTING_VALUE_OFF);
+ // Update freeform window support on device.
+ // DEVELOPMENT_ENABLE_FREEFORM_WINDOWS_SUPPORT setting enables freeform support on device
+ // where it's not present by default.
+ Settings.Global.putInt(mContext.getContentResolver(),
+ Settings.Global.DEVELOPMENT_ENABLE_FREEFORM_WINDOWS_SUPPORT,
+ isEnabled ? SETTING_VALUE_ON : SETTING_VALUE_OFF);
if (isEnabled && mFragment != null) {
RebootConfirmationDialogFragment.show(
- mFragment, R.string.reboot_dialog_force_desktop_mode, this);
+ mFragment, R.string.reboot_dialog_enable_desktop_mode_on_secondary_display,
+ this);
}
return true;
}
diff --git a/src/com/android/settings/development/DevelopmentSettingsDashboardFragment.java b/src/com/android/settings/development/DevelopmentSettingsDashboardFragment.java
index 0389b45..666d24d 100644
--- a/src/com/android/settings/development/DevelopmentSettingsDashboardFragment.java
+++ b/src/com/android/settings/development/DevelopmentSettingsDashboardFragment.java
@@ -16,6 +16,7 @@
package com.android.settings.development;
+import static android.app.Activity.RESULT_OK;
import static android.provider.Settings.Global.DEVELOPMENT_SETTINGS_ENABLED;
import static android.service.quicksettings.TileService.ACTION_QS_TILE_PREFERENCES;
import static android.view.flags.Flags.sensitiveContentAppProtectionApi;
@@ -100,11 +101,13 @@
NfcRebootDialog.OnNfcRebootDialogConfirmedListener, BluetoothSnoopLogHost {
private static final String TAG = "DevSettingsDashboard";
+ @VisibleForTesting static final int REQUEST_BIOMETRIC_PROMPT = 100;
private final BluetoothA2dpConfigStore mBluetoothA2dpConfigStore =
new BluetoothA2dpConfigStore();
private boolean mIsAvailable = true;
+ private boolean mIsBiometricsAuthenticated;
private SettingsMainSwitchBar mSwitchBar;
private DevelopmentSwitchBarController mSwitchBarController;
private List<AbstractPreferenceController> mPreferenceControllers = new ArrayList<>();
@@ -216,6 +219,7 @@
public void onStart() {
super.onStart();
final ContentResolver cr = getContext().getContentResolver();
+ mIsBiometricsAuthenticated = false;
cr.registerContentObserver(mDevelopEnabled, false, mDeveloperSettingsObserver);
// Restore UI state based on whether developer options is enabled
@@ -360,7 +364,18 @@
DevelopmentSettingsEnabler.isDevelopmentSettingsEnabled(getContext());
if (isChecked != developmentEnabledState) {
if (isChecked) {
- EnableDevelopmentSettingWarningDialog.show(this /* host */);
+ final int userId = getContext().getUserId();
+ if (Utils.requestBiometricAuthenticationForMandatoryBiometrics(getContext(),
+ mIsBiometricsAuthenticated,
+ false /* biometricsAuthenticationRequested */, userId)) {
+ mSwitchBar.setChecked(false);
+ Utils.launchBiometricPromptForMandatoryBiometrics(this,
+ REQUEST_BIOMETRIC_PROMPT, userId, false /* hideBackground */);
+ } else {
+ //Reset biometrics once enable dialog is shown
+ mIsBiometricsAuthenticated = false;
+ EnableDevelopmentSettingWarningDialog.show(this /* host */);
+ }
} else {
final BluetoothA2dpHwOffloadPreferenceController a2dpController =
getDevelopmentOptionsController(
@@ -534,6 +549,12 @@
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
boolean handledResult = false;
+ if (requestCode == REQUEST_BIOMETRIC_PROMPT) {
+ if (resultCode == RESULT_OK) {
+ mIsBiometricsAuthenticated = true;
+ mSwitchBar.setChecked(true);
+ }
+ }
for (AbstractPreferenceController controller : mPreferenceControllers) {
if (controller instanceof OnActivityResultListener) {
// We do not break early because it is possible for multiple controllers to
@@ -715,6 +736,7 @@
controllers.add(new ShowTapsPreferenceController(context));
controllers.add(new PointerLocationPreferenceController(context));
controllers.add(new ShowKeyPressesPreferenceController(context));
+ controllers.add(new TouchpadVisualizerPreferenceController(context));
controllers.add(new ShowSurfaceUpdatesPreferenceController(context));
controllers.add(new ShowLayoutBoundsPreferenceController(context));
controllers.add(new ShowHdrSdrRatioPreferenceController(context));
diff --git a/src/com/android/settings/development/Enable16kUtils.java b/src/com/android/settings/development/Enable16kUtils.java
index 00b7ee9..b37c1f3 100644
--- a/src/com/android/settings/development/Enable16kUtils.java
+++ b/src/com/android/settings/development/Enable16kUtils.java
@@ -78,7 +78,6 @@
try (BufferedReader br = new BufferedReader(new FileReader("/proc/mounts"))) {
String line;
while ((line = br.readLine()) != null) {
- Log.i(TAG, line);
final String[] fields = line.split(" ");
final String partition = fields[1];
final String fsType = fields[2];
diff --git a/src/com/android/settings/development/FreeformWindowsPreferenceController.java b/src/com/android/settings/development/FreeformWindowsPreferenceController.java
index 7cf7738..c02ffa7 100644
--- a/src/com/android/settings/development/FreeformWindowsPreferenceController.java
+++ b/src/com/android/settings/development/FreeformWindowsPreferenceController.java
@@ -16,8 +16,9 @@
package com.android.settings.development;
+import static android.content.pm.PackageManager.FEATURE_FREEFORM_WINDOW_MANAGEMENT;
+
import android.content.Context;
-import android.os.Build;
import android.provider.Settings;
import androidx.annotation.Nullable;
@@ -40,7 +41,8 @@
@VisibleForTesting
static final int SETTING_VALUE_ON = 1;
- @Nullable private final DevelopmentSettingsDashboardFragment mFragment;
+ @Nullable
+ private final DevelopmentSettingsDashboardFragment mFragment;
public FreeformWindowsPreferenceController(
Context context, @Nullable DevelopmentSettingsDashboardFragment fragment) {
@@ -49,6 +51,13 @@
}
@Override
+ public boolean isAvailable() {
+ // When devices have the system feature FEATURE_FREEFORM_WINDOW_MANAGEMENT, freeform
+ // mode is enabled automatically, and this toggle is not needed.
+ return !mContext.getPackageManager().hasSystemFeature(FEATURE_FREEFORM_WINDOW_MANAGEMENT);
+ }
+
+ @Override
public String getPreferenceKey() {
return ENABLE_FREEFORM_SUPPORT_KEY;
}
@@ -80,9 +89,4 @@
Settings.Global.DEVELOPMENT_ENABLE_FREEFORM_WINDOWS_SUPPORT, SETTING_VALUE_OFF);
((TwoStatePreference) mPreference).setChecked(false);
}
-
- @VisibleForTesting
- String getBuildType() {
- return Build.TYPE;
- }
}
diff --git a/src/com/android/settings/development/OWNERS b/src/com/android/settings/development/OWNERS
index cc573ea..d780615 100644
--- a/src/com/android/settings/development/OWNERS
+++ b/src/com/android/settings/development/OWNERS
@@ -12,3 +12,10 @@
# DesktopModePreferenceController
per-file DesktopModePreferenceController.java=file:platform/frameworks/base:/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/OWNERS
+
+# ADB
+per-file Adb*=set noparent
+per-file Adb*=file:platform/packages/modules/adb:/OWNERS
+
+#TouchpadVisualizerPreferenceController
+per-file TouchpadVisualizerPreferenceController.java=file:platform/frameworks/base:/INPUT_OWNERS
diff --git a/src/com/android/settings/development/TouchpadVisualizerPreferenceController.java b/src/com/android/settings/development/TouchpadVisualizerPreferenceController.java
new file mode 100644
index 0000000..f918d26
--- /dev/null
+++ b/src/com/android/settings/development/TouchpadVisualizerPreferenceController.java
@@ -0,0 +1,83 @@
+/*
+ * Copyright 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.development;
+
+import android.content.Context;
+import android.provider.Settings;
+
+import androidx.annotation.VisibleForTesting;
+import androidx.preference.Preference;
+import androidx.preference.SwitchPreference;
+
+import com.android.settings.core.PreferenceControllerMixin;
+import com.android.settingslib.development.DeveloperOptionsPreferenceController;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+
+import android.hardware.input.InputSettings;
+
+/** PreferenceController that controls the "Touchpad visualizer" developer option. */
+public class TouchpadVisualizerPreferenceController extends
+ DeveloperOptionsPreferenceController implements
+ Preference.OnPreferenceChangeListener, PreferenceControllerMixin {
+
+ private static final String TOUCHPAD_VISUALIZER_KEY = "touchpad_visualizer";
+
+ @VisibleForTesting
+ static final int SETTING_VALUE_ON = 1;
+ @VisibleForTesting
+ static final int SETTING_VALUE_OFF = 0;
+
+ public TouchpadVisualizerPreferenceController(@NonNull Context context) {
+ super(context);
+ }
+
+ @Override
+ public @NonNull String getPreferenceKey() {
+ return TOUCHPAD_VISUALIZER_KEY;
+ }
+
+ @Override
+ public boolean isAvailable(){
+ return InputSettings.isTouchpadVisualizerFeatureFlagEnabled();
+ }
+
+ @Override
+ public boolean onPreferenceChange(@NonNull Preference preference, @Nullable Object newValue) {
+ final boolean isEnabled = newValue != null ? (Boolean) newValue : false;
+ Settings.System.putInt(mContext.getContentResolver(),
+ Settings.System.TOUCHPAD_VISUALIZER,
+ isEnabled ? SETTING_VALUE_ON : SETTING_VALUE_OFF);
+ return true;
+ }
+
+ @Override
+ public void updateState(@NonNull Preference preference) {
+ int touchpadVisualizer = Settings.System.getInt(mContext.getContentResolver(),
+ Settings.System.TOUCHPAD_VISUALIZER, SETTING_VALUE_OFF);
+ ((SwitchPreference) mPreference).setChecked(touchpadVisualizer != SETTING_VALUE_OFF);
+ }
+
+ @Override
+ protected void onDeveloperOptionsSwitchDisabled() {
+ super.onDeveloperOptionsSwitchDisabled();
+ Settings.System.putInt(mContext.getContentResolver(), Settings.System.TOUCHPAD_VISUALIZER,
+ SETTING_VALUE_OFF);
+ ((SwitchPreference) mPreference).setChecked(false);
+ }
+}
\ No newline at end of file
diff --git a/src/com/android/settings/development/bluetooth/BluetoothStackLogPreferenceController.java b/src/com/android/settings/development/bluetooth/BluetoothStackLogPreferenceController.java
index 23d4cc6..9f7512c 100644
--- a/src/com/android/settings/development/bluetooth/BluetoothStackLogPreferenceController.java
+++ b/src/com/android/settings/development/bluetooth/BluetoothStackLogPreferenceController.java
@@ -30,85 +30,184 @@
import com.android.settings.core.PreferenceControllerMixin;
import com.android.settingslib.development.DeveloperOptionsPreferenceController;
+/**
+ * This preference represents the default log level for the Bluetooth stack
+ *
+ * The default log level is captured and held in an Android Log Framework log tag, using "bluetooth"
+ * as the tag name. The Log framework does not provide methods to directly write a log tag value,
+ * but instead leverages special system properties to hold the value of a log tag.
+ *
+ * This preferences aims to keep the selection in sync with the currently set log tag value. It
+ * writes directly to the system properties that hold the level associated with the bluetooth log
+ * tag. It leverages the Log.isLoggable("bluetooth", level) function to discern the current value.
+ * The default level is INFO.
+ *
+ * This value is read once at start of the Bluetooth stack. To use a new value once setting it, be
+ * sure to turn Bluetooth off and back on again.
+ */
public class BluetoothStackLogPreferenceController extends DeveloperOptionsPreferenceController
implements Preference.OnPreferenceChangeListener, PreferenceControllerMixin {
+ private static final String TAG = BluetoothStackLogPreferenceController.class.getSimpleName();
+
+ private static final String PREFERENCE_KEY = "bt_stack_log_level";
/* Ensure that the indexes match with bt_stack_log_values and bt_stack_log_entries ordering */
- private static final String PREFERENCE_KEY = "bt_stack_log_level";
- @VisibleForTesting static final int BTSTACK_LOG_MODE_VERBOSE_INDEX = 0;
- @VisibleForTesting static final int BTSTACK_LOG_MODE_DEBUG_INDEX = 1;
- @VisibleForTesting static final int BTSTACK_LOG_MODE_INFO_INDEX = 2;
- @VisibleForTesting static final int BTSTACK_LOG_MODE_WARN_INDEX = 3;
- @VisibleForTesting static final int BTSTACK_LOG_MODE_ERROR_INDEX = 4;
+ private static final int BT_LOG_LEVEL_VERBOSE_INDEX = 0;
+ private static final int BT_LOG_LEVEL_DEBUG_INDEX = 1;
+ private static final int BT_LOG_LEVEL_INFO_INDEX = 2;
+ private static final int BT_LOG_LEVEL_WARN_INDEX = 3;
+ private static final int BT_LOG_LEVEL_ERROR_INDEX = 4;
+ @VisibleForTesting static final int BT_LOG_LEVEL_DEFAULT_INDEX = BT_LOG_LEVEL_INFO_INDEX;
- @VisibleForTesting
- static final String BLUETOOTH_BTSTACK_LOG_MODE_PROPERTY_PERSIST = "persist.log.tag.bluetooth";
- static final String BLUETOOTH_BTSTACK_LOG_MODE_PROPERTY = "log.tag.bluetooth";
- static final String BLUETOOTH_STRING_NAME = "bluetooth";
- static final int DEFAULT_MODE = BTSTACK_LOG_MODE_INFO_INDEX;
+ private static final String BT_LOG_TAG = "bluetooth";
+ @VisibleForTesting static final String BT_LOG_LEVEL_PROP_PERSIST = "persist.log.tag.bluetooth";
+ @VisibleForTesting static final String BT_LOG_LEVEL_PROP = "log.tag.bluetooth";
- private final String[] mListValues;
- private final String[] mListEntries;
+ // Values represents the untranslatable log level strings that should be used for writing to
+ // system properties. Entries represents the translatable log level strings that should be used
+ // in the UI to communicate to the user their options for this preference.
+ private String[] mListValues;
+ private String[] mListEntries;
-
+ /**
+ * Create a BluetoothStackLogPreferenceController instance
+ */
public BluetoothStackLogPreferenceController(@NonNull Context context) {
super(context);
mListValues = context.getResources().getStringArray(R.array.bt_stack_log_level_values);
mListEntries = context.getResources().getStringArray(R.array.bt_stack_log_level_entries);
}
- /** returns default log level index of INFO */
- public int getDefaultModeIndex() {
- return DEFAULT_MODE;
- }
-
+ /**
+ * Returns the preference key associated with this preference
+ *
+ * Note that this key is _usually_ a system property in and of itself, which is expected to hold
+ * the value of the preference. In this case though, this key *does not* hold the preference. It
+ * is only really used to tie this controller to the list preference defined in the XML file.
+ *
+ * @return the preference key associated with this preference
+ */
@Override
@Nullable
public String getPreferenceKey() {
return PREFERENCE_KEY;
}
+ /**
+ * Update the state of the preference based on what the user has selected
+ *
+ * This function is invoked when the user has selected a new value for this preference. The new
+ * value is the entry value at the index of the list the user has selected. This value will be
+ * one of the values from the array returned in getEntryValues(). Specifically, this array is
+ * set using R.array.bt_stack_log_level_values
+ *
+ * @param preference - the preference object to set the value of
+ * @param newValue - the value the user has selected, as an Object
+ * @return True when updated successfully
+ */
@Override
public boolean onPreferenceChange(@NonNull Preference preference, @NonNull Object newValue) {
- SystemProperties.set(BLUETOOTH_BTSTACK_LOG_MODE_PROPERTY_PERSIST, newValue.toString());
- SystemProperties.set(BLUETOOTH_BTSTACK_LOG_MODE_PROPERTY, newValue.toString());
- updateState(mPreference);
+ Log.v(TAG, "onPreferenceChange(pref=" + preference + "value=" + newValue.toString() + ")");
+ setBluetoothLogTag(newValue.toString());
+ setBluetoothLogLevelIndex(getBluetoothLogLevelIndex());
return true;
}
+ /**
+ * Refresh the state of this preference based on the state stored on the system
+ *
+ * Read the Bluetooth stack log level from the underlying system property/log tag, and map that
+ * level to the proper index in the values and entries array. Use those strings to set the value
+ * and summary of the preference.
+ *
+ * @param preference - the preference object to refresh the state of
+ */
@Override
public void updateState(@NonNull Preference preference) {
- final ListPreference listPreference = (ListPreference) preference;
- int index = getBluetoothLogLevelIndex();
- listPreference.setValue(mListValues[index]);
- listPreference.setSummary(mListEntries[index]);
+ Log.v(TAG, "updateState(pref=" + preference + "): refresh preference state");
+ setBluetoothLogLevelIndex(getBluetoothLogLevelIndex());
}
/**
- * Returns the current log level from Log.isLoggable().
+ * Notify this developer options preference of a change to developer options visibility
+ *
+ * We developer options are closed, we should clear out the value of this developer option
+ * preference and revert it back to the default state of INFO.
*/
- @VisibleForTesting
- public int getBluetoothLogLevelIndex() {
- if (Log.isLoggable(BLUETOOTH_STRING_NAME, Log.VERBOSE)) {
- return BTSTACK_LOG_MODE_VERBOSE_INDEX;
- } else if (Log.isLoggable(BLUETOOTH_STRING_NAME, Log.DEBUG)) {
- return BTSTACK_LOG_MODE_DEBUG_INDEX;
- } else if (Log.isLoggable(BLUETOOTH_STRING_NAME, Log.INFO)) {
- return BTSTACK_LOG_MODE_INFO_INDEX;
- } else if (Log.isLoggable(BLUETOOTH_STRING_NAME, Log.WARN)) {
- return BTSTACK_LOG_MODE_WARN_INDEX;
- } else if (Log.isLoggable(BLUETOOTH_STRING_NAME, Log.ERROR)) {
- return BTSTACK_LOG_MODE_ERROR_INDEX;
- }
- return BTSTACK_LOG_MODE_INFO_INDEX;
- }
-
@Override
protected void onDeveloperOptionsSwitchDisabled() {
super.onDeveloperOptionsSwitchDisabled();
- SystemProperties.set(BLUETOOTH_BTSTACK_LOG_MODE_PROPERTY_PERSIST, null);
- SystemProperties.set(BLUETOOTH_BTSTACK_LOG_MODE_PROPERTY, null);
- ((ListPreference) mPreference).setValue(mListValues[getDefaultModeIndex()]);
- ((ListPreference) mPreference).setSummary(mListEntries[getDefaultModeIndex()]);
+ Log.v(TAG, "onDeveloperOptionsSwitchDisabled(): Revert stack log to default");
+ setBluetoothLogTag(null);
+ setBluetoothLogLevelIndex(BT_LOG_LEVEL_DEFAULT_INDEX);
+ }
+
+ /**
+ * Set the system property values used by the Log framework to read the "bluetooth" log tag
+ *
+ * @param logLevel - the log level to set the Bluetooth stack minimum log level to
+ */
+ private void setBluetoothLogTag(@Nullable String logLevel) {
+ Log.i(TAG, "setBluetoothLogTag(logLevel=" + logLevel + "): Set properties for log tag");
+ SystemProperties.set(BT_LOG_LEVEL_PROP_PERSIST, logLevel);
+ SystemProperties.set(BT_LOG_LEVEL_PROP, logLevel);
+ }
+
+ /**
+ * Get the entry and value index corresponding to the current Bluetooth stack log level
+ *
+ * Since this preference uses an actual log tag and not a specific/private system property, we
+ * can read the value using the Log.isLoggable() function with our "bluetooth" log tag that
+ * represents the log level of the Bluetooth stack. This is safer than trying to replacate the
+ * logic used in the Log framework around the various persist, ro, and blank variants of the tag
+ *
+ * If no value is present, INFO is used.
+ *
+ * @return the entry/value index corresponding to the current log level of the tag "bluetooth"
+ */
+ @VisibleForTesting
+ public int getBluetoothLogLevelIndex() {
+ int level = BT_LOG_LEVEL_DEFAULT_INDEX;
+ if (Log.isLoggable(BT_LOG_TAG, Log.VERBOSE)) {
+ level = BT_LOG_LEVEL_VERBOSE_INDEX;
+ } else if (Log.isLoggable(BT_LOG_TAG, Log.DEBUG)) {
+ level = BT_LOG_LEVEL_DEBUG_INDEX;
+ } else if (Log.isLoggable(BT_LOG_TAG, Log.INFO)) {
+ level = BT_LOG_LEVEL_INFO_INDEX;
+ } else if (Log.isLoggable(BT_LOG_TAG, Log.WARN)) {
+ level = BT_LOG_LEVEL_WARN_INDEX;
+ } else if (Log.isLoggable(BT_LOG_TAG, Log.ERROR)) {
+ level = BT_LOG_LEVEL_ERROR_INDEX;
+ }
+ Log.v(TAG, "getBluetoothLogLevelIndex() -> " + level);
+ return level;
+ }
+
+ /**
+ * Set the current Bluetooth stack log level displayed in the list for this preference
+ *
+ * @param index - the index representing the log level choice of this preference
+ */
+ private void setBluetoothLogLevelIndex(int index) {
+ if (index < BT_LOG_LEVEL_VERBOSE_INDEX || index > BT_LOG_LEVEL_ERROR_INDEX) {
+ Log.e(TAG, "setBluetoothLogLevelIndex(index=" + index + "): Log level invalid");
+ return;
+ }
+
+ String value = mListValues[index];
+ String entryValue = mListEntries[index];
+
+ ListPreference preference = ((ListPreference) mPreference);
+ if (preference == null) {
+ Log.e(TAG, "setBluetoothLogLevelIndex(index=" + index + "): mPreference is null");
+ return;
+ }
+
+ preference.setValue(value);
+ preference.setSummary(entryValue);
+
+ Log.i(TAG, "setBluetoothLogLevelIndex(index=" + index
+ + "): Updated Bluetooth stack log level to value='" + value + "', entryValue='"
+ + entryValue + "'");
}
}
diff --git a/src/com/android/settings/deviceinfo/BuildNumberPreferenceController.java b/src/com/android/settings/deviceinfo/BuildNumberPreferenceController.java
index 6fe3ca4..cf6b3e3 100644
--- a/src/com/android/settings/deviceinfo/BuildNumberPreferenceController.java
+++ b/src/com/android/settings/deviceinfo/BuildNumberPreferenceController.java
@@ -55,6 +55,7 @@
static final int TAPS_TO_BE_A_DEVELOPER = 7;
static final int REQUEST_CONFIRM_PASSWORD_FOR_DEV_PREF = 100;
+ static final int REQUEST_IDENTITY_CHECK_FOR_DEV_PREF = 101;
private Activity mActivity;
private InstrumentedPreferenceFragment mFragment;
@@ -217,10 +218,24 @@
* @return if activity result is handled.
*/
public boolean onActivityResult(int requestCode, int resultCode, Intent data) {
- if (requestCode != REQUEST_CONFIRM_PASSWORD_FOR_DEV_PREF) {
+ if (requestCode != REQUEST_CONFIRM_PASSWORD_FOR_DEV_PREF
+ && requestCode != REQUEST_IDENTITY_CHECK_FOR_DEV_PREF) {
return false;
}
- if (resultCode == Activity.RESULT_OK) {
+ if (requestCode == REQUEST_CONFIRM_PASSWORD_FOR_DEV_PREF
+ && resultCode == Activity.RESULT_OK) {
+ final int userId = mContext.getUserId();
+ if (Utils.requestBiometricAuthenticationForMandatoryBiometrics(mContext,
+ false /* biometricsSuccessfullyAuthenticated */,
+ false /* biometricsAuthenticationRequested */,
+ userId)) {
+ Utils.launchBiometricPromptForMandatoryBiometrics(mFragment,
+ REQUEST_IDENTITY_CHECK_FOR_DEV_PREF, userId, false /* hideBackground */);
+ } else {
+ enableDevelopmentSettings();
+ }
+ } else if (requestCode == REQUEST_IDENTITY_CHECK_FOR_DEV_PREF
+ && resultCode == Activity.RESULT_OK) {
enableDevelopmentSettings();
}
mProcessingLastDevHit = false;
diff --git a/src/com/android/settings/fuelgauge/BatteryHeaderPreferenceController.java b/src/com/android/settings/fuelgauge/BatteryHeaderPreferenceController.java
index 7d15858..891a997 100644
--- a/src/com/android/settings/fuelgauge/BatteryHeaderPreferenceController.java
+++ b/src/com/android/settings/fuelgauge/BatteryHeaderPreferenceController.java
@@ -81,7 +81,10 @@
return mContext.getString(
com.android.settingslib.R.string.battery_info_status_not_charging);
}
- if (BatteryUtils.isBatteryDefenderOn(info)) {
+ if (BatteryUtils.isBatteryDefenderOn(info)
+ || FeatureFactory.getFeatureFactory()
+ .getPowerUsageFeatureProvider()
+ .isExtraDefend()) {
return mContext.getString(
com.android.settingslib.R.string.battery_info_status_charging_on_hold);
}
@@ -89,8 +92,7 @@
&& mBatterySettingsFeatureProvider.isChargingOptimizationMode(mContext)) {
return info.remainingLabel;
}
- if (info.remainingLabel == null
- || info.batteryStatus == BatteryManager.BATTERY_STATUS_NOT_CHARGING) {
+ if (info.batteryStatus == BatteryManager.BATTERY_STATUS_NOT_CHARGING) {
return info.statusLabel;
}
if (info.pluggedStatus == BatteryManager.BATTERY_PLUGGED_WIRELESS) {
@@ -103,6 +105,9 @@
return wirelessChargingLabel;
}
}
+ if (info.remainingLabel == null) {
+ return info.statusLabel;
+ }
if (info.statusLabel != null && !info.discharging) {
// Charging state
if (com.android.settingslib.fuelgauge.BatteryUtils.isChargingStringV2Enabled()) {
diff --git a/src/com/android/settings/fuelgauge/batteryusage/AnomalyEventWrapper.java b/src/com/android/settings/fuelgauge/batteryusage/AnomalyEventWrapper.java
index be5de06..c62728b 100644
--- a/src/com/android/settings/fuelgauge/batteryusage/AnomalyEventWrapper.java
+++ b/src/com/android/settings/fuelgauge/batteryusage/AnomalyEventWrapper.java
@@ -28,10 +28,11 @@
import com.android.settings.R;
import com.android.settings.SettingsActivity;
import com.android.settings.core.SubSettingLauncher;
+import com.android.settings.widget.TipCardPreference;
import java.util.function.Function;
-final class AnomalyEventWrapper {
+class AnomalyEventWrapper {
private static final String TAG = "AnomalyEventWrapper";
private final Context mContext;
@@ -235,16 +236,16 @@
return mHighlightSlotPair;
}
- boolean updateTipsCardPreference(BatteryTipsCardPreference preference) {
+ boolean updateTipsCardPreference(TipCardPreference preference) {
final String titleString = getTitleString();
if (TextUtils.isEmpty(titleString)) {
return false;
}
preference.setTitle(titleString);
- preference.setIconResourceId(getIconResId());
- preference.setButtonColorResourceId(getColorResId());
- preference.setMainButtonLabel(getMainBtnString());
- preference.setDismissButtonLabel(getDismissBtnString());
+ preference.setIconResId(getIconResId());
+ preference.setTintColorResId(getColorResId());
+ preference.setPrimaryButtonText(getDismissBtnString());
+ preference.setSecondaryButtonText(getMainBtnString());
return true;
}
diff --git a/src/com/android/settings/fuelgauge/batteryusage/BatteryOptimizationModeCache.java b/src/com/android/settings/fuelgauge/batteryusage/BatteryOptimizationModeCache.java
index 6b35fb9..2084b66 100644
--- a/src/com/android/settings/fuelgauge/batteryusage/BatteryOptimizationModeCache.java
+++ b/src/com/android/settings/fuelgauge/batteryusage/BatteryOptimizationModeCache.java
@@ -17,38 +17,47 @@
package com.android.settings.fuelgauge.batteryusage;
import android.content.Context;
-import android.util.ArrayMap;
+import android.util.SparseArray;
import androidx.annotation.VisibleForTesting;
+import androidx.core.util.Pair;
import com.android.settings.fuelgauge.BatteryOptimizeUtils;
import com.android.settingslib.fuelgauge.PowerAllowlistBackend;
-import java.util.Map;
-
/** A cache to log battery optimization mode of an app */
final class BatteryOptimizationModeCache {
private static final String TAG = "BatteryOptimizationModeCache";
- @VisibleForTesting final Map<Integer, BatteryOptimizationMode> mBatteryOptimizeModeCacheMap;
+ /* Stores the battery optimization mode and mutable state for each UID. */
+ @VisibleForTesting
+ final SparseArray<Pair<BatteryOptimizationMode, Boolean>> mBatteryOptimizeModeCache;
private final Context mContext;
BatteryOptimizationModeCache(final Context context) {
mContext = context;
- mBatteryOptimizeModeCacheMap = new ArrayMap<>();
+ mBatteryOptimizeModeCache = new SparseArray<>();
PowerAllowlistBackend.getInstance(mContext).refreshList();
}
- BatteryOptimizationMode getBatteryOptimizeMode(final int uid, final String packageName) {
- if (!mBatteryOptimizeModeCacheMap.containsKey(uid)) {
+ Pair<BatteryOptimizationMode, Boolean> getBatteryOptimizeModeInfo(
+ final int uid, final String packageName) {
+ if (!mBatteryOptimizeModeCache.contains(uid)) {
final BatteryOptimizeUtils batteryOptimizeUtils =
new BatteryOptimizeUtils(mContext, uid, packageName);
- mBatteryOptimizeModeCacheMap.put(
+ mBatteryOptimizeModeCache.put(
uid,
- BatteryOptimizationMode.forNumber(
- batteryOptimizeUtils.getAppOptimizationMode(/* refreshList= */ false)));
+ Pair.create(
+ BatteryOptimizationMode.forNumber(
+ batteryOptimizeUtils.getAppOptimizationMode(
+ /* refreshList= */ false)),
+ batteryOptimizeUtils.isOptimizeModeMutable()));
}
- return mBatteryOptimizeModeCacheMap.get(uid);
+ final Pair<BatteryOptimizationMode, Boolean> batteryOptimizeModeInfo =
+ mBatteryOptimizeModeCache.get(uid);
+ return batteryOptimizeModeInfo != null
+ ? batteryOptimizeModeInfo
+ : new Pair<>(BatteryOptimizationMode.MODE_UNKNOWN, false);
}
}
diff --git a/src/com/android/settings/fuelgauge/batteryusage/BatteryTipsCardPreference.java b/src/com/android/settings/fuelgauge/batteryusage/BatteryTipsCardPreference.java
deleted file mode 100644
index bbd1099..0000000
--- a/src/com/android/settings/fuelgauge/batteryusage/BatteryTipsCardPreference.java
+++ /dev/null
@@ -1,150 +0,0 @@
-/*
- * Copyright (C) 2023 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.fuelgauge.batteryusage;
-
-import android.content.Context;
-import android.text.TextUtils;
-import android.util.AttributeSet;
-import android.view.View;
-import android.widget.ImageView;
-import android.widget.LinearLayout;
-import android.widget.TextView;
-
-import androidx.annotation.VisibleForTesting;
-import androidx.preference.Preference;
-import androidx.preference.PreferenceViewHolder;
-
-import com.android.settings.R;
-
-import com.google.android.material.button.MaterialButton;
-
-/** A preference for displaying the battery tips card view. */
-public class BatteryTipsCardPreference extends Preference implements View.OnClickListener {
-
- private static final String TAG = "BatteryTipsCardPreference";
-
- interface OnConfirmListener {
- void onConfirm();
- }
-
- interface OnRejectListener {
- void onReject();
- }
-
- private OnConfirmListener mOnConfirmListener;
- private OnRejectListener mOnRejectListener;
- private int mIconResourceId = 0;
- private int mButtonColorResourceId = 0;
-
- @VisibleForTesting CharSequence mMainButtonLabel;
- @VisibleForTesting CharSequence mDismissButtonLabel;
-
- public BatteryTipsCardPreference(Context context, AttributeSet attrs) {
- super(context, attrs);
- setLayoutResource(R.layout.battery_tips_card);
- setViewId(R.id.battery_tips_card);
- setSelectable(false);
- }
-
- public void setOnConfirmListener(OnConfirmListener listener) {
- mOnConfirmListener = listener;
- }
-
- public void setOnRejectListener(OnRejectListener listener) {
- mOnRejectListener = listener;
- }
-
- /**
- * Sets the icon in tips card.
- */
- public void setIconResourceId(int resourceId) {
- if (mIconResourceId != resourceId) {
- mIconResourceId = resourceId;
- notifyChanged();
- }
- }
-
- /**
- * Sets the background color for main button and the text color for dismiss button.
- */
- public void setButtonColorResourceId(int resourceId) {
- if (mButtonColorResourceId != resourceId) {
- mButtonColorResourceId = resourceId;
- notifyChanged();
- }
- }
-
- /**
- * Sets the label of main button in tips card.
- */
- public void setMainButtonLabel(CharSequence label) {
- if (!TextUtils.equals(mMainButtonLabel, label)) {
- mMainButtonLabel = label;
- notifyChanged();
- }
- }
-
- /**
- * Sets the label of dismiss button in tips card.
- */
- public void setDismissButtonLabel(CharSequence label) {
- if (!TextUtils.equals(mDismissButtonLabel, label)) {
- mDismissButtonLabel = label;
- notifyChanged();
- }
- }
-
- @Override
- public void onClick(View view) {
- final int viewId = view.getId();
- if (viewId == R.id.main_button || viewId == R.id.battery_tips_card) {
- if (mOnConfirmListener != null) {
- mOnConfirmListener.onConfirm();
- }
- } else if (viewId == R.id.dismiss_button) {
- if (mOnRejectListener != null) {
- mOnRejectListener.onReject();
- }
- }
- }
-
- @Override
- public void onBindViewHolder(PreferenceViewHolder view) {
- super.onBindViewHolder(view);
-
- ((TextView) view.findViewById(R.id.title)).setText(getTitle());
-
- final LinearLayout tipsCard = (LinearLayout) view.findViewById(R.id.battery_tips_card);
- tipsCard.setOnClickListener(this);
- final MaterialButton mainButton = (MaterialButton) view.findViewById(R.id.main_button);
- mainButton.setOnClickListener(this);
- mainButton.setText(mMainButtonLabel);
- final MaterialButton dismissButton =
- (MaterialButton) view.findViewById(R.id.dismiss_button);
- dismissButton.setOnClickListener(this);
- dismissButton.setText(mDismissButtonLabel);
- if (mButtonColorResourceId != 0) {
- final int colorInt = getContext().getColor(mButtonColorResourceId);
- mainButton.setBackgroundColor(colorInt);
- dismissButton.setTextColor(colorInt);
- }
-
- if (mIconResourceId != 0) {
- ((ImageView) view.findViewById(R.id.icon)).setImageResource(mIconResourceId);
- }
- }
-}
diff --git a/src/com/android/settings/fuelgauge/batteryusage/BatteryTipsController.java b/src/com/android/settings/fuelgauge/batteryusage/BatteryTipsController.java
index 821c868..405b786 100644
--- a/src/com/android/settings/fuelgauge/batteryusage/BatteryTipsController.java
+++ b/src/com/android/settings/fuelgauge/batteryusage/BatteryTipsController.java
@@ -25,6 +25,7 @@
import com.android.internal.annotations.VisibleForTesting;
import com.android.settings.core.BasePreferenceController;
import com.android.settings.overlay.FeatureFactory;
+import com.android.settings.widget.TipCardPreference;
import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
/** Controls the update for battery tips card */
@@ -50,10 +51,9 @@
void onAnomalyReject();
}
- private OnAnomalyConfirmListener mOnAnomalyConfirmListener;
- private OnAnomalyRejectListener mOnAnomalyRejectListener;
-
- @VisibleForTesting BatteryTipsCardPreference mCardPreference;
+ @VisibleForTesting OnAnomalyConfirmListener mOnAnomalyConfirmListener;
+ @VisibleForTesting OnAnomalyRejectListener mOnAnomalyRejectListener;
+ @VisibleForTesting TipCardPreference mCardPreference;
@VisibleForTesting AnomalyEventWrapper mAnomalyEventWrapper = null;
@VisibleForTesting Boolean mIsAcceptable = false;
@@ -117,42 +117,20 @@
return;
}
- // Set battery tips card listener
- mCardPreference.setOnConfirmListener(
+ mCardPreference.setPrimaryButtonAction(
() -> {
- mCardPreference.setVisible(false);
- if (mOnAnomalyConfirmListener != null) {
- mOnAnomalyConfirmListener.onAnomalyConfirm();
- } else if (mAnomalyEventWrapper.updateSystemSettingsIfAvailable()
- || mAnomalyEventWrapper.launchSubSetting()) {
- mMetricsFeatureProvider.action(
- /* attribution= */ SettingsEnums.FUELGAUGE_BATTERY_HISTORY_DETAIL,
- /* action= */ SettingsEnums.ACTION_BATTERY_TIPS_CARD_ACCEPT,
- /* pageId= */ SettingsEnums.FUELGAUGE_BATTERY_HISTORY_DETAIL,
- /* key= */ ANOMALY_KEY,
- /* value= */ anomalyKeyNumber);
- }
+ onBatteryTipsCardDismiss(anomalyKeyNumber);
+ return null;
});
- mCardPreference.setOnRejectListener(
+ mCardPreference.setSecondaryButtonAction(
() -> {
- mCardPreference.setVisible(false);
- if (mOnAnomalyRejectListener != null) {
- mOnAnomalyRejectListener.onAnomalyReject();
- }
- // For anomaly events with same record key, dismissed until next time full
- // charged.
- final String dismissRecordKey = mAnomalyEventWrapper.getDismissRecordKey();
- if (!TextUtils.isEmpty(dismissRecordKey)) {
- DatabaseUtils.setDismissedPowerAnomalyKeys(mContext, dismissRecordKey);
- }
- mMetricsFeatureProvider.action(
- /* attribution= */ SettingsEnums.FUELGAUGE_BATTERY_HISTORY_DETAIL,
- /* action= */ SettingsEnums.ACTION_BATTERY_TIPS_CARD_DISMISS,
- /* pageId= */ SettingsEnums.FUELGAUGE_BATTERY_HISTORY_DETAIL,
- /* key= */ ANOMALY_KEY,
- /* value= */ anomalyKeyNumber);
+ onBatteryTipsCardAccept(anomalyKeyNumber);
+ return null;
});
+ mCardPreference.setPrimaryButtonVisibility(true);
+ mCardPreference.setSecondaryButtonVisibility(true);
+ mCardPreference.buildContent();
mCardPreference.setVisible(true);
mMetricsFeatureProvider.action(
/* attribution= */ SettingsEnums.FUELGAUGE_BATTERY_HISTORY_DETAIL,
@@ -161,4 +139,37 @@
/* key= */ ANOMALY_KEY,
/* value= */ anomalyKeyNumber);
}
+
+ private void onBatteryTipsCardDismiss(final int anomalyKeyNumber) {
+ mCardPreference.setVisible(false);
+ if (mOnAnomalyRejectListener != null) {
+ mOnAnomalyRejectListener.onAnomalyReject();
+ }
+ // For anomaly events with same record key, dismissed until next time full charged.
+ final String dismissRecordKey = mAnomalyEventWrapper.getDismissRecordKey();
+ if (!TextUtils.isEmpty(dismissRecordKey)) {
+ DatabaseUtils.setDismissedPowerAnomalyKeys(mContext, dismissRecordKey);
+ }
+ mMetricsFeatureProvider.action(
+ /* attribution= */ SettingsEnums.FUELGAUGE_BATTERY_HISTORY_DETAIL,
+ /* action= */ SettingsEnums.ACTION_BATTERY_TIPS_CARD_DISMISS,
+ /* pageId= */ SettingsEnums.FUELGAUGE_BATTERY_HISTORY_DETAIL,
+ /* key= */ ANOMALY_KEY,
+ /* value= */ anomalyKeyNumber);
+ }
+
+ private void onBatteryTipsCardAccept(final int anomalyKeyNumber) {
+ mCardPreference.setVisible(false);
+ if (mOnAnomalyConfirmListener != null) {
+ mOnAnomalyConfirmListener.onAnomalyConfirm();
+ } else if (mAnomalyEventWrapper.updateSystemSettingsIfAvailable()
+ || mAnomalyEventWrapper.launchSubSetting()) {
+ mMetricsFeatureProvider.action(
+ /* attribution= */ SettingsEnums.FUELGAUGE_BATTERY_HISTORY_DETAIL,
+ /* action= */ SettingsEnums.ACTION_BATTERY_TIPS_CARD_ACCEPT,
+ /* pageId= */ SettingsEnums.FUELGAUGE_BATTERY_HISTORY_DETAIL,
+ /* key= */ ANOMALY_KEY,
+ /* value= */ anomalyKeyNumber);
+ }
+ }
}
diff --git a/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageBroadcastReceiver.java b/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageBroadcastReceiver.java
index bfa501c..f710c71 100644
--- a/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageBroadcastReceiver.java
+++ b/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageBroadcastReceiver.java
@@ -63,8 +63,8 @@
}
final String action = intent.getAction();
Log.d(TAG, "onReceive:" + action);
- if (com.android.settingslib.fuelgauge.BatteryUtils.isWorkProfile(context)) {
- Log.w(TAG, "do nothing for work profile action=" + action);
+ if (com.android.settingslib.fuelgauge.BatteryUtils.isAdditionalProfile(context)) {
+ Log.w(TAG, "do nothing for an additional profile action=" + action);
return;
}
DatabaseUtils.recordDateTime(context, action);
diff --git a/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageContentProvider.java b/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageContentProvider.java
index 095a65a..52010af 100644
--- a/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageContentProvider.java
+++ b/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageContentProvider.java
@@ -110,8 +110,8 @@
@Override
public boolean onCreate() {
- if (BatteryUtils.isWorkProfile(getContext())) {
- Log.w(TAG, "do not create provider for work profile");
+ if (BatteryUtils.isAdditionalProfile(getContext())) {
+ Log.w(TAG, "do not create provider for an additional profile");
return false;
}
mClock = Clock.systemUTC();
diff --git a/src/com/android/settings/fuelgauge/batteryusage/BootBroadcastReceiver.java b/src/com/android/settings/fuelgauge/batteryusage/BootBroadcastReceiver.java
index b758df4..45d724f 100644
--- a/src/com/android/settings/fuelgauge/batteryusage/BootBroadcastReceiver.java
+++ b/src/com/android/settings/fuelgauge/batteryusage/BootBroadcastReceiver.java
@@ -54,8 +54,8 @@
@Override
public void onReceive(Context context, Intent intent) {
final String action = intent == null ? "" : intent.getAction();
- if (BatteryUtils.isWorkProfile(context)) {
- Log.w(TAG, "do not start job for work profile action=" + action);
+ if (BatteryUtils.isAdditionalProfile(context)) {
+ Log.w(TAG, "do not start job for an additional profile action=" + action);
return;
}
diff --git a/src/com/android/settings/fuelgauge/batteryusage/ConvertUtils.java b/src/com/android/settings/fuelgauge/batteryusage/ConvertUtils.java
index 8f4d4dd..391a57a 100644
--- a/src/com/android/settings/fuelgauge/batteryusage/ConvertUtils.java
+++ b/src/com/android/settings/fuelgauge/batteryusage/ConvertUtils.java
@@ -35,6 +35,7 @@
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.annotation.VisibleForTesting;
+import androidx.core.util.Pair;
import com.android.settings.fuelgauge.BatteryUtils;
import com.android.settings.fuelgauge.batteryusage.db.AppUsageEventEntity;
@@ -542,9 +543,11 @@
}
// Log the battery optimization mode of AppEntry while converting to batteryUsageSlot.
if (optimizationModeCache != null && !batteryDiffEntry.isSystemEntry()) {
- builder.setAppOptimizationMode(
- optimizationModeCache.getBatteryOptimizeMode(
- (int) batteryDiffEntry.mUid, batteryDiffEntry.getPackageName()));
+ final Pair<BatteryOptimizationMode, Boolean> batteryOptimizationModeInfo =
+ optimizationModeCache.getBatteryOptimizeModeInfo(
+ (int) batteryDiffEntry.mUid, batteryDiffEntry.getPackageName());
+ builder.setAppOptimizationMode(batteryOptimizationModeInfo.first)
+ .setIsAppOptimizationModeMutable(batteryOptimizationModeInfo.second);
}
return builder.build();
}
diff --git a/src/com/android/settings/fuelgauge/batteryusage/DatabaseUtils.java b/src/com/android/settings/fuelgauge/batteryusage/DatabaseUtils.java
index 7620323..ad487ef 100644
--- a/src/com/android/settings/fuelgauge/batteryusage/DatabaseUtils.java
+++ b/src/com/android/settings/fuelgauge/batteryusage/DatabaseUtils.java
@@ -70,6 +70,7 @@
/** Clear memory threshold for device booting phase. */
private static final long CLEAR_MEMORY_THRESHOLD_MS = Duration.ofMinutes(5).toMillis();
+
private static final long CLEAR_MEMORY_DELAYED_MS = Duration.ofSeconds(2).toMillis();
private static final long INVALID_TIMESTAMP = 0L;
@@ -454,6 +455,21 @@
});
}
+ /** Clears generated cache data in the battery usage database. */
+ public static void clearEvenHourCacheData(Context context) {
+ AsyncTask.execute(
+ () -> {
+ try {
+ final BatteryStateDatabase database =
+ BatteryStateDatabase.getInstance(context.getApplicationContext());
+ database.batteryEventDao().clearEvenHourEvent();
+ database.batteryUsageSlotDao().clearAll();
+ } catch (RuntimeException e) {
+ Log.e(TAG, "clearEvenHourCacheData() failed", e);
+ }
+ });
+ }
+
/** Clears all out-of-date data in the battery usage database. */
public static void clearExpiredDataIfNeeded(Context context) {
AsyncTask.execute(
@@ -527,9 +543,11 @@
return startCalendar.getTimeInMillis();
}
- /** Returns the context with profile parent identity when current user is work profile. */
+ /**
+ * Returns the context with profile parent identity when current user is an additional profile.
+ */
public static Context getParentContext(Context context) {
- if (com.android.settingslib.fuelgauge.BatteryUtils.isWorkProfile(context)) {
+ if (com.android.settingslib.fuelgauge.BatteryUtils.isAdditionalProfile(context)) {
try {
return context.createPackageContextAsUser(
/* packageName= */ context.getPackageName(),
@@ -920,14 +938,12 @@
final String logInfo =
String.format(
Locale.ENGLISH,
- "clear database for new time zone = %s",
+ "clear database cache for new time zone = %s",
TimeZone.getDefault().toString());
BatteryUsageLogUtils.writeLog(context, Action.TIMEZONE_UPDATED, logInfo);
Log.d(TAG, logInfo);
- DatabaseUtils.clearAll(context);
+ DatabaseUtils.clearEvenHourCacheData(context);
PeriodicJobManager.getInstance(context).refreshJob(/* fromBoot= */ false);
- // Take a snapshot of battery usage data immediately
- BatteryUsageDataLoader.enqueueWork(context, /* isFullChargeStart= */ true);
}
private static long loadLongFromContentProvider(
diff --git a/src/com/android/settings/fuelgauge/batteryusage/PeriodicJobReceiver.java b/src/com/android/settings/fuelgauge/batteryusage/PeriodicJobReceiver.java
index 5c73adb..982cf40 100644
--- a/src/com/android/settings/fuelgauge/batteryusage/PeriodicJobReceiver.java
+++ b/src/com/android/settings/fuelgauge/batteryusage/PeriodicJobReceiver.java
@@ -50,10 +50,10 @@
Log.w(TAG, "receive unexpected action=" + action);
return;
}
- if (BatteryUtils.isWorkProfile(context)) {
+ if (BatteryUtils.isAdditionalProfile(context)) {
BatteryUsageLogUtils.writeLog(
- context, Action.SCHEDULE_JOB, "do not refresh job for work profile");
- Log.w(TAG, "do not refresh job for work profile action=" + action);
+ context, Action.SCHEDULE_JOB, "do not refresh job for an additional profile");
+ Log.w(TAG, "do not refresh job for an additional profile action=" + action);
return;
}
BatteryUsageLogUtils.writeLog(context, Action.EXECUTE_JOB, "");
diff --git a/src/com/android/settings/fuelgauge/batteryusage/bugreport/BugReportContentProvider.java b/src/com/android/settings/fuelgauge/batteryusage/bugreport/BugReportContentProvider.java
index 7e759ee..e829a3c 100644
--- a/src/com/android/settings/fuelgauge/batteryusage/bugreport/BugReportContentProvider.java
+++ b/src/com/android/settings/fuelgauge/batteryusage/bugreport/BugReportContentProvider.java
@@ -49,8 +49,8 @@
Log.w(TAG, "failed to dump BatteryUsage state: null application context");
return;
}
- if (BatteryUtils.isWorkProfile(context)) {
- Log.w(TAG, "ignore battery usage states dump in the work profile");
+ if (BatteryUtils.isAdditionalProfile(context)) {
+ Log.w(TAG, "ignore battery usage states dump in the additional profile");
return;
}
writer.println("dump BatteryUsage and AppUsage states:");
diff --git a/src/com/android/settings/fuelgauge/batteryusage/db/BatteryEventDao.kt b/src/com/android/settings/fuelgauge/batteryusage/db/BatteryEventDao.kt
index bac97d0..351b086 100644
--- a/src/com/android/settings/fuelgauge/batteryusage/db/BatteryEventDao.kt
+++ b/src/com/android/settings/fuelgauge/batteryusage/db/BatteryEventDao.kt
@@ -20,12 +20,14 @@
import androidx.room.Insert
import androidx.room.OnConflictStrategy
import androidx.room.Query
+import com.android.settings.fuelgauge.batteryusage.BatteryEventType
/** Data access object for accessing [BatteryEventEntity] in the database. */
@Dao
interface BatteryEventDao {
/** Inserts a [BatteryEventEntity] data into the database. */
- @Insert(onConflict = OnConflictStrategy.REPLACE) fun insert(event: BatteryEventEntity)
+ @Insert(onConflict = OnConflictStrategy.REPLACE)
+ fun insert(event: BatteryEventEntity)
/** Gets all recorded data. */
@Query("SELECT * FROM BatteryEventEntity ORDER BY timestamp DESC")
@@ -68,6 +70,14 @@
@Query("DELETE FROM BatteryEventEntity WHERE timestamp >= :timestamp")
fun clearAllAfter(timestamp: Long)
+ /** Deletes even_hour event data in the database. */
+ @Query(
+ "DELETE FROM BatteryEventEntity " +
+ "WHERE batteryEventType = 4" // BatteryEventType.EVEN_HOUR = 4
+ )
+ fun clearEvenHourEvent()
+
/** Clears all recorded data in the database. */
- @Query("DELETE FROM BatteryEventEntity") fun clearAll()
+ @Query("DELETE FROM BatteryEventEntity")
+ fun clearAll()
}
diff --git a/src/com/android/settings/fuelgauge/datasaver/DynamicDenylistManager.java b/src/com/android/settings/fuelgauge/datasaver/DynamicDenylistManager.java
index b77d5eb..ecb2a48 100644
--- a/src/com/android/settings/fuelgauge/datasaver/DynamicDenylistManager.java
+++ b/src/com/android/settings/fuelgauge/datasaver/DynamicDenylistManager.java
@@ -78,6 +78,11 @@
return;
}
+ if (mNetworkPolicyManager == null) {
+ Log.w(TAG, "syncPolicyIfNeeded: invalid mNetworkPolicyManager");
+ return;
+ }
+
final SharedPreferences.Editor editor = getManualDenylistPref().edit();
final int[] existedUids = mNetworkPolicyManager
.getUidsWithPolicy(POLICY_REJECT_METERED_BACKGROUND);
@@ -91,6 +96,11 @@
/** Set policy flags for specific UID. */
public void setUidPolicyLocked(int uid, int policy) {
+ if (mNetworkPolicyManager == null) {
+ Log.w(TAG, "setUidPolicyLocked: invalid mNetworkPolicyManager");
+ return;
+ }
+
Log.i(TAG, "setUidPolicyLocked: uid=" + uid + " policy=" + policy);
synchronized (mLock) {
mNetworkPolicyManager.setUidPolicy(uid, policy);
@@ -100,7 +110,7 @@
/** Suggest a list of package to set as POLICY_REJECT. */
public void setDenylist(Set<Integer> denylistTargetUids) {
- if (denylistTargetUids == null) {
+ if (denylistTargetUids == null || mNetworkPolicyManager == null) {
return;
}
final Set<Integer> manualDenylistUids = getDenylistAllUids(getManualDenylistPref());
@@ -164,6 +174,12 @@
Log.w(TAG, "resetDenylistIfNeeded: invalid conditions");
return;
}
+
+ if (mNetworkPolicyManager == null) {
+ Log.w(TAG, "setUidPolicyLocked: invalid mNetworkPolicyManager");
+ return;
+ }
+
synchronized (mLock) {
final int[] uids = mNetworkPolicyManager
.getUidsWithPolicy(POLICY_REJECT_METERED_BACKGROUND);
diff --git a/src/com/android/settings/fuelgauge/protos/battery_usage_slot.proto b/src/com/android/settings/fuelgauge/protos/battery_usage_slot.proto
index 4e3e3c4..da2bd4f 100644
--- a/src/com/android/settings/fuelgauge/protos/battery_usage_slot.proto
+++ b/src/com/android/settings/fuelgauge/protos/battery_usage_slot.proto
@@ -40,4 +40,5 @@
optional int64 screen_on_time = 16;
optional int64 foreground_service_usage_time = 17;
optional BatteryOptimizationMode app_optimization_mode = 18;
+ optional bool is_app_optimization_mode_mutable = 19;
}
diff --git a/src/com/android/settings/inputmethod/PhysicalKeyboardFragment.java b/src/com/android/settings/inputmethod/PhysicalKeyboardFragment.java
index 29292a1..bafec32 100644
--- a/src/com/android/settings/inputmethod/PhysicalKeyboardFragment.java
+++ b/src/com/android/settings/inputmethod/PhysicalKeyboardFragment.java
@@ -73,6 +73,7 @@
private static final String ACCESSIBILITY_BOUNCE_KEYS = "accessibility_bounce_keys";
private static final String ACCESSIBILITY_SLOW_KEYS = "accessibility_slow_keys";
private static final String ACCESSIBILITY_STICKY_KEYS = "accessibility_sticky_keys";
+ private static final String ACCESSIBILITY_MOUSE_KEYS = "accessibility_mouse_keys";
private static final String KEYBOARD_SHORTCUTS_HELPER = "keyboard_shortcuts_helper";
private static final String MODIFIER_KEYS_SETTINGS = "modifier_keys_settings";
private static final String EXTRA_AUTO_SELECTION = "auto_selection";
@@ -84,6 +85,8 @@
Secure.ACCESSIBILITY_SLOW_KEYS);
private static final Uri sAccessibilityStickyKeysUri = Secure.getUriFor(
Secure.ACCESSIBILITY_STICKY_KEYS);
+ private static final Uri sAccessibilityMouseKeysUri = Secure.getUriFor(
+ Secure.ACCESSIBILITY_MOUSE_KEYS_ENABLED);
public static final int BOUNCE_KEYS_THRESHOLD = 500;
public static final int SLOW_KEYS_THRESHOLD = 500;
@@ -104,7 +107,8 @@
private TwoStatePreference mAccessibilitySlowKeys = null;
@Nullable
private TwoStatePreference mAccessibilityStickyKeys = null;
-
+ @Nullable
+ private TwoStatePreference mAccessibilityMouseKeys = null;
private Intent mIntentWaitingForResult;
private boolean mSupportsFirmwareUpdate;
@@ -138,6 +142,8 @@
getContext().getString(R.string.slow_keys_summary, SLOW_KEYS_THRESHOLD));
mAccessibilityStickyKeys = Objects.requireNonNull(
mKeyboardA11yCategory.findPreference(ACCESSIBILITY_STICKY_KEYS));
+ mAccessibilityMouseKeys = Objects.requireNonNull(
+ mKeyboardA11yCategory.findPreference(ACCESSIBILITY_MOUSE_KEYS));
FeatureFactory featureFactory = FeatureFactory.getFeatureFactory();
mMetricsFeatureProvider = featureFactory.getMetricsFeatureProvider();
@@ -160,6 +166,9 @@
if (!InputSettings.isAccessibilityStickyKeysFeatureEnabled()) {
mKeyboardA11yCategory.removePreference(mAccessibilityStickyKeys);
}
+ if (!InputSettings.isAccessibilityMouseKeysFeatureFlagEnabled()) {
+ mKeyboardA11yCategory.removePreference(mAccessibilityMouseKeys);
+ }
InputDeviceIdentifier inputDeviceIdentifier = activity.getIntent().getParcelableExtra(
KeyboardLayoutPickerFragment.EXTRA_INPUT_DEVICE_IDENTIFIER,
InputDeviceIdentifier.class);
@@ -208,6 +217,8 @@
mAccessibilitySlowKeysSwitchPreferenceChangeListener);
Objects.requireNonNull(mAccessibilityStickyKeys).setOnPreferenceChangeListener(
mAccessibilityStickyKeysSwitchPreferenceChangeListener);
+ Objects.requireNonNull(mAccessibilityMouseKeys).setOnPreferenceChangeListener(
+ mAccessibilityMouseKeysSwitchPreferenceChangeListener);
registerSettingsObserver();
}
@@ -219,6 +230,7 @@
Objects.requireNonNull(mAccessibilityBounceKeys).setOnPreferenceChangeListener(null);
Objects.requireNonNull(mAccessibilitySlowKeys).setOnPreferenceChangeListener(null);
Objects.requireNonNull(mAccessibilityStickyKeys).setOnPreferenceChangeListener(null);
+ Objects.requireNonNull(mAccessibilityMouseKeys).setOnPreferenceChangeListener(null);
unregisterSettingsObserver();
}
@@ -309,12 +321,14 @@
if (InputSettings.isAccessibilityBounceKeysFeatureEnabled()
|| InputSettings.isAccessibilityStickyKeysFeatureEnabled()
- || InputSettings.isAccessibilitySlowKeysFeatureFlagEnabled()) {
+ || InputSettings.isAccessibilitySlowKeysFeatureFlagEnabled()
+ || InputSettings.isAccessibilityMouseKeysFeatureFlagEnabled()) {
Objects.requireNonNull(mKeyboardA11yCategory).setOrder(2);
preferenceScreen.addPreference(mKeyboardA11yCategory);
updateAccessibilityBounceKeysSwitch();
updateAccessibilitySlowKeysSwitch();
updateAccessibilityStickyKeysSwitch();
+ updateAccessibilityMouseKeysSwitch();
}
}
@@ -365,9 +379,17 @@
mContentObserver,
UserHandle.myUserId());
}
+ if (InputSettings.isAccessibilityMouseKeysFeatureFlagEnabled()) {
+ contentResolver.registerContentObserver(
+ sAccessibilityMouseKeysUri,
+ false,
+ mContentObserver,
+ UserHandle.myUserId());
+ }
updateAccessibilityBounceKeysSwitch();
updateAccessibilitySlowKeysSwitch();
updateAccessibilityStickyKeysSwitch();
+ updateAccessibilityMouseKeysSwitch();
}
private void unregisterSettingsObserver() {
@@ -398,6 +420,14 @@
InputSettings.isAccessibilityStickyKeysEnabled(getContext()));
}
+ private void updateAccessibilityMouseKeysSwitch() {
+ if (!InputSettings.isAccessibilityMouseKeysFeatureFlagEnabled()) {
+ return;
+ }
+ Objects.requireNonNull(mAccessibilityMouseKeys).setChecked(
+ InputSettings.isAccessibilityMouseKeysEnabled(getContext()));
+ }
+
private void toggleKeyboardShortcutsMenu() {
getActivity().requestShowKeyboardShortcuts();
}
@@ -422,6 +452,12 @@
return true;
};
+ private final OnPreferenceChangeListener
+ mAccessibilityMouseKeysSwitchPreferenceChangeListener = (preference, newValue) -> {
+ InputSettings.setAccessibilityMouseKeysEnabled(getContext(), (Boolean) newValue);
+ return true;
+ };
+
private final ContentObserver mContentObserver = new ContentObserver(new Handler(true)) {
@Override
public void onChange(boolean selfChange, Uri uri) {
@@ -431,6 +467,8 @@
updateAccessibilitySlowKeysSwitch();
} else if (sAccessibilityStickyKeysUri.equals(uri)) {
updateAccessibilityStickyKeysSwitch();
+ } else if (sAccessibilityMouseKeysUri.equals(uri)) {
+ updateAccessibilityMouseKeysSwitch();
}
}
};
diff --git a/src/com/android/settings/inputmethod/PointerFillStylePreferenceController.java b/src/com/android/settings/inputmethod/PointerFillStylePreferenceController.java
index 5abc383..bd6bbd5 100644
--- a/src/com/android/settings/inputmethod/PointerFillStylePreferenceController.java
+++ b/src/com/android/settings/inputmethod/PointerFillStylePreferenceController.java
@@ -16,25 +16,39 @@
package com.android.settings.inputmethod;
+import static android.view.PointerIcon.POINTER_ICON_VECTOR_STYLE_FILL_BLACK;
+
+import android.app.settings.SettingsEnums;
import android.content.Context;
import android.os.UserHandle;
import android.provider.Settings;
import androidx.annotation.NonNull;
import androidx.annotation.VisibleForTesting;
+import androidx.lifecycle.Lifecycle;
+import androidx.lifecycle.LifecycleEventObserver;
+import androidx.lifecycle.LifecycleOwner;
import androidx.preference.Preference;
import androidx.preference.PreferenceDataStore;
import androidx.preference.PreferenceScreen;
import com.android.settings.core.BasePreferenceController;
+import com.android.settings.overlay.FeatureFactory;
+import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
-public class PointerFillStylePreferenceController extends BasePreferenceController {
+public class PointerFillStylePreferenceController extends BasePreferenceController
+ implements LifecycleEventObserver {
+
+ private MetricsFeatureProvider mMetricsFeatureProvider;
@VisibleForTesting
static final String KEY_POINTER_FILL_STYLE = "pointer_fill_style";
public PointerFillStylePreferenceController(@NonNull Context context) {
super(context, KEY_POINTER_FILL_STYLE);
+
+ mMetricsFeatureProvider =
+ FeatureFactory.getFeatureFactory().getMetricsFeatureProvider();
}
@AvailabilityStatus
@@ -64,4 +78,17 @@
}
});
}
+
+ @Override
+ public void onStateChanged(@NonNull LifecycleOwner lifecycleOwner,
+ @NonNull Lifecycle.Event event) {
+ if (event == Lifecycle.Event.ON_PAUSE) {
+ int currentValue =
+ Settings.System.getIntForUser(mContext.getContentResolver(),
+ Settings.System.POINTER_FILL_STYLE,
+ POINTER_ICON_VECTOR_STYLE_FILL_BLACK, UserHandle.USER_CURRENT);
+ mMetricsFeatureProvider.action(mContext,
+ SettingsEnums.ACTION_POINTER_ICON_FILL_STYLE_CHANGED, currentValue);
+ }
+ }
}
diff --git a/src/com/android/settings/inputmethod/PointerScaleSeekBarController.java b/src/com/android/settings/inputmethod/PointerScaleSeekBarController.java
index 06d5203..509cdd6 100644
--- a/src/com/android/settings/inputmethod/PointerScaleSeekBarController.java
+++ b/src/com/android/settings/inputmethod/PointerScaleSeekBarController.java
@@ -18,6 +18,7 @@
import static android.view.PointerIcon.DEFAULT_POINTER_SCALE;
+import android.app.settings.SettingsEnums;
import android.content.Context;
import android.content.res.Resources;
import android.os.UserHandle;
@@ -25,19 +26,27 @@
import android.widget.SeekBar;
import androidx.annotation.NonNull;
+import androidx.lifecycle.Lifecycle;
+import androidx.lifecycle.LifecycleEventObserver;
+import androidx.lifecycle.LifecycleOwner;
import androidx.preference.PreferenceScreen;
import com.android.settings.R;
import com.android.settings.core.BasePreferenceController;
+import com.android.settings.overlay.FeatureFactory;
import com.android.settings.widget.LabeledSeekBarPreference;
+import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
-public class PointerScaleSeekBarController extends BasePreferenceController {
+public class PointerScaleSeekBarController extends BasePreferenceController
+ implements LifecycleEventObserver {
private final int mProgressMin;
private final int mProgressMax;
private final float mScaleMin;
private final float mScaleMax;
+ private MetricsFeatureProvider mMetricsFeatureProvider;
+
public PointerScaleSeekBarController(@NonNull Context context, @NonNull String key) {
super(context, key);
@@ -46,6 +55,9 @@
mProgressMax = res.getInteger(R.integer.pointer_scale_seek_bar_end);
mScaleMin = res.getFloat(R.dimen.pointer_scale_size_start);
mScaleMax = res.getFloat(R.dimen.pointer_scale_size_end);
+
+ mMetricsFeatureProvider =
+ FeatureFactory.getFeatureFactory().getMetricsFeatureProvider();
}
@AvailabilityStatus
@@ -92,4 +104,18 @@
(((scale - mScaleMin) * (mProgressMax - mProgressMin)) / (mScaleMax - mScaleMin))
+ mProgressMin);
}
+
+ @Override
+ public void onStateChanged(@NonNull LifecycleOwner lifecycleOwner,
+ @NonNull Lifecycle.Event event) {
+ if (event == Lifecycle.Event.ON_PAUSE) {
+ float currentValue =
+ Settings.System.getFloatForUser(mContext.getContentResolver(),
+ Settings.System.POINTER_SCALE, DEFAULT_POINTER_SCALE,
+ UserHandle.USER_CURRENT);
+ mMetricsFeatureProvider.action(mContext,
+ SettingsEnums.ACTION_POINTER_ICON_SCALE_CHANGED,
+ Float.toString(currentValue));
+ }
+ }
}
diff --git a/src/com/android/settings/inputmethod/PointerStrokeStylePreferenceController.java b/src/com/android/settings/inputmethod/PointerStrokeStylePreferenceController.java
index e4ea996..714e7b5 100644
--- a/src/com/android/settings/inputmethod/PointerStrokeStylePreferenceController.java
+++ b/src/com/android/settings/inputmethod/PointerStrokeStylePreferenceController.java
@@ -16,25 +16,39 @@
package com.android.settings.inputmethod;
+import static android.view.PointerIcon.POINTER_ICON_VECTOR_STYLE_STROKE_WHITE;
+
+import android.app.settings.SettingsEnums;
import android.content.Context;
import android.os.UserHandle;
import android.provider.Settings;
import androidx.annotation.NonNull;
import androidx.annotation.VisibleForTesting;
+import androidx.lifecycle.Lifecycle;
+import androidx.lifecycle.LifecycleEventObserver;
+import androidx.lifecycle.LifecycleOwner;
import androidx.preference.Preference;
import androidx.preference.PreferenceDataStore;
import androidx.preference.PreferenceScreen;
import com.android.settings.core.BasePreferenceController;
+import com.android.settings.overlay.FeatureFactory;
+import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
-public class PointerStrokeStylePreferenceController extends BasePreferenceController {
+public class PointerStrokeStylePreferenceController extends BasePreferenceController
+ implements LifecycleEventObserver {
+
+ private MetricsFeatureProvider mMetricsFeatureProvider;
@VisibleForTesting
static final String KEY_POINTER_STROKE_STYLE = "pointer_stroke_style";
public PointerStrokeStylePreferenceController(@NonNull Context context) {
super(context, KEY_POINTER_STROKE_STYLE);
+
+ mMetricsFeatureProvider =
+ FeatureFactory.getFeatureFactory().getMetricsFeatureProvider();
}
@AvailabilityStatus
@@ -64,4 +78,17 @@
}
});
}
+
+ @Override
+ public void onStateChanged(@NonNull LifecycleOwner lifecycleOwner,
+ @NonNull Lifecycle.Event event) {
+ if (event == Lifecycle.Event.ON_PAUSE) {
+ int currentValue =
+ Settings.System.getIntForUser(mContext.getContentResolver(),
+ Settings.System.POINTER_STROKE_STYLE,
+ POINTER_ICON_VECTOR_STYLE_STROKE_WHITE, UserHandle.USER_CURRENT);
+ mMetricsFeatureProvider.action(mContext,
+ SettingsEnums.ACTION_POINTER_ICON_STROKE_STYLE_CHANGED, currentValue);
+ }
+ }
}
diff --git a/src/com/android/settings/network/AirplaneModePreferenceController.java b/src/com/android/settings/network/AirplaneModePreferenceController.java
index b1f6e50..d4bd4a3 100644
--- a/src/com/android/settings/network/AirplaneModePreferenceController.java
+++ b/src/com/android/settings/network/AirplaneModePreferenceController.java
@@ -162,7 +162,8 @@
public void onResume() {
try {
mIsSatelliteOn.set(
- mSatelliteRepository.requestIsEnabled(Executors.newSingleThreadExecutor())
+ mSatelliteRepository
+ .requestIsSessionStarted(Executors.newSingleThreadExecutor())
.get(2000, TimeUnit.MILLISECONDS));
} catch (ExecutionException | TimeoutException | InterruptedException e) {
Log.e(TAG, "Error to get satellite status : " + e);
diff --git a/src/com/android/settings/network/MobileNetworkRepository.java b/src/com/android/settings/network/MobileNetworkRepository.java
index 9901929..f5763eb 100644
--- a/src/com/android/settings/network/MobileNetworkRepository.java
+++ b/src/com/android/settings/network/MobileNetworkRepository.java
@@ -29,7 +29,6 @@
import android.telephony.SubscriptionManager;
import android.telephony.TelephonyCallback;
import android.telephony.TelephonyManager;
-import android.telephony.UiccCardInfo;
import android.telephony.UiccPortInfo;
import android.telephony.UiccSlotInfo;
import android.util.ArrayMap;
@@ -86,12 +85,6 @@
private AirplaneModeObserver mAirplaneModeObserver;
private MetricsFeatureProvider mMetricsFeatureProvider;
private int mPhysicalSlotIndex = SubscriptionManager.INVALID_SIM_SLOT_INDEX;
- private int mLogicalSlotIndex = SubscriptionManager.INVALID_SIM_SLOT_INDEX;
- private int mCardState = UiccSlotInfo.CARD_STATE_INFO_ABSENT;
- private int mPortIndex = TelephonyManager.INVALID_PORT_INDEX;
- private int mCardId = TelephonyManager.UNINITIALIZED_CARD_ID;
- private boolean mIsEuicc = false;
- private boolean mIsRemovable = false;
private boolean mIsActive = false;
private Map<Integer, SubscriptionInfo> mSubscriptionInfoMap = new ArrayMap<>();
private Map<Integer, TelephonyManager> mTelephonyManagerMap = new HashMap<>();
@@ -301,19 +294,13 @@
UiccSlotInfo curSlotInfo = uiccSlotInfos[i];
if (curSlotInfo != null && curSlotInfo.getCardStateInfo() == CARD_STATE_INFO_PRESENT) {
final int index = i;
- mIsEuicc = curSlotInfo.getIsEuicc();
- mCardState = curSlotInfo.getCardStateInfo();
- mIsRemovable = curSlotInfo.isRemovable();
- mCardId = subInfo.getCardId();
Collection<UiccPortInfo> uiccPortInfos = curSlotInfo.getPorts();
uiccPortInfos.forEach(portInfo -> {
if (portInfo.getPortIndex() == subInfo.getPortIndex()
&& portInfo.getLogicalSlotIndex() == subInfo.getSimSlotIndex()) {
mPhysicalSlotIndex = index;
- mLogicalSlotIndex = portInfo.getLogicalSlotIndex();
mIsActive = portInfo.isActive();
- mPortIndex = portInfo.getPortIndex();
} else if (DEBUG) {
Log.d(TAG, "Can not get port index and physicalSlotIndex for subId "
+ subInfo.getSubscriptionId());
@@ -433,7 +420,7 @@
mMobileNetworkDatabase.insertSubsInfo(subInfoEntity);
mMetricsFeatureProvider.action(mContext,
SettingsEnums.ACTION_MOBILE_NETWORK_DB_INSERT_SUB_INFO, subId);
- insertUiccInfo(subId, telephonyManager);
+ insertUiccInfo(subId);
insertMobileNetworkInfo(subId, telephonyManager);
}
} else if (DEBUG) {
@@ -488,8 +475,8 @@
}
}
- private void insertUiccInfo(int subId, TelephonyManager telephonyManager) {
- UiccInfoEntity uiccInfoEntity = convertToUiccInfoEntity(subId, telephonyManager);
+ private void insertUiccInfo(int subId) {
+ UiccInfoEntity uiccInfoEntity = convertToUiccInfoEntity(subId);
if (DEBUG) {
Log.d(TAG, "uiccInfoEntity = " + uiccInfoEntity);
}
@@ -532,27 +519,8 @@
);
}
- private UiccInfoEntity convertToUiccInfoEntity(int subId, TelephonyManager telephonyManager) {
- return new UiccInfoEntity(String.valueOf(subId), String.valueOf(mPhysicalSlotIndex),
- mLogicalSlotIndex, mCardId, mIsEuicc,
- isMultipleEnabledProfilesSupported(telephonyManager), mCardState, mIsRemovable,
- mIsActive, mPortIndex
- );
- }
-
- private boolean isMultipleEnabledProfilesSupported(TelephonyManager telephonyManager) {
- if (telephonyManager == null) {
- Log.d(TAG, "TelephonyManager is null");
- return false;
- }
-
- List<UiccCardInfo> cardInfos = telephonyManager.getUiccCardsInfo();
- if (cardInfos == null) {
- Log.d(TAG, "UICC card info list is empty.");
- return false;
- }
- return cardInfos.stream().anyMatch(
- cardInfo -> cardInfo.isMultipleEnabledProfilesSupported());
+ private UiccInfoEntity convertToUiccInfoEntity(int subId) {
+ return new UiccInfoEntity(String.valueOf(subId), mIsActive);
}
@Override
diff --git a/src/com/android/settings/network/ProviderModelSliceHelper.java b/src/com/android/settings/network/ProviderModelSliceHelper.java
index 686990b..c60594d 100644
--- a/src/com/android/settings/network/ProviderModelSliceHelper.java
+++ b/src/com/android/settings/network/ProviderModelSliceHelper.java
@@ -264,7 +264,8 @@
}
String summary = networkTypeDescription;
if (isDataSimActive()) {
- summary = mContext.getString(R.string.preference_summary_default_combination,
+ summary = mContext.getString(
+ com.android.settingslib.R.string.preference_summary_default_combination,
mContext.getString(R.string.mobile_data_connection_active),
networkTypeDescription);
}
diff --git a/src/com/android/settings/network/SatelliteRepository.kt b/src/com/android/settings/network/SatelliteRepository.kt
index 565fbf3..b7c25f4 100644
--- a/src/com/android/settings/network/SatelliteRepository.kt
+++ b/src/com/android/settings/network/SatelliteRepository.kt
@@ -25,6 +25,7 @@
import androidx.concurrent.futures.CallbackToFutureAdapter
import com.google.common.util.concurrent.Futures.immediateFuture
import com.google.common.util.concurrent.ListenableFuture
+import java.util.concurrent.Executor
import kotlinx.coroutines.CoroutineDispatcher
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.asExecutor
@@ -32,7 +33,6 @@
import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.callbackFlow
import kotlinx.coroutines.flow.flowOf
-import java.util.concurrent.Executor
import kotlinx.coroutines.flow.flowOn
/**
@@ -58,20 +58,26 @@
}
return CallbackToFutureAdapter.getFuture { completer ->
- satelliteManager.requestIsEnabled(executor,
- object : OutcomeReceiver<Boolean, SatelliteManager.SatelliteException> {
- override fun onResult(result: Boolean) {
- Log.i(TAG, "Satellite modem enabled status: $result")
- completer.set(result)
- }
+ try {
+ satelliteManager.requestIsEnabled(executor,
+ object : OutcomeReceiver<Boolean, SatelliteManager.SatelliteException> {
+ override fun onResult(result: Boolean) {
+ Log.i(TAG, "Satellite modem enabled status: $result")
+ completer.set(result)
+ }
- override fun onError(error: SatelliteManager.SatelliteException) {
- super.onError(error)
- Log.w(TAG, "Can't get satellite modem enabled status", error)
- completer.set(false)
- }
- })
- "requestIsEnabled"
+ override fun onError(error: SatelliteManager.SatelliteException) {
+ super.onError(error)
+ Log.w(TAG, "Can't get satellite modem enabled status", error)
+ completer.set(false)
+ }
+ })
+ "requestIsEnabled"
+ } catch (e: IllegalStateException) {
+ Log.w(TAG, "IllegalStateException $e")
+ completer.set(false)
+ }
+
}
}
@@ -96,14 +102,21 @@
val callback = object : SatelliteModemStateCallback {
override fun onSatelliteModemStateChanged(state: Int) {
val isSessionStarted = isSatelliteSessionStarted(state)
- Log.i(TAG, "Satellite modem state changed: state=$state"
- + ", isSessionStarted=$isSessionStarted")
+ Log.i(
+ TAG, "Satellite modem state changed: state=$state"
+ + ", isSessionStarted=$isSessionStarted"
+ )
completer.set(isSessionStarted)
satelliteManager.unregisterForModemStateChanged(this)
}
}
- val registerResult = satelliteManager.registerForModemStateChanged(executor, callback)
+ var registerResult = SatelliteManager.SATELLITE_MODEM_STATE_UNKNOWN
+ try {
+ registerResult = satelliteManager.registerForModemStateChanged(executor, callback)
+ } catch (e: IllegalStateException) {
+ Log.w(TAG, "IllegalStateException $e")
+ }
if (registerResult != SatelliteManager.SATELLITE_RESULT_SUCCESS) {
Log.w(TAG, "Failed to register for satellite modem state change: $registerResult")
completer.set(false)
@@ -132,15 +145,21 @@
return callbackFlow {
val callback = SatelliteModemStateCallback { state ->
val isSessionStarted = isSatelliteSessionStarted(state)
- Log.i(TAG, "Satellite modem state changed: state=$state"
- + ", isSessionStarted=$isSessionStarted")
+ Log.i(
+ TAG, "Satellite modem state changed: state=$state"
+ + ", isSessionStarted=$isSessionStarted"
+ )
trySend(isSessionStarted)
}
-
- val registerResult = satelliteManager.registerForModemStateChanged(
- defaultDispatcher.asExecutor(),
- callback
- )
+ var registerResult: Int = SatelliteManager.SATELLITE_RESULT_ERROR
+ try {
+ registerResult = satelliteManager.registerForModemStateChanged(
+ defaultDispatcher.asExecutor(),
+ callback
+ )
+ } catch (e: IllegalStateException) {
+ Log.w(TAG, "IllegalStateException $e")
+ }
if (registerResult != SatelliteManager.SATELLITE_RESULT_SUCCESS) {
// If the registration failed (e.g., device doesn't support satellite),
@@ -150,7 +169,13 @@
trySend(false)
}
- awaitClose { satelliteManager.unregisterForModemStateChanged(callback) }
+ awaitClose {
+ try {
+ satelliteManager.unregisterForModemStateChanged(callback)
+ } catch (e: IllegalStateException) {
+ Log.w(TAG, "IllegalStateException $e")
+ }
+ }
}.flowOn(Dispatchers.Default)
}
diff --git a/src/com/android/settings/network/SimOnboardingService.kt b/src/com/android/settings/network/SimOnboardingService.kt
index ea0b5ac..59dc35e 100644
--- a/src/com/android/settings/network/SimOnboardingService.kt
+++ b/src/com/android/settings/network/SimOnboardingService.kt
@@ -237,6 +237,7 @@
fun addItemForRenaming(subInfo: SubscriptionInfo, newName: String) {
if (subInfo.displayName == newName) {
+ renameMutableMap.remove(subInfo.subscriptionId)
return
}
renameMutableMap[subInfo.subscriptionId] = newName
diff --git a/src/com/android/settings/network/SubscriptionsPreferenceController.java b/src/com/android/settings/network/SubscriptionsPreferenceController.java
index b4ecc62..cdbf456 100644
--- a/src/com/android/settings/network/SubscriptionsPreferenceController.java
+++ b/src/com/android/settings/network/SubscriptionsPreferenceController.java
@@ -303,7 +303,8 @@
return connectionState;
} else {
result = mContext.getString(
- R.string.preference_summary_default_combination, connectionState, result);
+ com.android.settingslib.R.string.preference_summary_default_combination,
+ connectionState, result);
}
} else if (!isDataInService) {
return mContext.getString(R.string.mobile_data_no_connection);
diff --git a/src/com/android/settings/network/ims/VolteQueryImsState.java b/src/com/android/settings/network/ims/VolteQueryImsState.java
index b09a130..5acf2db 100644
--- a/src/com/android/settings/network/ims/VolteQueryImsState.java
+++ b/src/com/android/settings/network/ims/VolteQueryImsState.java
@@ -19,6 +19,7 @@
import static android.telephony.ims.ProvisioningManager.KEY_VOIMS_OPT_IN_STATUS;
import android.content.Context;
+import android.content.pm.PackageManager;
import android.telecom.TelecomManager;
import android.telephony.AccessNetworkConstants;
import android.telephony.SubscriptionManager;
@@ -143,6 +144,11 @@
* @return true when VoIMS opt-in has been enabled, otherwise false
*/
public boolean isVoImsOptInEnabled() {
+ if (!mContext.getPackageManager().hasSystemFeature(PackageManager.FEATURE_TELEPHONY_IMS)) {
+ // If the device does not have PackageManager.FEATURE_TELEPHONY_IMS,
+ // ProvisioningManager.getProvisioningIntValue() could not be called.
+ return false;
+ }
int voImsOptInStatus = ProvisioningManager.createForSubscriptionId(mSubId)
.getProvisioningIntValue(KEY_VOIMS_OPT_IN_STATUS);
return voImsOptInStatus == ProvisioningManager.PROVISIONING_VALUE_ENABLED;
diff --git a/src/com/android/settings/network/telephony/AutoDataSwitchPreferenceController.java b/src/com/android/settings/network/telephony/AutoDataSwitchPreferenceController.java
index fcbfdef..6d6e41f 100644
--- a/src/com/android/settings/network/telephony/AutoDataSwitchPreferenceController.java
+++ b/src/com/android/settings/network/telephony/AutoDataSwitchPreferenceController.java
@@ -38,7 +38,6 @@
import com.android.settings.flags.Flags;
import com.android.settings.network.MobileDataContentObserver;
import com.android.settings.network.SubscriptionsChangeListener;
-import com.android.settings.network.telephony.wificalling.CrossSimCallingViewModel;
/**
* Controls whether switch mobile data to the non-default SIM if the non-default SIM has better
@@ -63,8 +62,6 @@
@Nullable
private MobileDataContentObserver mMobileDataContentObserver;
@Nullable
- private CrossSimCallingViewModel mCrossSimCallingViewModel;
- @Nullable
private PreferenceScreen mScreen;
public AutoDataSwitchPreferenceController(
@@ -72,10 +69,9 @@
super(context, preferenceKey);
}
- void init(int subId, @Nullable CrossSimCallingViewModel crossSimCallingViewModel) {
+ void init(int subId) {
this.mSubId = subId;
mManager = mContext.getSystemService(TelephonyManager.class).createForSubscriptionId(subId);
- mCrossSimCallingViewModel = crossSimCallingViewModel;
}
@OnLifecycleEvent(ON_RESUME)
@@ -122,9 +118,6 @@
TelephonyManager.MOBILE_DATA_POLICY_AUTO_DATA_SWITCH,
isChecked);
}
- if (mCrossSimCallingViewModel != null) {
- mCrossSimCallingViewModel.updateCrossSimCalling();
- }
return true;
}
diff --git a/src/com/android/settings/network/telephony/DataSubscriptionRepository.kt b/src/com/android/settings/network/telephony/DataSubscriptionRepository.kt
index 62e7e98..829c4c0 100644
--- a/src/com/android/settings/network/telephony/DataSubscriptionRepository.kt
+++ b/src/com/android/settings/network/telephony/DataSubscriptionRepository.kt
@@ -33,6 +33,7 @@
import kotlinx.coroutines.flow.distinctUntilChanged
import kotlinx.coroutines.flow.flowOn
import kotlinx.coroutines.flow.map
+import kotlinx.coroutines.flow.onEach
import kotlinx.coroutines.flow.onStart
class DataSubscriptionRepository(
@@ -53,6 +54,7 @@
.onStart { emit(SubscriptionManager.getDefaultDataSubscriptionId()) }
.distinctUntilChanged()
.conflate()
+ .onEach { Log.d(TAG, "defaultDataSubscriptionIdFlow: $it") }
.flowOn(Dispatchers.Default)
fun activeDataSubscriptionIdFlow(): Flow<Int> =
diff --git a/src/com/android/settings/network/telephony/EnabledNetworkModePreferenceController.java b/src/com/android/settings/network/telephony/EnabledNetworkModePreferenceController.java
index e92d999..7d5230d 100644
--- a/src/com/android/settings/network/telephony/EnabledNetworkModePreferenceController.java
+++ b/src/com/android/settings/network/telephony/EnabledNetworkModePreferenceController.java
@@ -19,9 +19,11 @@
import static androidx.lifecycle.Lifecycle.Event.ON_START;
import static androidx.lifecycle.Lifecycle.Event.ON_STOP;
+import static com.android.settings.network.telephony.EnabledNetworkModePreferenceControllerHelperKt.getNetworkModePreferenceType;
import static com.android.settings.network.telephony.EnabledNetworkModePreferenceControllerHelperKt.setAllowedNetworkTypes;
import android.content.Context;
+import android.content.res.Resources;
import android.os.PersistableBundle;
import android.telephony.CarrierConfigManager;
import android.telephony.SubscriptionInfo;
@@ -44,6 +46,7 @@
import com.android.internal.telephony.flags.Flags;
import com.android.settings.R;
+import com.android.settings.core.BasePreferenceController;
import com.android.settings.network.AllowedNetworkTypesListener;
import com.android.settings.network.CarrierConfigCache;
import com.android.settings.network.SubscriptionsChangeListener;
@@ -61,16 +64,17 @@
* Preference controller for "Enabled network mode"
*/
public class EnabledNetworkModePreferenceController extends
- TelephonyBasePreferenceController implements
+ BasePreferenceController implements
ListPreference.OnPreferenceChangeListener, LifecycleObserver,
SubscriptionsChangeListener.SubscriptionsChangeListenerClient {
private static final String LOG_TAG = "EnabledNetworkMode";
+
+ private int mSubId = SubscriptionManager.INVALID_SUBSCRIPTION_ID;
private AllowedNetworkTypesListener mAllowedNetworkTypesListener;
private Preference mPreference;
private PreferenceScreen mPreferenceScreen;
private TelephonyManager mTelephonyManager;
- private CarrierConfigCache mCarrierConfigCache;
private PreferenceEntriesBuilder mBuilder;
private SubscriptionsChangeListener mSubscriptionsListener;
private int mCallState = TelephonyManager.CALL_STATE_IDLE;
@@ -81,36 +85,16 @@
public EnabledNetworkModePreferenceController(Context context, String key) {
super(context, key);
mSubscriptionsListener = new SubscriptionsChangeListener(context, this);
- mCarrierConfigCache = CarrierConfigCache.getInstance(context);
if (mTelephonyCallback == null) {
mTelephonyCallback = new PhoneCallStateTelephonyCallback();
}
}
@Override
- public int getAvailabilityStatus(int subId) {
- boolean visible;
-
- final PersistableBundle carrierConfig = mCarrierConfigCache.getConfigForSubId(subId);
- if (subId == SubscriptionManager.INVALID_SUBSCRIPTION_ID) {
- visible = false;
- } else if (carrierConfig == null
- || !CarrierConfigManager.isConfigForIdentifiedCarrier(carrierConfig)) {
- visible = false;
- } else if (carrierConfig.getBoolean(
- CarrierConfigManager.KEY_HIDE_CARRIER_NETWORK_SETTINGS_BOOL)
- || carrierConfig.getBoolean(
- CarrierConfigManager.KEY_HIDE_PREFERRED_NETWORK_TYPE_BOOL)) {
- visible = false;
- } else if (carrierConfig.getBoolean(CarrierConfigManager.KEY_WORLD_PHONE_BOOL)) {
- visible = false;
- } else if (!isCallStateIdle()) {
- return AVAILABLE_UNSEARCHABLE;
- } else {
- visible = true;
- }
-
- return visible ? AVAILABLE : CONDITIONALLY_UNAVAILABLE;
+ public int getAvailabilityStatus() {
+ return getNetworkModePreferenceType(mContext, mSubId)
+ == NetworkModePreferenceType.EnabledNetworkMode
+ ? AVAILABLE : CONDITIONALLY_UNAVAILABLE;
}
protected boolean isCallStateIdle() {
@@ -953,9 +937,14 @@
}
}
+ /**
+ * Returns the resources associated with Subscription.
+ *
+ * @return Resources associated with Subscription.
+ */
@VisibleForTesting
- PhoneCallStateTelephonyCallback getTelephonyCallback() {
- return mTelephonyCallback;
+ Resources getResourcesForSubId() {
+ return SubscriptionManager.getResourcesForSubId(mContext, mSubId);
}
@Override
diff --git a/src/com/android/settings/network/telephony/EnabledNetworkModePreferenceControllerHelper.kt b/src/com/android/settings/network/telephony/EnabledNetworkModePreferenceControllerHelper.kt
index eab5d74..d297e1c 100644
--- a/src/com/android/settings/network/telephony/EnabledNetworkModePreferenceControllerHelper.kt
+++ b/src/com/android/settings/network/telephony/EnabledNetworkModePreferenceControllerHelper.kt
@@ -16,9 +16,15 @@
package com.android.settings.network.telephony
+import android.content.Context
+import android.telephony.CarrierConfigManager
+import android.telephony.SubscriptionManager
import android.telephony.TelephonyManager
import androidx.lifecycle.LifecycleOwner
import androidx.lifecycle.lifecycleScope
+import com.android.settings.R
+import com.android.settings.network.telephony.MobileNetworkSettingsSearchIndex.MobileNetworkSettingsSearchItem
+import com.android.settings.network.telephony.MobileNetworkSettingsSearchIndex.MobileNetworkSettingsSearchResult
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch
@@ -33,3 +39,62 @@
)
}
}
+
+enum class NetworkModePreferenceType {
+ EnabledNetworkMode,
+ PreferredNetworkMode,
+ None,
+}
+
+fun getNetworkModePreferenceType(context: Context, subId: Int): NetworkModePreferenceType {
+ if (!SubscriptionManager.isValidSubscriptionId(subId)) return NetworkModePreferenceType.None
+ data class Config(
+ val carrierConfigApplied: Boolean,
+ val hideCarrierNetworkSettings: Boolean,
+ val hidePreferredNetworkType: Boolean,
+ val worldPhone: Boolean,
+ )
+
+ val config =
+ CarrierConfigRepository(context).transformConfig(subId) {
+ Config(
+ carrierConfigApplied =
+ getBoolean(CarrierConfigManager.KEY_CARRIER_CONFIG_APPLIED_BOOL),
+ hideCarrierNetworkSettings =
+ getBoolean(CarrierConfigManager.KEY_HIDE_CARRIER_NETWORK_SETTINGS_BOOL),
+ hidePreferredNetworkType =
+ getBoolean(CarrierConfigManager.KEY_HIDE_PREFERRED_NETWORK_TYPE_BOOL),
+ worldPhone = getBoolean(CarrierConfigManager.KEY_WORLD_PHONE_BOOL),
+ )
+ }
+
+ return when {
+ !config.carrierConfigApplied ||
+ config.hideCarrierNetworkSettings ||
+ config.hidePreferredNetworkType -> NetworkModePreferenceType.None
+ config.worldPhone -> NetworkModePreferenceType.PreferredNetworkMode
+ else -> NetworkModePreferenceType.EnabledNetworkMode
+ }
+}
+
+class PreferredNetworkModeSearchItem(private val context: Context) :
+ MobileNetworkSettingsSearchItem {
+ private val title: String = context.getString(R.string.preferred_network_mode_title)
+
+ override fun getSearchResult(subId: Int): MobileNetworkSettingsSearchResult? =
+ when (getNetworkModePreferenceType(context, subId)) {
+ NetworkModePreferenceType.PreferredNetworkMode ->
+ MobileNetworkSettingsSearchResult(
+ key = "preferred_network_mode_key",
+ title = title,
+ )
+
+ NetworkModePreferenceType.EnabledNetworkMode ->
+ MobileNetworkSettingsSearchResult(
+ key = "enabled_networks_key",
+ title = title,
+ )
+
+ else -> null
+ }
+}
diff --git a/src/com/android/settings/network/telephony/MmsMessagePreferenceController.kt b/src/com/android/settings/network/telephony/MmsMessagePreferenceController.kt
index 445597f..220218c 100644
--- a/src/com/android/settings/network/telephony/MmsMessagePreferenceController.kt
+++ b/src/com/android/settings/network/telephony/MmsMessagePreferenceController.kt
@@ -20,48 +20,42 @@
import android.telephony.SubscriptionManager
import android.telephony.TelephonyManager
import android.telephony.data.ApnSetting
+import androidx.annotation.VisibleForTesting
import androidx.lifecycle.LifecycleOwner
import androidx.preference.PreferenceScreen
+import com.android.settings.R
+import com.android.settings.Settings.MobileNetworkActivity.EXTRA_MMS_MESSAGE
+import com.android.settings.core.TogglePreferenceController
+import com.android.settings.network.telephony.MobileNetworkSettingsSearchIndex.MobileNetworkSettingsSearchResult
+import com.android.settings.network.telephony.MobileNetworkSettingsSearchIndex.MobileNetworkSettingsSearchItem
import com.android.settingslib.spa.framework.util.collectLatestWithLifecycle
import kotlinx.coroutines.flow.combine
-/**
- * Preference controller for "MMS messages"
- */
-class MmsMessagePreferenceController @JvmOverloads constructor(
+/** Preference controller for "MMS messages" */
+class MmsMessagePreferenceController
+@JvmOverloads
+constructor(
context: Context,
key: String,
private val getDefaultDataSubId: () -> Int = {
SubscriptionManager.getDefaultDataSubscriptionId()
},
-) : TelephonyTogglePreferenceController(context, key) {
+) : TogglePreferenceController(context, key) {
- private lateinit var telephonyManager: TelephonyManager
+ private var subId = SubscriptionManager.INVALID_SUBSCRIPTION_ID
+ private var telephonyManager: TelephonyManager =
+ context.getSystemService(TelephonyManager::class.java)!!
private var preferenceScreen: PreferenceScreen? = null
fun init(subId: Int) {
- mSubId = subId
- telephonyManager = mContext.getSystemService(TelephonyManager::class.java)!!
- .createForSubscriptionId(subId)
+ this.subId = subId
+ telephonyManager = telephonyManager.createForSubscriptionId(subId)
}
- override fun getAvailabilityStatus(subId: Int) =
- if (subId != SubscriptionManager.INVALID_SUBSCRIPTION_ID &&
- this::telephonyManager.isInitialized &&
- !telephonyManager.isDataEnabled &&
- telephonyManager.isApnMetered(ApnSetting.TYPE_MMS) &&
- !isFallbackDataEnabled()
- ) AVAILABLE else CONDITIONALLY_UNAVAILABLE
-
- private fun isFallbackDataEnabled(): Boolean {
- val defaultDataSubId = getDefaultDataSubId()
- return defaultDataSubId != mSubId &&
- telephonyManager.createForSubscriptionId(defaultDataSubId).isDataEnabled &&
- telephonyManager.isMobileDataPolicyEnabled(
- TelephonyManager.MOBILE_DATA_POLICY_AUTO_DATA_SWITCH
- )
- }
+ override fun getAvailabilityStatus() =
+ if (getAvailabilityStatus(telephonyManager, subId, getDefaultDataSubId)) AVAILABLE
+ else CONDITIONALLY_UNAVAILABLE
override fun displayPreference(screen: PreferenceScreen) {
super.displayPreference(screen)
@@ -70,16 +64,20 @@
override fun onViewCreated(viewLifecycleOwner: LifecycleOwner) {
combine(
- MobileDataRepository(mContext).mobileDataEnabledChangedFlow(mSubId),
- mContext.subscriptionsChangedFlow(), // Capture isMobileDataPolicyEnabled() changes
- ) { _, _ -> }.collectLatestWithLifecycle(viewLifecycleOwner) {
- preferenceScreen?.let { super.displayPreference(it) }
- }
+ MobileDataRepository(mContext).mobileDataEnabledChangedFlow(subId),
+ mContext.subscriptionsChangedFlow(), // Capture isMobileDataPolicyEnabled() changes
+ ) { _, _ ->
+ }
+ .collectLatestWithLifecycle(viewLifecycleOwner) {
+ preferenceScreen?.let { super.displayPreference(it) }
+ }
}
- override fun isChecked(): Boolean = telephonyManager.isMobileDataPolicyEnabled(
- TelephonyManager.MOBILE_DATA_POLICY_MMS_ALWAYS_ALLOWED
- )
+ override fun getSliceHighlightMenuRes() = NO_RES
+
+ override fun isChecked(): Boolean =
+ telephonyManager.isMobileDataPolicyEnabled(
+ TelephonyManager.MOBILE_DATA_POLICY_MMS_ALWAYS_ALLOWED)
override fun setChecked(isChecked: Boolean): Boolean {
telephonyManager.setMobileDataPolicyEnabled(
@@ -88,4 +86,51 @@
)
return true
}
+
+ companion object {
+ private fun getAvailabilityStatus(
+ telephonyManager: TelephonyManager,
+ subId: Int,
+ getDefaultDataSubId: () -> Int,
+ ): Boolean {
+ return SubscriptionManager.isValidSubscriptionId(subId) &&
+ !telephonyManager.isDataEnabled &&
+ telephonyManager.isApnMetered(ApnSetting.TYPE_MMS) &&
+ !isFallbackDataEnabled(telephonyManager, subId, getDefaultDataSubId())
+ }
+
+ private fun isFallbackDataEnabled(
+ telephonyManager: TelephonyManager,
+ subId: Int,
+ defaultDataSubId: Int,
+ ): Boolean {
+ return defaultDataSubId != subId &&
+ telephonyManager.createForSubscriptionId(defaultDataSubId).isDataEnabled &&
+ telephonyManager.isMobileDataPolicyEnabled(
+ TelephonyManager.MOBILE_DATA_POLICY_AUTO_DATA_SWITCH)
+ }
+
+ class MmsMessageSearchItem(
+ private val context: Context,
+ private val getDefaultDataSubId: () -> Int = {
+ SubscriptionManager.getDefaultDataSubscriptionId()
+ },
+ ) : MobileNetworkSettingsSearchItem {
+ private var telephonyManager: TelephonyManager =
+ context.getSystemService(TelephonyManager::class.java)!!
+
+ @VisibleForTesting
+ fun isAvailable(subId: Int): Boolean =
+ getAvailabilityStatus(
+ telephonyManager.createForSubscriptionId(subId), subId, getDefaultDataSubId)
+
+ override fun getSearchResult(subId: Int): MobileNetworkSettingsSearchResult? {
+ if (!isAvailable(subId)) return null
+ return MobileNetworkSettingsSearchResult(
+ key = EXTRA_MMS_MESSAGE,
+ title = context.getString(R.string.mms_message_title),
+ )
+ }
+ }
+ }
}
diff --git a/src/com/android/settings/network/telephony/MobileDataSlice.java b/src/com/android/settings/network/telephony/MobileDataSlice.java
index fd65e85..f5e734d 100644
--- a/src/com/android/settings/network/telephony/MobileDataSlice.java
+++ b/src/com/android/settings/network/telephony/MobileDataSlice.java
@@ -29,6 +29,7 @@
import android.net.Uri;
import android.os.Handler;
import android.os.Looper;
+import android.os.UserManager;
import android.provider.Settings;
import android.telephony.SubscriptionInfo;
import android.telephony.SubscriptionManager;
@@ -79,19 +80,24 @@
@Override
public Slice getSlice() {
+ ListBuilder listBuilder = createListBuilder();
+ if (!isConfigMobileNetworksAllowed()) {
+ return listBuilder.build();
+ }
+
final IconCompat icon = IconCompat.createWithResource(mContext,
R.drawable.ic_network_cell);
final String title = mContext.getText(R.string.mobile_data_settings_title).toString();
@ColorInt final int color = Utils.getColorAccentDefaultColor(mContext);
- // Return null until we can show a disabled-action Slice, blaming Airplane mode.
+ // Return empty slice until we can show a disabled-action Slice, blaming Airplane mode.
if (isAirplaneModeEnabled()) {
- return null;
+ return listBuilder.build();
}
- // Return null until we can show a disabled-action Slice.
+ // Return empty slice until we can show a disabled-action Slice.
if (!isMobileDataAvailable()) {
- return null;
+ return listBuilder.build();
}
final CharSequence summary = getSummary();
@@ -109,11 +115,15 @@
rowBuilder.setSubtitle(summary);
}
- final ListBuilder listBuilder = new ListBuilder(mContext, getUri(),
- ListBuilder.INFINITY)
+ return listBuilder
.setAccentColor(color)
- .addRow(rowBuilder);
- return listBuilder.build();
+ .addRow(rowBuilder)
+ .build();
+ }
+
+ @VisibleForTesting
+ ListBuilder createListBuilder() {
+ return new ListBuilder(mContext, getUri(), ListBuilder.INFINITY);
}
@Override
@@ -211,6 +221,19 @@
return mTelephonyManager.isDataEnabled();
}
+ @VisibleForTesting
+ boolean isConfigMobileNetworksAllowed() {
+ if (mContext == null) return true;
+ UserManager userManager = mContext.getSystemService(UserManager.class);
+ if (userManager == null) return true;
+ boolean isAllowed = userManager.isAdminUser() && !userManager.hasUserRestriction(
+ UserManager.DISALLOW_CONFIG_MOBILE_NETWORKS);
+ if (!isAllowed) {
+ Log.w(TAG, "The user is not allowed to configure Mobile Networks.");
+ }
+ return isAllowed;
+ }
+
/**
* Listener for mobile data state changes.
*
diff --git a/src/com/android/settings/network/telephony/MobileNetworkPhoneNumberPreferenceController.kt b/src/com/android/settings/network/telephony/MobileNetworkPhoneNumberPreferenceController.kt
index 10a8b53..db16acd 100644
--- a/src/com/android/settings/network/telephony/MobileNetworkPhoneNumberPreferenceController.kt
+++ b/src/com/android/settings/network/telephony/MobileNetworkPhoneNumberPreferenceController.kt
@@ -17,49 +17,37 @@
package com.android.settings.network.telephony
import android.content.Context
-import android.telephony.SubscriptionInfo
import android.telephony.SubscriptionManager
-import android.util.Log
-import androidx.annotation.VisibleForTesting
-import androidx.fragment.app.Fragment
-import androidx.fragment.app.viewModels
import androidx.lifecycle.LifecycleOwner
-import androidx.lifecycle.lifecycleScope
import androidx.preference.Preference
import androidx.preference.PreferenceScreen
import com.android.settings.R
import com.android.settings.flags.Flags
-import com.android.settings.network.SubscriptionInfoListViewModel
import com.android.settings.network.SubscriptionUtil
import com.android.settingslib.spa.framework.util.collectLatestWithLifecycle
-import kotlinx.coroutines.Dispatchers
-import kotlinx.coroutines.flow.flowOn
-import kotlinx.coroutines.flow.map
-import kotlinx.coroutines.launch
-import kotlinx.coroutines.withContext
-/**
- * Preference controller for "Phone number"
- */
-class MobileNetworkPhoneNumberPreferenceController(context: Context, key: String) :
- TelephonyBasePreferenceController(context, key) {
+/** Preference controller for "Phone number" */
+class MobileNetworkPhoneNumberPreferenceController
+@JvmOverloads
+constructor(
+ context: Context,
+ key: String,
+ private val subscriptionRepository: SubscriptionRepository = SubscriptionRepository(context),
+) : TelephonyBasePreferenceController(context, key) {
- private lateinit var lazyViewModel: Lazy<SubscriptionInfoListViewModel>
private lateinit var preference: Preference
- private var phoneNumber = String()
-
- fun init(fragment: Fragment, subId: Int) {
- lazyViewModel = fragment.viewModels()
+ fun init(subId: Int) {
mSubId = subId
}
- override fun getAvailabilityStatus(subId: Int): Int = when {
- !Flags.isDualSimOnboardingEnabled() -> CONDITIONALLY_UNAVAILABLE
- SubscriptionManager.isValidSubscriptionId(subId)
- && SubscriptionUtil.isSimHardwareVisible(mContext) -> AVAILABLE
- else -> CONDITIONALLY_UNAVAILABLE
- }
+ override fun getAvailabilityStatus(subId: Int): Int =
+ when {
+ !Flags.isDualSimOnboardingEnabled() -> CONDITIONALLY_UNAVAILABLE
+ SubscriptionManager.isValidSubscriptionId(subId) &&
+ SubscriptionUtil.isSimHardwareVisible(mContext) -> AVAILABLE
+ else -> CONDITIONALLY_UNAVAILABLE
+ }
override fun displayPreference(screen: PreferenceScreen) {
super.displayPreference(screen)
@@ -67,51 +55,10 @@
}
override fun onViewCreated(viewLifecycleOwner: LifecycleOwner) {
- if (!this::lazyViewModel.isInitialized) {
- Log.e(
- this.javaClass.simpleName,
- "lateinit property lazyViewModel has not been initialized"
- )
- return
- }
- val viewModel by lazyViewModel
- val coroutineScope = viewLifecycleOwner.lifecycleScope
-
- viewModel.subscriptionInfoListFlow
- .map { subscriptionInfoList ->
- subscriptionInfoList
- .firstOrNull { subInfo -> subInfo.subscriptionId == mSubId }
+ subscriptionRepository.phoneNumberFlow(mSubId).collectLatestWithLifecycle(
+ viewLifecycleOwner) { phoneNumber ->
+ preference.summary = phoneNumber ?: getStringUnknown()
}
- .flowOn(Dispatchers.Default)
- .collectLatestWithLifecycle(viewLifecycleOwner) {
- it?.let {
- coroutineScope.launch {
- refreshData(it)
- }
- }
- }
- }
-
- @VisibleForTesting
- suspend fun refreshData(subscriptionInfo: SubscriptionInfo){
- withContext(Dispatchers.Default) {
- phoneNumber = getFormattedPhoneNumber(subscriptionInfo)
- }
- refreshUi()
- }
-
- private fun refreshUi(){
- preference.summary = phoneNumber
- }
-
- private fun getFormattedPhoneNumber(subscriptionInfo: SubscriptionInfo?): String {
- val phoneNumber = SubscriptionUtil.getBidiFormattedPhoneNumber(
- mContext,
- subscriptionInfo
- )
- return phoneNumber
- ?.let { return it.ifEmpty { getStringUnknown() } }
- ?: getStringUnknown()
}
private fun getStringUnknown(): String {
diff --git a/src/com/android/settings/network/telephony/MobileNetworkSettings.java b/src/com/android/settings/network/telephony/MobileNetworkSettings.java
index 699f09e..acf674f 100644
--- a/src/com/android/settings/network/telephony/MobileNetworkSettings.java
+++ b/src/com/android/settings/network/telephony/MobileNetworkSettings.java
@@ -252,16 +252,17 @@
use(CarrierSettingsVersionPreferenceController.class).init(mSubId);
use(BillingCyclePreferenceController.class).init(mSubId);
use(MmsMessagePreferenceController.class).init(mSubId);
- final var crossSimCallingViewModel =
- new ViewModelProvider(this).get(CrossSimCallingViewModel.class);
- use(AutoDataSwitchPreferenceController.class).init(mSubId, crossSimCallingViewModel);
+ // CrossSimCallingViewModel is responsible for maintaining the correct cross sim calling
+ // settings (backup calling).
+ new ViewModelProvider(this).get(CrossSimCallingViewModel.class);
+ use(AutoDataSwitchPreferenceController.class).init(mSubId);
use(DisabledSubscriptionController.class).init(mSubId);
use(DeleteSimProfilePreferenceController.class).init(mSubId);
use(DisableSimFooterPreferenceController.class).init(mSubId);
use(NrDisabledInDsdsFooterPreferenceController.class).init(mSubId);
use(MobileNetworkSpnPreferenceController.class).init(this, mSubId);
- use(MobileNetworkPhoneNumberPreferenceController.class).init(this, mSubId);
+ use(MobileNetworkPhoneNumberPreferenceController.class).init(mSubId);
use(MobileNetworkImeiPreferenceController.class).init(this, mSubId);
final MobileDataPreferenceController mobileDataPreferenceController =
@@ -471,14 +472,10 @@
public static final BaseSearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
new BaseSearchIndexProvider(R.xml.mobile_network_settings) {
-
- /** suppress full page if user is not admin */
@Override
protected boolean isPageSearchEnabled(Context context) {
- boolean isAirplaneOff = Settings.Global.getInt(context.getContentResolver(),
- Settings.Global.AIRPLANE_MODE_ON, 0) == 0;
- return isAirplaneOff && SubscriptionUtil.isSimHardwareVisible(context)
- && context.getSystemService(UserManager.class).isAdminUser();
+ return MobileNetworkSettingsSearchIndex
+ .isMobileNetworkSettingsSearchable(context);
}
};
diff --git a/src/com/android/settings/network/telephony/MobileNetworkSettingsSearchIndex.kt b/src/com/android/settings/network/telephony/MobileNetworkSettingsSearchIndex.kt
new file mode 100644
index 0000000..58661f0
--- /dev/null
+++ b/src/com/android/settings/network/telephony/MobileNetworkSettingsSearchIndex.kt
@@ -0,0 +1,124 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.network.telephony
+
+import android.content.Context
+import android.provider.Settings
+import android.telephony.SubscriptionInfo
+import com.android.settings.R
+import com.android.settings.network.SubscriptionUtil
+import com.android.settings.network.telephony.MmsMessagePreferenceController.Companion.MmsMessageSearchItem
+import com.android.settings.network.telephony.NrAdvancedCallingPreferenceController.Companion.NrAdvancedCallingSearchItem
+import com.android.settings.network.telephony.RoamingPreferenceController.Companion.RoamingSearchItem
+import com.android.settings.network.telephony.WifiCallingPreferenceController.Companion.WifiCallingSearchItem
+import com.android.settings.spa.SpaSearchLanding.BundleValue
+import com.android.settings.spa.SpaSearchLanding.SpaSearchLandingFragment
+import com.android.settings.spa.SpaSearchLanding.SpaSearchLandingKey
+import com.android.settings.spa.search.SpaSearchRepository.Companion.createSearchIndexableRaw
+import com.android.settings.spa.search.SpaSearchRepository.Companion.searchIndexProviderOf
+import com.android.settingslib.search.SearchIndexableData
+import com.android.settingslib.search.SearchIndexableRaw
+import com.android.settingslib.spaprivileged.framework.common.userManager
+import com.android.settingslib.spaprivileged.settingsprovider.settingsGlobalBoolean
+
+class MobileNetworkSettingsSearchIndex(
+ private val searchItemsFactory: (context: Context) -> List<MobileNetworkSettingsSearchItem> =
+ ::createSearchItems,
+) {
+ data class MobileNetworkSettingsSearchResult(
+ val key: String,
+ val title: String,
+ val keywords: String? = null,
+ )
+
+ interface MobileNetworkSettingsSearchItem {
+ fun getSearchResult(subId: Int): MobileNetworkSettingsSearchResult?
+ }
+
+ fun createSearchIndexableData(): SearchIndexableData {
+ val searchIndexProvider = searchIndexProviderOf { context ->
+ if (!isMobileNetworkSettingsSearchable(context)) {
+ return@searchIndexProviderOf emptyList()
+ }
+ val subInfos = context.requireSubscriptionManager().activeSubscriptionInfoList
+ if (subInfos.isNullOrEmpty()) {
+ return@searchIndexProviderOf emptyList()
+ }
+ searchItemsFactory(context).flatMap { searchItem ->
+ searchIndexableRawList(context, searchItem, subInfos)
+ }
+ }
+ return SearchIndexableData(MobileNetworkSettings::class.java, searchIndexProvider)
+ }
+
+ private fun searchIndexableRawList(
+ context: Context,
+ searchItem: MobileNetworkSettingsSearchItem,
+ subInfos: List<SubscriptionInfo>
+ ): List<SearchIndexableRaw> =
+ subInfos.mapNotNull { subInfo ->
+ searchItem.getSearchResult(subInfo.subscriptionId)?.let { searchResult ->
+ searchIndexableRaw(context, searchResult, subInfo)
+ }
+ }
+
+ private fun searchIndexableRaw(
+ context: Context,
+ searchResult: MobileNetworkSettingsSearchResult,
+ subInfo: SubscriptionInfo,
+ ): SearchIndexableRaw {
+ val key =
+ SpaSearchLandingKey.newBuilder()
+ .setFragment(
+ SpaSearchLandingFragment.newBuilder()
+ .setFragmentName(MobileNetworkSettings::class.java.name)
+ .setPreferenceKey(searchResult.key)
+ .putArguments(
+ Settings.EXTRA_SUB_ID,
+ BundleValue.newBuilder().setIntValue(subInfo.subscriptionId).build()))
+ .build()
+ val simsTitle = context.getString(R.string.provider_network_settings_title)
+ return createSearchIndexableRaw(
+ context = context,
+ spaSearchLandingKey = key,
+ itemTitle = searchResult.title,
+ keywords = searchResult.keywords,
+ indexableClass = MobileNetworkSettings::class.java,
+ pageTitle = "$simsTitle > ${subInfo.displayName}",
+ )
+ }
+
+ companion object {
+ /** suppress full page if user is not admin */
+ @JvmStatic
+ fun isMobileNetworkSettingsSearchable(context: Context): Boolean {
+ val isAirplaneMode by context.settingsGlobalBoolean(Settings.Global.AIRPLANE_MODE_ON)
+ return SubscriptionUtil.isSimHardwareVisible(context) &&
+ !isAirplaneMode &&
+ context.userManager.isAdminUser
+ }
+
+ fun createSearchItems(context: Context): List<MobileNetworkSettingsSearchItem> =
+ listOf(
+ MmsMessageSearchItem(context),
+ NrAdvancedCallingSearchItem(context),
+ PreferredNetworkModeSearchItem(context),
+ RoamingSearchItem(context),
+ WifiCallingSearchItem(context),
+ )
+ }
+}
diff --git a/src/com/android/settings/network/telephony/NrAdvancedCallingPreferenceController.kt b/src/com/android/settings/network/telephony/NrAdvancedCallingPreferenceController.kt
index cf47c1f..0d8766e 100644
--- a/src/com/android/settings/network/telephony/NrAdvancedCallingPreferenceController.kt
+++ b/src/com/android/settings/network/telephony/NrAdvancedCallingPreferenceController.kt
@@ -25,6 +25,8 @@
import androidx.compose.ui.res.stringResource
import androidx.lifecycle.compose.collectAsStateWithLifecycle
import com.android.settings.R
+import com.android.settings.network.telephony.MobileNetworkSettingsSearchIndex.MobileNetworkSettingsSearchResult
+import com.android.settings.network.telephony.MobileNetworkSettingsSearchIndex.MobileNetworkSettingsSearchItem
import com.android.settings.spa.preference.ComposePreferenceController
import com.android.settingslib.spa.widget.preference.SwitchPreference
import com.android.settingslib.spa.widget.preference.SwitchPreferenceModel
@@ -41,6 +43,7 @@
) : ComposePreferenceController(context, key) {
private var subId: Int = SubscriptionManager.INVALID_SUBSCRIPTION_ID
private var repository: VoNrRepository? = null
+ private val searchItem = NrAdvancedCallingSearchItem(context)
/** Initial this PreferenceController. */
@JvmOverloads
@@ -50,7 +53,7 @@
}
override fun getAvailabilityStatus() =
- if (repository?.isVoNrAvailable() == true) AVAILABLE else CONDITIONALLY_UNAVAILABLE
+ if (searchItem.isAvailable(subId)) AVAILABLE else CONDITIONALLY_UNAVAILABLE
@Composable
override fun Content() {
@@ -73,4 +76,21 @@
}
})
}
+
+ companion object {
+ class NrAdvancedCallingSearchItem(private val context: Context) :
+ MobileNetworkSettingsSearchItem {
+
+ fun isAvailable(subId: Int): Boolean = VoNrRepository(context, subId).isVoNrAvailable()
+
+ override fun getSearchResult(subId: Int): MobileNetworkSettingsSearchResult? {
+ if (!isAvailable(subId)) return null
+ return MobileNetworkSettingsSearchResult(
+ key = "nr_advanced_calling",
+ title = context.getString(R.string.nr_advanced_calling_title),
+ keywords = context.getString(R.string.keywords_nr_advanced_calling),
+ )
+ }
+ }
+ }
}
diff --git a/src/com/android/settings/network/telephony/PreferredNetworkModePreferenceController.java b/src/com/android/settings/network/telephony/PreferredNetworkModePreferenceController.java
index bdfeace..210cd87 100644
--- a/src/com/android/settings/network/telephony/PreferredNetworkModePreferenceController.java
+++ b/src/com/android/settings/network/telephony/PreferredNetworkModePreferenceController.java
@@ -16,6 +16,8 @@
package com.android.settings.network.telephony;
+import static com.android.settings.network.telephony.EnabledNetworkModePreferenceControllerHelperKt.getNetworkModePreferenceType;
+
import android.content.Context;
import android.os.PersistableBundle;
import android.telephony.CarrierConfigManager;
@@ -27,16 +29,18 @@
import androidx.preference.Preference;
import com.android.settings.R;
+import com.android.settings.core.BasePreferenceController;
import com.android.settings.network.CarrierConfigCache;
import com.android.settings.network.telephony.TelephonyConstants.TelephonyManagerConstants;
/**
* Preference controller for "Preferred network mode"
*/
-public class PreferredNetworkModePreferenceController extends TelephonyBasePreferenceController
+public class PreferredNetworkModePreferenceController extends BasePreferenceController
implements ListPreference.OnPreferenceChangeListener {
private static final String TAG = "PrefNetworkModeCtrl";
+ private int mSubId = SubscriptionManager.INVALID_SUBSCRIPTION_ID;
private CarrierConfigCache mCarrierConfigCache;
private TelephonyManager mTelephonyManager;
private boolean mIsGlobalCdma;
@@ -47,25 +51,10 @@
}
@Override
- public int getAvailabilityStatus(int subId) {
- final PersistableBundle carrierConfig = mCarrierConfigCache.getConfigForSubId(subId);
- boolean visible;
- if (subId == SubscriptionManager.INVALID_SUBSCRIPTION_ID) {
- visible = false;
- } else if (carrierConfig == null) {
- visible = false;
- } else if (carrierConfig.getBoolean(
- CarrierConfigManager.KEY_HIDE_CARRIER_NETWORK_SETTINGS_BOOL)
- || carrierConfig.getBoolean(
- CarrierConfigManager.KEY_HIDE_PREFERRED_NETWORK_TYPE_BOOL)) {
- visible = false;
- } else if (carrierConfig.getBoolean(CarrierConfigManager.KEY_WORLD_PHONE_BOOL)) {
- visible = true;
- } else {
- visible = false;
- }
-
- return visible ? AVAILABLE : CONDITIONALLY_UNAVAILABLE;
+ public int getAvailabilityStatus() {
+ return getNetworkModePreferenceType(mContext, mSubId)
+ == NetworkModePreferenceType.PreferredNetworkMode
+ ? AVAILABLE : CONDITIONALLY_UNAVAILABLE;
}
@Override
diff --git a/src/com/android/settings/network/telephony/RoamingPreferenceController.kt b/src/com/android/settings/network/telephony/RoamingPreferenceController.kt
index 2529d41..a5ac7d6 100644
--- a/src/com/android/settings/network/telephony/RoamingPreferenceController.kt
+++ b/src/com/android/settings/network/telephony/RoamingPreferenceController.kt
@@ -29,6 +29,8 @@
import androidx.fragment.app.FragmentManager
import androidx.lifecycle.compose.collectAsStateWithLifecycle
import com.android.settings.R
+import com.android.settings.network.telephony.MobileNetworkSettingsSearchIndex.MobileNetworkSettingsSearchResult
+import com.android.settings.network.telephony.MobileNetworkSettingsSearchIndex.MobileNetworkSettingsSearchItem
import com.android.settings.spa.preference.ComposePreferenceController
import com.android.settingslib.spa.widget.preference.SwitchPreferenceModel
import com.android.settingslib.spaprivileged.model.enterprise.Restrictions
@@ -47,6 +49,7 @@
private var telephonyManager = context.getSystemService(TelephonyManager::class.java)!!
private val carrierConfigRepository = CarrierConfigRepository(context)
+ private val roamingSearchItem = RoamingSearchItem(context)
fun init(fragmentManager: FragmentManager, subId: Int) {
this.fragmentManager = fragmentManager
@@ -54,14 +57,8 @@
telephonyManager = telephonyManager.createForSubscriptionId(subId)
}
- override fun getAvailabilityStatus(): Int {
- if (!SubscriptionManager.isValidSubscriptionId(subId)) return CONDITIONALLY_UNAVAILABLE
- val isForceHomeNetwork =
- carrierConfigRepository.getBoolean(
- subId, CarrierConfigManager.KEY_FORCE_HOME_NETWORK_BOOL)
-
- return if (isForceHomeNetwork) CONDITIONALLY_UNAVAILABLE else AVAILABLE
- }
+ override fun getAvailabilityStatus() =
+ if (roamingSearchItem.isAvailable(subId)) AVAILABLE else CONDITIONALLY_UNAVAILABLE
@Composable
override fun Content() {
@@ -101,5 +98,22 @@
companion object {
private const val DIALOG_TAG = "MobileDataDialog"
+
+ class RoamingSearchItem(private val context: Context) : MobileNetworkSettingsSearchItem {
+ private val carrierConfigRepository = CarrierConfigRepository(context)
+
+ fun isAvailable(subId: Int): Boolean =
+ SubscriptionManager.isValidSubscriptionId(subId) &&
+ !carrierConfigRepository.getBoolean(
+ subId, CarrierConfigManager.KEY_FORCE_HOME_NETWORK_BOOL)
+
+ override fun getSearchResult(subId: Int): MobileNetworkSettingsSearchResult? {
+ if (!isAvailable(subId)) return null
+ return MobileNetworkSettingsSearchResult(
+ key = "button_roaming_key",
+ title = context.getString(R.string.roaming),
+ )
+ }
+ }
}
}
diff --git a/src/com/android/settings/network/telephony/SatelliteSetting.java b/src/com/android/settings/network/telephony/SatelliteSetting.java
index 7e9e61d..df58048 100644
--- a/src/com/android/settings/network/telephony/SatelliteSetting.java
+++ b/src/com/android/settings/network/telephony/SatelliteSetting.java
@@ -150,7 +150,7 @@
/* In case satellite is allowed by carrier's entitlement server, the page will show
the check icon with guidance that satellite is included in user's mobile plan */
preference.setTitle(R.string.title_have_satellite_plan);
- icon = getResources().getDrawable(R.drawable.ic_check_circle_24px);
+ icon = getContext().getDrawable(R.drawable.ic_check_circle_24px);
} else {
/* Or, it will show the blocked icon with the guidance that satellite is not included
in user's mobile plan */
diff --git a/src/com/android/settings/network/telephony/SubscriptionRepository.kt b/src/com/android/settings/network/telephony/SubscriptionRepository.kt
index c952310..cc8c8b4 100644
--- a/src/com/android/settings/network/telephony/SubscriptionRepository.kt
+++ b/src/com/android/settings/network/telephony/SubscriptionRepository.kt
@@ -24,13 +24,14 @@
import com.android.settings.network.SubscriptionUtil
import com.android.settingslib.spa.framework.util.collectLatestWithLifecycle
import kotlinx.coroutines.Dispatchers
+import kotlinx.coroutines.ExperimentalCoroutinesApi
import kotlinx.coroutines.asExecutor
import kotlinx.coroutines.channels.awaitClose
import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.callbackFlow
import kotlinx.coroutines.flow.conflate
import kotlinx.coroutines.flow.distinctUntilChanged
-import kotlinx.coroutines.flow.filterNot
+import kotlinx.coroutines.flow.flatMapLatest
import kotlinx.coroutines.flow.flowOf
import kotlinx.coroutines.flow.flowOn
import kotlinx.coroutines.flow.map
@@ -52,7 +53,7 @@
/** Flow of whether the subscription enabled for the given [subId]. */
fun isSubscriptionEnabledFlow(subId: Int): Flow<Boolean> {
if (!SubscriptionManager.isValidSubscriptionId(subId)) return flowOf(false)
- return context.subscriptionsChangedFlow()
+ return subscriptionsChangedFlow()
.map { subscriptionManager.isSubscriptionEnabled(subId) }
.conflate()
.onEach { Log.d(TAG, "[$subId] isSubscriptionEnabledFlow: $it") }
@@ -87,12 +88,30 @@
}.conflate().onEach { Log.d(TAG, "subscriptions changed") }.flowOn(Dispatchers.Default)
/** Flow of active subscription ids. */
- fun activeSubscriptionIdListFlow(): Flow<List<Int>> = context.subscriptionsChangedFlow()
- .map { subscriptionManager.activeSubscriptionIdList.sorted() }
- .distinctUntilChanged()
- .conflate()
- .onEach { Log.d(TAG, "activeSubscriptionIdList: $it") }
- .flowOn(Dispatchers.Default)
+ fun activeSubscriptionIdListFlow(): Flow<List<Int>> =
+ subscriptionsChangedFlow()
+ .map { subscriptionManager.activeSubscriptionIdList.sorted() }
+ .distinctUntilChanged()
+ .conflate()
+ .onEach { Log.d(TAG, "activeSubscriptionIdList: $it") }
+ .flowOn(Dispatchers.Default)
+
+ fun activeSubscriptionInfoFlow(subId: Int): Flow<SubscriptionInfo?> =
+ subscriptionsChangedFlow()
+ .map { subscriptionManager.getActiveSubscriptionInfo(subId) }
+ .distinctUntilChanged()
+ .conflate()
+ .flowOn(Dispatchers.Default)
+
+ @OptIn(ExperimentalCoroutinesApi::class)
+ fun phoneNumberFlow(subId: Int): Flow<String?> =
+ activeSubscriptionInfoFlow(subId).flatMapLatest { subInfo ->
+ if (subInfo != null) {
+ context.phoneNumberFlow(subInfo)
+ } else {
+ flowOf(null)
+ }
+ }
}
val Context.subscriptionManager: SubscriptionManager?
@@ -100,9 +119,12 @@
fun Context.requireSubscriptionManager(): SubscriptionManager = subscriptionManager!!
-fun Context.phoneNumberFlow(subscriptionInfo: SubscriptionInfo) = subscriptionsChangedFlow().map {
- SubscriptionUtil.getBidiFormattedPhoneNumber(this, subscriptionInfo)
-}.filterNot { it.isNullOrEmpty() }.flowOn(Dispatchers.Default)
+fun Context.phoneNumberFlow(subscriptionInfo: SubscriptionInfo): Flow<String?> =
+ subscriptionsChangedFlow()
+ .map { SubscriptionUtil.getBidiFormattedPhoneNumber(this, subscriptionInfo) }
+ .distinctUntilChanged()
+ .conflate()
+ .flowOn(Dispatchers.Default)
fun Context.subscriptionsChangedFlow(): Flow<Unit> =
SubscriptionRepository(this).subscriptionsChangedFlow()
diff --git a/src/com/android/settings/network/telephony/TelephonyBasePreferenceController.java b/src/com/android/settings/network/telephony/TelephonyBasePreferenceController.java
index 3972f39..ee15520 100644
--- a/src/com/android/settings/network/telephony/TelephonyBasePreferenceController.java
+++ b/src/com/android/settings/network/telephony/TelephonyBasePreferenceController.java
@@ -17,9 +17,6 @@
package com.android.settings.network.telephony;
import android.content.Context;
-import android.content.res.Resources;
-import android.os.PersistableBundle;
-import android.telephony.CarrierConfigManager;
import android.telephony.SubscriptionManager;
import com.android.settings.core.BasePreferenceController;
@@ -59,29 +56,4 @@
public void unsetAvailabilityStatus() {
mSetSessionCount.getAndDecrement();
}
-
- /**
- * Get carrier config based on specific subscription id.
- *
- * @param subId is the subscription id
- * @return {@link PersistableBundle} of carrier config, or {@code null} when carrier config
- * is not available.
- */
- public PersistableBundle getCarrierConfigForSubId(int subId) {
- if (!SubscriptionManager.isValidSubscriptionId(subId)) {
- return null;
- }
- final CarrierConfigManager carrierConfigMgr =
- mContext.getSystemService(CarrierConfigManager.class);
- return carrierConfigMgr.getConfigForSubId(subId);
- }
-
- /**
- * Returns the resources associated with Subscription.
- *
- * @return Resources associated with Subscription.
- */
- public Resources getResourcesForSubId() {
- return SubscriptionManager.getResourcesForSubId(mContext, mSubId);
- }
}
diff --git a/src/com/android/settings/network/telephony/WifiCallingPreferenceController.kt b/src/com/android/settings/network/telephony/WifiCallingPreferenceController.kt
index 3bb2679..e04763a 100644
--- a/src/com/android/settings/network/telephony/WifiCallingPreferenceController.kt
+++ b/src/com/android/settings/network/telephony/WifiCallingPreferenceController.kt
@@ -22,14 +22,18 @@
import android.telephony.SubscriptionManager
import android.telephony.TelephonyManager
import android.telephony.ims.ImsMmTelManager
-import android.util.Log
import androidx.lifecycle.LifecycleOwner
import androidx.preference.Preference
import androidx.preference.PreferenceScreen
import com.android.settings.R
+import com.android.settings.core.BasePreferenceController
+import com.android.settings.network.telephony.MobileNetworkSettingsSearchIndex.MobileNetworkSettingsSearchResult
+import com.android.settings.network.telephony.MobileNetworkSettingsSearchIndex.MobileNetworkSettingsSearchItem
import com.android.settings.network.telephony.wificalling.WifiCallingRepository
import com.android.settingslib.spa.framework.util.collectLatestWithLifecycle
import kotlinx.coroutines.Dispatchers
+import kotlinx.coroutines.flow.first
+import kotlinx.coroutines.runBlocking
import kotlinx.coroutines.withContext
/**
@@ -44,20 +48,21 @@
private val wifiCallingRepositoryFactory: (subId: Int) -> WifiCallingRepository = { subId ->
WifiCallingRepository(context, subId)
},
-) : TelephonyBasePreferenceController(context, key) {
+) : BasePreferenceController(context, key) {
+ private var subId = SubscriptionManager.INVALID_SUBSCRIPTION_ID
private lateinit var preference: Preference
private lateinit var callingPreferenceCategoryController: CallingPreferenceCategoryController
private val resourcesForSub by lazy {
- SubscriptionManager.getResourcesForSubId(mContext, mSubId)
+ SubscriptionManager.getResourcesForSubId(mContext, subId)
}
fun init(
subId: Int,
callingPreferenceCategoryController: CallingPreferenceCategoryController,
): WifiCallingPreferenceController {
- mSubId = subId
+ this.subId = subId
this.callingPreferenceCategoryController = callingPreferenceCategoryController
return this
}
@@ -65,39 +70,32 @@
/**
* Note: Visibility also controlled by [onViewCreated].
*/
- override fun getAvailabilityStatus(subId: Int) =
+ override fun getAvailabilityStatus() =
if (SubscriptionManager.isValidSubscriptionId(subId)) AVAILABLE
else CONDITIONALLY_UNAVAILABLE
override fun displayPreference(screen: PreferenceScreen) {
// Not call super here, to avoid preference.isVisible changed unexpectedly
preference = screen.findPreference(preferenceKey)!!
- preference.intent?.putExtra(Settings.EXTRA_SUB_ID, mSubId)
+ preference.intent?.putExtra(Settings.EXTRA_SUB_ID, subId)
}
override fun onViewCreated(viewLifecycleOwner: LifecycleOwner) {
- if(mSubId == SubscriptionManager.INVALID_SUBSCRIPTION_ID){
- Log.e(
- this.javaClass.simpleName,
- "mSubId is INVALID_SUBSCRIPTION_ID"
- )
- return
- }
- wifiCallingRepositoryFactory(mSubId).wifiCallingReadyFlow()
+ wifiCallingRepositoryFactory(subId).wifiCallingReadyFlow()
.collectLatestWithLifecycle(viewLifecycleOwner) { isReady ->
preference.isVisible = isReady
callingPreferenceCategoryController.updateChildVisible(preferenceKey, isReady)
if (isReady) update()
}
- callStateRepository.callStateFlow(mSubId).collectLatestWithLifecycle(viewLifecycleOwner) {
+ callStateRepository.callStateFlow(subId).collectLatestWithLifecycle(viewLifecycleOwner) {
preference.isEnabled = (it == TelephonyManager.CALL_STATE_IDLE)
}
}
private suspend fun update() {
val simCallManager = mContext.getSystemService(TelecomManager::class.java)
- ?.getSimCallManagerForSubscription(mSubId)
+ ?.getSimCallManagerForSubscription(subId)
if (simCallManager != null) {
val intent = withContext(Dispatchers.Default) {
MobileNetworkUtils.buildPhoneAccountConfigureIntent(mContext, simCallManager)
@@ -116,7 +114,7 @@
}
private fun getSummaryForWfcMode(): String {
- val resId = when (wifiCallingRepositoryFactory(mSubId).getWiFiCallingMode()) {
+ val resId = when (wifiCallingRepositoryFactory(subId).getWiFiCallingMode()) {
ImsMmTelManager.WIFI_MODE_WIFI_ONLY ->
com.android.internal.R.string.wfc_mode_wifi_only_summary
@@ -130,4 +128,22 @@
}
return resourcesForSub.getString(resId)
}
+
+ companion object {
+ class WifiCallingSearchItem(
+ private val context: Context,
+ ) : MobileNetworkSettingsSearchItem {
+ private fun isAvailable(subId: Int): Boolean = runBlocking {
+ WifiCallingRepository(context, subId).wifiCallingReadyFlow().first()
+ }
+
+ override fun getSearchResult(subId: Int): MobileNetworkSettingsSearchResult? {
+ if (!isAvailable(subId)) return null
+ return MobileNetworkSettingsSearchResult(
+ key = "wifi_calling",
+ title = context.getString(R.string.wifi_calling_settings_title),
+ )
+ }
+ }
+ }
}
diff --git a/src/com/android/settings/network/telephony/scan/NetworkScanRepository.kt b/src/com/android/settings/network/telephony/scan/NetworkScanRepository.kt
index 0e15033..caf8549 100644
--- a/src/com/android/settings/network/telephony/scan/NetworkScanRepository.kt
+++ b/src/com/android/settings/network/telephony/scan/NetworkScanRepository.kt
@@ -30,8 +30,8 @@
import com.android.settings.network.telephony.CellInfoUtil.getNetworkTitle
import com.android.settings.network.telephony.telephonyManager
import com.android.settingslib.spa.framework.util.collectLatestWithLifecycle
+import java.util.concurrent.Executors
import kotlinx.coroutines.Dispatchers
-import kotlinx.coroutines.asExecutor
import kotlinx.coroutines.channels.awaitClose
import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.callbackFlow
@@ -96,7 +96,9 @@
val networkScan = telephonyManager.requestNetworkScan(
createNetworkScan(),
- Dispatchers.Default.asExecutor(),
+ // requestNetworkScan() could call callbacks concurrently, so we use a single thread
+ // to avoid racing conditions.
+ Executors.newSingleThreadExecutor(),
callback,
)
diff --git a/src/com/android/settings/network/telephony/wificalling/CrossSimCallingViewModel.kt b/src/com/android/settings/network/telephony/wificalling/CrossSimCallingViewModel.kt
index 170af54..dda147b 100644
--- a/src/com/android/settings/network/telephony/wificalling/CrossSimCallingViewModel.kt
+++ b/src/com/android/settings/network/telephony/wificalling/CrossSimCallingViewModel.kt
@@ -24,22 +24,22 @@
import androidx.lifecycle.AndroidViewModel
import androidx.lifecycle.viewModelScope
import com.android.settings.R
+import com.android.settings.network.telephony.CarrierConfigRepository
+import com.android.settings.network.telephony.DataSubscriptionRepository
import com.android.settings.network.telephony.MobileDataRepository
import com.android.settings.network.telephony.SubscriptionRepository
import com.android.settings.network.telephony.ims.ImsMmTelRepositoryImpl
-import com.android.settings.network.telephony.safeGetConfig
-import com.android.settings.network.telephony.telephonyManager
import com.android.settings.overlay.FeatureFactory.Companion.featureFactory
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.ExperimentalCoroutinesApi
-import kotlinx.coroutines.channels.Channel
+import kotlinx.coroutines.flow.Flow
+import kotlinx.coroutines.flow.combine
import kotlinx.coroutines.flow.distinctUntilChanged
import kotlinx.coroutines.flow.flatMapLatest
+import kotlinx.coroutines.flow.flowOf
import kotlinx.coroutines.flow.launchIn
import kotlinx.coroutines.flow.map
-import kotlinx.coroutines.flow.merge
import kotlinx.coroutines.flow.onEach
-import kotlinx.coroutines.flow.receiveAsFlow
import kotlinx.coroutines.plus
@OptIn(ExperimentalCoroutinesApi::class)
@@ -48,24 +48,23 @@
) : AndroidViewModel(application) {
private val subscriptionRepository = SubscriptionRepository(application)
- private val carrierConfigManager =
- application.getSystemService(CarrierConfigManager::class.java)!!
+ private val dataSubscriptionRepository = DataSubscriptionRepository(application)
+ private val mobileDataRepository = MobileDataRepository(application)
+ private val carrierConfigRepository = CarrierConfigRepository(application)
private val scope = viewModelScope + Dispatchers.Default
private val metricsFeatureProvider = featureFactory.metricsFeatureProvider
- private val updateChannel = Channel<Unit>()
- private val mobileDataRepository = MobileDataRepository(application)
init {
val resources = application.resources
if (resources.getBoolean(R.bool.config_auto_data_switch_enables_cross_sim_calling)) {
- subscriptionRepository.activeSubscriptionIdListFlow()
- .flatMapLatest { activeSubIds ->
- merge(
- activeSubIds.anyMobileDataEnableChangedFlow(),
- updateChannel.receiveAsFlow(),
- ).map {
- activeSubIds to crossSimCallNewEnabled(activeSubIds)
- }
+ combine(
+ subscriptionRepository.activeSubscriptionIdListFlow(),
+ dataSubscriptionRepository.defaultDataSubscriptionIdFlow(),
+ ) { activeSubIds, defaultDataSubId ->
+ activeSubIds to crossSimCallNewEnabled(activeSubIds, defaultDataSubId)
+ }
+ .flatMapLatest { (activeSubIds, newEnabledFlow) ->
+ newEnabledFlow.map { newEnabled -> activeSubIds to newEnabled }
}
.distinctUntilChanged()
.onEach { (activeSubIds, newEnabled) ->
@@ -75,44 +74,36 @@
}
}
- fun updateCrossSimCalling() {
- updateChannel.trySend(Unit)
- }
-
- private fun List<Int>.anyMobileDataEnableChangedFlow() = map { subId ->
- mobileDataRepository.mobileDataEnabledChangedFlow(subId = subId, sendInitialValue = false)
- }.merge()
-
private suspend fun updateCrossSimCalling(activeSubIds: List<Int>, newEnabled: Boolean) {
metricsFeatureProvider.action(
application,
SettingsEnums.ACTION_UPDATE_CROSS_SIM_CALLING_ON_AUTO_DATA_SWITCH_EVENT,
newEnabled,
)
- activeSubIds.filter { crossSimAvailable(it) }.forEach { subId ->
- ImsMmTelRepositoryImpl(application, subId)
- .setCrossSimCallingEnabled(newEnabled)
- }
+ activeSubIds
+ .filter { subId -> crossSimAvailable(subId) }
+ .forEach { subId ->
+ ImsMmTelRepositoryImpl(application, subId).setCrossSimCallingEnabled(newEnabled)
+ }
}
private suspend fun crossSimAvailable(subId: Int): Boolean =
WifiCallingRepository(application, subId).isWifiCallingSupported() &&
- crossSimImsAvailable(subId)
+ carrierConfigRepository.getBoolean(
+ subId, CarrierConfigManager.KEY_CARRIER_CROSS_SIM_IMS_AVAILABLE_BOOL)
- private fun crossSimImsAvailable(subId: Int): Boolean =
- carrierConfigManager.safeGetConfig(
- keys = listOf(CarrierConfigManager.KEY_CARRIER_CROSS_SIM_IMS_AVAILABLE_BOOL),
- subId = subId,
- ).getBoolean(CarrierConfigManager.KEY_CARRIER_CROSS_SIM_IMS_AVAILABLE_BOOL, false)
-
- private fun crossSimCallNewEnabled(activeSubscriptionIdList: List<Int>): Boolean {
- val defaultDataSubId = SubscriptionManager.getDefaultDataSubscriptionId()
- return SubscriptionManager.isValidSubscriptionId(defaultDataSubId) &&
- activeSubscriptionIdList.any { subId ->
- subId != defaultDataSubId &&
- application.telephonyManager(subId).isMobileDataPolicyEnabled(
- TelephonyManager.MOBILE_DATA_POLICY_AUTO_DATA_SWITCH
- )
- }
+ private fun crossSimCallNewEnabled(
+ activeSubscriptionIdList: List<Int>,
+ defaultDataSubId: Int,
+ ): Flow<Boolean> {
+ if (!SubscriptionManager.isValidSubscriptionId(defaultDataSubId)) return flowOf(false)
+ val isMobileDataPolicyEnabledFlows =
+ activeSubscriptionIdList
+ .filter { subId -> subId != defaultDataSubId }
+ .map { subId ->
+ mobileDataRepository.isMobileDataPolicyEnabledFlow(
+ subId, TelephonyManager.MOBILE_DATA_POLICY_AUTO_DATA_SWITCH)
+ }
+ return combine(isMobileDataPolicyEnabledFlows) { true in it }
}
}
diff --git a/src/com/android/settings/notification/modes/AbstractZenModeHeaderController.java b/src/com/android/settings/notification/modes/AbstractZenModeHeaderController.java
new file mode 100644
index 0000000..06a30fa
--- /dev/null
+++ b/src/com/android/settings/notification/modes/AbstractZenModeHeaderController.java
@@ -0,0 +1,92 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.settings.notification.modes;
+
+import android.app.Flags;
+import android.content.Context;
+import android.graphics.drawable.Drawable;
+import android.view.ViewGroup;
+import android.widget.ImageView;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import androidx.preference.Preference;
+
+import com.android.settings.R;
+import com.android.settings.dashboard.DashboardFragment;
+import com.android.settings.widget.EntityHeaderController;
+import com.android.settingslib.notification.modes.ZenIconLoader;
+import com.android.settingslib.notification.modes.ZenMode;
+import com.android.settingslib.widget.LayoutPreference;
+
+import java.util.function.Consumer;
+import java.util.function.Function;
+
+abstract class AbstractZenModeHeaderController extends AbstractZenModePreferenceController {
+
+ private final DashboardFragment mFragment;
+ private EntityHeaderController mHeaderController;
+
+ AbstractZenModeHeaderController(
+ @NonNull Context context,
+ @NonNull String key,
+ @NonNull DashboardFragment fragment) {
+ super(context, key);
+ mFragment = fragment;
+ }
+
+ @Override
+ public boolean isAvailable() {
+ return Flags.modesApi() && Flags.modesUi();
+ }
+
+ protected void updateIcon(Preference preference, @NonNull ZenMode zenMode, int iconSizePx,
+ Function<Drawable, Drawable> modeIconStylist,
+ @Nullable Consumer<ImageView> iconViewCustomizer) {
+ if (mFragment == null) {
+ return;
+ }
+ preference.setSelectable(false);
+
+ if (mHeaderController == null) {
+ final LayoutPreference pref = (LayoutPreference) preference;
+ mHeaderController = EntityHeaderController.newInstance(
+ mFragment.getActivity(),
+ mFragment,
+ pref.findViewById(R.id.entity_header));
+ }
+
+ ImageView iconView = ((LayoutPreference) preference).findViewById(R.id.entity_header_icon);
+ if (iconView != null) {
+ if (iconViewCustomizer != null) {
+ iconViewCustomizer.accept(iconView);
+ }
+ ViewGroup.LayoutParams layoutParams = iconView.getLayoutParams();
+ if (layoutParams.width != iconSizePx || layoutParams.height != iconSizePx) {
+ layoutParams.width = iconSizePx;
+ layoutParams.height = iconSizePx;
+ iconView.setLayoutParams(layoutParams);
+ }
+ }
+
+ FutureUtil.whenDone(
+ zenMode.getIcon(mContext, ZenIconLoader.getInstance()),
+ icon -> mHeaderController
+ .setIcon(modeIconStylist.apply(icon))
+ .done(/* rebindActions= */ false),
+ mContext.getMainExecutor());
+ }
+}
diff --git a/src/com/android/settings/notification/modes/AbstractZenModePreferenceController.java b/src/com/android/settings/notification/modes/AbstractZenModePreferenceController.java
index c740847..c473456 100644
--- a/src/com/android/settings/notification/modes/AbstractZenModePreferenceController.java
+++ b/src/com/android/settings/notification/modes/AbstractZenModePreferenceController.java
@@ -25,8 +25,8 @@
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
+import androidx.annotation.VisibleForTesting;
import androidx.preference.Preference;
-import androidx.preference.PreferenceScreen;
import com.android.settingslib.core.AbstractPreferenceController;
import com.android.settingslib.notification.modes.ZenMode;
@@ -92,29 +92,14 @@
return true;
}
- // Called by parent Fragment onAttach, for any methods (such as isAvailable()) that need
- // zen mode info before onStart. Most callers should use updateZenMode instead, which will
- // do any further necessary propagation.
- protected final void setZenMode(@NonNull ZenMode zenMode) {
+ /**
+ * Assigns the {@link ZenMode} of this controller, so that it can be used later from
+ * {@link #isAvailable()} and {@link #updateState(Preference)}.
+ */
+ final void setZenMode(@NonNull ZenMode zenMode) {
mZenMode = zenMode;
}
- // Called by the parent Fragment onStart, which means it will happen before resume.
- public void updateZenMode(@NonNull Preference preference, @NonNull ZenMode zenMode) {
- mZenMode = zenMode;
- updateState(preference);
- }
-
- @Override
- public void displayPreference(PreferenceScreen screen) {
- super.displayPreference(screen);
- if (mZenMode != null) {
- displayPreference(screen, mZenMode);
- }
- }
-
- public void displayPreference(PreferenceScreen screen, @NonNull ZenMode zenMode) {}
-
@Override
public final void updateState(Preference preference) {
super.updateState(preference);
@@ -167,4 +152,20 @@
return mode;
});
}
+
+ @VisibleForTesting(otherwise = VisibleForTesting.NONE)
+ @Nullable
+ ZenMode getZenMode() {
+ return mZenMode;
+ }
+
+ /**
+ * Convenience method for tests. Assigns the {@link ZenMode} of this controller, and calls
+ * {@link #updateState(Preference)} immediately.
+ */
+ @VisibleForTesting(otherwise = VisibleForTesting.NONE)
+ final void updateZenMode(@NonNull Preference preference, @NonNull ZenMode zenMode) {
+ mZenMode = zenMode;
+ updateState(preference);
+ }
}
diff --git a/src/com/android/settings/notification/modes/CircularIconSet.java b/src/com/android/settings/notification/modes/CircularIconSet.java
new file mode 100644
index 0000000..eb7289a
--- /dev/null
+++ b/src/com/android/settings/notification/modes/CircularIconSet.java
@@ -0,0 +1,128 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.notification.modes;
+
+import android.graphics.Color;
+import android.graphics.drawable.ColorDrawable;
+import android.graphics.drawable.Drawable;
+
+import androidx.annotation.Nullable;
+import androidx.annotation.VisibleForTesting;
+
+import com.google.common.base.Equivalence;
+import com.google.common.base.MoreObjects;
+import com.google.common.collect.ImmutableList;
+import com.google.common.util.concurrent.ListenableFuture;
+import com.google.common.util.concurrent.ListeningExecutorService;
+import com.google.common.util.concurrent.MoreExecutors;
+
+import java.util.List;
+import java.util.Optional;
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
+import java.util.function.Function;
+
+/**
+ * A set of icons to be displayed in a {@link CircularIconsPreference}
+ *
+ * @param <T> The type of the items in the set. Can be an arbitrary type, the only requirement
+ * being that the {@code drawableLoader} supplied to the constructor is able to produce
+ * a {@link Drawable} from it (for example a resource id, a Content Uri, etc).
+ */
+class CircularIconSet<T> {
+
+ @VisibleForTesting // Can be set by tests, before creating instances.
+ static ExecutorService sExecutorService = Executors.newCachedThreadPool();
+
+ static final CircularIconSet<?> EMPTY = new CircularIconSet<>(ImmutableList.of(),
+ unused -> new ColorDrawable(Color.BLACK));
+
+ private final ImmutableList<T> mItems;
+ private final Function<T, Drawable> mDrawableLoader;
+ private final ListeningExecutorService mBackgroundExecutor;
+
+ private final ConcurrentHashMap<T, Drawable> mCachedIcons;
+
+ CircularIconSet(List<T> items, Function<T, Drawable> drawableLoader) {
+ mItems = ImmutableList.copyOf(items);
+ mDrawableLoader = drawableLoader;
+ mBackgroundExecutor = MoreExecutors.listeningDecorator(sExecutorService);
+ mCachedIcons = new ConcurrentHashMap<>();
+ }
+
+ @Override
+ public String toString() {
+ return MoreObjects.toStringHelper(this).add("items", mItems).toString();
+ }
+
+ @SuppressWarnings("unchecked")
+ <OtherT> boolean hasSameItemsAs(CircularIconSet<OtherT> other,
+ @Nullable Equivalence<OtherT> equivalence) {
+ if (other == null) {
+ return false;
+ }
+ if (other == this) {
+ return true;
+ }
+ if (equivalence == null) {
+ return mItems.equals(other.mItems);
+ }
+ // Check that types match before applying equivalence (statically unsafe). :(
+ Optional<Class<?>> thisItemClass = this.mItems.stream().findFirst().map(T::getClass);
+ Optional<Class<?>> otherItemClass = other.mItems.stream().findFirst().map(OtherT::getClass);
+ if (!thisItemClass.equals(otherItemClass)) {
+ return false;
+ }
+ return equivalence.pairwise().equivalent((Iterable<OtherT>) this.mItems, other.mItems);
+ }
+
+ int size() {
+ return mItems.size();
+ }
+
+ /**
+ * Loads all icons from the set, using the supplied {@code drawableLoader}, in a background
+ * thread.
+ */
+ List<ListenableFuture<Drawable>> getIcons() {
+ return getIcons(Integer.MAX_VALUE);
+ }
+
+ /**
+ * Loads up to {@code maxSize} icons from the set, using the supplied {@code drawableLoader}, in
+ * a background thread.
+ */
+ List<ListenableFuture<Drawable>> getIcons(int maxNumber) {
+ return mItems.stream().limit(maxNumber)
+ .map(this::loadIcon)
+ .toList();
+ }
+
+ private ListenableFuture<Drawable> loadIcon(T item) {
+ return mBackgroundExecutor.submit(() -> {
+ if (mCachedIcons.containsKey(item)) {
+ return mCachedIcons.get(item);
+ }
+ Drawable drawable = mDrawableLoader.apply(item);
+ if (drawable != null) {
+ mCachedIcons.put(item, drawable);
+ }
+ return drawable;
+ });
+ }
+}
diff --git a/src/com/android/settings/notification/modes/CircularIconsPreference.java b/src/com/android/settings/notification/modes/CircularIconsPreference.java
new file mode 100644
index 0000000..0766ccd
--- /dev/null
+++ b/src/com/android/settings/notification/modes/CircularIconsPreference.java
@@ -0,0 +1,248 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.notification.modes;
+
+import static com.google.common.base.Preconditions.checkNotNull;
+
+import android.content.Context;
+import android.content.res.Resources;
+import android.graphics.drawable.Drawable;
+import android.util.AttributeSet;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.view.ViewTreeObserver;
+import android.widget.ImageView;
+import android.widget.LinearLayout;
+import android.widget.TextView;
+
+import androidx.annotation.Nullable;
+import androidx.annotation.VisibleForTesting;
+import androidx.preference.PreferenceViewHolder;
+
+import com.android.settings.R;
+import com.android.settingslib.RestrictedPreference;
+
+import com.google.common.base.Equivalence;
+import com.google.common.collect.ImmutableList;
+import com.google.common.util.concurrent.Futures;
+import com.google.common.util.concurrent.ListenableFuture;
+
+import java.util.List;
+import java.util.concurrent.Executor;
+
+public class CircularIconsPreference extends RestrictedPreference {
+
+ private static final float DISABLED_ITEM_ALPHA = 0.3f;
+
+ record LoadedIcons(ImmutableList<Drawable> icons, int extraItems) { }
+
+ private Executor mUiExecutor;
+
+ // Chronologically, fields will be set top-to-bottom.
+ @Nullable private CircularIconSet<?> mIconSet;
+ @Nullable private ListenableFuture<List<Drawable>> mPendingLoadIconsFuture;
+ @Nullable private LoadedIcons mLoadedIcons;
+
+ public CircularIconsPreference(Context context) {
+ super(context);
+ init(context);
+ }
+
+ @VisibleForTesting(otherwise = VisibleForTesting.NONE)
+ public CircularIconsPreference(Context context, Executor uiExecutor) {
+ this(context);
+ mUiExecutor = uiExecutor;
+ }
+
+ public CircularIconsPreference(Context context, AttributeSet attrs) {
+ super(context, attrs);
+ init(context);
+ }
+
+ public CircularIconsPreference(Context context, AttributeSet attrs, int defStyleAttr) {
+ super(context, attrs, defStyleAttr);
+ init(context);
+ }
+
+ public CircularIconsPreference(Context context, AttributeSet attrs, int defStyleAttr,
+ int defStyleRes) {
+ super(context, attrs, defStyleAttr, defStyleRes);
+ init(context);
+ }
+
+ private void init(Context context) {
+ mUiExecutor = context.getMainExecutor();
+ setLayoutResource(R.layout.preference_circular_icons);
+ }
+
+ <T> void displayIcons(CircularIconSet<T> iconSet) {
+ displayIcons(iconSet, null);
+ }
+
+ <T> void displayIcons(CircularIconSet<T> iconSet, @Nullable Equivalence<T> itemEquivalence) {
+ if (mIconSet != null && mIconSet.hasSameItemsAs(iconSet, itemEquivalence)) {
+ return;
+ }
+ mIconSet = iconSet;
+
+ mLoadedIcons = null;
+ if (mPendingLoadIconsFuture != null) {
+ mPendingLoadIconsFuture.cancel(true);
+ mPendingLoadIconsFuture = null;
+ }
+
+ notifyChanged();
+ }
+
+ @Override
+ public void onBindViewHolder(PreferenceViewHolder holder) {
+ super.onBindViewHolder(holder);
+
+ LinearLayout iconContainer = checkNotNull(
+ (LinearLayout) holder.findViewById(R.id.circles_container));
+ bindIconContainer(iconContainer);
+ }
+
+ private void bindIconContainer(LinearLayout container) {
+ if (mLoadedIcons != null) {
+ // We have the icons ready to display already, show them.
+ setDrawables(container, mLoadedIcons);
+ } else if (mIconSet != null) {
+ // We know what icons we want, but haven't yet loaded them.
+ if (mIconSet.size() == 0) {
+ container.setVisibility(View.GONE);
+ return;
+ }
+ container.setVisibility(View.VISIBLE);
+ if (container.getMeasuredWidth() != 0) {
+ startLoadingIcons(container, mIconSet);
+ } else {
+ container.getViewTreeObserver().addOnGlobalLayoutListener(
+ new ViewTreeObserver.OnGlobalLayoutListener() {
+ @Override
+ public void onGlobalLayout() {
+ container.getViewTreeObserver().removeOnGlobalLayoutListener(this);
+ startLoadingIcons(container, mIconSet);
+ }
+ }
+ );
+ }
+ }
+ }
+
+ private void startLoadingIcons(LinearLayout container, CircularIconSet<?> iconSet) {
+ Resources res = getContext().getResources();
+ int availableSpace = container.getMeasuredWidth();
+ int iconHorizontalSpace = res.getDimensionPixelSize(R.dimen.zen_mode_circular_icon_diameter)
+ + res.getDimensionPixelSize(R.dimen.zen_mode_circular_icon_margin_between);
+ int numIconsThatFit = availableSpace / iconHorizontalSpace;
+
+ List<ListenableFuture<Drawable>> iconFutures;
+ int extraItems;
+ if (iconSet.size() > numIconsThatFit) {
+ // Reserve one space for the (+xx) textview.
+ int numIconsToShow = numIconsThatFit - 1;
+ if (numIconsToShow < 0) {
+ numIconsToShow = 0;
+ }
+ iconFutures = iconSet.getIcons(numIconsToShow);
+ extraItems = iconSet.size() - numIconsToShow;
+ } else {
+ // Fit exactly or with remaining space.
+ iconFutures = iconSet.getIcons();
+ extraItems = 0;
+ }
+
+ // Display icons when all are ready (more consistent than randomly loading).
+ mPendingLoadIconsFuture = Futures.allAsList(iconFutures);
+ FutureUtil.whenDone(
+ mPendingLoadIconsFuture,
+ icons -> {
+ mLoadedIcons = new LoadedIcons(ImmutableList.copyOf(icons), extraItems);
+ notifyChanged(); // So that view is rebound and icons actually shown.
+ },
+ mUiExecutor);
+ }
+
+ private void setDrawables(LinearLayout container, LoadedIcons loadedIcons) {
+ // Rearrange child views until we have <numImages> ImageViews...
+ LayoutInflater inflater = LayoutInflater.from(getContext());
+ int numImages = loadedIcons.icons.size();
+ int numImageViews = getChildCount(container, ImageView.class);
+ if (numImages > numImageViews) {
+ for (int i = 0; i < numImages - numImageViews; i++) {
+ ImageView imageView = (ImageView) inflater.inflate(
+ R.layout.preference_circular_icons_item, container, false);
+ container.addView(imageView, 0);
+ }
+ } else if (numImageViews > numImages) {
+ for (int i = 0; i < numImageViews - numImages; i++) {
+ container.removeViewAt(0);
+ }
+ }
+ // ... plus 0/1 TextViews at the end.
+ if (loadedIcons.extraItems > 0 && !(getLastChild(container) instanceof TextView)) {
+ TextView plusView = (TextView) inflater.inflate(
+ R.layout.preference_circular_icons_plus_item, container, false);
+ container.addView(plusView);
+ } else if (loadedIcons.extraItems == 0 && (getLastChild(container) instanceof TextView)) {
+ container.removeViewAt(container.getChildCount() - 1);
+ }
+
+ // Show images (and +n if needed).
+ for (int i = 0; i < numImages; i++) {
+ ImageView imageView = (ImageView) container.getChildAt(i);
+ imageView.setImageDrawable(loadedIcons.icons.get(i));
+ }
+ if (loadedIcons.extraItems > 0) {
+ TextView textView = (TextView) checkNotNull(getLastChild(container));
+ textView.setText(getContext().getString(R.string.zen_mode_plus_n_items,
+ loadedIcons.extraItems));
+ }
+
+ // Apply enabled/disabled style.
+ for (int i = 0; i < container.getChildCount(); i++) {
+ View child = container.getChildAt(i);
+ child.setAlpha(isEnabled() ? 1.0f : DISABLED_ITEM_ALPHA);
+ }
+ }
+
+ private static int getChildCount(ViewGroup parent, Class<? extends View> childClass) {
+ int count = 0;
+ for (int i = 0; i < parent.getChildCount(); i++) {
+ if (childClass.isInstance(parent.getChildAt(i))) {
+ count++;
+ }
+ }
+ return count;
+ }
+
+ @Nullable
+ private static View getLastChild(ViewGroup parent) {
+ if (parent.getChildCount() == 0) {
+ return null;
+ }
+ return parent.getChildAt(parent.getChildCount() - 1);
+ }
+
+ @VisibleForTesting(otherwise = VisibleForTesting.NONE)
+ @Nullable
+ LoadedIcons getLoadedIcons() {
+ return mLoadedIcons;
+ }
+}
diff --git a/src/com/android/settings/notification/modes/FutureUtil.java b/src/com/android/settings/notification/modes/FutureUtil.java
index e7bf8b9..b9a4300 100644
--- a/src/com/android/settings/notification/modes/FutureUtil.java
+++ b/src/com/android/settings/notification/modes/FutureUtil.java
@@ -18,10 +18,13 @@
import android.util.Log;
+import androidx.annotation.NonNull;
+
import com.google.common.util.concurrent.FutureCallback;
import com.google.common.util.concurrent.Futures;
import com.google.common.util.concurrent.ListenableFuture;
+import java.util.concurrent.CancellationException;
import java.util.concurrent.Executor;
import java.util.function.Consumer;
@@ -42,8 +45,10 @@
}
@Override
- public void onFailure(Throwable throwable) {
- Log.e(TAG, String.format(errorLogMessage, errorLogMessageArgs), throwable);
+ public void onFailure(@NonNull Throwable throwable) {
+ if (!(throwable instanceof CancellationException)) {
+ Log.e(TAG, String.format(errorLogMessage, errorLogMessageArgs), throwable);
+ }
}
}, executor);
}
diff --git a/src/com/android/settings/notification/modes/IconUtil.java b/src/com/android/settings/notification/modes/IconUtil.java
index d07abf3..55abccf 100644
--- a/src/com/android/settings/notification/modes/IconUtil.java
+++ b/src/com/android/settings/notification/modes/IconUtil.java
@@ -20,6 +20,13 @@
import android.content.Context;
import android.content.res.ColorStateList;
+import android.content.res.Resources;
+import android.graphics.Bitmap;
+import android.graphics.Canvas;
+import android.graphics.Paint;
+import android.graphics.Rect;
+import android.graphics.Typeface;
+import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.Drawable;
import android.graphics.drawable.LayerDrawable;
import android.graphics.drawable.ShapeDrawable;
@@ -29,11 +36,16 @@
import androidx.annotation.AttrRes;
import androidx.annotation.DrawableRes;
import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
import androidx.annotation.Px;
import com.android.settings.R;
import com.android.settingslib.Utils;
+import com.google.common.base.Strings;
+
+import java.util.Locale;
+
class IconUtil {
static Drawable applyNormalTint(@NonNull Context context, @NonNull Drawable icon) {
@@ -52,10 +64,28 @@
}
/**
- * Returns a variant of the supplied {@code icon} to be used as the header in the icon picker.
- * The inner icon is 48x48dp and it's contained into a circle of diameter 90dp.
+ * Returns a variant of the supplied mode icon to be used as the header in the mode page. The
+ * inner icon is 64x64 dp and it's contained in a 12-sided-cookie of 136dp diameter. It's
+ * tinted with the "material secondary" color combination and the "selected" color variant
+ * should be used for modes currently active.
*/
- static Drawable makeBigIconCircle(@NonNull Context context, Drawable icon) {
+ static Drawable makeModeHeader(@NonNull Context context, Drawable modeIcon) {
+ return composeIcons(
+ checkNotNull(context.getDrawable(R.drawable.ic_zen_mode_icon_cookie)),
+ context.getColorStateList(R.color.modes_icon_selectable_background),
+ context.getResources().getDimensionPixelSize(
+ R.dimen.zen_mode_header_size),
+ modeIcon,
+ context.getColorStateList(R.color.modes_icon_selectable_icon),
+ context.getResources().getDimensionPixelSize(
+ R.dimen.zen_mode_header_inner_icon_size));
+ }
+
+ /**
+ * Returns a variant of the supplied {@code icon} to be used as the header in the icon picker.
+ * The inner icon is 48x48dp and it's contained in a circle of diameter 90dp.
+ */
+ static Drawable makeIconPickerHeader(@NonNull Context context, Drawable icon) {
return composeIconCircle(
Utils.getColorAttr(context,
com.android.internal.R.attr.materialColorSecondaryContainer),
@@ -70,34 +100,106 @@
/**
* Returns a variant of the supplied {@code icon} to be used as an option in the icon picker.
- * The inner icon is 36x36dp and it's contained into a circle of diameter 54dp. It's also set up
+ * The inner icon is 36x36dp and it's contained in a circle of diameter 54dp. It's also set up
* so that selection and pressed states are represented in the color.
*/
- static Drawable makeSmallIconCircle(@NonNull Context context, @DrawableRes int iconResId) {
+ static Drawable makeIconPickerItem(@NonNull Context context, @DrawableRes int iconResId) {
return composeIconCircle(
- context.getColorStateList(R.color.modes_icon_picker_item_background),
+ context.getColorStateList(R.color.modes_icon_selectable_background),
context.getResources().getDimensionPixelSize(
R.dimen.zen_mode_icon_list_item_circle_diameter),
checkNotNull(context.getDrawable(iconResId)),
- context.getColorStateList(R.color.modes_icon_picker_item_icon),
+ context.getColorStateList(R.color.modes_icon_selectable_icon),
context.getResources().getDimensionPixelSize(
R.dimen.zen_mode_icon_list_item_icon_size));
}
+ /**
+ * Returns a variant of the supplied icon to be used in a {@link CircularIconsPreference}. The
+ * inner icon is 20x20 dp and it's contained in a circle of diameter 32dp, and is tinted
+ * with the "material secondary" color combination.
+ */
+ static Drawable makeCircularIconPreferenceItem(@NonNull Context context,
+ @DrawableRes int iconResId) {
+ return composeIconCircle(
+ Utils.getColorAttr(context,
+ com.android.internal.R.attr.materialColorSecondaryContainer),
+ context.getResources().getDimensionPixelSize(
+ R.dimen.zen_mode_circular_icon_diameter),
+ checkNotNull(context.getDrawable(iconResId)),
+ Utils.getColorAttr(context,
+ com.android.internal.R.attr.materialColorOnSecondaryContainer),
+ context.getResources().getDimensionPixelSize(
+ R.dimen.zen_mode_circular_icon_inner_icon_size));
+ }
+
+ /**
+ * Returns an icon representing a contact that doesn't have an associated photo, to be used in
+ * a {@link CircularIconsPreference}, tinted with the "material tertiary". If the contact's
+ * display name is not empty, it's the contact's monogram, otherwise it's a generic icon.
+ */
+ static Drawable makeContactMonogram(@NonNull Context context, @Nullable String displayName) {
+ Resources res = context.getResources();
+ if (Strings.isNullOrEmpty(displayName)) {
+ return composeIconCircle(
+ Utils.getColorAttr(context,
+ com.android.internal.R.attr.materialColorTertiaryContainer),
+ res.getDimensionPixelSize(R.dimen.zen_mode_circular_icon_diameter),
+ checkNotNull(context.getDrawable(R.drawable.ic_zen_mode_generic_contact)),
+ Utils.getColorAttr(context,
+ com.android.internal.R.attr.materialColorOnTertiaryContainer),
+ res.getDimensionPixelSize(R.dimen.zen_mode_circular_icon_inner_icon_size));
+ }
+
+ float diameter = res.getDimensionPixelSize(R.dimen.zen_mode_circular_icon_diameter);
+ Bitmap bitmap = Bitmap.createBitmap((int) diameter, (int) diameter,
+ Bitmap.Config.ARGB_8888);
+ Canvas canvas = new Canvas(bitmap);
+
+ Paint circlePaint = new Paint();
+ circlePaint.setColor(Utils.getColorAttrDefaultColor(context,
+ com.android.internal.R.attr.materialColorTertiaryContainer));
+ circlePaint.setFlags(Paint.ANTI_ALIAS_FLAG);
+ canvas.drawCircle(diameter / 2f, diameter / 2f, diameter / 2f, circlePaint);
+
+ Paint textPaint = new Paint();
+ textPaint.setColor(Utils.getColorAttrDefaultColor(context,
+ com.android.internal.R.attr.materialColorOnTertiaryContainer));
+ textPaint.setTypeface(Typeface.create("sans-serif", Typeface.NORMAL));
+ textPaint.setTextAlign(Paint.Align.LEFT);
+ textPaint.setTextSize(res.getDimensionPixelSize(R.dimen.zen_mode_circular_icon_text_size));
+
+ String text = displayName.substring(0, 1).toUpperCase(Locale.getDefault());
+ Rect textRect = new Rect();
+ textPaint.getTextBounds(text, 0, text.length(), textRect);
+
+ float textX = diameter / 2f - textRect.width() / 2f - textRect.left;
+ float textY = diameter / 2f + textRect.height() / 2f - textRect.bottom;
+ canvas.drawText(text, textX, textY, textPaint);
+
+ return new BitmapDrawable(context.getResources(), bitmap);
+ }
+
private static Drawable composeIconCircle(ColorStateList circleColor, @Px int circleDiameterPx,
Drawable icon, ColorStateList iconColor, @Px int iconSizePx) {
- ShapeDrawable background = new ShapeDrawable(new OvalShape());
- background.setTintList(circleColor);
+ return composeIcons(new ShapeDrawable(new OvalShape()), circleColor, circleDiameterPx, icon,
+ iconColor, iconSizePx);
+ }
+
+ private static Drawable composeIcons(Drawable outer, ColorStateList outerColor,
+ @Px int outerSizePx, Drawable icon, ColorStateList iconColor, @Px int iconSizePx) {
+ Drawable background = checkNotNull(outer.getConstantState()).newDrawable().mutate();
+ background.setTintList(outerColor);
Drawable foreground = checkNotNull(icon.getConstantState()).newDrawable().mutate();
foreground.setTintList(iconColor);
LayerDrawable layerDrawable = new LayerDrawable(new Drawable[] { background, foreground });
- layerDrawable.setBounds(0, 0, circleDiameterPx, circleDiameterPx);
- layerDrawable.setLayerSize(0, circleDiameterPx, circleDiameterPx);
+ layerDrawable.setLayerSize(0, outerSizePx, outerSizePx);
layerDrawable.setLayerGravity(1, Gravity.CENTER);
layerDrawable.setLayerSize(1, iconSizePx, iconSizePx);
+ layerDrawable.setBounds(0, 0, outerSizePx, outerSizePx);
return layerDrawable;
}
}
diff --git a/src/com/android/settings/notification/modes/InterruptionFilterPreferenceController.java b/src/com/android/settings/notification/modes/InterruptionFilterPreferenceController.java
index 8bdeea4..9d4a172 100644
--- a/src/com/android/settings/notification/modes/InterruptionFilterPreferenceController.java
+++ b/src/com/android/settings/notification/modes/InterruptionFilterPreferenceController.java
@@ -44,6 +44,7 @@
@Override
public void updateState(Preference preference, @NonNull ZenMode zenMode) {
+ preference.setEnabled(zenMode.isEnabled());
boolean filteringNotifications = zenMode.getRule().getInterruptionFilter()
!= INTERRUPTION_FILTER_ALL;
((TwoStatePreference) preference).setChecked(filteringNotifications);
diff --git a/src/com/android/settings/notification/modes/ManualDurationPreferenceController.java b/src/com/android/settings/notification/modes/ManualDurationPreferenceController.java
index 073f8ab..28aac63 100644
--- a/src/com/android/settings/notification/modes/ManualDurationPreferenceController.java
+++ b/src/com/android/settings/notification/modes/ManualDurationPreferenceController.java
@@ -18,6 +18,7 @@
import android.content.Context;
+import androidx.annotation.NonNull;
import androidx.fragment.app.Fragment;
import androidx.preference.Preference;
import androidx.preference.PreferenceScreen;
@@ -49,12 +50,12 @@
return zenMode.isManualDnd();
}
- // Called by parent fragment onAttach().
+ // Called by parent fragment onStart().
void registerSettingsObserver() {
mSettingsObserver.register();
}
- // Called by parent fragment onDetach().
+ // Called by parent fragment onStop().
void unregisterSettingsObserver() {
mSettingsObserver.unregister();
}
@@ -69,7 +70,7 @@
}
@Override
- public void updateState(Preference preference, ZenMode unusedZenMode) {
+ public void updateState(Preference preference, @NonNull ZenMode unusedZenMode) {
// This controller is a link between a Settings value (ZEN_DURATION) and the manual DND
// mode. The status of the zen mode object itself doesn't affect the preference
// value, as that comes from settings; that value from settings will determine the
diff --git a/src/com/android/settings/notification/modes/SetupInterstitialActivity.java b/src/com/android/settings/notification/modes/SetupInterstitialActivity.java
new file mode 100644
index 0000000..225ded0
--- /dev/null
+++ b/src/com/android/settings/notification/modes/SetupInterstitialActivity.java
@@ -0,0 +1,270 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.notification.modes;
+
+import static android.graphics.drawable.GradientDrawable.LINEAR_GRADIENT;
+import static android.graphics.drawable.GradientDrawable.Orientation.BL_TR;
+import static android.provider.Settings.EXTRA_AUTOMATIC_ZEN_RULE_ID;
+
+import android.app.ActionBar;
+import android.content.Context;
+import android.content.Intent;
+import android.graphics.Color;
+import android.graphics.Outline;
+import android.graphics.drawable.Drawable;
+import android.graphics.drawable.GradientDrawable;
+import android.os.Bundle;
+import android.util.Log;
+import android.view.View;
+import android.view.ViewGroup;
+import android.view.ViewOutlineProvider;
+import android.view.ViewTreeObserver;
+import android.widget.Button;
+import android.widget.FrameLayout;
+import android.widget.ImageView;
+import android.widget.TextView;
+import android.widget.Toast;
+import android.widget.Toolbar;
+
+import androidx.activity.EdgeToEdge;
+import androidx.annotation.NonNull;
+import androidx.annotation.VisibleForTesting;
+import androidx.fragment.app.FragmentActivity;
+
+import com.android.settings.R;
+import com.android.settings.Utils;
+import com.android.settingslib.notification.modes.ZenMode;
+import com.android.settingslib.notification.modes.ZenModesBackend;
+
+/**
+ * Interstitial page for modes that are disabled, but not disabled by the user. This page
+ * provides a button to enable the mode, and then goes to the mode setup page.
+ */
+public class SetupInterstitialActivity extends FragmentActivity {
+ private static final String TAG = "ModeSetupInterstitial";
+ private ZenModesBackend mBackend;
+
+ private final ViewOutlineProvider mOutlineProvider = new ViewOutlineProvider() {
+ @Override
+ public void getOutline(View view, Outline outline) {
+ // Provides a rounded rectangle outline whose width & height matches the View.
+ float cornerRadius = getResources().getDimensionPixelSize(
+ R.dimen.zen_mode_interstitial_corner_radius);
+ outline.setRoundRect(0, 0, view.getMeasuredWidth(), view.getMeasuredHeight(),
+ cornerRadius);
+ }
+ };
+
+ /**
+ * Returns an intent leading to this page for the given mode and context.
+ */
+ public static @NonNull Intent getIntent(@NonNull Context context, @NonNull ZenMode mode) {
+ return new Intent(Intent.ACTION_MAIN)
+ .setClass(context, SetupInterstitialActivity.class)
+ .setPackage(context.getPackageName())
+ .setFlags(Intent.FLAG_ACTIVITY_FORWARD_RESULT)
+ .putExtra(EXTRA_AUTOMATIC_ZEN_RULE_ID, mode.getId());
+ }
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ EdgeToEdge.enable(this);
+ Utils.setupEdgeToEdge(this);
+ super.onCreate(savedInstanceState);
+ mBackend = ZenModesBackend.getInstance(this);
+ setContentView(R.layout.mode_interstitial_layout);
+
+ // Set up toolbar to only have a back button & no title
+ Toolbar toolbar = findViewById(R.id.action_bar);
+ setActionBar(toolbar);
+ ActionBar actionBar = getActionBar();
+ if (actionBar != null) {
+ actionBar.setDisplayHomeAsUpEnabled(true);
+ actionBar.setHomeButtonEnabled(true);
+ actionBar.setDisplayShowTitleEnabled(false);
+ }
+ }
+
+ @Override
+ public boolean onNavigateUp() {
+ // have the home button on the action bar go back
+ getOnBackPressedDispatcher().onBackPressed();
+ return true;
+ }
+
+ @Override
+ protected void onResume() {
+ super.onResume();
+
+ // See if we have mode data
+ final Intent intent = getIntent();
+ if (intent == null) {
+ Log.w(TAG, "no intent found for modes interstitial");
+ finish();
+ return;
+ }
+
+ String modeId = intent.getStringExtra(EXTRA_AUTOMATIC_ZEN_RULE_ID);
+ if (modeId == null) {
+ Log.w(TAG, "no mode id included in intent: " + intent);
+ finish();
+ return;
+ }
+
+ ZenMode mode = mBackend.getMode(modeId);
+ if (mode == null) {
+ Log.w(TAG, "mode not found for mode id: " + modeId);
+ finish();
+ return;
+ }
+ setTitle(mode.getName());
+
+ TextView title = findViewById(R.id.mode_name_title);
+ if (title != null) {
+ title.setText(mode.getName());
+ }
+
+ ImageView img = findViewById(R.id.image);
+ if (img != null) {
+ setImage(img, mode);
+ }
+
+ Button button = findViewById(R.id.enable_mode_button);
+ if (button != null) {
+ setupButton(button, mode);
+ }
+ }
+
+ private void setImage(@NonNull ImageView img, @NonNull ZenMode mode) {
+ img.setImageDrawable(getModeDrawable(mode));
+ img.setClipToOutline(true);
+ img.setOutlineProvider(mOutlineProvider);
+
+ FrameLayout frame = findViewById(R.id.image_frame);
+ if (frame == null) {
+ return;
+ }
+ if (img.getMeasuredWidth() == 0) {
+ // set up to resize after the global layout occurs
+ img.getViewTreeObserver().addOnGlobalLayoutListener(
+ new ViewTreeObserver.OnGlobalLayoutListener() {
+ @Override
+ public void onGlobalLayout() {
+ img.getViewTreeObserver().removeOnGlobalLayoutListener(this);
+ sizeImageToFrame(img, frame);
+ }
+ });
+ } else {
+ // measured already, resize it now
+ sizeImageToFrame(img, frame);
+ }
+ }
+
+ private Drawable getModeDrawable(@NonNull ZenMode mode) {
+ // TODO: b/332730534 - set actual images depending on mode type (asynchronously?)
+ GradientDrawable placeholder = new GradientDrawable();
+ placeholder.setSize(40, 60); // 4x6 rectangle, slightly taller than wide
+ placeholder.setGradientType(LINEAR_GRADIENT);
+ placeholder.setOrientation(BL_TR);
+ placeholder.setColors(new int[]{Color.BLACK, Color.WHITE});
+ return placeholder;
+ }
+
+ @VisibleForTesting
+ protected void sizeImageToFrame(ImageView img, FrameLayout frame) {
+ // width of the space we have available = overall size of frame - relevant padding
+ int frameHeight =
+ frame.getMeasuredHeight() - frame.getPaddingTop() - frame.getPaddingBottom();
+ int frameWidth =
+ frame.getMeasuredWidth() - frame.getPaddingLeft() - frame.getPaddingRight();
+
+ int imgHeight = img.getDrawable().getIntrinsicHeight();
+ int imgWidth = img.getDrawable().getIntrinsicWidth();
+
+ // if any of these are 0, give up because we won't be able to do the relevant math (and
+ // we probably don't have the relevant data set up)
+ if (frameHeight == 0 || frameWidth == 0 || imgHeight == 0 || imgWidth == 0) {
+ Log.w(TAG, "image or frame has invalid size parameters");
+ return;
+ }
+ float frameHWRatio = ((float) frameHeight) / frameWidth;
+ float imgHWRatio = ((float) imgHeight) / imgWidth;
+
+ // fit horizontal dimension if the frame has a taller ratio (height/width) than the image;
+ // otherwise, fit the vertical direction
+ boolean fitHorizontal = frameHWRatio > imgHWRatio;
+
+ ViewGroup.LayoutParams layoutParams = img.getLayoutParams();
+ if (layoutParams == null) {
+ Log.w(TAG, "image has null LayoutParams");
+ return;
+ }
+ if (fitHorizontal) {
+ layoutParams.width = frameWidth;
+ float scaledHeight = imgHWRatio * frameWidth;
+ layoutParams.height = (int) scaledHeight;
+ } else {
+ layoutParams.height = frameHeight;
+ float scaledWidth = /* w/h ratio */ (1 / imgHWRatio) * frameHeight;
+ layoutParams.width = (int) scaledWidth;
+ }
+ img.setLayoutParams(layoutParams);
+ }
+
+ private void setupButton(Button button, @NonNull ZenMode mode) {
+ button.setText(getString(R.string.zen_mode_setup_button_label, mode.getName()));
+ button.setOnClickListener(enableButtonListener(mode.getId()));
+ }
+
+ @VisibleForTesting
+ View.OnClickListener enableButtonListener(String modeId) {
+ return unused -> {
+ // When clicked, we first reload mode info in case it has changed in the interim,
+ // then enable the mode and then send the user to the mode's configuration page.
+ boolean updated = enableMode(modeId);
+
+ // Don't come back to this activity after sending the user to the modes page, if
+ // they happen to go back. Forward the activity result in case we got here (indirectly)
+ // from some app that is waiting for the result.
+ if (updated) {
+ ZenSubSettingLauncher.forMode(this, modeId)
+ .addFlags(Intent.FLAG_ACTIVITY_FORWARD_RESULT).launch();
+ }
+ finish();
+ };
+ }
+
+ // Enables the given mode after first refreshing its data from the backend. Returns true if
+ // the update went through, and false if for some reason the mode wasn't found.
+ private boolean enableMode(@NonNull String modeId) {
+ if (mBackend == null) {
+ return false;
+ }
+
+ ZenMode modeToUpdate = mBackend.getMode(modeId);
+ if (modeToUpdate == null) {
+ // tell the user the mode isn't found, for some reason
+ Toast.makeText(this, R.string.zen_mode_rule_not_found_text, Toast.LENGTH_SHORT)
+ .show();
+ return false;
+ }
+
+ modeToUpdate.getRule().setEnabled(true);
+ mBackend.updateMode(modeToUpdate);
+ return true;
+ }
+}
diff --git a/src/com/android/settings/notification/modes/ZenHelperBackend.java b/src/com/android/settings/notification/modes/ZenHelperBackend.java
index 4136c22..bf91678 100644
--- a/src/com/android/settings/notification/modes/ZenHelperBackend.java
+++ b/src/com/android/settings/notification/modes/ZenHelperBackend.java
@@ -21,15 +21,22 @@
import android.content.Context;
import android.content.pm.ParceledListSlice;
import android.database.Cursor;
+import android.graphics.drawable.Drawable;
+import android.net.Uri;
import android.os.ServiceManager;
import android.provider.ContactsContract;
import android.service.notification.ConversationChannelWrapper;
import android.util.Log;
-import androidx.annotation.VisibleForTesting;
+import androidx.annotation.NonNull;
+import androidx.core.graphics.drawable.RoundedBitmapDrawable;
+import androidx.core.graphics.drawable.RoundedBitmapDrawableFactory;
-import com.android.settings.R;
+import com.google.common.base.Strings;
+import com.google.common.collect.ImmutableList;
+import java.io.IOException;
+import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;
@@ -74,46 +81,108 @@
}
}
+ ImmutableList<ConversationChannelWrapper> getAllConversations() {
+ return getConversations(false);
+ }
+
+ ImmutableList<ConversationChannelWrapper> getImportantConversations() {
+ return getConversations(true);
+ }
+
@SuppressWarnings("unchecked")
- ParceledListSlice<ConversationChannelWrapper> getConversations(boolean onlyImportant) {
+ private ImmutableList<ConversationChannelWrapper> getConversations(boolean onlyImportant) {
try {
- return mInm.getConversations(onlyImportant);
+ ImmutableList.Builder<ConversationChannelWrapper> list = new ImmutableList.Builder<>();
+ ParceledListSlice<ConversationChannelWrapper> parceledList = mInm.getConversations(
+ onlyImportant);
+ if (parceledList != null) {
+ for (ConversationChannelWrapper conversation : parceledList.getList()) {
+ if (!conversation.getNotificationChannel().isDemoted()) {
+ list.add(conversation);
+ }
+ }
+ }
+ return list.build();
} catch (Exception e) {
Log.w(TAG, "Error calling NoMan", e);
- return ParceledListSlice.emptyList();
+ return ImmutableList.of();
}
}
- List<String> getStarredContacts() {
+ record Contact(long id, @Nullable String displayName, @Nullable Uri photoUri) { }
+
+ ImmutableList<Contact> getAllContacts() {
+ try (Cursor cursor = queryAllContactsData()) {
+ return getContactsFromCursor(cursor);
+ }
+ }
+
+ ImmutableList<Contact> getStarredContacts() {
try (Cursor cursor = queryStarredContactsData()) {
- return getStarredContacts(cursor);
+ return getContactsFromCursor(cursor);
}
}
- @VisibleForTesting
- List<String> getStarredContacts(Cursor cursor) {
- List<String> starredContacts = new ArrayList<>();
+ private ImmutableList<Contact> getContactsFromCursor(Cursor cursor) {
+ ImmutableList.Builder<Contact> list = new ImmutableList.Builder<>();
if (cursor != null && cursor.moveToFirst()) {
do {
- String contact = cursor.getString(0);
- starredContacts.add(contact != null ? contact :
- mContext.getString(R.string.zen_mode_starred_contacts_empty_name));
-
+ long id = cursor.getLong(0);
+ String name = Strings.emptyToNull(cursor.getString(1));
+ String photoUriStr = cursor.getString(2);
+ Uri photoUri = !Strings.isNullOrEmpty(photoUriStr) ? Uri.parse(photoUriStr) : null;
+ list.add(new Contact(id, name, photoUri));
} while (cursor.moveToNext());
}
- return starredContacts;
+ return list.build();
}
+ int getAllContactsCount() {
+ try (Cursor cursor = queryAllContactsData()) {
+ return cursor != null ? cursor.getCount() : 0;
+ }
+ }
+
+ private static final String[] CONTACTS_PROJECTION = new String[] {
+ ContactsContract.Contacts._ID,
+ ContactsContract.Contacts.DISPLAY_NAME_PRIMARY,
+ ContactsContract.Contacts.PHOTO_THUMBNAIL_URI
+ };
+
private Cursor queryStarredContactsData() {
- return mContext.getContentResolver().query(ContactsContract.Contacts.CONTENT_URI,
- new String[]{ContactsContract.Contacts.DISPLAY_NAME_PRIMARY},
- ContactsContract.Data.STARRED + "=1", null,
- ContactsContract.Data.TIMES_CONTACTED);
+ return mContext.getContentResolver().query(
+ ContactsContract.Contacts.CONTENT_URI,
+ CONTACTS_PROJECTION,
+ /* selection= */ ContactsContract.Data.STARRED + "=1", /* selectionArgs= */ null,
+ /* sortOrder= */ ContactsContract.Contacts.DISPLAY_NAME_PRIMARY);
}
- Cursor queryAllContactsData() {
- return mContext.getContentResolver().query(ContactsContract.Contacts.CONTENT_URI,
- new String[]{ContactsContract.Contacts.DISPLAY_NAME_PRIMARY},
- null, null, null);
+ private Cursor queryAllContactsData() {
+ return mContext.getContentResolver().query(
+ ContactsContract.Contacts.CONTENT_URI,
+ CONTACTS_PROJECTION,
+ /* selection= */ null, /* selectionArgs= */ null,
+ /* sortOrder= */ ContactsContract.Contacts.DISPLAY_NAME_PRIMARY);
+ }
+
+ @NonNull
+ Drawable getContactPhoto(Contact contact) {
+ if (contact.photoUri != null) {
+ try (InputStream is = mContext.getContentResolver().openInputStream(contact.photoUri)) {
+ if (is != null) {
+ RoundedBitmapDrawable rbd = RoundedBitmapDrawableFactory.create(
+ mContext.getResources(), is);
+ if (rbd != null && rbd.getBitmap() != null) {
+ rbd.setCircular(true);
+ return rbd;
+ }
+ }
+ } catch (IOException e) {
+ Log.w(TAG, "Couldn't load photo for " + contact, e);
+ }
+ }
+
+ // Fall back to a monogram if no picture.
+ return IconUtil.makeContactMonogram(mContext, contact.displayName);
}
}
diff --git a/src/com/android/settings/notification/modes/ZenModeAppsLinkPreferenceController.java b/src/com/android/settings/notification/modes/ZenModeAppsLinkPreferenceController.java
index 9c3f267..1521a8b 100644
--- a/src/com/android/settings/notification/modes/ZenModeAppsLinkPreferenceController.java
+++ b/src/com/android/settings/notification/modes/ZenModeAppsLinkPreferenceController.java
@@ -24,6 +24,7 @@
import android.os.Bundle;
import android.os.UserHandle;
import android.os.UserManager;
+import android.service.notification.ZenPolicy;
import android.text.TextUtils;
import androidx.annotation.NonNull;
@@ -32,12 +33,13 @@
import androidx.preference.Preference;
import com.android.settings.R;
-import com.android.settings.core.SubSettingLauncher;
+import com.android.settings.Utils;
import com.android.settingslib.applications.ApplicationsState;
import com.android.settingslib.applications.ApplicationsState.AppEntry;
import com.android.settingslib.notification.modes.ZenMode;
import com.android.settingslib.notification.modes.ZenModesBackend;
+import com.google.common.base.Equivalence;
import com.google.common.collect.HashMultimap;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.Multimap;
@@ -45,6 +47,7 @@
import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
+import java.util.Objects;
/**
* Preference with a link and summary about what apps can break through the mode
@@ -59,7 +62,7 @@
private ApplicationsState.Session mAppSession;
private final ZenHelperBackend mHelperBackend;
private ZenMode mZenMode;
- private Preference mPreference;
+ private CircularIconsPreference mPreference;
private final Fragment mHost;
ZenModeAppsLinkPreferenceController(Context context, String key, Fragment host,
@@ -91,20 +94,27 @@
Bundle bundle = new Bundle();
bundle.putString(EXTRA_AUTOMATIC_ZEN_RULE_ID, zenMode.getId());
// TODO(b/332937635): Update metrics category
- preference.setIntent(new SubSettingLauncher(mContext)
- .setDestination(ZenModeAppsFragment.class.getName())
- .setSourceMetricsCategory(0)
- .setArguments(bundle)
- .toIntent());
+ preference.setIntent(
+ ZenSubSettingLauncher.forModeFragment(mContext, ZenModeAppsFragment.class,
+ zenMode.getId(), 0).toIntent());
+ preference.setEnabled(zenMode.isEnabled());
+
mZenMode = zenMode;
- mPreference = preference;
- if (TextUtils.isEmpty(mPreference.getSummary())) {
- mPreference.setSummary(R.string.zen_mode_apps_calculating);
+ mPreference = (CircularIconsPreference) preference;
+
+ if (zenMode.getPolicy().getAllowedChannels() == ZenPolicy.CHANNEL_POLICY_NONE) {
+ mPreference.setSummary(R.string.zen_mode_apps_none_apps);
+ mPreference.displayIcons(CircularIconSet.EMPTY);
+ } else {
+ if (TextUtils.isEmpty(mPreference.getSummary())) {
+ mPreference.setSummary(R.string.zen_mode_apps_calculating);
+ }
+ if (mApplicationsState != null && mHost != null) {
+ mAppSession = mApplicationsState.newSession(mAppSessionCallbacks,
+ mHost.getLifecycle());
+ }
+ triggerUpdateAppsBypassingDnd();
}
- if (mApplicationsState != null && mHost != null) {
- mAppSession = mApplicationsState.newSession(mAppSessionCallbacks, mHost.getLifecycle());
- }
- triggerUpdateAppsBypassingDnd();
}
private void triggerUpdateAppsBypassingDnd() {
@@ -126,6 +136,10 @@
ImmutableList<AppEntry> apps = getAppsBypassingDndSortedByName(allApps);
mPreference.setSummary(mSummaryHelper.getAppsSummary(mZenMode, apps));
+
+ mPreference.displayIcons(new CircularIconSet<>(apps,
+ app -> Utils.getBadgedIcon(mContext, app.info)),
+ APP_ENTRY_EQUIVALENCE);
}
@VisibleForTesting
@@ -146,6 +160,19 @@
.toList());
}
+ private static final Equivalence<AppEntry> APP_ENTRY_EQUIVALENCE = new Equivalence<>() {
+ @Override
+ protected boolean doEquivalent(@NonNull AppEntry a, @NonNull AppEntry b) {
+ return a.info.uid == b.info.uid
+ && Objects.equals(a.info.packageName, b.info.packageName);
+ }
+
+ @Override
+ protected int doHash(@NonNull AppEntry entry) {
+ return Objects.hash(entry.info.uid, entry.info.packageName);
+ }
+ };
+
@VisibleForTesting
final ApplicationsState.Callbacks mAppSessionCallbacks =
new ApplicationsState.Callbacks() {
diff --git a/src/com/android/settings/notification/modes/ZenModeBlurbPreference.java b/src/com/android/settings/notification/modes/ZenModeBlurbPreference.java
new file mode 100644
index 0000000..5850ae6
--- /dev/null
+++ b/src/com/android/settings/notification/modes/ZenModeBlurbPreference.java
@@ -0,0 +1,60 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.notification.modes;
+
+import static android.view.ViewGroup.LayoutParams.MATCH_PARENT;
+
+import android.content.Context;
+import android.util.AttributeSet;
+import android.util.TypedValue;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.TextView;
+
+import androidx.preference.PreferenceViewHolder;
+
+import com.android.settings.R;
+import com.android.settingslib.widget.TopIntroPreference;
+
+public class ZenModeBlurbPreference extends TopIntroPreference {
+
+ public ZenModeBlurbPreference(Context context) {
+ super(context);
+ }
+
+ public ZenModeBlurbPreference(Context context, AttributeSet attrs) {
+ super(context, attrs);
+ }
+
+ @Override
+ public void onBindViewHolder(PreferenceViewHolder holder) {
+ super.onBindViewHolder(holder);
+ if (holder.findViewById(android.R.id.title) instanceof TextView textView) {
+ textView.setTextSize(TypedValue.COMPLEX_UNIT_PX,
+ getContext().getResources().getDimensionPixelSize(
+ R.dimen.zen_mode_blurb_text_size));
+
+ textView.setTextAlignment(View.TEXT_ALIGNMENT_CENTER);
+
+ ViewGroup.LayoutParams layoutParams = textView.getLayoutParams();
+ if (layoutParams.width != MATCH_PARENT) {
+ layoutParams.width = MATCH_PARENT;
+ textView.setLayoutParams(layoutParams);
+ }
+ }
+ }
+}
diff --git a/src/com/android/settings/notification/modes/ZenModeBlurbPreferenceController.java b/src/com/android/settings/notification/modes/ZenModeBlurbPreferenceController.java
new file mode 100644
index 0000000..097b40d
--- /dev/null
+++ b/src/com/android/settings/notification/modes/ZenModeBlurbPreferenceController.java
@@ -0,0 +1,68 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.notification.modes;
+
+import static android.app.AutomaticZenRule.TYPE_BEDTIME;
+import static android.app.AutomaticZenRule.TYPE_DRIVING;
+import static android.app.AutomaticZenRule.TYPE_IMMERSIVE;
+import static android.app.AutomaticZenRule.TYPE_MANAGED;
+import static android.app.AutomaticZenRule.TYPE_SCHEDULE_CALENDAR;
+import static android.app.AutomaticZenRule.TYPE_SCHEDULE_TIME;
+import static android.app.AutomaticZenRule.TYPE_THEATER;
+
+import android.annotation.SuppressLint;
+import android.content.Context;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.StringRes;
+import androidx.preference.Preference;
+
+import com.android.settings.R;
+import com.android.settingslib.notification.modes.ZenMode;
+
+class ZenModeBlurbPreferenceController extends AbstractZenModePreferenceController {
+
+ ZenModeBlurbPreferenceController(@NonNull Context context, @NonNull String key) {
+ super(context, key);
+ }
+
+ @Override
+ void updateState(Preference preference, @NonNull ZenMode zenMode) {
+ preference.setTitle(getModeBlurb(zenMode));
+ }
+
+ @StringRes
+ @SuppressLint("SwitchIntDef")
+ private static int getModeBlurb(ZenMode mode) {
+ if (mode.isSystemOwned()) {
+ return switch (mode.getType()) {
+ case TYPE_SCHEDULE_TIME -> R.string.zen_mode_blurb_schedule_time;
+ case TYPE_SCHEDULE_CALENDAR -> R.string.zen_mode_blurb_schedule_calendar;
+ default -> R.string.zen_mode_blurb_generic; // Custom Manual
+ };
+ } else {
+ return switch (mode.getType()) {
+ case TYPE_BEDTIME -> R.string.zen_mode_blurb_bedtime;
+ case TYPE_DRIVING -> R.string.zen_mode_blurb_driving;
+ case TYPE_IMMERSIVE -> R.string.zen_mode_blurb_immersive;
+ case TYPE_THEATER -> R.string.zen_mode_blurb_theater;
+ case TYPE_MANAGED -> R.string.zen_mode_blurb_managed;
+ default -> R.string.zen_mode_blurb_generic; // Including OTHER, UNKNOWN.
+ };
+ }
+ }
+}
diff --git a/src/com/android/settings/notification/modes/ZenModeButtonPreferenceController.java b/src/com/android/settings/notification/modes/ZenModeButtonPreferenceController.java
index 6b84414..bb9d23c 100644
--- a/src/com/android/settings/notification/modes/ZenModeButtonPreferenceController.java
+++ b/src/com/android/settings/notification/modes/ZenModeButtonPreferenceController.java
@@ -16,6 +16,8 @@
package com.android.settings.notification.modes;
+import static com.google.common.base.Preconditions.checkNotNull;
+
import android.annotation.NonNull;
import android.content.Context;
import android.provider.Settings;
@@ -36,8 +38,8 @@
private static final String TAG = "ZenModeButtonPrefController";
private Button mZenButton;
- private Fragment mParent;
- private ManualDurationHelper mDurationHelper;
+ private final Fragment mParent;
+ private final ManualDurationHelper mDurationHelper;
ZenModeButtonPreferenceController(Context context, String key, Fragment parent,
ZenModesBackend backend) {
@@ -48,7 +50,8 @@
@Override
public boolean isAvailable(ZenMode zenMode) {
- return zenMode.getRule().isManualInvocationAllowed() && zenMode.getRule().isEnabled();
+ return zenMode.isEnabled()
+ && (zenMode.isActive() || zenMode.getRule().isManualInvocationAllowed());
}
@Override
@@ -57,6 +60,7 @@
mZenButton = ((LayoutPreference) preference).findViewById(R.id.activate_mode);
}
mZenButton.setOnClickListener(v -> {
+ checkNotNull(mBackend, "Backend not available!");
if (zenMode.isActive()) {
mBackend.deactivateMode(zenMode);
} else {
@@ -80,9 +84,9 @@
}
});
if (zenMode.isActive()) {
- mZenButton.setText(R.string.zen_mode_button_turn_off);
+ mZenButton.setText(R.string.zen_mode_action_deactivate);
} else {
- mZenButton.setText(R.string.zen_mode_button_turn_on);
+ mZenButton.setText(R.string.zen_mode_action_activate);
}
}
}
diff --git a/src/com/android/settings/notification/modes/ZenModeDisplayLinkPreferenceController.java b/src/com/android/settings/notification/modes/ZenModeDisplayLinkPreferenceController.java
index d3559f1..bba5e34 100644
--- a/src/com/android/settings/notification/modes/ZenModeDisplayLinkPreferenceController.java
+++ b/src/com/android/settings/notification/modes/ZenModeDisplayLinkPreferenceController.java
@@ -24,7 +24,6 @@
import androidx.annotation.NonNull;
import androidx.preference.Preference;
-import com.android.settings.core.SubSettingLauncher;
import com.android.settingslib.notification.modes.ZenMode;
import com.android.settingslib.notification.modes.ZenModesBackend;
@@ -43,11 +42,10 @@
Bundle bundle = new Bundle();
bundle.putString(EXTRA_AUTOMATIC_ZEN_RULE_ID, zenMode.getId());
// TODO(b/332937635): Update metrics category
- preference.setIntent(new SubSettingLauncher(mContext)
- .setDestination(ZenModeDisplayFragment.class.getName())
- .setSourceMetricsCategory(0)
- .setArguments(bundle)
- .toIntent());
+ preference.setIntent(
+ ZenSubSettingLauncher.forModeFragment(mContext, ZenModeDisplayFragment.class,
+ zenMode.getId(), 0).toIntent());
+ preference.setEnabled(zenMode.isEnabled());
}
@Override
diff --git a/src/com/android/settings/notification/modes/ZenModeEditNameIconFragmentBase.java b/src/com/android/settings/notification/modes/ZenModeEditNameIconFragmentBase.java
index d666254..96cbf91 100644
--- a/src/com/android/settings/notification/modes/ZenModeEditNameIconFragmentBase.java
+++ b/src/com/android/settings/notification/modes/ZenModeEditNameIconFragmentBase.java
@@ -21,14 +21,11 @@
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;
@@ -39,7 +36,6 @@
import com.google.common.base.Strings;
import com.google.common.collect.ImmutableList;
-import java.util.Collection;
import java.util.List;
/**
@@ -79,7 +75,11 @@
? icicle.getParcelable(MODE_KEY, ZenMode.class)
: onCreateInstantiateZenMode();
- if (mZenMode == null) {
+ if (mZenMode != null) {
+ for (var controller : getZenPreferenceControllers()) {
+ controller.setZenMode(mZenMode);
+ }
+ } else {
finish();
}
}
@@ -110,58 +110,32 @@
);
}
+ private Iterable<AbstractZenModePreferenceController> getZenPreferenceControllers() {
+ return getPreferenceControllers().stream()
+ .flatMap(List::stream)
+ .filter(AbstractZenModePreferenceController.class::isInstance)
+ .map(AbstractZenModePreferenceController.class::cast)
+ .toList();
+ }
+
@VisibleForTesting(otherwise = VisibleForTesting.NONE)
@Nullable
ZenMode getZenMode() {
return mZenMode;
}
- @Override
- public void onStart() {
- super.onStart();
- updateControllers();
- }
-
@VisibleForTesting
final void setModeName(String name) {
checkNotNull(mZenMode).getRule().setName(Strings.nullToEmpty(name));
- updateControllers(); // Updates confirmation button.
+ forceUpdatePreferences(); // Updates confirmation button.
}
@VisibleForTesting
final void setModeIcon(@DrawableRes int iconResId) {
checkNotNull(mZenMode).getRule().setIconResId(iconResId);
- updateControllers(); // Updates icon at the top.
+ forceUpdatePreferences(); // 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() {
diff --git a/src/com/android/settings/notification/modes/ZenModeFragment.java b/src/com/android/settings/notification/modes/ZenModeFragment.java
index 7d7631b..0a80977 100644
--- a/src/com/android/settings/notification/modes/ZenModeFragment.java
+++ b/src/com/android/settings/notification/modes/ZenModeFragment.java
@@ -16,6 +16,8 @@
package com.android.settings.notification.modes;
+import static com.android.settingslib.notification.modes.ZenMode.Status.DISABLED_BY_OTHER;
+
import android.app.AlertDialog;
import android.app.settings.SettingsEnums;
import android.content.Context;
@@ -25,6 +27,7 @@
import androidx.activity.ComponentActivity;
import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
import androidx.core.view.MenuProvider;
import com.android.settings.R;
@@ -41,6 +44,7 @@
private static final int DELETE_MODE = 2;
private ModeMenuProvider mModeMenuProvider;
+ private boolean mSettingsObserverRegistered = false; // for ManualDurationPreferenceController
@Override
protected int getPreferenceScreenResId() {
@@ -51,18 +55,27 @@
protected List<AbstractPreferenceController> createPreferenceControllers(Context context) {
List<AbstractPreferenceController> prefControllers = new ArrayList<>();
prefControllers.add(new ZenModeHeaderController(context, "header", this));
+ prefControllers.add(new ZenModeBlurbPreferenceController(context, "mode_blurb"));
prefControllers.add(
new ZenModeButtonPreferenceController(context, "activate", this, mBackend));
+ prefControllers.add(new ZenModePreferenceCategoryController(context, "modes_filters"));
prefControllers.add(new ZenModePeopleLinkPreferenceController(
context, "zen_mode_people", mHelperBackend));
prefControllers.add(new ZenModeAppsLinkPreferenceController(
context, "zen_mode_apps", this, mBackend, mHelperBackend));
prefControllers.add(new ZenModeOtherLinkPreferenceController(
context, "zen_other_settings", mHelperBackend));
+ prefControllers.add(
+ new ZenModePreferenceCategoryController(context, "modes_additional_actions"));
prefControllers.add(new ZenModeDisplayLinkPreferenceController(
context, "mode_display_settings", mBackend, mHelperBackend));
- prefControllers.add(new ZenModeSetTriggerLinkPreferenceController(context,
- "zen_automatic_trigger_category", this, mBackend));
+ prefControllers.add(new ZenModeTriggerCategoryPreferenceController(context,
+ "zen_automatic_trigger_category"));
+ prefControllers.add(new ZenModeTriggerUpdatePreferenceController(context,
+ "zen_automatic_trigger_settings", mBackend));
+ prefControllers.add(
+ new ZenModeTriggerAddPreferenceController(context, "zen_add_automatic_trigger",
+ this, mBackend));
prefControllers.add(new InterruptionFilterPreferenceController(
context, "allow_filtering", mBackend));
prefControllers.add(new ManualDurationPreferenceController(
@@ -71,55 +84,63 @@
}
@Override
- public void onAttach(@NonNull Context context) {
- super.onAttach(context);
-
- // allow duration preference controller to listen for settings changes
- use(ManualDurationPreferenceController.class).registerSettingsObserver();
- }
-
- @Override
public void onStart() {
super.onStart();
+ ZenMode mode = getMode();
+
+ // Consider redirecting to the interstitial if the mode is disabled (but not by the user).
+ if (maybeRedirectToInterstitial(mode)) {
+ return;
+ }
// Set title for the entire screen
- ZenMode mode = getMode();
ComponentActivity activity = getActivity();
if (mode != null && activity != null) {
activity.setTitle(mode.getName());
mModeMenuProvider = new ModeMenuProvider(mode);
activity.addMenuProvider(mModeMenuProvider);
}
+
+ // allow duration preference controller to listen for settings changes
+ use(ManualDurationPreferenceController.class).registerSettingsObserver();
+ mSettingsObserverRegistered = true;
+ }
+
+ private boolean maybeRedirectToInterstitial(@Nullable ZenMode mode) {
+ if (mode == null || mode.getStatus() != DISABLED_BY_OTHER) {
+ return false;
+ }
+ // don't come back here from the interstitial
+ finish();
+ mContext.startActivity(SetupInterstitialActivity.getIntent(mContext, mode));
+ return true;
}
@Override
public void onStop() {
- if (getActivity() != null) {
+ if (getActivity() != null && mModeMenuProvider != null) {
getActivity().removeMenuProvider(mModeMenuProvider);
}
+ if (mSettingsObserverRegistered) {
+ use(ManualDurationPreferenceController.class).unregisterSettingsObserver();
+ }
super.onStop();
}
@Override
- public void onDetach() {
- use(ManualDurationPreferenceController.class).unregisterSettingsObserver();
- super.onDetach();
- }
-
- @Override
public int getMetricsCategory() {
// TODO: b/332937635 - make this the correct metrics category
return SettingsEnums.NOTIFICATION_ZEN_MODE_AUTOMATION;
}
@Override
- protected void updateZenModeState() {
+ protected void onUpdatedZenModeState() {
// Because this fragment may be asked to finish by the delete menu but not be done doing
// so yet, ignore any attempts to update info in that case.
if (getActivity() != null && getActivity().isFinishing()) {
return;
}
- super.updateZenModeState();
+ super.onUpdatedZenModeState();
}
private class ModeMenuProvider implements MenuProvider {
diff --git a/src/com/android/settings/notification/modes/ZenModeFragmentBase.java b/src/com/android/settings/notification/modes/ZenModeFragmentBase.java
index f461fc3..ed3a71c 100644
--- a/src/com/android/settings/notification/modes/ZenModeFragmentBase.java
+++ b/src/com/android/settings/notification/modes/ZenModeFragmentBase.java
@@ -18,24 +18,18 @@
import static android.provider.Settings.EXTRA_AUTOMATIC_ZEN_RULE_ID;
-import android.content.Context;
import android.os.Bundle;
import android.util.Log;
import android.widget.Toast;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
-import androidx.preference.Preference;
-import androidx.preference.PreferenceScreen;
+import androidx.lifecycle.Lifecycle;
import com.android.settings.R;
-import com.android.settingslib.core.AbstractPreferenceController;
import com.android.settingslib.notification.modes.ZenMode;
-import com.google.common.base.Preconditions;
-
import java.util.List;
-import java.util.function.Consumer;
/**
* Base class for Settings pages used to configure individual modes.
@@ -43,13 +37,27 @@
abstract class ZenModeFragmentBase extends ZenModesFragmentBase {
static final String TAG = "ZenModeSettings";
- @Nullable // only until reloadMode() is called
- private ZenMode mZenMode;
+ @Nullable private ZenMode mZenMode;
+ @Nullable private ZenMode mModeOnLastControllerUpdate;
@Override
- public void onAttach(@NonNull Context context) {
- super.onAttach(context);
+ public void onCreate(Bundle icicle) {
+ mZenMode = loadModeFromArguments();
+ if (mZenMode != null) {
+ // Propagate mode info through to controllers. Must be done before super.onCreate(),
+ // because that one calls AbstractPreferenceController.isAvailable().
+ for (var controller : getZenPreferenceControllers()) {
+ controller.setZenMode(mZenMode);
+ }
+ } else {
+ toastAndFinish();
+ }
+ super.onCreate(icicle);
+ }
+
+ @Nullable
+ private ZenMode loadModeFromArguments() {
String id = null;
if (getActivity() != null && getActivity().getIntent() != null) {
id = getActivity().getIntent().getStringExtra(EXTRA_AUTOMATIC_ZEN_RULE_ID);
@@ -60,98 +68,70 @@
}
if (id == null) {
Log.d(TAG, "No id provided");
- toastAndFinish();
- return;
+ return null;
}
- if (!reloadMode(id)) {
- Log.d(TAG, "Mode id " + id + " not found");
- toastAndFinish();
- return;
+
+ ZenMode mode = mBackend.getMode(id);
+ if (mode == null) {
+ Log.d(TAG, "Mode with id " + id + " not found");
+ return null;
}
- if (mZenMode != null) {
- // Propagate mode info through to controllers.
- for (List<AbstractPreferenceController> list : getPreferenceControllers()) {
- try {
- for (AbstractPreferenceController controller : list) {
- // mZenMode guaranteed non-null from reloadMode() above
- ((AbstractZenModePreferenceController) controller).setZenMode(mZenMode);
- }
- } catch (ClassCastException e) {
- // ignore controllers that aren't AbstractZenModePreferenceController
- }
- }
- }
+ return mode;
}
- /**
- * Refresh stored ZenMode data.
- * @param id the mode ID
- * @return whether we successfully got mode data from the backend.
- */
- private boolean reloadMode(String id) {
- mZenMode = mBackend.getMode(id);
- if (mZenMode == null) {
- return false;
- }
- return true;
+ private Iterable<AbstractZenModePreferenceController> getZenPreferenceControllers() {
+ return getPreferenceControllers().stream()
+ .flatMap(List::stream)
+ .filter(AbstractZenModePreferenceController.class::isInstance)
+ .map(AbstractZenModePreferenceController.class::cast)
+ .toList();
}
- /**
- * Refresh ZenMode data any time the system's zen mode state changes (either the zen mode value
- * itself, or the config), and also (once updated) update the info for all controllers.
- */
@Override
- protected void updateZenModeState() {
+ protected void onUpdatedZenModeState() {
if (mZenMode == null) {
- // This shouldn't happen, but guard against it in case
+ Log.wtf(TAG, "mZenMode is null in onUpdatedZenModeState");
toastAndFinish();
return;
}
+
String id = mZenMode.getId();
- if (!reloadMode(id)) {
+ ZenMode mode = mBackend.getMode(id);
+ if (mode == null) {
Log.d(TAG, "Mode id=" + id + " not found");
toastAndFinish();
return;
}
- updateControllers();
+
+ mZenMode = mode;
+ maybeUpdateControllersState(mode);
}
- private void updateControllers() {
- if (getPreferenceControllers() == null || mZenMode == null) {
- return;
+ /**
+ * Updates all {@link AbstractZenModePreferenceController} based on the loaded mode info.
+ * For each controller, {@link AbstractZenModePreferenceController#setZenMode} will be called.
+ * Then, {@link AbstractZenModePreferenceController#updateState} will be called as well, unless
+ * we determine it's not necessary (for example, if we know that {@code DashboardFragment} will
+ * do it soon).
+ */
+ private void maybeUpdateControllersState(@NonNull ZenMode zenMode) {
+ boolean needsFullUpdate =
+ getLifecycle().getCurrentState().isAtLeast(Lifecycle.State.RESUMED)
+ && (mModeOnLastControllerUpdate == null
+ || !mModeOnLastControllerUpdate.equals(zenMode));
+ mModeOnLastControllerUpdate = zenMode.copy();
+
+ for (var controller : getZenPreferenceControllers()) {
+ controller.setZenMode(zenMode);
}
- final PreferenceScreen screen = getPreferenceScreen();
- if (screen == null) {
- Log.d(TAG, "PreferenceScreen not found");
- return;
- }
- for (List<AbstractPreferenceController> list : getPreferenceControllers()) {
- for (AbstractPreferenceController controller : list) {
- try {
- // Find preference associated with controller
- final String key = controller.getPreferenceKey();
- final Preference preference = screen.findPreference(key);
- if (preference != null) {
- AbstractZenModePreferenceController zenController =
- (AbstractZenModePreferenceController) controller;
- zenController.updateZenMode(preference, mZenMode);
- } else {
- Log.d(TAG,
- String.format("Cannot find preference with key %s in Controller %s",
- key, controller.getClass().getSimpleName()));
- }
- controller.displayPreference(screen);
- } catch (ClassCastException e) {
- // Skip any controllers that aren't AbstractZenModePreferenceController.
- Log.d(TAG, "Could not cast: " + controller.getClass().getSimpleName());
- }
- }
+ if (needsFullUpdate) {
+ forceUpdatePreferences();
}
}
private void toastAndFinish() {
- Toast.makeText(mContext, R.string.zen_mode_rule_not_found_text, Toast.LENGTH_SHORT)
+ Toast.makeText(mContext, R.string.zen_mode_not_found_text, Toast.LENGTH_SHORT)
.show();
this.finish();
}
@@ -163,16 +143,4 @@
public ZenMode getMode() {
return mZenMode;
}
-
- protected final boolean saveMode(Consumer<ZenMode> updater) {
- Preconditions.checkState(mBackend != null);
- ZenMode mode = mZenMode;
- if (mode == null) {
- Log.wtf(TAG, "Cannot save mode, it hasn't been loaded (" + getClass() + ")");
- return false;
- }
- updater.accept(mode);
- mBackend.updateMode(mode);
- return true;
- }
}
diff --git a/src/com/android/settings/notification/modes/ZenModeHeaderController.java b/src/com/android/settings/notification/modes/ZenModeHeaderController.java
index 545abff..c4f3dd1 100644
--- a/src/com/android/settings/notification/modes/ZenModeHeaderController.java
+++ b/src/com/android/settings/notification/modes/ZenModeHeaderController.java
@@ -15,7 +15,6 @@
*/
package com.android.settings.notification.modes;
-import android.app.Flags;
import android.content.Context;
import androidx.annotation.NonNull;
@@ -23,48 +22,22 @@
import com.android.settings.R;
import com.android.settings.dashboard.DashboardFragment;
-import com.android.settings.widget.EntityHeaderController;
-import com.android.settingslib.notification.modes.ZenIconLoader;
import com.android.settingslib.notification.modes.ZenMode;
-import com.android.settingslib.widget.LayoutPreference;
-class ZenModeHeaderController extends AbstractZenModePreferenceController {
-
- private final DashboardFragment mFragment;
- private EntityHeaderController mHeaderController;
+class ZenModeHeaderController extends AbstractZenModeHeaderController {
ZenModeHeaderController(
@NonNull Context context,
@NonNull String key,
@NonNull DashboardFragment fragment) {
- super(context, key);
- mFragment = fragment;
- }
-
- @Override
- public boolean isAvailable() {
- return Flags.modesApi();
+ super(context, key, fragment);
}
@Override
public void updateState(Preference preference, @NonNull ZenMode zenMode) {
- if (mFragment == null) {
- return;
- }
- preference.setSelectable(false);
-
- if (mHeaderController == null) {
- final LayoutPreference pref = (LayoutPreference) preference;
- mHeaderController = EntityHeaderController.newInstance(
- mFragment.getActivity(),
- mFragment,
- pref.findViewById(R.id.entity_header));
- }
-
- FutureUtil.whenDone(
- zenMode.getIcon(mContext, ZenIconLoader.getInstance()),
- icon -> mHeaderController.setIcon(IconUtil.applyNormalTint(mContext, icon))
- .done(/* rebindActions= */ false),
- mContext.getMainExecutor());
+ updateIcon(preference, zenMode,
+ mContext.getResources().getDimensionPixelSize(R.dimen.zen_mode_header_size),
+ icon -> IconUtil.makeModeHeader(mContext, icon),
+ iconView -> iconView.setSelected(zenMode.isActive()));
}
}
diff --git a/src/com/android/settings/notification/modes/ZenModeIconPickerIconPreferenceController.java b/src/com/android/settings/notification/modes/ZenModeIconPickerIconPreferenceController.java
index 70df9b6..a7adf6c 100644
--- a/src/com/android/settings/notification/modes/ZenModeIconPickerIconPreferenceController.java
+++ b/src/com/android/settings/notification/modes/ZenModeIconPickerIconPreferenceController.java
@@ -17,55 +17,28 @@
package com.android.settings.notification.modes;
import android.content.Context;
-import android.view.ViewGroup;
-import android.widget.ImageView;
import androidx.annotation.NonNull;
import androidx.preference.Preference;
import com.android.settings.R;
import com.android.settings.dashboard.DashboardFragment;
-import com.android.settings.widget.EntityHeaderController;
-import com.android.settingslib.notification.modes.ZenIconLoader;
import com.android.settingslib.notification.modes.ZenMode;
-import com.android.settingslib.widget.LayoutPreference;
/** Controller used for displaying the currently-chosen icon at the top of the icon picker. */
-class ZenModeIconPickerIconPreferenceController extends AbstractZenModePreferenceController {
-
- private final DashboardFragment mFragment;
- private EntityHeaderController mHeaderController;
+class ZenModeIconPickerIconPreferenceController extends AbstractZenModeHeaderController {
ZenModeIconPickerIconPreferenceController(@NonNull Context context, @NonNull String key,
@NonNull DashboardFragment fragment) {
- super(context, key);
- mFragment = fragment;
+ super(context, key, fragment);
}
@Override
void updateState(Preference preference, @NonNull ZenMode zenMode) {
- preference.setSelectable(false);
-
- if (mHeaderController == null) {
- final LayoutPreference pref = (LayoutPreference) preference;
- mHeaderController = EntityHeaderController.newInstance(
- mFragment.getActivity(),
- mFragment,
- pref.findViewById(R.id.entity_header));
-
- ImageView iconView = pref.findViewById(R.id.entity_header_icon);
- ViewGroup.LayoutParams layoutParams = iconView.getLayoutParams();
- int imageSizePx = iconView.getContext().getResources().getDimensionPixelSize(
- R.dimen.zen_mode_icon_list_header_circle_diameter);
- layoutParams.width = imageSizePx;
- layoutParams.height = imageSizePx;
- iconView.setLayoutParams(layoutParams);
- }
-
- FutureUtil.whenDone(
- zenMode.getIcon(mContext, ZenIconLoader.getInstance()),
- icon -> mHeaderController.setIcon(IconUtil.makeBigIconCircle(mContext, icon))
- .done(/* rebindActions= */ false),
- mContext.getMainExecutor());
+ updateIcon(preference, zenMode,
+ mContext.getResources().getDimensionPixelSize(
+ R.dimen.zen_mode_icon_list_header_circle_diameter),
+ icon -> IconUtil.makeIconPickerHeader(mContext, icon),
+ null);
}
}
diff --git a/src/com/android/settings/notification/modes/ZenModeIconPickerListPreferenceController.java b/src/com/android/settings/notification/modes/ZenModeIconPickerListPreferenceController.java
index 512dabb..93df38b 100644
--- a/src/com/android/settings/notification/modes/ZenModeIconPickerListPreferenceController.java
+++ b/src/com/android/settings/notification/modes/ZenModeIconPickerListPreferenceController.java
@@ -156,7 +156,7 @@
public void onBindViewHolder(@NonNull IconHolder holder, int position) {
IconOptionsProvider.IconInfo iconInfo = mIconResources.get(position);
Drawable iconDrawable = mIconCache.computeIfAbsent(iconInfo,
- info -> IconUtil.makeSmallIconCircle(mContext, info.resId()));
+ info -> IconUtil.makeIconPickerItem(mContext, info.resId()));
holder.bindIcon(iconInfo, iconDrawable);
}
diff --git a/src/com/android/settings/notification/modes/ZenModeOtherLinkPreferenceController.java b/src/com/android/settings/notification/modes/ZenModeOtherLinkPreferenceController.java
index 248ef1d..15e0edc 100644
--- a/src/com/android/settings/notification/modes/ZenModeOtherLinkPreferenceController.java
+++ b/src/com/android/settings/notification/modes/ZenModeOtherLinkPreferenceController.java
@@ -17,22 +17,39 @@
package com.android.settings.notification.modes;
import static android.app.NotificationManager.INTERRUPTION_FILTER_ALL;
-import static android.provider.Settings.EXTRA_AUTOMATIC_ZEN_RULE_ID;
+import static android.service.notification.ZenPolicy.PRIORITY_CATEGORY_ALARMS;
+import static android.service.notification.ZenPolicy.PRIORITY_CATEGORY_EVENTS;
+import static android.service.notification.ZenPolicy.PRIORITY_CATEGORY_MEDIA;
+import static android.service.notification.ZenPolicy.PRIORITY_CATEGORY_REMINDERS;
+import static android.service.notification.ZenPolicy.PRIORITY_CATEGORY_SYSTEM;
import android.content.Context;
-import android.os.Bundle;
+import android.service.notification.ZenPolicy;
import androidx.annotation.NonNull;
import androidx.preference.Preference;
-import com.android.settings.core.SubSettingLauncher;
+import com.android.settings.R;
import com.android.settingslib.notification.modes.ZenMode;
+import com.google.common.collect.ImmutableList;
+import com.google.common.collect.ImmutableMap;
+
+import java.util.Map;
+
/**
* Preference with a link and summary about what other sounds can break through the mode
*/
class ZenModeOtherLinkPreferenceController extends AbstractZenModePreferenceController {
+ private static final ImmutableMap</* @PriorityCategory */ Integer, /* @DrawableRes */ Integer>
+ PRIORITIES_TO_ICONS = ImmutableMap.of(
+ PRIORITY_CATEGORY_ALARMS, R.drawable.ic_zen_mode_sound_alarms,
+ PRIORITY_CATEGORY_MEDIA, R.drawable.ic_zen_mode_sound_media,
+ PRIORITY_CATEGORY_SYSTEM, R.drawable.ic_zen_mode_sound_system,
+ PRIORITY_CATEGORY_REMINDERS, R.drawable.ic_zen_mode_sound_reminders,
+ PRIORITY_CATEGORY_EVENTS, R.drawable.ic_zen_mode_sound_events);
+
private final ZenModeSummaryHelper mSummaryHelper;
public ZenModeOtherLinkPreferenceController(Context context, String key,
@@ -48,13 +65,24 @@
@Override
public void updateState(Preference preference, @NonNull ZenMode zenMode) {
- Bundle bundle = new Bundle();
- bundle.putString(EXTRA_AUTOMATIC_ZEN_RULE_ID, zenMode.getId());
- preference.setIntent(new SubSettingLauncher(mContext)
- .setDestination(ZenModeOtherFragment.class.getName())
- .setSourceMetricsCategory(0)
- .setArguments(bundle)
- .toIntent());
+ // TODO: b/332937635 - Update metrics category
+ preference.setIntent(
+ ZenSubSettingLauncher.forModeFragment(mContext, ZenModeOtherFragment.class,
+ zenMode.getId(), 0).toIntent());
+
+ preference.setEnabled(zenMode.isEnabled());
preference.setSummary(mSummaryHelper.getOtherSoundCategoriesSummary(zenMode));
+ ((CircularIconsPreference) preference).displayIcons(getSoundIcons(zenMode.getPolicy()));
+ }
+
+ private CircularIconSet<Integer> getSoundIcons(ZenPolicy policy) {
+ ImmutableList.Builder<Integer> icons = new ImmutableList.Builder<>();
+ for (Map.Entry<Integer, Integer> entry : PRIORITIES_TO_ICONS.entrySet()) {
+ if (policy.isCategoryAllowed(entry.getKey(), false)) {
+ icons.add(entry.getValue());
+ }
+ }
+ return new CircularIconSet<>(icons.build(),
+ iconResId -> IconUtil.makeCircularIconPreferenceItem(mContext, iconResId));
}
}
diff --git a/src/com/android/settings/notification/modes/ZenModePeopleLinkPreferenceController.java b/src/com/android/settings/notification/modes/ZenModePeopleLinkPreferenceController.java
index 936cea6..4610c35ca 100644
--- a/src/com/android/settings/notification/modes/ZenModePeopleLinkPreferenceController.java
+++ b/src/com/android/settings/notification/modes/ZenModePeopleLinkPreferenceController.java
@@ -17,28 +17,68 @@
package com.android.settings.notification.modes;
import static android.app.NotificationManager.INTERRUPTION_FILTER_ALL;
-import static android.provider.Settings.EXTRA_AUTOMATIC_ZEN_RULE_ID;
+import static android.service.notification.ZenPolicy.CONVERSATION_SENDERS_ANYONE;
+import static android.service.notification.ZenPolicy.CONVERSATION_SENDERS_IMPORTANT;
+import static android.service.notification.ZenPolicy.CONVERSATION_SENDERS_NONE;
+import static android.service.notification.ZenPolicy.PEOPLE_TYPE_ANYONE;
+import static android.service.notification.ZenPolicy.PEOPLE_TYPE_CONTACTS;
+import static android.service.notification.ZenPolicy.PEOPLE_TYPE_NONE;
+import static android.service.notification.ZenPolicy.PEOPLE_TYPE_STARRED;
+import static android.service.notification.ZenPolicy.STATE_ALLOW;
import android.content.Context;
-import android.os.Bundle;
+import android.content.pm.LauncherApps;
+import android.graphics.drawable.Drawable;
+import android.service.notification.ConversationChannelWrapper;
+import android.service.notification.ZenPolicy;
+import android.service.notification.ZenPolicy.ConversationSenders;
+import android.service.notification.ZenPolicy.PeopleType;
+import android.util.IconDrawableFactory;
import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import androidx.annotation.VisibleForTesting;
+import androidx.annotation.WorkerThread;
import androidx.preference.Preference;
-import com.android.settings.core.SubSettingLauncher;
+import com.android.settings.R;
+import com.android.settings.notification.modes.ZenHelperBackend.Contact;
+import com.android.settingslib.notification.ConversationIconFactory;
import com.android.settingslib.notification.modes.ZenMode;
+import com.google.common.base.Equivalence;
+import com.google.common.collect.ImmutableList;
+
+import java.util.Objects;
+
/**
- * Preference with a link and summary about what calls and messages can break through the mode
+ * Preference with a link and summary about what calls and messages can break through the mode,
+ * and icons representing those people.
*/
class ZenModePeopleLinkPreferenceController extends AbstractZenModePreferenceController {
private final ZenModeSummaryHelper mSummaryHelper;
+ private final ZenHelperBackend mHelperBackend;
+ private final ConversationIconFactory mConversationIconFactory;
- public ZenModePeopleLinkPreferenceController(Context context, String key,
+ ZenModePeopleLinkPreferenceController(Context context, String key,
ZenHelperBackend helperBackend) {
+ this(context, key, helperBackend,
+ new ConversationIconFactory(context,
+ context.getSystemService(LauncherApps.class),
+ context.getPackageManager(),
+ IconDrawableFactory.newInstance(context, false),
+ context.getResources().getDimensionPixelSize(
+ R.dimen.zen_mode_circular_icon_diameter)));
+ }
+
+ @VisibleForTesting
+ ZenModePeopleLinkPreferenceController(Context context, String key,
+ ZenHelperBackend helperBackend, ConversationIconFactory conversationIconFactory) {
super(context, key);
mSummaryHelper = new ZenModeSummaryHelper(mContext, helperBackend);
+ mHelperBackend = helperBackend;
+ mConversationIconFactory = conversationIconFactory;
}
@Override
@@ -48,14 +88,143 @@
@Override
public void updateState(Preference preference, @NonNull ZenMode zenMode) {
- Bundle bundle = new Bundle();
- bundle.putString(EXTRA_AUTOMATIC_ZEN_RULE_ID, zenMode.getId());
// TODO(b/332937635): Update metrics category
- preference.setIntent(new SubSettingLauncher(mContext)
- .setDestination(ZenModePeopleFragment.class.getName())
- .setSourceMetricsCategory(0)
- .setArguments(bundle)
- .toIntent());
- preference.setSummary(mSummaryHelper.getPeopleSummary(zenMode));
+ preference.setIntent(
+ ZenSubSettingLauncher.forModeFragment(mContext, ZenModePeopleFragment.class,
+ zenMode.getId(), 0).toIntent());
+
+ preference.setEnabled(zenMode.isEnabled());
+ preference.setSummary(mSummaryHelper.getPeopleSummary(zenMode.getPolicy()));
+ ((CircularIconsPreference) preference).displayIcons(getPeopleIcons(zenMode.getPolicy()),
+ PEOPLE_ITEM_EQUIVALENCE);
+ }
+
+ // Represents "Either<All, Contact, ConversationChannelWrapper>".
+ private record PeopleItem(boolean all,
+ @Nullable Contact contact,
+ @Nullable ConversationChannelWrapper conversation) {
+
+ private static final PeopleItem ALL = new PeopleItem(true, null, null);
+
+ PeopleItem(@NonNull Contact contact) {
+ this(false, contact, null);
+ }
+
+ PeopleItem(@NonNull ConversationChannelWrapper conversation) {
+ this(false, null, conversation);
+ }
+ }
+
+ private static final Equivalence<PeopleItem> PEOPLE_ITEM_EQUIVALENCE = new Equivalence<>() {
+ @Override
+ protected boolean doEquivalent(@NonNull PeopleItem a, @NonNull PeopleItem b) {
+ if (a.all && b.all) {
+ return true;
+ } else if (a.contact != null && b.contact != null) {
+ return a.contact.equals(b.contact);
+ } else if (a.conversation != null && b.conversation != null) {
+ ConversationChannelWrapper c1 = a.conversation;
+ ConversationChannelWrapper c2 = b.conversation;
+ // Skip comparing ShortcutInfo which doesn't implement equals(). We assume same
+ // conversation channel means same icon (which is not 100% correct but unlikely to
+ // change while on this screen).
+ return Objects.equals(c1.getNotificationChannel(), c2.getNotificationChannel())
+ && Objects.equals(c1.getGroupLabel(), c2.getGroupLabel())
+ && Objects.equals(c1.getParentChannelLabel(), c2.getParentChannelLabel())
+ && Objects.equals(c1.getPkg(), c2.getPkg())
+ && Objects.equals(c1.getUid(), c2.getUid());
+ } else {
+ return false;
+ }
+ }
+
+ @Override
+ protected int doHash(@NonNull PeopleItem item) {
+ return Objects.hash(item.all, item.contact, item.conversation);
+ }
+ };
+
+ private CircularIconSet<PeopleItem> getPeopleIcons(ZenPolicy policy) {
+ if (getCallersOrMessagesAllowed(policy) == PEOPLE_TYPE_ANYONE) {
+ return new CircularIconSet<>(
+ ImmutableList.of(PeopleItem.ALL),
+ this::loadPeopleIcon);
+ }
+
+ ImmutableList.Builder<PeopleItem> peopleItems = ImmutableList.builder();
+ fetchContactsAllowed(policy, peopleItems);
+ fetchConversationsAllowed(policy, peopleItems);
+ return new CircularIconSet<>(peopleItems.build(), this::loadPeopleIcon);
+ }
+
+ /**
+ * Adds {@link PeopleItem} entries corresponding to the set of people (contacts) who can
+ * break through via either call OR message.
+ */
+ private void fetchContactsAllowed(ZenPolicy policy,
+ ImmutableList.Builder<PeopleItem> peopleItems) {
+ @PeopleType int peopleAllowed = getCallersOrMessagesAllowed(policy);
+
+ ImmutableList<Contact> contactsAllowed = ImmutableList.of();
+ if (peopleAllowed == PEOPLE_TYPE_CONTACTS) {
+ contactsAllowed = mHelperBackend.getAllContacts();
+ } else if (peopleAllowed == PEOPLE_TYPE_STARRED) {
+ contactsAllowed = mHelperBackend.getStarredContacts();
+ }
+
+ for (Contact contact : contactsAllowed) {
+ peopleItems.add(new PeopleItem(contact));
+ }
+ }
+
+ /**
+ * Adds {@link PeopleItem} entries corresponding to the set of conversation channels that can
+ * break through.
+ */
+ private void fetchConversationsAllowed(ZenPolicy policy,
+ ImmutableList.Builder<PeopleItem> peopleItems) {
+ @ConversationSenders int conversationSendersAllowed =
+ policy.getPriorityCategoryConversations() == STATE_ALLOW
+ ? policy.getPriorityConversationSenders()
+ : CONVERSATION_SENDERS_NONE;
+ ImmutableList<ConversationChannelWrapper> conversationsAllowed = ImmutableList.of();
+ if (conversationSendersAllowed == CONVERSATION_SENDERS_ANYONE) {
+ conversationsAllowed = mHelperBackend.getAllConversations();
+ } else if (conversationSendersAllowed == CONVERSATION_SENDERS_IMPORTANT) {
+ conversationsAllowed = mHelperBackend.getImportantConversations();
+ }
+
+ for (ConversationChannelWrapper conversation : conversationsAllowed) {
+ peopleItems.add(new PeopleItem(conversation));
+ }
+ }
+
+ /** Returns the broadest set of people who can call OR message. */
+ private @PeopleType int getCallersOrMessagesAllowed(ZenPolicy policy) {
+ @PeopleType int callersAllowed = policy.getPriorityCategoryCalls() == STATE_ALLOW
+ ? policy.getPriorityCallSenders() : PEOPLE_TYPE_NONE;
+ @PeopleType int messagesAllowed = policy.getPriorityCategoryMessages() == STATE_ALLOW
+ ? policy.getPriorityMessageSenders() : PEOPLE_TYPE_NONE;
+
+ // Order is ANYONE -> CONTACTS -> STARRED -> NONE, so just taking the minimum works.
+ return Math.min(callersAllowed, messagesAllowed);
+ }
+
+ @WorkerThread
+ private Drawable loadPeopleIcon(PeopleItem peopleItem) {
+ if (peopleItem.all) {
+ return IconUtil.makeCircularIconPreferenceItem(mContext,
+ R.drawable.ic_zen_mode_people_all);
+ } else if (peopleItem.contact != null) {
+ return mHelperBackend.getContactPhoto(peopleItem.contact);
+ } else if (peopleItem.conversation != null) {
+ return mConversationIconFactory.getConversationDrawable(
+ peopleItem.conversation.getShortcutInfo(),
+ peopleItem.conversation.getPkg(),
+ peopleItem.conversation.getUid(),
+ peopleItem.conversation.getNotificationChannel().isImportantConversation());
+ } else {
+ throw new IllegalArgumentException("Neither all nor contact nor conversation!");
+ }
}
}
diff --git a/src/com/android/settings/notification/modes/ZenModePreferenceCategoryController.java b/src/com/android/settings/notification/modes/ZenModePreferenceCategoryController.java
new file mode 100644
index 0000000..6ebcb1f
--- /dev/null
+++ b/src/com/android/settings/notification/modes/ZenModePreferenceCategoryController.java
@@ -0,0 +1,39 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.notification.modes;
+
+import android.content.Context;
+
+import androidx.annotation.NonNull;
+import androidx.preference.Preference;
+
+import com.android.settingslib.notification.modes.ZenMode;
+
+/**
+ * Simple {@link AbstractZenModePreferenceController} used for all {@code PreferenceCategory}
+ * entries in {@link ZenModeFragment} that should be disabled when the mode is disabled.
+ */
+class ZenModePreferenceCategoryController extends AbstractZenModePreferenceController {
+ ZenModePreferenceCategoryController(@NonNull Context context, @NonNull String key) {
+ super(context, key);
+ }
+
+ @Override
+ void updateState(Preference preference, @NonNull ZenMode zenMode) {
+ preference.setEnabled(zenMode.isEnabled());
+ }
+}
diff --git a/src/com/android/settings/notification/modes/ZenModePrioritySendersPreferenceController.java b/src/com/android/settings/notification/modes/ZenModePrioritySendersPreferenceController.java
index 0f9323d..ab5e2d9 100644
--- a/src/com/android/settings/notification/modes/ZenModePrioritySendersPreferenceController.java
+++ b/src/com/android/settings/notification/modes/ZenModePrioritySendersPreferenceController.java
@@ -26,19 +26,18 @@
import static android.service.notification.ZenPolicy.PEOPLE_TYPE_STARRED;
import static android.service.notification.ZenPolicy.PEOPLE_TYPE_UNSET;
+import static com.google.common.base.Preconditions.checkNotNull;
+
import android.app.settings.SettingsEnums;
import android.content.Context;
import android.content.Intent;
import android.content.pm.PackageManager;
-import android.content.pm.ParceledListSlice;
import android.icu.text.MessageFormat;
import android.provider.Contacts;
-import android.service.notification.ConversationChannelWrapper;
import android.service.notification.ZenPolicy;
import android.view.View;
import androidx.annotation.NonNull;
-import androidx.annotation.VisibleForTesting;
import androidx.preference.Preference;
import androidx.preference.PreferenceCategory;
import androidx.preference.PreferenceScreen;
@@ -50,11 +49,13 @@
import com.android.settingslib.notification.modes.ZenModesBackend;
import com.android.settingslib.widget.SelectorWithWidgetPreference;
-import java.util.ArrayList;
+import com.google.common.collect.ImmutableSet;
+
import java.util.HashMap;
-import java.util.List;
+import java.util.LinkedHashMap;
import java.util.Locale;
import java.util.Map;
+import java.util.Set;
/**
* Common preference controller functionality for zen mode priority senders preferences for both
@@ -71,9 +72,11 @@
static final String KEY_ANY = "senders_anyone";
static final String KEY_CONTACTS = "senders_contacts";
static final String KEY_STARRED = "senders_starred_contacts";
- static final String KEY_IMPORTANT = "conversations_important";
+ static final String KEY_IMPORTANT_CONVERSATIONS = "conversations_important";
+ static final String KEY_ANY_CONVERSATIONS = "conversations_any";
static final String KEY_NONE = "senders_none";
+ private int mNumAllConversations = 0;
private int mNumImportantConversations = 0;
private static final Intent ALL_CONTACTS_INTENT =
@@ -88,7 +91,8 @@
private final ZenHelperBackend mHelperBackend;
private final PackageManager mPackageManager;
private PreferenceCategory mPreferenceCategory;
- private List<SelectorWithWidgetPreference> mSelectorPreferences = new ArrayList<>();
+ private final LinkedHashMap<String, SelectorWithWidgetPreference> mOptions =
+ new LinkedHashMap<>();
private final ZenModeSummaryHelper mZenModeSummaryHelper;
@@ -112,53 +116,92 @@
@Override
public void displayPreference(PreferenceScreen screen) {
- mPreferenceCategory = screen.findPreference(getPreferenceKey());
+ mPreferenceCategory = checkNotNull(screen.findPreference(getPreferenceKey()));
if (mPreferenceCategory.getPreferenceCount() == 0) {
makeSelectorPreference(KEY_STARRED,
- com.android.settings.R.string.zen_mode_from_starred, mIsMessages);
+ com.android.settings.R.string.zen_mode_from_starred, mIsMessages, true);
makeSelectorPreference(KEY_CONTACTS,
- com.android.settings.R.string.zen_mode_from_contacts, mIsMessages);
+ com.android.settings.R.string.zen_mode_from_contacts, mIsMessages, true);
if (mIsMessages) {
- makeSelectorPreference(KEY_IMPORTANT,
- com.android.settings.R.string.zen_mode_from_important_conversations, true);
+ // "Any conversations" will only be available as option if it is the current value.
+ // Because it's confusing and we don't want users setting it up that way, but apps
+ // could create such ZenPolicies and we must show that.
+ makeSelectorPreference(KEY_ANY_CONVERSATIONS,
+ com.android.settings.R.string.zen_mode_from_all_conversations, true,
+ /* isVisibleByDefault= */ false);
+ makeSelectorPreference(KEY_IMPORTANT_CONVERSATIONS,
+ com.android.settings.R.string.zen_mode_from_important_conversations, true,
+ true);
}
makeSelectorPreference(KEY_ANY,
- com.android.settings.R.string.zen_mode_from_anyone, mIsMessages);
+ com.android.settings.R.string.zen_mode_from_anyone, mIsMessages, true);
makeSelectorPreference(KEY_NONE,
- com.android.settings.R.string.zen_mode_none_messages, mIsMessages);
+ com.android.settings.R.string.zen_mode_none_messages, mIsMessages, true);
}
super.displayPreference(screen);
}
@Override
public void updateState(Preference preference, @NonNull ZenMode zenMode) {
+ final int contacts = getPrioritySenders(zenMode.getPolicy());
+ final int conversations = getPriorityConversationSenders(zenMode.getPolicy());
+
if (mIsMessages) {
updateChannelCounts();
- }
- final int currContactsSetting = getPrioritySenders(zenMode.getPolicy());
- final int currConversationsSetting = getPriorityConversationSenders(zenMode.getPolicy());
- for (SelectorWithWidgetPreference pref : mSelectorPreferences) {
- // for each preference, check whether the current state matches what this state
- // would look like if the button were checked.
- final int[] checkedState = keyToSettingEndState(pref.getKey(), true);
- final int checkedContactsSetting = checkedState[0];
- final int checkedConversationsSetting = checkedState[1];
- boolean match = checkedContactsSetting == currContactsSetting;
- if (mIsMessages && checkedConversationsSetting != CONVERSATION_SENDERS_UNSET) {
- // "CONVERSATION_SENDERS_UNSET" in checkedContactsSetting means this preference
- // doesn't govern the priority senders setting, so the full match happens when
- // either the priority senders setting matches or if it's CONVERSATION_SENDERS_UNSET
- // so only the conversation setting needs to match.
- match = (match || checkedContactsSetting == PEOPLE_TYPE_UNSET)
- && (checkedConversationsSetting == currConversationsSetting);
+ if (contacts == PEOPLE_TYPE_ANYONE) {
+ setSelectedOption(KEY_ANY);
+ } else if (contacts == PEOPLE_TYPE_NONE && conversations == CONVERSATION_SENDERS_NONE) {
+ setSelectedOption(KEY_NONE);
+ } else {
+ ImmutableSet.Builder<String> selectedOptions = new ImmutableSet.Builder<>();
+ if (contacts == PEOPLE_TYPE_STARRED) {
+ selectedOptions.add(KEY_STARRED);
+ } else if (contacts == PEOPLE_TYPE_CONTACTS) {
+ selectedOptions.add(KEY_CONTACTS);
+ }
+ if (conversations == CONVERSATION_SENDERS_IMPORTANT) {
+ selectedOptions.add(KEY_IMPORTANT_CONVERSATIONS);
+ } else if (conversations == CONVERSATION_SENDERS_ANYONE) {
+ selectedOptions.add(KEY_ANY_CONVERSATIONS);
+ }
+ setSelectedOptions(selectedOptions.build());
}
-
- pref.setChecked(match);
+ } else {
+ // Calls is easy!
+ switch (contacts) {
+ case PEOPLE_TYPE_ANYONE -> setSelectedOption(KEY_ANY);
+ case PEOPLE_TYPE_CONTACTS -> setSelectedOption(KEY_CONTACTS);
+ case PEOPLE_TYPE_STARRED -> setSelectedOption(KEY_STARRED);
+ case PEOPLE_TYPE_NONE -> setSelectedOption(KEY_NONE);
+ default -> throw new IllegalArgumentException("Unexpected PeopleType: " + contacts);
+ }
}
+
updateSummaries();
}
+ private void setSelectedOption(String key) {
+ setSelectedOptions(ImmutableSet.of(key));
+ }
+
+ private void setSelectedOptions(Set<String> keys) {
+ if (keys.isEmpty()) {
+ throw new IllegalArgumentException("At least one option should be selected!");
+ }
+
+ for (SelectorWithWidgetPreference optionPreference : mOptions.values()) {
+ optionPreference.setChecked(keys.contains(optionPreference.getKey()));
+ if (optionPreference.isChecked()) {
+ // Ensure selected options are visible. This is to support "Any conversations"
+ // which is only shown if the policy has Conversations=Anyone (and doesn't have
+ // messages=Anyone), and then remains visible until the user exits the page
+ // (so that toggling back and forth is possible without the option disappearing).
+ optionPreference.setVisible(true);
+ }
+ }
+ }
+
public void onResume() {
if (mIsMessages) {
updateChannelCounts();
@@ -167,17 +210,8 @@
}
private void updateChannelCounts() {
- ParceledListSlice<ConversationChannelWrapper> impConversations =
- mHelperBackend.getConversations(true);
- int numImportantConversations = 0;
- if (impConversations != null) {
- for (ConversationChannelWrapper conversation : impConversations.getList()) {
- if (!conversation.getNotificationChannel().isDemoted()) {
- numImportantConversations++;
- }
- }
- }
- mNumImportantConversations = numImportantConversations;
+ mNumAllConversations = mHelperBackend.getAllConversations().size();
+ mNumImportantConversations = mHelperBackend.getImportantConversations().size();
}
private int getPrioritySenders(ZenPolicy policy) {
@@ -195,13 +229,14 @@
return CONVERSATION_SENDERS_UNSET;
}
- private SelectorWithWidgetPreference makeSelectorPreference(String key, int titleId,
- boolean isCheckbox) {
+ private void makeSelectorPreference(String key, int titleId,
+ boolean isCheckbox, boolean isVisibleByDefault) {
final SelectorWithWidgetPreference pref =
new SelectorWithWidgetPreference(mPreferenceCategory.getContext(), isCheckbox);
pref.setKey(key);
pref.setTitle(titleId);
pref.setOnClickListener(mSelectorClickListener);
+ pref.setVisible(isVisibleByDefault);
View.OnClickListener widgetClickListener = getWidgetClickListener(key);
if (widgetClickListener != null) {
@@ -209,12 +244,12 @@
}
mPreferenceCategory.addPreference(pref);
- mSelectorPreferences.add(pref);
- return pref;
+ mOptions.put(key, pref);
}
private View.OnClickListener getWidgetClickListener(String key) {
- if (!KEY_CONTACTS.equals(key) && !KEY_STARRED.equals(key) && !KEY_IMPORTANT.equals(key)) {
+ if (!KEY_CONTACTS.equals(key) && !KEY_STARRED.equals(key)
+ && !KEY_ANY_CONVERSATIONS.equals(key) && !KEY_IMPORTANT_CONVERSATIONS.equals(key)) {
return null;
}
@@ -233,7 +268,8 @@
} else if (KEY_CONTACTS.equals(key)
&& ALL_CONTACTS_INTENT.resolveActivity(mPackageManager) != null) {
mContext.startActivity(ALL_CONTACTS_INTENT);
- } else if (KEY_IMPORTANT.equals(key)) {
+ } else if (KEY_ANY_CONVERSATIONS.equals(key)
+ || KEY_IMPORTANT_CONVERSATIONS.equals(key)) {
// TODO: b/332937635 - set correct metrics category
new SubSettingLauncher(mContext)
.setDestination(ConversationListSettings.class.getName())
@@ -256,7 +292,7 @@
}
void updateSummaries() {
- for (SelectorWithWidgetPreference pref : mSelectorPreferences) {
+ for (SelectorWithWidgetPreference pref : mOptions.values()) {
pref.setSummary(getSummary(pref.getKey()));
}
}
@@ -267,7 +303,7 @@
// Returns an integer array with 2 entries. The first entry is the setting for priority senders
// and the second entry is for priority conversation senders; if isMessages is false, then
// no changes will ever be prescribed for conversation senders.
- int[] keyToSettingEndState(String key, boolean checked) {
+ private int[] keyToSettingEndState(String key, boolean checked) {
int[] endState = new int[]{ PEOPLE_TYPE_UNSET, CONVERSATION_SENDERS_UNSET };
if (!checked) {
// Unchecking any priority-senders-based state should reset the state to NONE.
@@ -280,11 +316,12 @@
endState[0] = PEOPLE_TYPE_NONE;
}
- // For messages, unchecking "priority conversations" and "any" should reset conversation
- // state to "NONE" as well.
+ // For messages, unchecking "priority/any conversations" and "any" should reset
+ // conversation state to "NONE" as well.
if (mIsMessages) {
switch (key) {
- case KEY_IMPORTANT:
+ case KEY_IMPORTANT_CONVERSATIONS:
+ case KEY_ANY_CONVERSATIONS:
case KEY_ANY:
case KEY_NONE:
endState[1] = CONVERSATION_SENDERS_NONE;
@@ -309,9 +346,10 @@
// In the messages case *only*, also handle changing of conversation settings.
if (mIsMessages) {
switch (key) {
- case KEY_IMPORTANT:
+ case KEY_IMPORTANT_CONVERSATIONS:
endState[1] = CONVERSATION_SENDERS_IMPORTANT;
break;
+ case KEY_ANY_CONVERSATIONS:
case KEY_ANY:
endState[1] = CONVERSATION_SENDERS_ANYONE;
break;
@@ -347,7 +385,7 @@
// the contacts setting is additionally reset to "none".
// - if "anyone" is previously selected, and the user clicks one of the contacts values,
// then the conversations setting is additionally reset to "none".
- int[] settingsToSaveOnClick(String key, boolean checked,
+ private int[] settingsToSaveOnClick(String key, boolean checked,
int currSendersSetting, int currConvosSetting) {
int[] savedSettings = new int[]{ PEOPLE_TYPE_UNSET, CONVERSATION_SENDERS_UNSET };
@@ -372,15 +410,18 @@
// Special-case handling for the "priority conversations" checkbox:
// If a specific selection exists for priority senders (starred, contacts), we leave
// it untouched. Otherwise (when the senders is set to "any"), set it to NONE.
- if (key.equals(KEY_IMPORTANT)
+ if ((key.equals(KEY_IMPORTANT_CONVERSATIONS) || key.equals(KEY_ANY_CONVERSATIONS))
&& currSendersSetting == PEOPLE_TYPE_ANYONE) {
savedSettings[0] = PEOPLE_TYPE_NONE;
}
- // Flip-side special case for clicking either "contacts" option: if a specific selection
- // exists for priority conversations, leave it untouched; otherwise, set to none.
+ // The flip-side case for the "contacts" option is slightly different -- we only
+ // reset conversations if leaving PEOPLE_ANY by selecting a contact option, but not
+ // if switching contact options. That's because starting from Anyone, checking Contacts,
+ // and then "important conversations" also shown checked because it was there (albeit
+ // subsumed into PEOPLE_ANY) would be weird.
if ((key.equals(KEY_STARRED) || key.equals(KEY_CONTACTS))
- && currConvosSetting == CONVERSATION_SENDERS_ANYONE) {
+ && currSendersSetting == PEOPLE_TYPE_ANYONE) {
savedSettings[1] = CONVERSATION_SENDERS_NONE;
}
}
@@ -394,8 +435,10 @@
return mZenModeSummaryHelper.getStarredContactsSummary();
case KEY_CONTACTS:
return mZenModeSummaryHelper.getContactsNumberSummary();
- case KEY_IMPORTANT:
- return getConversationSummary();
+ case KEY_ANY_CONVERSATIONS:
+ return getConversationSummary(mNumAllConversations);
+ case KEY_IMPORTANT_CONVERSATIONS:
+ return getConversationSummary(mNumImportantConversations);
case KEY_ANY:
return mContext.getResources().getString(mIsMessages
? R.string.zen_mode_all_messages_summary
@@ -406,9 +449,7 @@
}
}
- private String getConversationSummary() {
- final int numConversations = mNumImportantConversations;
-
+ private String getConversationSummary(int numConversations) {
if (numConversations == CONVERSATION_SENDERS_UNSET) {
return null;
} else {
@@ -421,8 +462,7 @@
}
}
- @VisibleForTesting
- SelectorWithWidgetPreference.OnClickListener mSelectorClickListener =
+ private final SelectorWithWidgetPreference.OnClickListener mSelectorClickListener =
new SelectorWithWidgetPreference.OnClickListener() {
@Override
public void onRadioButtonClicked(SelectorWithWidgetPreference preference) {
diff --git a/src/com/android/settings/notification/modes/ZenModeScheduleChooserDialog.java b/src/com/android/settings/notification/modes/ZenModeScheduleChooserDialog.java
index 14264b7..6202648 100644
--- a/src/com/android/settings/notification/modes/ZenModeScheduleChooserDialog.java
+++ b/src/com/android/settings/notification/modes/ZenModeScheduleChooserDialog.java
@@ -50,15 +50,16 @@
static final int OPTION_TIME = 0;
static final int OPTION_CALENDAR = 1;
- private record ScheduleOption(@StringRes int nameResId, @StringRes int exampleResId,
- @DrawableRes int iconResId) {}
+ private record ScheduleOption(@StringRes int nameResId,
+ @Nullable @StringRes Integer exampleResId,
+ @DrawableRes int iconResId) { }
private static final ImmutableList<ScheduleOption> SCHEDULE_OPTIONS = ImmutableList.of(
new ScheduleOption(R.string.zen_mode_select_schedule_time,
R.string.zen_mode_select_schedule_time_example,
com.android.internal.R.drawable.ic_zen_mode_type_schedule_time),
new ScheduleOption(R.string.zen_mode_select_schedule_calendar,
- R.string.zen_mode_select_schedule_calendar_example,
+ null,
com.android.internal.R.drawable.ic_zen_mode_type_schedule_calendar));
private OnScheduleOptionListener mOptionListener;
@@ -85,7 +86,7 @@
public Dialog onCreateDialog(@Nullable Bundle savedInstanceState) {
checkState(getContext() != null);
return new AlertDialog.Builder(getContext())
- .setTitle(R.string.zen_mode_choose_rule_type)
+ .setTitle(R.string.zen_mode_select_schedule_title)
.setAdapter(new OptionsAdapter(getContext()),
(dialog, which) -> onScheduleTypeSelected(which))
.setNegativeButton(R.string.cancel, null)
@@ -115,7 +116,12 @@
ScheduleOption option = checkNotNull(getItem(position));
imageView.setImageResource(option.iconResId());
title.setText(option.nameResId());
- subtitle.setText(option.exampleResId());
+ if (option.exampleResId() != null) {
+ subtitle.setVisibility(View.VISIBLE);
+ subtitle.setText(option.exampleResId());
+ } else {
+ subtitle.setVisibility(View.GONE);
+ }
return convertView;
}
diff --git a/src/com/android/settings/notification/modes/ZenModeSetSchedulePreferenceController.java b/src/com/android/settings/notification/modes/ZenModeSetSchedulePreferenceController.java
index 878a508..e4c3f32 100644
--- a/src/com/android/settings/notification/modes/ZenModeSetSchedulePreferenceController.java
+++ b/src/com/android/settings/notification/modes/ZenModeSetSchedulePreferenceController.java
@@ -67,12 +67,18 @@
LayoutPreference layoutPref = (LayoutPreference) preference;
TextView start = layoutPref.findViewById(R.id.start_time);
- start.setText(timeString(mSchedule.startHour, mSchedule.startMinute));
+ String startTimeString = timeString(mSchedule.startHour, mSchedule.startMinute);
+ start.setText(startTimeString);
+ start.setContentDescription(
+ mContext.getString(R.string.zen_mode_start_time) + "\n" + startTimeString);
start.setOnClickListener(
timePickerLauncher(mSchedule.startHour, mSchedule.startMinute, mStartSetter));
TextView end = layoutPref.findViewById(R.id.end_time);
- end.setText(timeString(mSchedule.endHour, mSchedule.endMinute));
+ String endTimeString = timeString(mSchedule.endHour, mSchedule.endMinute);
+ end.setText(endTimeString);
+ end.setContentDescription(
+ mContext.getString(R.string.zen_mode_end_time) + "\n" + endTimeString);
end.setOnClickListener(
timePickerLauncher(mSchedule.endHour, mSchedule.endMinute, mEndSetter));
@@ -198,7 +204,10 @@
// day label.
dayToggle.setTextOn(mShortDayFormat.format(c.getTime()));
dayToggle.setTextOff(mShortDayFormat.format(c.getTime()));
- dayToggle.setContentDescription(mLongDayFormat.format(c.getTime()));
+ String state = dayEnabled
+ ? mContext.getString(com.android.internal.R.string.capital_on)
+ : mContext.getString(com.android.internal.R.string.capital_off);
+ dayToggle.setStateDescription(mLongDayFormat.format(c.getTime()) + ", " + state);
dayToggle.setChecked(dayEnabled);
dayToggle.setOnCheckedChangeListener((buttonView, isChecked) -> {
diff --git a/src/com/android/settings/notification/modes/ZenModeSetTriggerLinkPreferenceController.java b/src/com/android/settings/notification/modes/ZenModeSetTriggerLinkPreferenceController.java
deleted file mode 100644
index 86135a9..0000000
--- a/src/com/android/settings/notification/modes/ZenModeSetTriggerLinkPreferenceController.java
+++ /dev/null
@@ -1,153 +0,0 @@
-/*
- * Copyright (C) 2024 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.notification.modes;
-
-import static android.app.AutomaticZenRule.TYPE_SCHEDULE_CALENDAR;
-import static android.app.AutomaticZenRule.TYPE_SCHEDULE_TIME;
-
-import android.content.Context;
-import android.content.Intent;
-import android.util.Log;
-
-import androidx.annotation.NonNull;
-import androidx.annotation.VisibleForTesting;
-import androidx.preference.Preference;
-import androidx.preference.PreferenceCategory;
-import androidx.preference.PreferenceScreen;
-
-import com.android.settings.R;
-import com.android.settings.dashboard.DashboardFragment;
-import com.android.settingslib.PrimarySwitchPreference;
-import com.android.settingslib.notification.modes.ZenMode;
-import com.android.settingslib.notification.modes.ZenModesBackend;
-
-/**
- * Preference controller for the link to an individual mode's configuration page.
- */
-class ZenModeSetTriggerLinkPreferenceController extends AbstractZenModePreferenceController {
- private static final String TAG = "ZenModeSetTriggerLink";
-
- @VisibleForTesting
- protected static final String AUTOMATIC_TRIGGER_PREF_KEY = "zen_automatic_trigger_settings";
-
- private final ConfigurationActivityHelper mConfigurationActivityHelper;
- private final ZenServiceListing mServiceListing;
- private final DashboardFragment mFragment;
-
- ZenModeSetTriggerLinkPreferenceController(Context context, String key,
- DashboardFragment fragment, ZenModesBackend backend) {
- this(context, key, fragment, backend,
- new ConfigurationActivityHelper(context.getPackageManager()),
- new ZenServiceListing(context));
- }
-
- @VisibleForTesting
- ZenModeSetTriggerLinkPreferenceController(Context context, String key,
- DashboardFragment fragment, ZenModesBackend backend,
- ConfigurationActivityHelper configurationActivityHelper,
- ZenServiceListing serviceListing) {
- super(context, key, backend);
- mFragment = fragment;
- mConfigurationActivityHelper = configurationActivityHelper;
- mServiceListing = serviceListing;
- }
-
- @Override
- public boolean isAvailable(@NonNull ZenMode zenMode) {
- return !zenMode.isManualDnd();
- }
-
- @Override
- public void displayPreference(PreferenceScreen screen, @NonNull ZenMode zenMode) {
- // Preload approved components, but only for the package that owns the rule (since it's the
- // only package that can have a valid configurationActivity).
- mServiceListing.loadApprovedComponents(zenMode.getRule().getPackageName());
- }
-
- @Override
- public void updateState(Preference preference, @NonNull ZenMode zenMode) {
- // This controller is expected to govern a preference category so that it controls the
- // availability of the entire preference category if the mode doesn't have a way to
- // automatically trigger (such as manual DND).
- PrimarySwitchPreference switchPref = ((PreferenceCategory) preference).findPreference(
- AUTOMATIC_TRIGGER_PREF_KEY);
- if (switchPref == null) {
- return;
- }
- switchPref.setChecked(zenMode.getRule().isEnabled());
- switchPref.setOnPreferenceChangeListener(mSwitchChangeListener);
- switchPref.setSummary(zenMode.getRule().getTriggerDescription());
- switchPref.setIcon(null);
- switchPref.setOnPreferenceClickListener(null);
- switchPref.setIntent(null);
-
- if (zenMode.isSystemOwned()) {
- if (zenMode.getType() == TYPE_SCHEDULE_TIME) {
- switchPref.setTitle(R.string.zen_mode_set_schedule_link);
- // TODO: b/332937635 - set correct metrics category
- switchPref.setIntent(ZenSubSettingLauncher.forModeFragment(mContext,
- ZenModeSetScheduleFragment.class, zenMode.getId(), 0).toIntent());
- } else if (zenMode.getType() == TYPE_SCHEDULE_CALENDAR) {
- switchPref.setTitle(R.string.zen_mode_set_calendar_link);
- switchPref.setIcon(null);
- // TODO: b/332937635 - set correct metrics category
- switchPref.setIntent(ZenSubSettingLauncher.forModeFragment(mContext,
- ZenModeSetCalendarFragment.class, zenMode.getId(), 0).toIntent());
- } else {
- switchPref.setTitle(R.string.zen_mode_select_schedule);
- switchPref.setIcon(R.drawable.ic_add_24dp);
- switchPref.setSummary("");
- // TODO: b/342156843 - Hide the switch (needs support in SettingsLib).
- switchPref.setOnPreferenceClickListener(clickedPreference -> {
- ZenModeScheduleChooserDialog.show(mFragment, mOnScheduleOptionListener);
- return true;
- });
- }
- } else {
- Intent intent = mConfigurationActivityHelper.getConfigurationActivityIntentForMode(
- zenMode, mServiceListing::findService);
- if (intent != null) {
- preference.setVisible(true);
- switchPref.setTitle(R.string.zen_mode_configuration_link_title);
- switchPref.setSummary(zenMode.getRule().getTriggerDescription());
- switchPref.setIntent(intent);
- } else {
- Log.i(TAG, "No intent found for " + zenMode.getRule().getName());
- preference.setVisible(false);
- }
- }
- }
-
- @VisibleForTesting
- final ZenModeScheduleChooserDialog.OnScheduleOptionListener mOnScheduleOptionListener =
- conditionId -> saveMode(mode -> {
- mode.setCustomModeConditionId(mContext, conditionId);
- return mode;
- });
-
- @VisibleForTesting
- protected Preference.OnPreferenceChangeListener mSwitchChangeListener = (p, newValue) -> {
- final boolean newEnabled = (Boolean) newValue;
- return saveMode((zenMode) -> {
- if (newEnabled != zenMode.getRule().isEnabled()) {
- zenMode.getRule().setEnabled(newEnabled);
- }
- return zenMode;
- });
- // TODO: b/342156843 - Do we want to jump to the corresponding schedule editing screen?
- };
-}
diff --git a/src/com/android/settings/notification/modes/ZenModeSummaryHelper.java b/src/com/android/settings/notification/modes/ZenModeSummaryHelper.java
index 26de9ee..c5300da 100644
--- a/src/com/android/settings/notification/modes/ZenModeSummaryHelper.java
+++ b/src/com/android/settings/notification/modes/ZenModeSummaryHelper.java
@@ -31,6 +31,7 @@
import static android.service.notification.ZenPolicy.PRIORITY_CATEGORY_REMINDERS;
import static android.service.notification.ZenPolicy.PRIORITY_CATEGORY_REPEAT_CALLERS;
import static android.service.notification.ZenPolicy.PRIORITY_CATEGORY_SYSTEM;
+import static android.service.notification.ZenPolicy.STATE_ALLOW;
import static android.service.notification.ZenPolicy.VISUAL_EFFECT_AMBIENT;
import static android.service.notification.ZenPolicy.VISUAL_EFFECT_BADGE;
import static android.service.notification.ZenPolicy.VISUAL_EFFECT_FULL_SCREEN_INTENT;
@@ -41,11 +42,10 @@
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 android.service.notification.ZenPolicy.ConversationSenders;
+import android.service.notification.ZenPolicy.PeopleType;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
@@ -56,6 +56,9 @@
import com.android.settingslib.applications.ApplicationsState.AppEntry;
import com.android.settingslib.notification.modes.ZenMode;
+import com.google.common.base.Strings;
+import com.google.common.collect.ImmutableList;
+
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
@@ -85,14 +88,18 @@
PRIORITY_CATEGORY_REPEAT_CALLERS,
};
+ static final ImmutableList</* @PriorityCategory */ Integer> OTHER_SOUND_CATEGORIES =
+ ImmutableList.of(
+ PRIORITY_CATEGORY_ALARMS,
+ PRIORITY_CATEGORY_MEDIA,
+ PRIORITY_CATEGORY_SYSTEM,
+ PRIORITY_CATEGORY_REMINDERS,
+ PRIORITY_CATEGORY_EVENTS);
+
String getOtherSoundCategoriesSummary(ZenMode zenMode) {
List<String> enabledCategories = getEnabledCategories(
zenMode.getPolicy(),
- category -> PRIORITY_CATEGORY_ALARMS == category
- || PRIORITY_CATEGORY_MEDIA == category
- || PRIORITY_CATEGORY_SYSTEM == category
- || PRIORITY_CATEGORY_REMINDERS == category
- || PRIORITY_CATEGORY_EVENTS == category,
+ OTHER_SOUND_CATEGORIES::contains,
true);
int numCategories = enabledCategories.size();
MessageFormat msgFormat = new MessageFormat(
@@ -130,6 +137,14 @@
}
String getMessagesSettingSummary(ZenPolicy policy) {
+ if (policy.getPriorityCategoryMessages() == STATE_ALLOW
+ && policy.getPriorityMessageSenders() == PEOPLE_TYPE_ANYONE) {
+ // Messages=anyone means anyone. Even if conversation senders is specially configured,
+ // saying "Anyone and priority conversations" 1) makes no sense and 2) is incorrect
+ // because conversations WILL get through by virtue of also being messages.
+ return mContext.getString(R.string.zen_mode_from_anyone);
+ }
+
List<String> enabledCategories = getEnabledCategories(policy,
category -> PRIORITY_CATEGORY_MESSAGES == category
|| PRIORITY_CATEGORY_CONVERSATIONS == category, true);
@@ -268,10 +283,11 @@
continue;
}
- // For conversations, only the "priority conversations" setting is relevant; any
- // other setting is subsumed by the messages-specific messaging.
+ // For conversations, only the "all/priority conversations" settings are relevant;
+ // any other setting is subsumed by the messages-specific messaging.
if (category == PRIORITY_CATEGORY_CONVERSATIONS
&& policy.isCategoryAllowed(PRIORITY_CATEGORY_CONVERSATIONS, false)
+ && policy.getPriorityConversationSenders() != CONVERSATION_SENDERS_ANYONE
&& policy.getPriorityConversationSenders()
!= CONVERSATION_SENDERS_IMPORTANT) {
continue;
@@ -310,13 +326,20 @@
} else {
return mContext.getString(R.string.zen_mode_from_starred);
}
- } else if (category == PRIORITY_CATEGORY_CONVERSATIONS
- && policy.getPriorityConversationSenders() == CONVERSATION_SENDERS_IMPORTANT) {
- if (isFirst) {
- return mContext.getString(R.string.zen_mode_from_important_conversations);
- } else {
- return mContext.getString(
- R.string.zen_mode_from_important_conversations_second);
+ } else if (category == PRIORITY_CATEGORY_CONVERSATIONS) {
+ if (policy.getPriorityConversationSenders() == CONVERSATION_SENDERS_IMPORTANT) {
+ if (isFirst) {
+ return mContext.getString(R.string.zen_mode_from_important_conversations);
+ } else {
+ return mContext.getString(
+ R.string.zen_mode_from_important_conversations_second);
+ }
+ } else if (policy.getPriorityConversationSenders() == CONVERSATION_SENDERS_ANYONE) {
+ if (isFirst) {
+ return mContext.getString(R.string.zen_mode_from_all_conversations);
+ } else {
+ return mContext.getString(R.string.zen_mode_from_all_conversations_second);
+ }
}
} else if (category == PRIORITY_CATEGORY_EVENTS) {
if (isFirst) {
@@ -359,7 +382,12 @@
}
public String getStarredContactsSummary() {
- List<String> starredContacts = mBackend.getStarredContacts();
+ List<String> starredContacts = mBackend.getStarredContacts().stream()
+ .map(ZenHelperBackend.Contact::displayName)
+ .map(name -> Strings.isNullOrEmpty(name)
+ ? mContext.getString(R.string.zen_mode_starred_contacts_empty_name)
+ : name)
+ .toList();
int numStarredContacts = starredContacts.size();
MessageFormat msgFormat = new MessageFormat(
mContext.getString(R.string.zen_mode_starred_contacts_summary_contacts),
@@ -383,26 +411,32 @@
mContext.getString(R.string.zen_mode_contacts_count),
Locale.getDefault());
Map<String, Object> args = new HashMap<>();
- args.put("count", mBackend.queryAllContactsData().getCount());
+ args.put("count", mBackend.getAllContactsCount());
return msgFormat.format(args);
}
- public String getPeopleSummary(ZenMode zenMode) {
- final int callersAllowed = zenMode.getPolicy().getPriorityCallSenders();
- final int messagesAllowed = zenMode.getPolicy().getPriorityMessageSenders();
- final int conversationsAllowed = zenMode.getPolicy().getPriorityConversationSenders();
+ public String getPeopleSummary(ZenPolicy policy) {
+ @PeopleType int callersAllowed = policy.getPriorityCategoryCalls() == STATE_ALLOW
+ ? policy.getPriorityCallSenders() : PEOPLE_TYPE_NONE;
+ @PeopleType int messagesAllowed = policy.getPriorityCategoryMessages() == STATE_ALLOW
+ ? policy.getPriorityMessageSenders() : PEOPLE_TYPE_NONE;
+ @ConversationSenders int conversationsAllowed =
+ policy.getPriorityCategoryConversations() == STATE_ALLOW
+ ? policy.getPriorityConversationSenders()
+ : CONVERSATION_SENDERS_NONE;
final boolean areRepeatCallersAllowed =
- zenMode.getPolicy().isCategoryAllowed(PRIORITY_CATEGORY_REPEAT_CALLERS, false);
+ policy.isCategoryAllowed(PRIORITY_CATEGORY_REPEAT_CALLERS, false);
if (callersAllowed == PEOPLE_TYPE_ANYONE
&& messagesAllowed == PEOPLE_TYPE_ANYONE
&& conversationsAllowed == CONVERSATION_SENDERS_ANYONE) {
- return mContext.getResources().getString(R.string.zen_mode_people_all);
+ return mContext.getString(R.string.zen_mode_people_all);
} else if (callersAllowed == PEOPLE_TYPE_NONE
&& messagesAllowed == PEOPLE_TYPE_NONE
- && conversationsAllowed == CONVERSATION_SENDERS_NONE
- && !areRepeatCallersAllowed) {
- return mContext.getResources().getString(R.string.zen_mode_people_none);
+ && conversationsAllowed == CONVERSATION_SENDERS_NONE) {
+ return mContext.getString(
+ areRepeatCallersAllowed ? R.string.zen_mode_people_repeat_callers
+ : R.string.zen_mode_people_none);
} else {
return mContext.getResources().getString(R.string.zen_mode_people_some);
}
@@ -459,32 +493,36 @@
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);
+ String getModesSummary(List<ZenMode> modes) {
+ List<ZenMode> activeModes = modes.stream().filter(ZenMode::isActive).toList();
- 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++;
- }
+ if (!activeModes.isEmpty()) {
+ MessageFormat msgFormat = new MessageFormat(
+ mContext.getString(R.string.zen_modes_summary_some_active),
+ Locale.getDefault());
+
+ Map<String, Object> args = new HashMap<>();
+ args.put("count", activeModes.size());
+ args.put("mode_1", activeModes.get(0).getName());
+ if (activeModes.size() >= 2) {
+ args.put("mode_2", activeModes.get(1).getName());
+ if (activeModes.size() == 3) {
+ args.put("mode_3", activeModes.get(2).getName());
}
}
+
+ return msgFormat.format(args);
+ } else {
+ int automaticModeCount = (int) modes.stream()
+ .filter(m -> m.isEnabled() && !m.isManualDnd() && !m.isCustomManual())
+ .count();
+
MessageFormat msgFormat = new MessageFormat(
- mContext.getString(R.string.modes_sound_summary_off),
+ mContext.getString(R.string.zen_modes_summary_none_active),
Locale.getDefault());
- Map<String, Object> msgArgs = new HashMap<>();
- msgArgs.put("count", count);
+ Map<String, Object> msgArgs = Map.of("count", automaticModeCount);
return msgFormat.format(msgArgs);
}
}
+
}
diff --git a/src/com/android/settings/notification/modes/ZenModeTriggerAddPreferenceController.java b/src/com/android/settings/notification/modes/ZenModeTriggerAddPreferenceController.java
new file mode 100644
index 0000000..68cc167
--- /dev/null
+++ b/src/com/android/settings/notification/modes/ZenModeTriggerAddPreferenceController.java
@@ -0,0 +1,63 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.notification.modes;
+
+import android.content.Context;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.VisibleForTesting;
+import androidx.preference.Preference;
+
+import com.android.settings.dashboard.DashboardFragment;
+import com.android.settingslib.notification.modes.ZenMode;
+import com.android.settingslib.notification.modes.ZenModesBackend;
+
+class ZenModeTriggerAddPreferenceController extends AbstractZenModePreferenceController {
+
+ private final DashboardFragment mFragment;
+
+ ZenModeTriggerAddPreferenceController(@NonNull Context context,
+ @NonNull String key, DashboardFragment fragment, ZenModesBackend backend) {
+ super(context, key, backend);
+ mFragment = fragment;
+ }
+
+ @Override
+ public boolean isAvailable(@NonNull ZenMode zenMode) {
+ return zenMode.isCustomManual();
+ }
+
+ @Override
+ void updateState(Preference preference, @NonNull ZenMode zenMode) {
+ if (!isAvailable(zenMode)) {
+ return;
+ }
+
+ preference.setOnPreferenceClickListener(unused -> {
+ ZenModeScheduleChooserDialog.show(mFragment, mOnScheduleOptionListener);
+ return true;
+ });
+ }
+
+ @VisibleForTesting
+ final ZenModeScheduleChooserDialog.OnScheduleOptionListener mOnScheduleOptionListener =
+ conditionId -> saveMode(mode -> {
+ mode.setCustomModeConditionId(mContext, conditionId);
+ return mode;
+ // TODO: b/342156843 - Maybe jump to the corresponding schedule editing screen?
+ });
+}
diff --git a/src/com/android/settings/notification/modes/ZenModeTriggerCategoryPreferenceController.java b/src/com/android/settings/notification/modes/ZenModeTriggerCategoryPreferenceController.java
new file mode 100644
index 0000000..5fc3fda
--- /dev/null
+++ b/src/com/android/settings/notification/modes/ZenModeTriggerCategoryPreferenceController.java
@@ -0,0 +1,44 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.notification.modes;
+
+import android.content.Context;
+
+import androidx.annotation.NonNull;
+import androidx.preference.Preference;
+
+import com.android.settingslib.notification.modes.ZenMode;
+
+/**
+ * Preference controller for the "Turn on automatically" category
+ */
+class ZenModeTriggerCategoryPreferenceController extends AbstractZenModePreferenceController {
+
+ ZenModeTriggerCategoryPreferenceController(Context context, String key) {
+ super(context, key);
+ }
+
+ @Override
+ public boolean isAvailable(@NonNull ZenMode zenMode) {
+ return !zenMode.isManualDnd();
+ }
+
+ @Override
+ public void updateState(Preference preference, @NonNull ZenMode zenMode) {
+ // Nothing to update here (except visibility via isAvailable()).
+ }
+}
diff --git a/src/com/android/settings/notification/modes/ZenModeTriggerUpdatePreferenceController.java b/src/com/android/settings/notification/modes/ZenModeTriggerUpdatePreferenceController.java
new file mode 100644
index 0000000..885c4db
--- /dev/null
+++ b/src/com/android/settings/notification/modes/ZenModeTriggerUpdatePreferenceController.java
@@ -0,0 +1,226 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.notification.modes;
+
+import static android.app.AutomaticZenRule.TYPE_BEDTIME;
+import static android.app.AutomaticZenRule.TYPE_DRIVING;
+import static android.app.AutomaticZenRule.TYPE_SCHEDULE_CALENDAR;
+import static android.app.AutomaticZenRule.TYPE_SCHEDULE_TIME;
+import static android.service.notification.ZenModeConfig.tryParseScheduleConditionId;
+
+import android.annotation.SuppressLint;
+import android.app.AlertDialog;
+import android.content.Context;
+import android.content.Intent;
+import android.content.pm.ApplicationInfo;
+import android.content.pm.PackageManager;
+import android.service.notification.SystemZenRules;
+import android.service.notification.ZenModeConfig;
+import android.util.Log;
+
+import androidx.annotation.DrawableRes;
+import androidx.annotation.NonNull;
+import androidx.annotation.StringRes;
+import androidx.annotation.VisibleForTesting;
+import androidx.preference.Preference;
+
+import com.android.settings.R;
+import com.android.settingslib.PrimarySwitchPreference;
+import com.android.settingslib.notification.modes.ZenMode;
+import com.android.settingslib.notification.modes.ZenModesBackend;
+
+import com.google.common.base.Strings;
+
+class ZenModeTriggerUpdatePreferenceController extends AbstractZenModePreferenceController {
+
+ private static final String TAG = "ZenModeTriggerUpdate";
+
+ private final PackageManager mPackageManager;
+ private final ConfigurationActivityHelper mConfigurationActivityHelper;
+ private final ZenServiceListing mServiceListing;
+
+ private String mModeName;
+
+ ZenModeTriggerUpdatePreferenceController(Context context, String key,
+ ZenModesBackend backend) {
+ this(context, key, backend, context.getPackageManager(),
+ new ConfigurationActivityHelper(context.getPackageManager()),
+ new ZenServiceListing(context));
+ }
+
+ @VisibleForTesting
+ ZenModeTriggerUpdatePreferenceController(Context context, String key,
+ ZenModesBackend backend, PackageManager packageManager,
+ ConfigurationActivityHelper configurationActivityHelper,
+ ZenServiceListing serviceListing) {
+ super(context, key, backend);
+ mPackageManager = packageManager;
+ mConfigurationActivityHelper = configurationActivityHelper;
+ mServiceListing = serviceListing;
+ }
+
+ @Override
+ public boolean isAvailable(@NonNull ZenMode zenMode) {
+ return !zenMode.isCustomManual() && !zenMode.isManualDnd();
+ }
+
+ @Override
+ void updateState(Preference preference, @NonNull ZenMode zenMode) {
+ if (!isAvailable(zenMode)) {
+ return;
+ }
+
+ mModeName = zenMode.getName();
+ PrimarySwitchPreference triggerPref = (PrimarySwitchPreference) preference;
+ triggerPref.setChecked(zenMode.getRule().isEnabled());
+ triggerPref.setOnPreferenceChangeListener(mSwitchChangeListener);
+ if (zenMode.isSystemOwned()) {
+ setUpForSystemOwnedTrigger(triggerPref, zenMode);
+ } else {
+ setUpForAppTrigger(triggerPref, zenMode);
+ }
+ }
+
+ private void setUpForSystemOwnedTrigger(Preference preference, ZenMode mode) {
+ if (mode.getType() == TYPE_SCHEDULE_TIME) {
+ // TODO: b/332937635 - set correct metrics category
+ preference.setIntent(ZenSubSettingLauncher.forModeFragment(mContext,
+ ZenModeSetScheduleFragment.class, mode.getId(), 0).toIntent());
+
+ // [Clock Icon] 9:00 - 17:00 / Sun-Mon
+ preference.setIcon(com.android.internal.R.drawable.ic_zen_mode_type_schedule_time);
+ ZenModeConfig.ScheduleInfo schedule =
+ tryParseScheduleConditionId(mode.getRule().getConditionId());
+ if (schedule != null) {
+ preference.setTitle(SystemZenRules.getTimeSummary(mContext, schedule));
+ preference.setSummary(SystemZenRules.getShortDaysSummary(mContext, schedule));
+ } else {
+ // Fallback, but shouldn't happen.
+ Log.wtf(TAG, "SCHEDULE_TIME mode without schedule: " + mode);
+ preference.setTitle(R.string.zen_mode_set_schedule_link);
+ preference.setSummary(null);
+ }
+ } else if (mode.getType() == TYPE_SCHEDULE_CALENDAR) {
+ // TODO: b/332937635 - set correct metrics category
+ preference.setIntent(ZenSubSettingLauncher.forModeFragment(mContext,
+ ZenModeSetCalendarFragment.class, mode.getId(), 0).toIntent());
+
+ // [Event Icon] Calendar Events / <Calendar name>
+ preference.setIcon(
+ com.android.internal.R.drawable.ic_zen_mode_type_schedule_calendar);
+ preference.setTitle(R.string.zen_mode_trigger_title_schedule_calendar);
+ preference.setSummary(mode.getTriggerDescription());
+ } else {
+ Log.wtf(TAG, "Unexpected type for system-owned mode: " + mode);
+ }
+ }
+
+ @SuppressLint("SwitchIntDef")
+ private void setUpForAppTrigger(Preference preference, ZenMode mode) {
+ // App-owned mode may have triggerDescription, configurationActivity, or both/neither.
+ mServiceListing.loadApprovedComponents(mode.getRule().getPackageName());
+ Intent configurationIntent =
+ mConfigurationActivityHelper.getConfigurationActivityIntentForMode(
+ mode, mServiceListing::findService);
+
+ @StringRes int title = switch (mode.getType()) {
+ case TYPE_BEDTIME -> R.string.zen_mode_trigger_title_bedtime;
+ case TYPE_DRIVING -> R.string.zen_mode_trigger_title_driving;
+ default -> R.string.zen_mode_trigger_title_generic;
+ };
+
+ String summary;
+ if (!Strings.isNullOrEmpty(mode.getTriggerDescription())) {
+ summary = mode.getTriggerDescription();
+ } else if (!Strings.isNullOrEmpty(mode.getRule().getPackageName())) {
+ String appName = null;
+ try {
+ ApplicationInfo appInfo = mPackageManager.getApplicationInfo(
+ mode.getRule().getPackageName(), 0);
+ appName = appInfo.loadLabel(mPackageManager).toString();
+ } catch (PackageManager.NameNotFoundException e) {
+ Log.e(TAG, "Couldn't resolve owner for mode: " + mode);
+ }
+
+ if (appName != null) {
+ summary = mContext.getString(
+ configurationIntent != null
+ ? R.string.zen_mode_trigger_summary_settings_in_app
+ : R.string.zen_mode_trigger_summary_managed_by_app,
+ appName);
+ } else {
+ summary = null;
+ }
+ } else {
+ Log.e(TAG, "Mode without package! " + mode);
+ summary = null;
+ }
+
+ @DrawableRes int icon;
+ if (mode.getType() == TYPE_BEDTIME) {
+ icon = com.android.internal.R.drawable.ic_zen_mode_type_schedule_time; // Clock
+ } else if (mode.getType() == TYPE_DRIVING) {
+ icon = com.android.internal.R.drawable.ic_zen_mode_type_driving; // Car
+ } else {
+ icon = configurationIntent != null ? R.drawable.ic_zen_mode_trigger_with_activity
+ : R.drawable.ic_zen_mode_trigger_without_activity;
+ }
+
+ preference.setTitle(title);
+ preference.setSummary(summary);
+ preference.setIcon(icon);
+ preference.setIntent(configurationIntent);
+ }
+
+ private final Preference.OnPreferenceChangeListener mSwitchChangeListener = (p, newValue) -> {
+ confirmChangeEnabled(p, (boolean) newValue);
+ return true;
+ };
+
+ private void confirmChangeEnabled(Preference preference, boolean enabled) {
+ @StringRes int titleFormat = enabled ? R.string.zen_mode_confirm_enable_mode_title
+ : R.string.zen_mode_confirm_disable_mode_title;
+ @StringRes int message = enabled ? R.string.zen_mode_confirm_enable_message
+ : R.string.zen_mode_confirm_disable_message;
+ @StringRes int confirmButton = enabled ? R.string.zen_mode_action_enable
+ : R.string.zen_mode_action_disable;
+
+ new AlertDialog.Builder(mContext)
+ .setTitle(mContext.getString(titleFormat, mModeName))
+ .setMessage(message)
+ .setPositiveButton(confirmButton,
+ (dialog, which) -> setModeEnabled(enabled))
+ .setNegativeButton(R.string.cancel,
+ (dialog, which) -> undoToggleSwitch(preference, enabled))
+ .setOnCancelListener(dialog -> undoToggleSwitch(preference, enabled))
+ .show();
+ }
+
+ private void setModeEnabled(boolean enabled) {
+ saveMode((zenMode) -> {
+ if (enabled != zenMode.getRule().isEnabled()) {
+ zenMode.getRule().setEnabled(enabled);
+ }
+ return zenMode;
+ });
+ }
+
+ private void undoToggleSwitch(Preference preference, boolean wasSwitchedTo) {
+ PrimarySwitchPreference switchPreference = (PrimarySwitchPreference) preference;
+ switchPreference.setChecked(!wasSwitchedTo);
+ }
+}
diff --git a/src/com/android/settings/notification/modes/ZenModesFragmentBase.java b/src/com/android/settings/notification/modes/ZenModesFragmentBase.java
index 0bc0617..652415b 100644
--- a/src/com/android/settings/notification/modes/ZenModesFragmentBase.java
+++ b/src/com/android/settings/notification/modes/ZenModesFragmentBase.java
@@ -16,14 +16,11 @@
package com.android.settings.notification.modes;
+import static com.google.common.base.Preconditions.checkNotNull;
+
import android.annotation.NonNull;
-import android.annotation.Nullable;
import android.content.Context;
-import android.database.ContentObserver;
-import android.net.Uri;
-import android.os.Handler;
import android.os.UserManager;
-import android.provider.Settings.Global;
import android.util.Log;
import androidx.annotation.VisibleForTesting;
@@ -38,17 +35,10 @@
protected static final String TAG = "ZenModesSettings";
protected static final boolean DEBUG = Log.isLoggable(TAG, Log.DEBUG);
- private final Handler mHandler = new Handler();
- private final SettingsObserver mSettingsObserver = new SettingsObserver();
-
protected Context mContext;
-
protected ZenModesBackend mBackend;
protected ZenHelperBackend mHelperBackend;
-
- // Individual pages must implement this method based on what they should do when
- // the device's zen mode state changes.
- protected abstract void updateZenModeState();
+ private ZenSettingsObserver mSettingsObserver;
ZenModesFragmentBase() {
super(UserManager.DISALLOW_ADJUST_VOLUME);
@@ -69,8 +59,8 @@
mContext = context;
mBackend = ZenModesBackend.getInstance(context);
mHelperBackend = ZenHelperBackend.getInstance(context);
+ mSettingsObserver = new ZenSettingsObserver(context, this::onUpdatedZenModeState);
super.onAttach(context);
- mSettingsObserver.register();
}
@Override
@@ -83,45 +73,20 @@
finish();
}
}
+
+ onUpdatedZenModeState(); // Maybe, while we weren't observing.
+ checkNotNull(mSettingsObserver).register();
}
+ /**
+ * Called by this fragment when we know or suspect that Zen Modes data or state has changed.
+ * Individual pages must implement this method to refresh whatever they're displaying.
+ */
+ protected abstract void onUpdatedZenModeState();
+
@Override
- public void onResume() {
- super.onResume();
- updateZenModeState();
- }
-
- @Override
- public void onDetach() {
- super.onDetach();
- mSettingsObserver.unregister();
- }
-
- private final class SettingsObserver extends ContentObserver {
- private static final Uri ZEN_MODE_URI = Global.getUriFor(Global.ZEN_MODE);
- private static final Uri ZEN_MODE_CONFIG_ETAG_URI = Global.getUriFor(
- Global.ZEN_MODE_CONFIG_ETAG);
-
- private SettingsObserver() {
- super(mHandler);
- }
-
- public void register() {
- getContentResolver().registerContentObserver(ZEN_MODE_URI, false, this);
- getContentResolver().registerContentObserver(ZEN_MODE_CONFIG_ETAG_URI, false, this);
- }
-
- public void unregister() {
- getContentResolver().unregisterContentObserver(this);
- }
-
- @Override
- public void onChange(boolean selfChange, @Nullable Uri uri) {
- super.onChange(selfChange, uri);
- // Shouldn't have any other URIs trigger this method, but check just in case.
- if (ZEN_MODE_URI.equals(uri) || ZEN_MODE_CONFIG_ETAG_URI.equals(uri)) {
- updateZenModeState();
- }
- }
+ public void onStop() {
+ checkNotNull(mSettingsObserver).unregister();
+ super.onStop();
}
}
diff --git a/src/com/android/settings/notification/modes/ZenModesLinkPreferenceController.java b/src/com/android/settings/notification/modes/ZenModesLinkPreferenceController.java
index f2679d7..aba82c8 100644
--- a/src/com/android/settings/notification/modes/ZenModesLinkPreferenceController.java
+++ b/src/com/android/settings/notification/modes/ZenModesLinkPreferenceController.java
@@ -17,35 +17,31 @@
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;
+import com.android.settingslib.core.lifecycle.events.OnStart;
+import com.android.settingslib.core.lifecycle.events.OnStop;
+import com.android.settingslib.notification.modes.ZenModesBackend;
public class ZenModesLinkPreferenceController extends BasePreferenceController
- implements LifecycleObserver, OnResume, OnPause {
+ implements LifecycleObserver, OnStart, OnStop {
- private SettingObserver mSettingObserver;
- private ZenModeSummaryHelper mSummaryBuilder;
- private NotificationManager mNm;
+ private final ZenModesBackend mBackend;
+ private final ZenSettingsObserver mSettingObserver;
+ private final ZenModeSummaryHelper mSummaryBuilder;
+
+ private Preference mPreference;
public ZenModesLinkPreferenceController(Context context, String key) {
super(context, key);
+ mBackend = ZenModesBackend.getInstance(context);
mSummaryBuilder = new ZenModeSummaryHelper(context, ZenHelperBackend.getInstance(context));
- mNm = mContext.getSystemService(NotificationManager.class);
+ mSettingObserver = new ZenSettingsObserver(context, this::onZenSettingsChanged);
}
@Override
@@ -57,64 +53,31 @@
@Override
public void displayPreference(PreferenceScreen screen) {
super.displayPreference(screen);
- Preference preference = screen.findPreference(getPreferenceKey());
- mSettingObserver = new SettingObserver(preference);
+ mPreference = screen.findPreference(getPreferenceKey());
}
@Override
- public void onResume() {
+ public void onStart() {
if (mSettingObserver != null) {
- mSettingObserver.register(mContext.getContentResolver());
+ mSettingObserver.register();
}
}
- @Override
- public void onPause() {
- if (mSettingObserver != null) {
- mSettingObserver.unregister(mContext.getContentResolver());
+ private void onZenSettingsChanged() {
+ if (mPreference != null) {
+ updateState(mPreference);
}
}
@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()));
+ preference.setSummary(mSummaryBuilder.getModesSummary(mBackend.getModes()));
}
- 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);
- }
+ @Override
+ public void onStop() {
+ if (mSettingObserver != null) {
+ mSettingObserver.unregister();
}
}
}
diff --git a/src/com/android/settings/notification/modes/ZenModesListFragment.java b/src/com/android/settings/notification/modes/ZenModesListFragment.java
index be458b3..cab0209 100644
--- a/src/com/android/settings/notification/modes/ZenModesListFragment.java
+++ b/src/com/android/settings/notification/modes/ZenModesListFragment.java
@@ -49,15 +49,11 @@
@Override
protected List<AbstractPreferenceController> createPreferenceControllers(Context context) {
- return buildPreferenceControllers(context, this::onAvailableModeTypesForAdd);
+ return buildPreferenceControllers(context, mBackend, this::onAvailableModeTypesForAdd);
}
private static List<AbstractPreferenceController> buildPreferenceControllers(Context context,
- OnAddModeListener onAddModeListener) {
- // We need to redefine ZenModesBackend here even though mBackend exists so that this method
- // can be static; it must be static to be able to be used in SEARCH_INDEX_DATA_PROVIDER.
- ZenModesBackend backend = ZenModesBackend.getInstance(context);
-
+ ZenModesBackend backend, OnAddModeListener onAddModeListener) {
return ImmutableList.of(
new ZenModesListPreferenceController(context, backend),
new ZenModesListAddModePreferenceController(context, onAddModeListener)
@@ -65,7 +61,7 @@
}
@Override
- protected void updateZenModeState() {
+ protected void onUpdatedZenModeState() {
// TODO: b/322373473 -- update any overall description of modes state here if necessary.
// Note the preferences linking to individual rules do not need to be updated, as
// updateState() is called on all preference controllers whenever the page is resumed.
@@ -150,7 +146,10 @@
@Override
public List<AbstractPreferenceController> createPreferenceControllers(
Context context) {
- return buildPreferenceControllers(context, ignoredType -> {});
+ // We need to redefine ZenModesBackend here even though mBackend exists so that
+ // SEARCH_INDEX_DATA_PROVIDER can be static.
+ return buildPreferenceControllers(context, ZenModesBackend.getInstance(context),
+ ignoredType -> {});
}
};
}
diff --git a/src/com/android/settings/notification/modes/ZenModesListItemPreference.java b/src/com/android/settings/notification/modes/ZenModesListItemPreference.java
index 261ab1d..e09d04c 100644
--- a/src/com/android/settings/notification/modes/ZenModesListItemPreference.java
+++ b/src/com/android/settings/notification/modes/ZenModesListItemPreference.java
@@ -67,17 +67,23 @@
}
public void setZenMode(ZenMode zenMode) {
+ ZenMode previous = mZenMode;
mZenMode = zenMode;
+ if (zenMode.equals(previous)) {
+ return;
+ }
+
setTitle(mZenMode.getName());
+ String dynamicDescription = zenMode.getDynamicDescription(mContext);
CharSequence statusText = switch (mZenMode.getStatus()) {
case ENABLED_AND_ACTIVE ->
- Strings.isNullOrEmpty(mZenMode.getTriggerDescription())
+ Strings.isNullOrEmpty(dynamicDescription)
? mContext.getString(R.string.zen_mode_active_text)
: mContext.getString(
R.string.zen_mode_format_status_and_trigger,
mContext.getString(R.string.zen_mode_active_text),
- mZenMode.getRule().getTriggerDescription());
- case ENABLED -> mZenMode.getRule().getTriggerDescription();
+ dynamicDescription);
+ case ENABLED -> dynamicDescription;
case DISABLED_BY_USER -> mContext.getString(R.string.zen_mode_disabled_by_user);
case DISABLED_BY_OTHER -> mContext.getString(R.string.zen_mode_disabled_needs_setup);
};
diff --git a/src/com/android/settings/notification/modes/ZenModesListPreferenceController.java b/src/com/android/settings/notification/modes/ZenModesListPreferenceController.java
index ba12b9a..12b7278 100644
--- a/src/com/android/settings/notification/modes/ZenModesListPreferenceController.java
+++ b/src/com/android/settings/notification/modes/ZenModesListPreferenceController.java
@@ -38,7 +38,8 @@
* containing links to each individual mode. This is a central controller that populates and updates
* all the preferences that then lead to a mode configuration page.
*/
-class ZenModesListPreferenceController extends BasePreferenceController {
+class ZenModesListPreferenceController extends BasePreferenceController
+ implements BasePreferenceController.UiBlocker {
protected static final String KEY = "zen_modes_list";
protected ZenModesBackend mBackend;
@@ -49,11 +50,6 @@
}
@Override
- public String getPreferenceKey() {
- return KEY;
- }
-
- @Override
@AvailabilityStatus
public int getAvailabilityStatus() {
return Flags.modesUi() ? AVAILABLE_UNSEARCHABLE : UNSUPPORTED_ON_DEVICE;
@@ -97,6 +93,8 @@
for (String key : originalPreferences.keySet()) {
category.removePreferenceRecursively(key);
}
+
+ setUiBlockerFinished(true);
}
// Provide search data for the modes, which will allow users to reach the modes page if they
diff --git a/src/com/android/settings/notification/modes/ZenSettingsObserver.java b/src/com/android/settings/notification/modes/ZenSettingsObserver.java
new file mode 100644
index 0000000..a853646
--- /dev/null
+++ b/src/com/android/settings/notification/modes/ZenSettingsObserver.java
@@ -0,0 +1,68 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.notification.modes;
+
+import android.content.Context;
+import android.database.ContentObserver;
+import android.net.Uri;
+import android.provider.Settings;
+
+import androidx.annotation.Nullable;
+
+class ZenSettingsObserver extends ContentObserver {
+ private static final Uri ZEN_MODE_URI = Settings.Global.getUriFor(Settings.Global.ZEN_MODE);
+ private static final Uri ZEN_MODE_CONFIG_ETAG_URI = Settings.Global.getUriFor(
+ Settings.Global.ZEN_MODE_CONFIG_ETAG);
+
+ private final Context mContext;
+ @Nullable private Runnable mCallback;
+
+ ZenSettingsObserver(Context context) {
+ this(context, null);
+ }
+
+ ZenSettingsObserver(Context context, @Nullable Runnable callback) {
+ super(context.getMainExecutor(), 0);
+ mContext = context;
+ setOnChangeListener(callback);
+ }
+
+ void register() {
+ mContext.getContentResolver().registerContentObserver(ZEN_MODE_URI, false, this);
+ mContext.getContentResolver().registerContentObserver(ZEN_MODE_CONFIG_ETAG_URI, false,
+ this);
+ }
+
+ void unregister() {
+ mContext.getContentResolver().unregisterContentObserver(this);
+ }
+
+ void setOnChangeListener(@Nullable Runnable callback) {
+ mCallback = callback;
+ }
+
+ @Override
+ public void onChange(boolean selfChange, @Nullable Uri uri) {
+ super.onChange(selfChange, uri);
+ // Shouldn't have any other URIs trigger this method, but check just in case.
+ if (ZEN_MODE_URI.equals(uri) || ZEN_MODE_CONFIG_ETAG_URI.equals(uri)) {
+ if (mCallback != null) {
+ mCallback.run();
+ }
+ }
+ }
+}
diff --git a/src/com/android/settings/onboarding/OnboardingFeatureProvider.kt b/src/com/android/settings/onboarding/OnboardingFeatureProvider.kt
index f76e29a..58afb25 100644
--- a/src/com/android/settings/onboarding/OnboardingFeatureProvider.kt
+++ b/src/com/android/settings/onboarding/OnboardingFeatureProvider.kt
@@ -39,4 +39,12 @@
* @param logger To log B&R stats.
*/
fun getSoundBackupHelper(context: Context, logger: BackupRestoreEventLogger): BackupHelper
+
+ /**
+ * Return a BackupHelper for backup accessibility appearance related settings.
+ *
+ * @param context App context
+ * @param logger To log B&R stats.
+ */
+ fun getAccessibilityAppearanceBackupHelper(context: Context, logger: BackupRestoreEventLogger): BackupHelper
}
\ No newline at end of file
diff --git a/src/com/android/settings/password/BiometricFragment.java b/src/com/android/settings/password/BiometricFragment.java
index a7a039e..5030b6a 100644
--- a/src/com/android/settings/password/BiometricFragment.java
+++ b/src/com/android/settings/password/BiometricFragment.java
@@ -19,7 +19,6 @@
import static android.hardware.biometrics.BiometricConstants.BIOMETRIC_ERROR_USER_CANCELED;
import android.app.settings.SettingsEnums;
-import android.content.ComponentName;
import android.hardware.biometrics.BiometricManager;
import android.hardware.biometrics.BiometricPrompt;
import android.hardware.biometrics.BiometricPrompt.AuthenticationCallback;
@@ -44,7 +43,6 @@
private static final String TAG = "ConfirmDeviceCredential/BiometricFragment";
private static final String KEY_PROMPT_INFO = "prompt_info";
- private static final String KEY_CALLING_ACTIVITY = "calling_activity";
// Re-set by the application. Should be done upon orientation changes, etc
private Executor mClientExecutor;
@@ -94,13 +92,10 @@
* @param promptInfo
* @return
*/
- public static BiometricFragment newInstance(PromptInfo promptInfo,
- ComponentName callingActivity) {
+ public static BiometricFragment newInstance(PromptInfo promptInfo) {
BiometricFragment biometricFragment = new BiometricFragment();
final Bundle bundle = new Bundle();
bundle.putParcelable(KEY_PROMPT_INFO, promptInfo);
-
- bundle.putParcelable(KEY_CALLING_ACTIVITY, callingActivity);
biometricFragment.setArguments(bundle);
return biometricFragment;
}
@@ -135,8 +130,6 @@
final Bundle bundle = getArguments();
final PromptInfo promptInfo = bundle.getParcelable(KEY_PROMPT_INFO);
- final ComponentName callingActivity = bundle.getParcelable(KEY_CALLING_ACTIVITY);
-
BiometricPrompt.Builder promptBuilder = new BiometricPrompt.Builder(getContext())
.setTitle(promptInfo.getTitle())
.setUseDefaultTitle() // use default title if title is null/empty
@@ -152,7 +145,8 @@
promptInfo.isDisallowBiometricsIfPolicyExists())
.setShowEmergencyCallButton(promptInfo.isShowEmergencyCallButton())
.setReceiveSystemEvents(true)
- .setComponentNameForConfirmDeviceCredentialActivity(callingActivity);
+ .setRealCallerForConfirmDeviceCredentialActivity(
+ promptInfo.getRealCallerForConfirmDeviceCredentialActivity());
if (promptInfo.getLogoRes() != 0){
promptBuilder.setLogoRes(promptInfo.getLogoRes());
}
diff --git a/src/com/android/settings/password/ChooseLockGeneric.java b/src/com/android/settings/password/ChooseLockGeneric.java
index 4c18309..34c0731 100644
--- a/src/com/android/settings/password/ChooseLockGeneric.java
+++ b/src/com/android/settings/password/ChooseLockGeneric.java
@@ -160,7 +160,8 @@
static final int CHOOSE_LOCK_BEFORE_BIOMETRIC_REQUEST = 103;
@VisibleForTesting
static final int SKIP_FINGERPRINT_REQUEST = 104;
- private static final int BIOMETRIC_AUTH_REQUEST = 105;
+ @VisibleForTesting
+ static final int BIOMETRIC_AUTH_REQUEST = 105;
private LockPatternUtils mLockPatternUtils;
private DevicePolicyManager mDpm;
@@ -491,9 +492,10 @@
: null;
updatePreferencesOrFinish(false /* isRecreatingActivity */);
if (Utils.requestBiometricAuthenticationForMandatoryBiometrics(getContext(),
- mBiometricsAuthSuccessful, mWaitingForConfirmation)) {
+ mBiometricsAuthSuccessful, mWaitingForConfirmation, mUserId)) {
mWaitingForConfirmation = true;
- Utils.launchBiometricPromptForMandatoryBiometrics(this, BIOMETRIC_AUTH_REQUEST);
+ Utils.launchBiometricPromptForMandatoryBiometrics(this, BIOMETRIC_AUTH_REQUEST,
+ mUserId, true /* hideBackground */);
}
} else if (requestCode == BIOMETRIC_AUTH_REQUEST) {
if (resultCode == Activity.RESULT_OK) {
@@ -776,6 +778,9 @@
entries.removePreference(pref);
} else if (!enabled) {
pref.setEnabled(false);
+ pref.setSummary(
+ com.android.settingslib.widget
+ .restricted.R.string.disabled_by_admin);
}
}
}
diff --git a/src/com/android/settings/password/ChooseLockPassword.java b/src/com/android/settings/password/ChooseLockPassword.java
index a645300..bcf1795 100644
--- a/src/com/android/settings/password/ChooseLockPassword.java
+++ b/src/com/android/settings/password/ChooseLockPassword.java
@@ -271,6 +271,8 @@
private static final int CONFIRM_EXISTING_REQUEST = 58;
static final int RESULT_FINISHED = RESULT_FIRST_USER;
+ private boolean mIsErrorTooShort = true;
+
/** Used to store the profile type for which pin/password is being set */
protected enum ProfileType {
None,
@@ -672,6 +674,11 @@
view.addView(mPasswordRestrictionView);
}
+ @VisibleForTesting
+ View getPasswordRequirementsView() {
+ return mPasswordRestrictionView;
+ }
+
private void createHintMessageView(ViewGroup view) {
if (mPasswordRestrictionView != null) {
return;
@@ -855,6 +862,7 @@
*/
String[] convertErrorCodeToMessages() {
List<String> messages = new ArrayList<>();
+ mIsErrorTooShort = false;
for (PasswordValidationError error : mValidationErrors) {
switch (error.errorCode) {
case CONTAINS_INVALID_CHARACTERS:
@@ -889,6 +897,7 @@
R.string.lockpassword_password_requires_nonnumerical));
break;
case TOO_SHORT:
+ mIsErrorTooShort = true;
String message = StringUtil.getIcuPluralsString(getContext(),
error.requirement,
mIsAlphaMode
@@ -951,12 +960,13 @@
? LockscreenCredential.createPassword(mPasswordEntry.getText())
: LockscreenCredential.createPin(mPasswordEntry.getText());
final int length = password.size();
+
if (mUiStage == Stage.Introduction) {
mPasswordRestrictionView.setVisibility(View.VISIBLE);
final boolean passwordCompliant = validatePassword(password);
String[] messages = convertErrorCodeToMessages();
// Update the fulfillment of requirements.
- mPasswordRequirementAdapter.setRequirements(messages);
+ mPasswordRequirementAdapter.setRequirements(messages, mIsErrorTooShort);
// set the visibility of pin_auto_confirm option accordingly
setAutoPinConfirmOption(passwordCompliant, length);
// Enable/Disable the next button accordingly.
diff --git a/src/com/android/settings/password/ConfirmDeviceCredentialActivity.java b/src/com/android/settings/password/ConfirmDeviceCredentialActivity.java
index c0b3093..d7d1531 100644
--- a/src/com/android/settings/password/ConfirmDeviceCredentialActivity.java
+++ b/src/com/android/settings/password/ConfirmDeviceCredentialActivity.java
@@ -80,6 +80,8 @@
public static final String BIOMETRIC_PROMPT_AUTHENTICATORS = "biometric_prompt_authenticators";
public static final String BIOMETRIC_PROMPT_NEGATIVE_BUTTON_TEXT =
"biometric_prompt_negative_button_text";
+ public static final String BIOMETRIC_PROMPT_HIDE_BACKGROUND =
+ "biometric_prompt_hide_background";
public static class InternalActivity extends ConfirmDeviceCredentialActivity {
}
@@ -102,6 +104,7 @@
private boolean mForceVerifyPath = false;
private boolean mGoingToBackground;
private boolean mWaitingForBiometricCallback;
+ private int mBiometricsAuthenticators;
private Executor mExecutor = (runnable -> {
mHandler.post(runnable);
@@ -120,8 +123,14 @@
Log.i(TAG, "Finishing, user no longer valid: " + mUserId);
finish();
} else {
- // All other errors go to some version of CC
- showConfirmCredentials();
+ if ((mBiometricsAuthenticators
+ & BiometricManager.Authenticators.DEVICE_CREDENTIAL) != 0) {
+ // All other errors go to some version of CC
+ showConfirmCredentials();
+ } else {
+ Log.i(TAG, "Finishing, device credential not requested");
+ finish();
+ }
}
} else if (mWaitingForBiometricCallback) { // mGoingToBackground is true
mWaitingForBiometricCallback = false;
@@ -165,15 +174,20 @@
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
- getWindow().addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
- getWindow().setStatusBarColor(Color.TRANSPARENT);
+ final Intent intent = getIntent();
+ if (intent.getBooleanExtra(BIOMETRIC_PROMPT_HIDE_BACKGROUND, false)) {
+ getWindow().addFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND);
+ getWindow().setDimAmount(1);
+ intent.removeExtra(BIOMETRIC_PROMPT_HIDE_BACKGROUND);
+ } else {
+ getWindow().addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
+ getWindow().setStatusBarColor(Color.TRANSPARENT);
+ }
mDevicePolicyManager = getSystemService(DevicePolicyManager.class);
mUserManager = UserManager.get(this);
mTrustManager = getSystemService(TrustManager.class);
mLockPatternUtils = new LockPatternUtils(this);
-
- Intent intent = getIntent();
mContext = this;
mCheckDevicePolicyManager = intent
.getBooleanExtra(KeyguardManager.EXTRA_DISALLOW_BIOMETRICS_IF_POLICY_EXISTS, false);
@@ -181,7 +195,7 @@
mDetails = intent.getCharSequenceExtra(KeyguardManager.EXTRA_DESCRIPTION);
String alternateButton = intent.getStringExtra(
KeyguardManager.EXTRA_ALTERNATE_BUTTON_LABEL);
- final int authenticators = intent.getIntExtra(BIOMETRIC_PROMPT_AUTHENTICATORS,
+ mBiometricsAuthenticators = intent.getIntExtra(BIOMETRIC_PROMPT_AUTHENTICATORS,
BiometricManager.Authenticators.DEVICE_CREDENTIAL
| BiometricManager.Authenticators.BIOMETRIC_WEAK);
final String negativeButtonText = intent.getStringExtra(
@@ -222,8 +236,9 @@
promptInfo.setTitle(mTitle);
promptInfo.setDescription(mDetails);
promptInfo.setDisallowBiometricsIfPolicyExists(mCheckDevicePolicyManager);
- promptInfo.setAuthenticators(authenticators);
+ promptInfo.setAuthenticators(mBiometricsAuthenticators);
promptInfo.setNegativeButtonText(negativeButtonText);
+ promptInfo.setRealCallerForConfirmDeviceCredentialActivity(getCallingActivity());
if (android.multiuser.Flags.enablePrivateSpaceFeatures()
&& android.multiuser.Flags.usePrivateSpaceIconInBiometricPrompt()
@@ -489,8 +504,7 @@
boolean newFragment = false;
if (mBiometricFragment == null) {
- mBiometricFragment = BiometricFragment.newInstance(promptInfo,
- getCallingActivity());
+ mBiometricFragment = BiometricFragment.newInstance(promptInfo);
newFragment = true;
}
mBiometricFragment.setCallbacks(mExecutor, mAuthenticationCallback);
diff --git a/src/com/android/settings/password/ConfirmLockPassword.java b/src/com/android/settings/password/ConfirmLockPassword.java
index b9b1810..ead79d7 100644
--- a/src/com/android/settings/password/ConfirmLockPassword.java
+++ b/src/com/android/settings/password/ConfirmLockPassword.java
@@ -64,6 +64,7 @@
import com.android.internal.widget.LockscreenCredential;
import com.android.internal.widget.TextViewInputDisabler;
import com.android.settings.R;
+import com.android.settings.SetupRedactionInterstitial;
import com.android.settingslib.animation.AppearAnimationUtils;
import com.android.settingslib.animation.DisappearAnimationUtils;
@@ -723,6 +724,7 @@
Intent result = new Intent();
if (mRemoteValidation && containsGatekeeperPasswordHandle(resultData)) {
result.putExtra(EXTRA_KEY_GK_PW_HANDLE, getGatekeeperPasswordHandle(resultData));
+ SetupRedactionInterstitial.setEnabled(getContext(), true);
}
mCredentialCheckResultTracker.setResult(/* matched= */ true, result,
/* timeoutMs= */ 0, mEffectiveUserId);
diff --git a/src/com/android/settings/password/ConfirmLockPattern.java b/src/com/android/settings/password/ConfirmLockPattern.java
index 3415478..28d790e 100644
--- a/src/com/android/settings/password/ConfirmLockPattern.java
+++ b/src/com/android/settings/password/ConfirmLockPattern.java
@@ -54,6 +54,7 @@
import com.android.internal.widget.LockPatternView.Cell;
import com.android.internal.widget.LockscreenCredential;
import com.android.settings.R;
+import com.android.settings.SetupRedactionInterstitial;
import com.android.settingslib.animation.AppearAnimationCreator;
import com.android.settingslib.animation.AppearAnimationUtils;
import com.android.settingslib.animation.DisappearAnimationUtils;
@@ -751,6 +752,7 @@
Intent result = new Intent();
if (mRemoteValidation && containsGatekeeperPasswordHandle(resultData)) {
result.putExtra(EXTRA_KEY_GK_PW_HANDLE, getGatekeeperPasswordHandle(resultData));
+ SetupRedactionInterstitial.setEnabled(getContext(), true);
}
mCredentialCheckResultTracker.setResult(/* matched= */ true, result,
/* timeoutMs= */ 0, mEffectiveUserId);
diff --git a/src/com/android/settings/password/PasswordRequirementAdapter.java b/src/com/android/settings/password/PasswordRequirementAdapter.java
index 7cf6a00..b17f864 100644
--- a/src/com/android/settings/password/PasswordRequirementAdapter.java
+++ b/src/com/android/settings/password/PasswordRequirementAdapter.java
@@ -36,6 +36,7 @@
private String[] mRequirements;
private Context mContext;
+ private boolean mIsTooShortError = true;
public PasswordRequirementAdapter(Context context) {
mContext = context;
@@ -54,8 +55,9 @@
return mRequirements.length;
}
- public void setRequirements(String[] requirements) {
+ public void setRequirements(String[] requirements, boolean isPasswordShort) {
mRequirements = requirements;
+ mIsTooShortError = isPasswordShort;
notifyDataSetChanged();
}
@@ -74,7 +76,12 @@
final int fontSize = mContext.getResources().getDimensionPixelSize(
R.dimen.password_requirement_font_size);
holder.mDescriptionText.setText(mRequirements[position]);
- holder.mDescriptionText.setTextAppearance(R.style.ScreenLockPasswordHintTextFontStyle);
+ if (mIsTooShortError) {
+ holder.mDescriptionText.setTextAppearance(R.style.ScreenLockPasswordHintTextFontStyle);
+ } else {
+ holder.mDescriptionText.
+ setTextAppearance(R.style.ScreenLockPasswordHintTextFontStyleError);
+ }
holder.mDescriptionText.setTextSize(fontSize / mContext.getResources()
.getDisplayMetrics().scaledDensity);
}
diff --git a/src/com/android/settings/password/PasswordUtils.java b/src/com/android/settings/password/PasswordUtils.java
index a54df94..8c8afc2 100644
--- a/src/com/android/settings/password/PasswordUtils.java
+++ b/src/com/android/settings/password/PasswordUtils.java
@@ -116,7 +116,7 @@
final ViewGroup.MarginLayoutParams lp = new ViewGroup.MarginLayoutParams(
ViewGroup.LayoutParams.WRAP_CONTENT,
ViewGroup.LayoutParams.WRAP_CONTENT);
- lp.leftMargin = layoutTitleParams.leftMargin;
+ lp.setMarginStart(layoutTitleParams.leftMargin);
lp.topMargin = (int) context.getResources().getDimensionPixelSize(
R.dimen.screen_lock_options_button_margin_top);
optButton.setPadding(0, 0, 0, 0);
diff --git a/src/com/android/settings/password/SetNewPasswordActivity.java b/src/com/android/settings/password/SetNewPasswordActivity.java
index 0ba52ea..36756f9 100644
--- a/src/com/android/settings/password/SetNewPasswordActivity.java
+++ b/src/com/android/settings/password/SetNewPasswordActivity.java
@@ -124,9 +124,7 @@
@Override
public void launchChooseLock(Bundle chooseLockFingerprintExtras) {
- final boolean isInSetupWizard = WizardManagerHelper.isAnySetupWizard(getIntent());
- Intent intent = isInSetupWizard ? new Intent(this, SetupChooseLockGeneric.class)
- : new Intent(this, ChooseLockGeneric.class);
+ final Intent intent = new Intent(this, SetupChooseLockGeneric.class);
intent.setAction(mNewPasswordAction);
intent.putExtras(chooseLockFingerprintExtras);
intent.putExtra(EXTRA_KEY_CHOOSE_LOCK_SCREEN_TITLE,
diff --git a/src/com/android/settings/privatespace/HidePrivateSpaceCategoryController.java b/src/com/android/settings/privatespace/HidePrivateSpaceCategoryController.java
new file mode 100644
index 0000000..d754b20
--- /dev/null
+++ b/src/com/android/settings/privatespace/HidePrivateSpaceCategoryController.java
@@ -0,0 +1,43 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.privatespace;
+
+import android.content.Context;
+import android.content.res.Resources;
+
+import androidx.annotation.NonNull;
+
+import com.android.settings.widget.PreferenceCategoryController;
+
+public class HidePrivateSpaceCategoryController extends PreferenceCategoryController {
+ public HidePrivateSpaceCategoryController(@NonNull Context context, @NonNull String key) {
+ super(context, key);
+ }
+
+ @Override
+ public int getAvailabilityStatus() {
+ if (android.multiuser.Flags.privateSpaceSearchIllustrationConfig()) {
+ boolean configValue =
+ Resources.getSystem()
+ .getBoolean(
+ com.android.internal.R.bool
+ .config_enableSearchTileHideIllustrationInPrivateSpace);
+ return configValue ? AVAILABLE : UNSUPPORTED_ON_DEVICE;
+ }
+ return AVAILABLE;
+ }
+}
diff --git a/src/com/android/settings/privatespace/HidePrivateSpaceIllustrationController.java b/src/com/android/settings/privatespace/HidePrivateSpaceIllustrationController.java
new file mode 100644
index 0000000..1606498
--- /dev/null
+++ b/src/com/android/settings/privatespace/HidePrivateSpaceIllustrationController.java
@@ -0,0 +1,44 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.privatespace;
+
+import android.content.Context;
+import android.content.res.Resources;
+
+import androidx.annotation.NonNull;
+
+import com.android.settings.core.BasePreferenceController;
+
+public class HidePrivateSpaceIllustrationController extends BasePreferenceController {
+
+ public HidePrivateSpaceIllustrationController(@NonNull Context context, @NonNull String key) {
+ super(context, key);
+ }
+
+ @Override
+ public int getAvailabilityStatus() {
+ if (android.multiuser.Flags.privateSpaceSearchIllustrationConfig()) {
+ boolean configValue =
+ Resources.getSystem()
+ .getBoolean(
+ com.android.internal.R.bool
+ .config_enableSearchTileHideIllustrationInPrivateSpace);
+ return configValue ? AVAILABLE : UNSUPPORTED_ON_DEVICE;
+ }
+ return AVAILABLE;
+ }
+}
diff --git a/src/com/android/settings/privatespace/OWNERS b/src/com/android/settings/privatespace/OWNERS
new file mode 100644
index 0000000..158c26a
--- /dev/null
+++ b/src/com/android/settings/privatespace/OWNERS
@@ -0,0 +1,11 @@
+# Bug component: 1376399
+
+# Default reviewers for this and subdirectories.
+
+azhura@google.com
+corinac@google.com
+himanshuz@google.com
+jigarthakkar@google.com
+josephpv@google.com
+onshimiye@google.com
+saumyap@google.com
diff --git a/src/com/android/settings/privatespace/PrivateProfileCreationRestrictedError.java b/src/com/android/settings/privatespace/PrivateProfileCreationRestrictedError.java
new file mode 100644
index 0000000..d2bdb8c
--- /dev/null
+++ b/src/com/android/settings/privatespace/PrivateProfileCreationRestrictedError.java
@@ -0,0 +1,99 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.privatespace;
+
+import android.app.Activity;
+import android.app.settings.SettingsEnums;
+import android.os.Bundle;
+import android.text.util.Linkify;
+import android.util.Log;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.TextView;
+
+import androidx.activity.OnBackPressedCallback;
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+
+import com.android.settings.R;
+import com.android.settings.core.InstrumentedFragment;
+
+import com.google.android.setupcompat.template.FooterBarMixin;
+import com.google.android.setupcompat.template.FooterButton;
+import com.google.android.setupdesign.GlifLayout;
+
+import java.util.regex.Pattern;
+
+public class PrivateProfileCreationRestrictedError extends InstrumentedFragment {
+ private static final String TAG = "PrivateSpaceCreationErr";
+
+ @NonNull
+ @Override
+ public View onCreateView(
+ @NonNull LayoutInflater inflater,
+ @Nullable ViewGroup container,
+ @Nullable Bundle savedInstanceState) {
+ GlifLayout rootView =
+ (GlifLayout)
+ inflater.inflate(R.layout.privatespace_creation_error, container, false);
+ final FooterBarMixin mixin = rootView.getMixin(FooterBarMixin.class);
+ mixin.setPrimaryButton(
+ new FooterButton.Builder(getContext())
+ .setText(R.string.private_space_exit_label)
+ .setListener(onExit())
+ .setButtonType(FooterButton.ButtonType.NEXT)
+ .setTheme(com.google.android.setupdesign.R.style.SudGlifButton_Primary)
+ .build());
+ OnBackPressedCallback callback =
+ new OnBackPressedCallback(true /* enabled by default */) {
+ @Override
+ public void handleOnBackPressed() {
+ // Handle the back button event. We intentionally don't want to allow back
+ // button to work in this screen during the setup flow.
+ }
+ };
+ requireActivity().getOnBackPressedDispatcher().addCallback(this, callback);
+ rootView.setDescriptionText(R.string.private_space_error_description);
+ TextView textView = rootView.getDescriptionTextView();
+ Pattern pattern = Pattern.compile(getString(R.string.private_space_error_causes_text));
+ Linkify.addLinks(
+ textView,
+ pattern,
+ getString(R.string.private_space_learn_more_url));
+
+ return rootView;
+ }
+
+ @Override
+ public int getMetricsCategory() {
+ return SettingsEnums.PRIVATE_SPACE_SETUP_SPACE_CREATION_ERROR;
+ }
+
+ private View.OnClickListener onExit() {
+ return v -> {
+ Activity activity = getActivity();
+ if (activity != null) {
+ mMetricsFeatureProvider.action(
+ getContext(), SettingsEnums.ACTION_PRIVATE_SPACE_SETUP_CANCEL_CREATE_SPACE);
+ Log.i(TAG, "private space setup exited");
+ activity.finish();
+ }
+ };
+ }
+}
+
diff --git a/src/com/android/settings/privatespace/PrivateSpaceCreationFragment.java b/src/com/android/settings/privatespace/PrivateSpaceCreationFragment.java
index ce85d72..0bfedbd 100644
--- a/src/com/android/settings/privatespace/PrivateSpaceCreationFragment.java
+++ b/src/com/android/settings/privatespace/PrivateSpaceCreationFragment.java
@@ -29,6 +29,7 @@
import android.os.Bundle;
import android.os.Handler;
import android.os.Looper;
+import android.os.UserManager;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
@@ -49,6 +50,7 @@
private static final String TAG = "PrivateSpaceCreateFrag";
private static final int PRIVATE_SPACE_CREATE_POST_DELAY_MS = 1000;
private static final int PRIVATE_SPACE_ACCOUNT_LOGIN_POST_DELAY_MS = 5000;
+ private static final int PRIVATE_SPACE_SETUP_NO_ERROR = 0;
private static final Handler sHandler = new Handler(Looper.getMainLooper());
private Runnable mRunnable =
() -> {
@@ -122,6 +124,11 @@
Log.i(TAG, "Private Space created");
mMetricsFeatureProvider.action(
getContext(), SettingsEnums.ACTION_PRIVATE_SPACE_SETUP_SPACE_CREATED, true);
+ if (android.multiuser.Flags.showDifferentCreationErrorForUnsupportedDevices()) {
+ mMetricsFeatureProvider.action(
+ getContext(), SettingsEnums.ACTION_PRIVATE_SPACE_SETUP_SPACE_ERRORS,
+ PRIVATE_SPACE_SETUP_NO_ERROR);
+ }
if (isConnectedToInternet()) {
registerReceiver();
sHandler.postDelayed(
@@ -132,8 +139,18 @@
}
} else {
mMetricsFeatureProvider.action(
- getContext(), SettingsEnums.ACTION_PRIVATE_SPACE_SETUP_SPACE_CREATED, false);
- showPrivateSpaceErrorScreen();
+ getContext(), SettingsEnums.ACTION_PRIVATE_SPACE_SETUP_SPACE_CREATED,
+ false);
+ if (android.multiuser.Flags.showDifferentCreationErrorForUnsupportedDevices()) {
+ int errorCode = PrivateSpaceMaintainer.getInstance(
+ getActivity()).getPrivateSpaceCreateError();
+ mMetricsFeatureProvider.action(
+ getContext(), SettingsEnums.ACTION_PRIVATE_SPACE_SETUP_SPACE_ERRORS,
+ errorCode);
+ showPrivateSpaceErrorScreen(errorCode);
+ } else {
+ showPrivateSpaceErrorScreen();
+ }
}
}
@@ -147,6 +164,16 @@
.navigate(R.id.action_create_profile_error);
}
+ private void showPrivateSpaceErrorScreen(int errorCode) {
+ if (errorCode == UserManager.USER_OPERATION_ERROR_USER_RESTRICTED
+ || errorCode == UserManager.USER_OPERATION_ERROR_PRIVATE_PROFILE) {
+ NavHostFragment.findNavController(PrivateSpaceCreationFragment.this)
+ .navigate(R.id.action_create_profile_error_restrict);
+ } else {
+ showPrivateSpaceErrorScreen();
+ }
+ }
+
/** Returns true if device has an active internet connection, false otherwise. */
private boolean isConnectedToInternet() {
ConnectivityManager cm =
diff --git a/src/com/android/settings/privatespace/PrivateSpaceMaintainer.java b/src/com/android/settings/privatespace/PrivateSpaceMaintainer.java
index 6b9252a..dd6a4bb 100644
--- a/src/com/android/settings/privatespace/PrivateSpaceMaintainer.java
+++ b/src/com/android/settings/privatespace/PrivateSpaceMaintainer.java
@@ -60,6 +60,7 @@
private final Context mContext;
private final UserManager mUserManager;
private final ActivityManager mActivityManager;
+ private int mErrorCode;
@GuardedBy("this")
private UserHandle mUserHandle;
private final KeyguardManager mKeyguardManager;
@@ -111,6 +112,9 @@
userName, USER_TYPE_PROFILE_PRIVATE, new ArraySet<>());
} catch (Exception e) {
Log.e(TAG, "Error creating private space", e);
+ if (android.multiuser.Flags.showDifferentCreationErrorForUnsupportedDevices()) {
+ mErrorCode = ((UserManager.UserOperationException) e).getUserOperationResult();
+ }
return false;
}
@@ -205,7 +209,6 @@
return mKeyguardManager.createConfirmDeviceCredentialIntent(
/* title= */ null, /* description= */null, mUserHandle.getIdentifier());
}
- // TODO(b/304796434) Need to try changing this intent to use BiometricPrompt
return mKeyguardManager.createConfirmDeviceCredentialIntent(
/* title= */ null, /* description= */ null);
}
@@ -313,6 +316,11 @@
return mUserManager.canAddPrivateProfile() || doesPrivateSpaceExist();
}
+ /** Returns the error code for private space creation failure*/
+ public int getPrivateSpaceCreateError() {
+ return mErrorCode;
+ }
+
/** Returns true if private space exists and is running, otherwise returns false */
@VisibleForTesting
synchronized boolean isPrivateProfileRunning() {
diff --git a/src/com/android/settings/privatespace/onelock/UseOneLockControllerSwitch.java b/src/com/android/settings/privatespace/onelock/UseOneLockControllerSwitch.java
index dfac100..1e503ec 100644
--- a/src/com/android/settings/privatespace/onelock/UseOneLockControllerSwitch.java
+++ b/src/com/android/settings/privatespace/onelock/UseOneLockControllerSwitch.java
@@ -16,6 +16,8 @@
package com.android.settings.privatespace.onelock;
+import static com.android.settings.password.ChooseLockGeneric.ChooseLockGenericFragment.HIDE_INSECURE_OPTIONS;
+import static com.android.settings.password.ChooseLockSettingsHelper.EXTRA_KEY_CHOOSE_LOCK_SCREEN_TITLE;
import static com.android.settings.privatespace.PrivateSpaceSetupActivity.EXTRA_ACTION_TYPE;
import static com.android.settings.privatespace.PrivateSpaceSetupActivity.SET_LOCK_ACTION;
import static com.android.settings.privatespace.onelock.UseOneLockSettingsFragment.UNIFY_PRIVATE_LOCK_WITH_DEVICE_REQUEST;
@@ -197,12 +199,7 @@
.setPositiveButton(
R.string.private_space_set_lock_label,
(dialog, which) -> {
- Intent intent = new Intent(mContext,
- PrivateProfileContextHelperActivity.class);
- intent.putExtra(EXTRA_ACTION_TYPE, SET_LOCK_ACTION);
- ((Activity) mContext).startActivityForResultAsUser(intent,
- UNUNIFY_PRIVATE_LOCK_FROM_DEVICE_REQUEST,
- /*Options*/ null, mUserHandle);
+ startSeparateLockSetup();
})
.setNegativeButton(R.string.private_space_cancel_label,
(DialogInterface dialog, int which) -> {
@@ -216,4 +213,26 @@
})
.show();
}
+
+ private void startSeparateLockSetup() {
+ if (android.multiuser.Flags.modifyPrivateSpaceSecondaryUnlockSetupFlow()) {
+ final Bundle extras = new Bundle();
+ extras.putInt(Intent.EXTRA_USER_ID, mProfileUserId);
+ extras.putBoolean(HIDE_INSECURE_OPTIONS, true);
+ extras.putInt(EXTRA_KEY_CHOOSE_LOCK_SCREEN_TITLE,
+ R.string.private_space_lock_setup_title);
+ new SubSettingLauncher(mContext).setDestination(ChooseLockGeneric
+ .ChooseLockGenericFragment.class.getName())
+ .setSourceMetricsCategory(mHost.getMetricsCategory())
+ .setArguments(extras)
+ .setExtras(extras)
+ .setTransitionType(SettingsTransitionHelper.TransitionType.TRANSITION_SLIDE)
+ .launch();
+ } else {
+ Intent intent = new Intent(mContext, PrivateProfileContextHelperActivity.class);
+ intent.putExtra(EXTRA_ACTION_TYPE, SET_LOCK_ACTION);
+ ((Activity) mContext).startActivityForResultAsUser(intent,
+ UNUNIFY_PRIVATE_LOCK_FROM_DEVICE_REQUEST, /*Options*/ null, mUserHandle);
+ }
+ }
}
diff --git a/src/com/android/settings/search/BaseSearchIndexProvider.java b/src/com/android/settings/search/BaseSearchIndexProvider.java
index cc05270..b6a9167 100644
--- a/src/com/android/settings/search/BaseSearchIndexProvider.java
+++ b/src/com/android/settings/search/BaseSearchIndexProvider.java
@@ -21,9 +21,11 @@
import static com.android.settings.core.PreferenceXmlParserUtils.MetadataFlag.FLAG_INCLUDE_PREF_SCREEN;
import static com.android.settings.core.PreferenceXmlParserUtils.MetadataFlag.FLAG_NEED_KEY;
import static com.android.settings.core.PreferenceXmlParserUtils.MetadataFlag.FLAG_NEED_SEARCHABLE;
+import static com.android.settings.search.SettingsSearchIndexablesProvider.SYSPROP_CRASH_ON_ERROR;
import android.annotation.XmlRes;
import android.content.Context;
+import android.os.Build;
import android.os.Bundle;
import android.provider.SearchIndexableResource;
import android.util.Log;
@@ -131,24 +133,48 @@
return nonIndexableKeys;
}
nonIndexableKeys.addAll(getNonIndexableKeysFromXml(context, false /* suppressAllPage */));
+ updateNonIndexableKeysFromControllers(context, nonIndexableKeys);
+ return nonIndexableKeys;
+ }
+
+ private void updateNonIndexableKeysFromControllers(
+ Context context, List<String> nonIndexableKeys) {
final List<AbstractPreferenceController> controllers = getPreferenceControllers(context);
- if (controllers != null && !controllers.isEmpty()) {
+ if (controllers != null) {
for (AbstractPreferenceController controller : controllers) {
- if (controller instanceof PreferenceControllerMixin) {
- ((PreferenceControllerMixin) controller)
- .updateNonIndexableKeys(nonIndexableKeys);
- } else if (controller instanceof BasePreferenceController) {
- ((BasePreferenceController) controller).updateNonIndexableKeys(
- nonIndexableKeys);
- } else {
- Log.e(TAG, controller.getClass().getName()
- + " must implement " + PreferenceControllerMixin.class.getName()
- + " treating the key non-indexable");
- nonIndexableKeys.add(controller.getPreferenceKey());
- }
+ updateNonIndexableKeysFromController(nonIndexableKeys, controller);
}
}
- return nonIndexableKeys;
+ }
+
+ private static void updateNonIndexableKeysFromController(
+ List<String> nonIndexableKeys, AbstractPreferenceController controller) {
+ try {
+ if (controller instanceof PreferenceControllerMixin controllerMixin) {
+ controllerMixin.updateNonIndexableKeys(nonIndexableKeys);
+ } else if (controller instanceof BasePreferenceController basePreferenceController) {
+ basePreferenceController.updateNonIndexableKeys(nonIndexableKeys);
+ } else {
+ Log.e(TAG, controller.getClass().getName()
+ + " must implement " + PreferenceControllerMixin.class.getName()
+ + " treating the key non-indexable");
+ nonIndexableKeys.add(controller.getPreferenceKey());
+ }
+ } catch (Exception e) {
+ String msg = "Error trying to get non-indexable keys from: " + controller;
+ // Catch a generic crash. In the absence of the catch, the background thread will
+ // silently fail anyway, so we aren't losing information by catching the exception.
+ // We crash on debuggable build or when the system property exists, so that we can test
+ // if crashes need to be fixed.
+ // The gain is that if there is a crash in a specific controller, we don't lose all
+ // non-indexable keys, but we can still find specific crashes in development.
+ if (Build.IS_DEBUGGABLE || System.getProperty(SYSPROP_CRASH_ON_ERROR) != null) {
+ throw new RuntimeException(msg, e);
+ }
+ Log.e(TAG, msg, e);
+ // When there is an error, treat the key as non-indexable.
+ nonIndexableKeys.add(controller.getPreferenceKey());
+ }
}
public List<AbstractPreferenceController> getPreferenceControllers(Context context) {
diff --git a/src/com/android/settings/search/SettingsSearchIndexablesProvider.java b/src/com/android/settings/search/SettingsSearchIndexablesProvider.java
index 3b04186..cdcb323 100644
--- a/src/com/android/settings/search/SettingsSearchIndexablesProvider.java
+++ b/src/com/android/settings/search/SettingsSearchIndexablesProvider.java
@@ -50,6 +50,7 @@
import android.database.Cursor;
import android.database.MatrixCursor;
import android.net.Uri;
+import android.os.Build;
import android.provider.SearchIndexableResource;
import android.provider.SearchIndexablesContract;
import android.provider.SearchIndexablesProvider;
@@ -283,17 +284,16 @@
try {
providerNonIndexableKeys = provider.getNonIndexableKeys(context);
} catch (Exception e) {
+ String msg = "Error trying to get non-indexable keys from: "
+ + bundle.getTargetClass().getName();
// Catch a generic crash. In the absence of the catch, the background thread will
// silently fail anyway, so we aren't losing information by catching the exception.
- // We crash when the system property exists so that we can test if crashes need to
- // be fixed.
- // The gain is that if there is a crash in a specific controller, we don't lose all
- // non-indexable keys, but we can still find specific crashes in development.
- if (System.getProperty(SYSPROP_CRASH_ON_ERROR) != null) {
- throw new RuntimeException(e);
+ // We crash on debuggable build or when the system property exists, so that we can
+ // test if crashes need to be fixed.
+ if (Build.IS_DEBUGGABLE || System.getProperty(SYSPROP_CRASH_ON_ERROR) != null) {
+ throw new RuntimeException(msg, e);
}
- Log.e(TAG, "Error trying to get non-indexable keys from: "
- + bundle.getTargetClass().getName(), e);
+ Log.e(TAG, msg, e);
continue;
}
diff --git a/src/com/android/settings/security/SecuritySettings.java b/src/com/android/settings/security/SecuritySettings.java
index 6d987f3..797d3ec 100644
--- a/src/com/android/settings/security/SecuritySettings.java
+++ b/src/com/android/settings/security/SecuritySettings.java
@@ -15,10 +15,15 @@
*/
package com.android.settings.security;
+import static com.android.settings.biometrics.face.FaceSettings.isFaceHardwareDetected;
+import static com.android.settings.biometrics.fingerprint.FingerprintSettings.isFingerprintHardwareDetected;
+
import android.app.settings.SettingsEnums;
import android.content.Context;
import android.content.Intent;
+import androidx.annotation.VisibleForTesting;
+
import com.android.settings.R;
import com.android.settings.biometrics.combination.CombinedBiometricStatusPreferenceController;
import com.android.settings.biometrics.face.FaceStatusPreferenceController;
@@ -45,6 +50,10 @@
public static final int CHANGE_TRUST_AGENT_SETTINGS = 126;
public static final int UNIFY_LOCK_CONFIRM_PROFILE_REQUEST = 129;
public static final int UNUNIFY_LOCK_CONFIRM_DEVICE_REQUEST = 130;
+ @VisibleForTesting
+ static final String KEY_FINGERPRINT_SETTINGS = "fingerprint_settings";
+ @VisibleForTesting
+ static final String KEY_FACE_SETTINGS = "face_settings";
@Override
public int getMetricsCategory() {
@@ -131,6 +140,18 @@
.hasAlternativeSecuritySettingsFragment()
&& !SafetyCenterManagerWrapper.get().isEnabled(context);
}
+
+ @Override
+ public List<String> getNonIndexableKeys(Context context) {
+ final List<String> keys = super.getNonIndexableKeys(context);
+ if (!isFingerprintHardwareDetected(context)) {
+ keys.add(KEY_FINGERPRINT_SETTINGS);
+ }
+ if (!isFaceHardwareDetected(context)) {
+ keys.add(KEY_FACE_SETTINGS);
+ }
+ return keys;
+ }
};
@Override
diff --git a/src/com/android/settings/sim/smartForwarding/DisableSmartForwardingTask.java b/src/com/android/settings/sim/smartForwarding/DisableSmartForwardingTask.java
index a1035dc..8448319 100644
--- a/src/com/android/settings/sim/smartForwarding/DisableSmartForwardingTask.java
+++ b/src/com/android/settings/sim/smartForwarding/DisableSmartForwardingTask.java
@@ -23,6 +23,14 @@
import android.telephony.TelephonyManager;
import android.util.Log;
+import com.android.settings.sim.smartForwarding.EnableSmartForwardingTask.UpdateCommand;
+
+import com.google.common.util.concurrent.SettableFuture;
+
+import java.util.ArrayList;
+import java.util.concurrent.Executor;
+import java.util.concurrent.Executors;
+
public class DisableSmartForwardingTask implements Runnable {
private final TelephonyManager tm;
private final boolean[] callWaitingStatus;
@@ -37,22 +45,123 @@
@Override
public void run() {
- for (int i = 0; i < tm.getActiveModemCount(); i++) {
- int subId = getSubId(i);
- if (callWaitingStatus != null
- && subId != SubscriptionManager.INVALID_SUBSCRIPTION_ID) {
- Log.d(TAG, "Restore call waiting to " + callWaitingStatus[i]);
- tm.createForSubscriptionId(subId)
- .setCallWaitingEnabled(callWaitingStatus[i], null, null);
+ FlowController controller = new FlowController();
+ if (controller.init()) {
+ controller.startProcess();
+ }
+ }
+
+ class FlowController {
+ private final ArrayList<UpdateCommand> mSteps = new ArrayList<>();
+
+ /* package */ boolean init() {
+ if (tm == null) {
+ Log.e(TAG, "TelephonyManager is null");
+ return false;
}
- if (callForwardingInfo != null
- && callForwardingInfo[i] != null
- && subId != SubscriptionManager.INVALID_SUBSCRIPTION_ID) {
- Log.d(TAG, "Restore call forwarding to " + callForwardingInfo[i]);
- tm.createForSubscriptionId(subId)
- .setCallForwarding(callForwardingInfo[i], null, null);
+ if (callWaitingStatus == null || callForwardingInfo == null) {
+ Log.e(TAG, "CallWaitingStatus or CallForwardingInfo array is null");
+ return false;
}
+
+ int slotCount = tm.getActiveModemCount();
+ if (callWaitingStatus.length != slotCount || callForwardingInfo.length != slotCount) {
+ Log.e(TAG, "The length of CallWaitingStatus and CallForwardingInfo array"
+ + " should be the same as phone count.");
+ return false;
+ }
+
+ Executor executor = Executors.newSingleThreadExecutor();
+
+ for (int i = 0; i < slotCount; i++) {
+ int subId = getSubId(i);
+ if (subId == SubscriptionManager.INVALID_SUBSCRIPTION_ID) {
+ continue;
+ }
+
+ mSteps.add(new RestoreCallWaitingCommand(
+ tm, executor, callWaitingStatus[i], subId));
+
+ if (callForwardingInfo[i] != null) {
+ mSteps.add(new RestoreCallForwardingCommand(
+ tm, executor, callForwardingInfo[i], subId));
+ }
+ }
+
+ return true;
+ }
+
+ /* package */ void startProcess() {
+ int index = 0;
+
+ while (index < mSteps.size()) {
+ UpdateCommand currentStep = mSteps.get(index);
+ Log.d(TAG, "processing : " + currentStep);
+
+ try {
+ currentStep.process();
+ index++;
+ } catch (Exception e) {
+ Log.e(TAG, "Failed on : " + currentStep, e);
+ }
+ }
+ }
+ }
+
+ class RestoreCallForwardingCommand extends UpdateCommand<Integer> {
+ private SettableFuture<Boolean> mResultFuture = SettableFuture.create();
+ private CallForwardingInfo mCallForwardingInfo;
+
+ /* package */ RestoreCallForwardingCommand(TelephonyManager tm, Executor executor,
+ CallForwardingInfo mCallForwardingInfo, int subId) {
+ super(tm, executor, subId);
+ this.mCallForwardingInfo = mCallForwardingInfo;
+ }
+
+ @Override
+ public boolean process() throws Exception {
+ Log.d(TAG, "Restore call forwarding to " + mCallForwardingInfo);
+ tm.createForSubscriptionId(subId).setCallForwarding(mCallForwardingInfo, executor,
+ this::updateStatusCallBack);
+ return mResultFuture.get();
+ }
+
+ @Override
+ void onRestore() {
+ }
+
+ private void updateStatusCallBack(int result) {
+ Log.d(TAG, "updateStatusCallBack for CallForwarding: " + result);
+ mResultFuture.set(true);
+ }
+ }
+
+ class RestoreCallWaitingCommand extends UpdateCommand<Integer> {
+ private SettableFuture<Boolean> mResultFuture = SettableFuture.create();
+ private boolean mCallWaitingStatus;
+
+ /* package */ RestoreCallWaitingCommand(TelephonyManager tm, Executor executor,
+ boolean mCallWaitingStatus, int subId) {
+ super(tm, executor, subId);
+ this.mCallWaitingStatus = mCallWaitingStatus;
+ }
+
+ @Override
+ public boolean process() throws Exception {
+ Log.d(TAG, "Restore call waiting to " + mCallWaitingStatus);
+ tm.createForSubscriptionId(subId).setCallWaitingEnabled(mCallWaitingStatus, executor,
+ this::updateStatusCallBack);
+ return mResultFuture.get();
+ }
+
+ @Override
+ void onRestore() {
+ }
+
+ private void updateStatusCallBack(int result) {
+ Log.d(TAG, "updateStatusCallBack for CallWaiting: " + result);
+ mResultFuture.set(true);
}
}
diff --git a/src/com/android/settings/sim/smartForwarding/SmartForwardingActivity.java b/src/com/android/settings/sim/smartForwarding/SmartForwardingActivity.java
index 95ac999..4f05a8b 100644
--- a/src/com/android/settings/sim/smartForwarding/SmartForwardingActivity.java
+++ b/src/com/android/settings/sim/smartForwarding/SmartForwardingActivity.java
@@ -85,12 +85,7 @@
public void enableSmartForwarding(String[] phoneNumber) {
// Pop-up ongoing dialog
- ProgressDialog dialog = new ProgressDialog(this);
- dialog.setTitle(R.string.smart_forwarding_ongoing_title);
- dialog.setIndeterminate(true);
- dialog.setMessage(getText(R.string.smart_forwarding_ongoing_text));
- dialog.setCancelable(false);
- dialog.show();
+ ProgressDialog dialog = showOngoingDialog();
// Enable feature
ListenableFuture<FeatureResult> enableTask =
@@ -140,6 +135,9 @@
boolean[] callWaitingStatus = getAllSlotCallWaitingStatus(this, tm);
CallForwardingInfo[] callForwardingInfo = getAllSlotCallForwardingStatus(this, sm, tm);
+ // Pop-up ongoing dialog
+ ProgressDialog dialog = showOngoingDialog();
+
// Disable feature
ListenableFuture disableTask = service.submit(new DisableSmartForwardingTask(
tm, callWaitingStatus, callForwardingInfo));
@@ -147,11 +145,13 @@
@Override
public void onSuccess(Object result) {
clearAllBackupData(SmartForwardingActivity.this, sm, tm);
+ dialog.dismiss();
}
@Override
public void onFailure(Throwable t) {
Log.e(TAG, "Disable Feature exception" + t);
+ dialog.dismiss();
}
}, ContextCompat.getMainExecutor(this));
}
@@ -174,4 +174,15 @@
.create();
mDialog.show();
}
+
+ private ProgressDialog showOngoingDialog() {
+ ProgressDialog dialog = new ProgressDialog(this);
+ dialog.setTitle(R.string.smart_forwarding_ongoing_title);
+ dialog.setIndeterminate(true);
+ dialog.setMessage(getText(R.string.smart_forwarding_ongoing_text));
+ dialog.setCancelable(false);
+ dialog.show();
+
+ return dialog;
+ }
}
diff --git a/src/com/android/settings/sim/smartForwarding/SmartForwardingFragment.java b/src/com/android/settings/sim/smartForwarding/SmartForwardingFragment.java
index a95eb38..f847147 100644
--- a/src/com/android/settings/sim/smartForwarding/SmartForwardingFragment.java
+++ b/src/com/android/settings/sim/smartForwarding/SmartForwardingFragment.java
@@ -48,8 +48,7 @@
public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
setPreferencesFromResource(R.xml.smart_forwarding_switch, rootKey);
- String title = getResources().getString(R.string.smart_forwarding_title);
- getActivity().getActionBar().setTitle(title);
+ getActivity().setTitle(R.string.smart_forwarding_title);
TwoStatePreference smartForwardingSwitch = findPreference(KEY_SMART_FORWARDING_SWITCH);
if (turnOffSwitch) {
diff --git a/src/com/android/settings/slices/SettingsSliceProvider.java b/src/com/android/settings/slices/SettingsSliceProvider.java
index ec60f44..8720160 100644
--- a/src/com/android/settings/slices/SettingsSliceProvider.java
+++ b/src/com/android/settings/slices/SettingsSliceProvider.java
@@ -120,6 +120,16 @@
* permission can use them.
*/
private static final List<Uri> PUBLICLY_SUPPORTED_CUSTOM_SLICE_URIS =
+ android.app.Flags.modesUi()
+ ?
+ Arrays.asList(
+ CustomSliceRegistry.BLUETOOTH_URI,
+ CustomSliceRegistry.FLASHLIGHT_SLICE_URI,
+ CustomSliceRegistry.LOCATION_SLICE_URI,
+ CustomSliceRegistry.MOBILE_DATA_SLICE_URI,
+ CustomSliceRegistry.WIFI_CALLING_URI,
+ CustomSliceRegistry.WIFI_SLICE_URI
+ ) :
Arrays.asList(
CustomSliceRegistry.BLUETOOTH_URI,
CustomSliceRegistry.FLASHLIGHT_SLICE_URI,
@@ -184,7 +194,9 @@
}
if (CustomSliceRegistry.ZEN_MODE_SLICE_URI.equals(sliceUri)) {
- registerIntentToUri(ZenModeSliceBuilder.INTENT_FILTER, sliceUri);
+ if (!android.app.Flags.modesUi()) {
+ registerIntentToUri(ZenModeSliceBuilder.INTENT_FILTER, sliceUri);
+ }
return;
} else if (CustomSliceRegistry.BLUETOOTH_URI.equals(sliceUri)) {
registerIntentToUri(BluetoothSliceBuilder.INTENT_FILTER, sliceUri);
@@ -256,7 +268,8 @@
.getSlicesFeatureProvider()
.getNewWifiCallingSliceHelper(getContext())
.createWifiCallingSlice(sliceUri);
- } else if (CustomSliceRegistry.ZEN_MODE_SLICE_URI.equals(sliceUri)) {
+ } else if (!android.app.Flags.modesUi()
+ && CustomSliceRegistry.ZEN_MODE_SLICE_URI.equals(sliceUri)) {
return ZenModeSliceBuilder.getSlice(getContext());
} else if (CustomSliceRegistry.BLUETOOTH_URI.equals(sliceUri)) {
return BluetoothSliceBuilder.getSlice(getContext());
diff --git a/src/com/android/settings/spa/SpaDestination.kt b/src/com/android/settings/spa/SpaDestination.kt
index cb20c37..158028a 100644
--- a/src/com/android/settings/spa/SpaDestination.kt
+++ b/src/com/android/settings/spa/SpaDestination.kt
@@ -16,7 +16,7 @@
package com.android.settings.spa
-import android.app.Activity
+import android.content.Context
import android.content.Intent
import com.android.settings.activityembedding.ActivityEmbeddingUtils
import com.android.settings.activityembedding.EmbeddedDeepLinkUtils.tryStartMultiPaneDeepLink
@@ -27,16 +27,16 @@
val destination: String,
val highlightMenuKey: String?,
) {
- fun startFromExportedActivity(activity: Activity) {
- val intent = Intent(activity, SpaActivity::class.java)
+ fun startFromExportedActivity(context: Context) {
+ val intent = Intent(context, SpaActivity::class.java)
.appendSpaParams(
destination = destination,
sessionName = SESSION_EXTERNAL,
)
- if (!ActivityEmbeddingUtils.isEmbeddingActivityEnabled(activity) ||
- !activity.tryStartMultiPaneDeepLink(intent, highlightMenuKey)
+ if (!ActivityEmbeddingUtils.isEmbeddingActivityEnabled(context) ||
+ !context.tryStartMultiPaneDeepLink(intent, highlightMenuKey)
) {
- activity.startActivity(intent)
+ context.startActivity(intent)
}
}
}
diff --git a/src/com/android/settings/spa/core/instrumentation/SpaLogProvider.kt b/src/com/android/settings/spa/core/instrumentation/SpaLogProvider.kt
index 8659bf5..4377ccc 100644
--- a/src/com/android/settings/spa/core/instrumentation/SpaLogProvider.kt
+++ b/src/com/android/settings/spa/core/instrumentation/SpaLogProvider.kt
@@ -28,7 +28,6 @@
import com.android.settingslib.spa.framework.util.SESSION_BROWSE
import com.android.settingslib.spa.framework.util.SESSION_EXTERNAL
import com.android.settingslib.spa.framework.util.SESSION_SEARCH
-import com.android.settingslib.spa.framework.util.SESSION_SLICE
import com.android.settingslib.spa.framework.util.SESSION_UNKNOWN
/**
@@ -74,7 +73,6 @@
return when(sessionSource) {
SESSION_BROWSE -> SettingsEnums.SESSION_BROWSE
SESSION_SEARCH -> SettingsEnums.SESSION_SEARCH
- SESSION_SLICE -> SettingsEnums.SESSION_SLICE_TYPE
SESSION_EXTERNAL -> SettingsEnums.SESSION_EXTERNAL
else -> SettingsEnums.SESSION_UNKNOWN
}
diff --git a/src/com/android/settings/spa/network/AutomaticDataSwitchingPreference.kt b/src/com/android/settings/spa/network/AutomaticDataSwitchingPreference.kt
index e7cc18f..5fbd7dc 100644
--- a/src/com/android/settings/spa/network/AutomaticDataSwitchingPreference.kt
+++ b/src/com/android/settings/spa/network/AutomaticDataSwitchingPreference.kt
@@ -34,7 +34,9 @@
) {
val autoDataSummary = stringResource(id = R.string.primary_sim_automatic_data_msg)
val coroutineScope = rememberCoroutineScope()
- val crossSimCallingViewModel = viewModel<CrossSimCallingViewModel>() // handles backup calling
+ // CrossSimCallingViewModel is responsible for maintaining the correct cross sim calling
+ // settings (backup calling).
+ viewModel<CrossSimCallingViewModel>()
SwitchPreference(
object : SwitchPreferenceModel {
override val title = stringResource(id = R.string.primary_sim_automatic_data_title)
@@ -43,7 +45,6 @@
override val onCheckedChange: (Boolean) -> Unit = { newEnabled ->
coroutineScope.launch(Dispatchers.Default) {
setAutoDataEnabled(newEnabled)
- crossSimCallingViewModel.updateCrossSimCalling()
}
}
}
diff --git a/src/com/android/settings/spa/network/NetworkCellularGroupProvider.kt b/src/com/android/settings/spa/network/NetworkCellularGroupProvider.kt
index b9a375c..f76bba4 100644
--- a/src/com/android/settings/spa/network/NetworkCellularGroupProvider.kt
+++ b/src/com/android/settings/spa/network/NetworkCellularGroupProvider.kt
@@ -197,6 +197,9 @@
// Do nothing
}
+ override fun getPageTitleForSearch(context: Context): String =
+ context.getString(R.string.provider_network_settings_title)
+
override fun getSearchableTitles(context: Context): List<String> {
if (!isPageSearchable(context)) return emptyList()
return buildList {
diff --git a/src/com/android/settings/spa/search/SearchablePage.kt b/src/com/android/settings/spa/search/SearchablePage.kt
index 2364514..f4a8795 100644
--- a/src/com/android/settings/spa/search/SearchablePage.kt
+++ b/src/com/android/settings/spa/search/SearchablePage.kt
@@ -20,6 +20,9 @@
interface SearchablePage {
- /** Gets the searchable titles at the current moment. */
+ /** Gets the title of the page. */
+ fun getPageTitleForSearch(context: Context): String = ""
+
+ /** Gets the titles of the searchable items at the current moment. */
fun getSearchableTitles(context: Context): List<String>
}
diff --git a/src/com/android/settings/spa/search/SpaSearchLandingActivity.kt b/src/com/android/settings/spa/search/SpaSearchLandingActivity.kt
index 8c2bc37..cb5f745 100644
--- a/src/com/android/settings/spa/search/SpaSearchLandingActivity.kt
+++ b/src/com/android/settings/spa/search/SpaSearchLandingActivity.kt
@@ -17,26 +17,68 @@
package com.android.settings.spa.search
import android.app.Activity
+import android.app.settings.SettingsEnums
+import android.content.Context
import android.os.Bundle
+import android.util.Log
+import androidx.annotation.VisibleForTesting
import com.android.settings.SettingsActivity.EXTRA_FRAGMENT_ARG_KEY
+import com.android.settings.core.SubSettingLauncher
import com.android.settings.overlay.FeatureFactory.Companion.featureFactory
import com.android.settings.password.PasswordUtils
import com.android.settings.spa.SpaDestination
+import com.android.settings.spa.SpaSearchLanding.SpaSearchLandingKey
+import com.google.protobuf.ByteString
+import com.google.protobuf.InvalidProtocolBufferException
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)
+ val keyString = intent.getStringExtra(EXTRA_FRAGMENT_ARG_KEY)
+ if (!keyString.isNullOrEmpty() && isValidCall()) {
+ tryLaunch(this, keyString)
+ }
finish()
}
private fun isValidCall() =
PasswordUtils.getCallingAppPackageName(activityToken) ==
featureFactory.searchFeatureProvider.getSettingsIntelligencePkgName(this)
+
+ companion object {
+ @VisibleForTesting
+ fun tryLaunch(context: Context, keyString: String) {
+ val key =
+ try {
+ SpaSearchLandingKey.parseFrom(ByteString.copyFromUtf8(keyString))
+ } catch (e: InvalidProtocolBufferException) {
+ Log.w(TAG, "arg key ($keyString) invalid", e)
+ return
+ }
+
+ if (key.hasSpaPage()) {
+ val destination = key.spaPage.destination
+ if (destination.isNotEmpty()) {
+ SpaDestination(destination = destination, highlightMenuKey = null)
+ .startFromExportedActivity(context)
+ }
+ }
+ if (key.hasFragment()) {
+ val arguments =
+ Bundle().apply {
+ key.fragment.argumentsMap.forEach { (k, v) ->
+ if (v.hasIntValue()) putInt(k, v.intValue)
+ }
+ putString(EXTRA_FRAGMENT_ARG_KEY, key.fragment.preferenceKey)
+ }
+ SubSettingLauncher(context)
+ .setDestination(key.fragment.fragmentName)
+ .setArguments(arguments)
+ .setSourceMetricsCategory(SettingsEnums.PAGE_UNKNOWN)
+ .launch()
+ }
+ }
+
+ private const val TAG = "SpaSearchLandingActivity"
+ }
}
diff --git a/src/com/android/settings/spa/search/SpaSearchRepository.kt b/src/com/android/settings/spa/search/SpaSearchRepository.kt
index d37c50c..e5334dd 100644
--- a/src/com/android/settings/spa/search/SpaSearchRepository.kt
+++ b/src/com/android/settings/spa/search/SpaSearchRepository.kt
@@ -20,6 +20,9 @@
import android.provider.SearchIndexableResource
import android.util.Log
import androidx.annotation.VisibleForTesting
+import com.android.settings.network.telephony.MobileNetworkSettingsSearchIndex
+import com.android.settings.spa.SpaSearchLanding.SpaSearchLandingKey
+import com.android.settings.spa.SpaSearchLanding.SpaSearchLandingSpaPage
import com.android.settingslib.search.Indexable
import com.android.settingslib.search.SearchIndexableData
import com.android.settingslib.search.SearchIndexableRaw
@@ -34,9 +37,10 @@
Log.d(TAG, "getSearchIndexableDataList")
return spaEnvironment.pageProviderRepository.value.getAllProviders().mapNotNull { page ->
if (page is SearchablePage) {
- page.createSearchIndexableData(page::getSearchableTitles)
+ page.createSearchIndexableData(
+ page::getPageTitleForSearch, page::getSearchableTitles)
} else null
- }
+ } + MobileNetworkSettingsSearchIndex().createSearchIndexableData()
}
companion object {
@@ -44,40 +48,62 @@
@VisibleForTesting
fun SettingsPageProvider.createSearchIndexableData(
+ getPageTitleForSearch: (context: Context) -> String,
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()
+ val key =
+ SpaSearchLandingKey.newBuilder()
+ .setSpaPage(SpaSearchLandingSpaPage.newBuilder().setDestination(name))
+ .build()
+ val indexableClass = this::class.java
+ val searchIndexProvider = searchIndexProviderOf { context ->
+ val pageTitle = getPageTitleForSearch(context)
+ titlesProvider(context).map { itemTitle ->
+ createSearchIndexableRaw(context, key, itemTitle, indexableClass, pageTitle)
}
- return SearchIndexableData(this::class.java, searchIndexProvider)
+ }
+ return SearchIndexableData(indexableClass, searchIndexProvider)
}
- private fun SettingsPageProvider.createSearchIndexableRaw(context: Context, title: String) =
+ fun searchIndexProviderOf(
+ getDynamicRawDataToIndex: (context: Context) -> List<SearchIndexableRaw>,
+ ) =
+ object : Indexable.SearchIndexProvider {
+ override fun getXmlResourcesToIndex(
+ context: Context,
+ enabled: Boolean,
+ ): List<SearchIndexableResource> = emptyList()
+
+ override fun getRawDataToIndex(
+ context: Context,
+ enabled: Boolean,
+ ): List<SearchIndexableRaw> = emptyList()
+
+ override fun getDynamicRawDataToIndex(
+ context: Context,
+ enabled: Boolean,
+ ): List<SearchIndexableRaw> = getDynamicRawDataToIndex(context)
+
+ override fun getNonIndexableKeys(context: Context): List<String> = emptyList()
+ }
+
+ fun createSearchIndexableRaw(
+ context: Context,
+ spaSearchLandingKey: SpaSearchLandingKey,
+ itemTitle: String,
+ indexableClass: Class<*>,
+ pageTitle: String,
+ keywords: String? = null,
+ ) =
SearchIndexableRaw(context).apply {
- key = name
- this.title = title
+ key = spaSearchLandingKey.toByteString().toStringUtf8()
+ title = itemTitle
+ this.keywords = keywords
intentAction = SEARCH_LANDING_ACTION
+ intentTargetClass = SpaSearchLandingActivity::class.qualifiedName
packageName = context.packageName
- className = SpaSearchLandingActivity::class.qualifiedName
+ className = indexableClass.name
+ screenTitle = pageTitle
}
private const val SEARCH_LANDING_ACTION = "android.settings.SPA_SEARCH_LANDING"
diff --git a/src/com/android/settings/system/reset/ResetNetworkConfirm.kt b/src/com/android/settings/system/reset/ResetNetworkConfirm.kt
index 34b9909..e040356 100644
--- a/src/com/android/settings/system/reset/ResetNetworkConfirm.kt
+++ b/src/com/android/settings/system/reset/ResetNetworkConfirm.kt
@@ -18,6 +18,7 @@
import android.app.ProgressDialog
import android.app.settings.SettingsEnums
+import android.content.DialogInterface
import android.os.Bundle
import android.os.Looper
import android.telephony.SubscriptionManager
@@ -56,7 +57,8 @@
* This is the confirmation screen.
*/
class ResetNetworkConfirm : InstrumentedFragment() {
- @VisibleForTesting lateinit var resetNetworkRequest: ResetNetworkRequest
+ @VisibleForTesting
+ lateinit var resetNetworkRequest: ResetNetworkRequest
private var progressDialog: ProgressDialog? = null
private var alertDialog: AlertDialog? = null
private var resetStarted = false
@@ -87,10 +89,7 @@
/** Configure the UI for the final confirmation interaction */
private fun View.establishFinalConfirmationState() {
requireViewById<View>(R.id.execute_reset_network).setOnClickListener {
- if (!Utils.isMonkeyRunning() && !resetStarted) {
- resetStarted = true
- viewLifecycleOwner.lifecycleScope.launch { onResetClicked() }
- }
+ showResetInternetDialog();
}
}
@@ -118,10 +117,10 @@
private fun invalidSubIdFlow(): Flow<Int> {
val subIdsInRequest =
listOf(
- resetNetworkRequest.resetTelephonyAndNetworkPolicyManager,
- resetNetworkRequest.resetApnSubId,
- resetNetworkRequest.resetImsSubId,
- )
+ resetNetworkRequest.resetTelephonyAndNetworkPolicyManager,
+ resetNetworkRequest.resetApnSubId,
+ resetNetworkRequest.resetImsSubId,
+ )
.distinct()
.filter(SubscriptionManager::isUsableSubscriptionId)
@@ -162,6 +161,24 @@
}
}
+ private fun showResetInternetDialog() {
+ val builder = AlertDialog.Builder(requireContext())
+ val resetInternetClickListener =
+ DialogInterface.OnClickListener { dialog, which ->
+ if (!Utils.isMonkeyRunning() && !resetStarted) {
+ resetStarted = true
+ viewLifecycleOwner.lifecycleScope.launch { onResetClicked() }
+ }
+ }
+
+ builder.setTitle(R.string.reset_your_internet_title)
+ .setMessage(R.string.reset_internet_text)
+ .setPositiveButton(R.string.tts_reset, resetInternetClickListener)
+ .setNegativeButton(android.R.string.cancel, null)
+ .create()
+ .show()
+ }
+
/**
* Do all reset task.
*
@@ -173,7 +190,8 @@
withContext(Dispatchers.Default) {
val builder =
resetNetworkRequest.toResetNetworkOperationBuilder(
- requireContext(), Looper.getMainLooper())
+ requireContext(), Looper.getMainLooper()
+ )
resetNetworkRequest.resetEsimPackageName?.let { resetEsimPackageName ->
builder.resetEsim(resetEsimPackageName)
builder.resetEsimResultCallback { resetEsimSuccess = it }
@@ -199,8 +217,8 @@
} else {
Toast.makeText(activity, R.string.reset_network_complete_toast, Toast.LENGTH_SHORT)
.show()
+ activity.finish()
}
- activity.finish()
}
override fun onDestroy() {
diff --git a/src/com/android/settings/users/MultiUserSwitchBarController.java b/src/com/android/settings/users/MultiUserSwitchBarController.java
index 641ae51..07c03d7 100644
--- a/src/com/android/settings/users/MultiUserSwitchBarController.java
+++ b/src/com/android/settings/users/MultiUserSwitchBarController.java
@@ -17,6 +17,7 @@
package com.android.settings.users;
import android.content.Context;
+import android.multiuser.Flags;
import android.os.UserHandle;
import android.os.UserManager;
import android.provider.Settings;
@@ -25,6 +26,7 @@
import androidx.annotation.VisibleForTesting;
import com.android.settings.widget.SwitchWidgetController;
+import com.android.settingslib.RestrictedLockUtils;
import com.android.settingslib.RestrictedLockUtilsInternal;
import com.android.settingslib.core.lifecycle.LifecycleObserver;
import com.android.settingslib.core.lifecycle.events.OnStart;
@@ -53,12 +55,24 @@
mUserCapabilities = UserCapabilities.create(context);
mSwitchBar.setChecked(mUserCapabilities.mUserSwitcherEnabled);
- if (mUserCapabilities.mDisallowSwitchUser) {
- mSwitchBar.setDisabledByAdmin(RestrictedLockUtilsInternal
+ if (Flags.fixDisablingOfMuToggleWhenRestrictionApplied()) {
+ RestrictedLockUtils.EnforcedAdmin enforcedAdmin = RestrictedLockUtilsInternal
.checkIfRestrictionEnforced(mContext, UserManager.DISALLOW_USER_SWITCH,
- UserHandle.myUserId()));
+ UserHandle.myUserId());
+ if (enforcedAdmin != null) {
+ mSwitchBar.setDisabledByAdmin(enforcedAdmin);
+ } else {
+ mSwitchBar.setEnabled(mUserCapabilities.mIsMain
+ && !mUserCapabilities.mDisallowSwitchUser);
+ }
} else {
- mSwitchBar.setEnabled(mUserCapabilities.mIsMain);
+ if (mUserCapabilities.mDisallowSwitchUser) {
+ mSwitchBar.setDisabledByAdmin(RestrictedLockUtilsInternal
+ .checkIfRestrictionEnforced(mContext, UserManager.DISALLOW_USER_SWITCH,
+ UserHandle.myUserId()));
+ } else {
+ mSwitchBar.setEnabled(mUserCapabilities.mIsMain);
+ }
}
mSwitchBar.setListener(this);
}
diff --git a/src/com/android/settings/users/UserDetailsSettings.java b/src/com/android/settings/users/UserDetailsSettings.java
index 588f01a..66c278e 100644
--- a/src/com/android/settings/users/UserDetailsSettings.java
+++ b/src/com/android/settings/users/UserDetailsSettings.java
@@ -370,11 +370,18 @@
}
mSwitchUserPref.setOnPreferenceClickListener(this);
}
- if (mUserInfo.isMain() || mUserInfo.isGuest() || !UserManager.isMultipleAdminEnabled()
- || mUserManager.hasUserRestrictionForUser(UserManager.DISALLOW_GRANT_ADMIN,
- mUserInfo.getUserHandle()) || !mUserManager.isAdminUser()) {
- removePreference(KEY_GRANT_ADMIN);
+ if (android.multiuser.Flags.unicornModeRefactoringForHsumReadOnly()) {
+ if (isChangingAdminStatusRestricted()) {
+ removePreference(KEY_GRANT_ADMIN);
+ }
+ } else {
+ if (mUserInfo.isMain() || mUserInfo.isGuest() || !UserManager.isMultipleAdminEnabled()
+ || mUserManager.hasUserRestrictionForUser(UserManager.DISALLOW_GRANT_ADMIN,
+ mUserInfo.getUserHandle()) || !mUserManager.isAdminUser()) {
+ removePreference(KEY_GRANT_ADMIN);
+ }
}
+
if (!mUserManager.isAdminUser()) { // non admin users can't remove users and allow calls
removePreference(KEY_ENABLE_TELEPHONY);
removePreference(KEY_REMOVE_USER);
@@ -552,4 +559,33 @@
// return true so there will be no setup prompt dialog shown to the user anymore.
return isSecondaryUser(mUserInfo) && !mUserInfo.isInitialized();
}
+
+ /**
+ * Determines if changing admin status is restricted.
+ *
+ * <p>Admin status change is restricted under the following conditions of current & target user.
+ *
+ * <ul>
+ * <li>The <b>current</b> user is NOT an admin user.</li>
+ * <li>OR multiple admin support is NOT enabled.</li>
+ * <li>OR the <b>current</b> user has DISALLOW_GRANT_ADMIN restriction applied</li>
+ *
+ * <li>OR the <b>target</b> user ('mUserInfo') is a main user OR a guest user.</li>
+ * <li>OR the <b>target</b> user ('mUserInfo') has DISALLOW_GRANT_ADMIN restriction.</li>
+ * </ul>
+ *
+ * @return true if changing admin status is restricted, false otherwise
+ */
+ private boolean isChangingAdminStatusRestricted() {
+ boolean currentUserRestricted = !mUserManager.isAdminUser()
+ || !UserManager.isMultipleAdminEnabled()
+ || mUserManager.hasUserRestriction(UserManager.DISALLOW_GRANT_ADMIN);
+
+ boolean targetUserRestricted = mUserInfo.isMain()
+ || mUserInfo.isGuest()
+ || mUserManager.hasUserRestrictionForUser(UserManager.DISALLOW_GRANT_ADMIN,
+ mUserInfo.getUserHandle());
+
+ return currentUserRestricted || targetUserRestricted;
+ }
}
diff --git a/src/com/android/settings/users/UserSettings.java b/src/com/android/settings/users/UserSettings.java
index 0cf01e3..c387d9e 100644
--- a/src/com/android/settings/users/UserSettings.java
+++ b/src/com/android/settings/users/UserSettings.java
@@ -919,7 +919,7 @@
d = mCreateUserDialogController.createDialog(
getActivity(),
this::startActivityForResult,
- UserManager.isMultipleAdminEnabled(),
+ canCreateAdminUser(),
(userName, userIcon, isAdmin) -> {
mPendingUserIcon = userIcon;
mPendingUserName = userName;
@@ -937,6 +937,19 @@
return d;
}
+ /**
+ * Checks if the creation of a new admin user is allowed.
+ * @return {@code true} if creating a new admin is allowed, {@code false} otherwise.
+ */
+ private boolean canCreateAdminUser() {
+ if (Flags.unicornModeRefactoringForHsumReadOnly()) {
+ return UserManager.isMultipleAdminEnabled()
+ && !mUserManager.hasUserRestriction(UserManager.DISALLOW_GRANT_ADMIN);
+ } else {
+ return UserManager.isMultipleAdminEnabled();
+ }
+ }
+
@Override
public int getDialogMetricsCategory(int dialogId) {
switch (dialogId) {
diff --git a/src/com/android/settings/widget/HighlightableTopLevelPreferenceAdapter.java b/src/com/android/settings/widget/HighlightableTopLevelPreferenceAdapter.java
index 9ddec5c..15e83de 100644
--- a/src/com/android/settings/widget/HighlightableTopLevelPreferenceAdapter.java
+++ b/src/com/android/settings/widget/HighlightableTopLevelPreferenceAdapter.java
@@ -17,6 +17,7 @@
package com.android.settings.widget;
import android.content.Context;
+import android.graphics.Rect;
import android.graphics.drawable.Drawable;
import android.text.TextUtils;
import android.util.Log;
@@ -212,6 +213,14 @@
// Scroll to the top to reset the position.
mRecyclerView.nestedScrollBy(0, -mRecyclerView.getHeight());
+ // get the visible area of the recycler view
+ Rect rvRect = new Rect();
+ mRecyclerView.getGlobalVisibleRect(rvRect);
+ if (Flags.homepageRevamp() && view.getBottom() <= rvRect.height()) {
+ // the request position already fully visible in the visible area
+ return;
+ }
+
final int scrollY = view.getTop();
if (scrollY > 0) {
mRecyclerView.nestedScrollBy(0, scrollY);
diff --git a/src/com/android/settings/widget/TipCardPreference.kt b/src/com/android/settings/widget/TipCardPreference.kt
index 0ae7d2a..0ca0272 100644
--- a/src/com/android/settings/widget/TipCardPreference.kt
+++ b/src/com/android/settings/widget/TipCardPreference.kt
@@ -19,6 +19,7 @@
import android.content.Context
import android.content.res.Resources
import android.util.AttributeSet
+import androidx.compose.ui.graphics.Color
import androidx.compose.ui.graphics.vector.ImageVector
import androidx.compose.ui.res.vectorResource
import com.android.settings.spa.preference.ComposePreference
@@ -37,6 +38,9 @@
/** A icon resource id for displaying icon on tips card. */
var iconResId: Int? = null
+ /** A color resource id for displaying icon and button text on tips card. */
+ var tintColorResId: Int? = null
+
/** The primary button's text. */
var primaryButtonText: String = ""
@@ -85,6 +89,8 @@
title = title?.toString() ?: "",
text = summary?.toString() ?: "",
buttons = listOfNotNull(configPrimaryButton(), configSecondaryButton()),
+ tintColor = tintColorResId?.let { Color(context.getColor(it)) }
+ ?: Color.Unspecified,
onDismiss = onDismiss,
imageVector =
iconResId
diff --git a/src/com/android/settings/wifi/WepNetworksPreferenceController.kt b/src/com/android/settings/wifi/WepNetworksPreferenceController.kt
index 2ce4bcd..bad7201 100644
--- a/src/com/android/settings/wifi/WepNetworksPreferenceController.kt
+++ b/src/com/android/settings/wifi/WepNetworksPreferenceController.kt
@@ -42,6 +42,8 @@
import kotlinx.coroutines.asExecutor
import kotlinx.coroutines.channels.awaitClose
import kotlinx.coroutines.flow.callbackFlow
+import kotlinx.coroutines.flow.flow
+import kotlinx.coroutines.flow.flowOn
/** Controller that controls whether the WEP network can be connected. */
class WepNetworksPreferenceController(context: Context, preferenceKey: String) :
@@ -49,68 +51,74 @@
var wifiManager = context.getSystemService(WifiManager::class.java)!!
- override fun getAvailabilityStatus() = if (Flags.androidVWifiApi()) AVAILABLE
- else UNSUPPORTED_ON_DEVICE
+ override fun getAvailabilityStatus() =
+ if (Flags.androidVWifiApi()) AVAILABLE else UNSUPPORTED_ON_DEVICE
@Composable
override fun Content() {
- val checked by wepAllowedFlow.flow.collectAsStateWithLifecycle(initialValue = null)
+ val isWepSupported: Boolean? =
+ isWepSupportedFlow.collectAsStateWithLifecycle(initialValue = null).value
+ val isWepAllowed: Boolean? =
+ wepAllowedFlow.flow.collectAsStateWithLifecycle(initialValue = null).value
var openDialog by rememberSaveable { mutableStateOf(false) }
- val wifiInfo = wifiManager.connectionInfo
- SwitchPreference(object : SwitchPreferenceModel {
- override val title = stringResource(R.string.wifi_allow_wep_networks)
- override val summary = { getSummary() }
- override val checked = { checked }
- override val changeable: () -> Boolean
- get() = { carrierAllowed }
- override val onCheckedChange: (Boolean) -> Unit = { newChecked ->
- if (!newChecked && wifiInfo.currentSecurityType == WifiEntry.SECURITY_WEP) {
- openDialog = true
- } else {
- wifiManager.setWepAllowed(newChecked)
- wepAllowedFlow.override(newChecked)
+ SwitchPreference(
+ object : SwitchPreferenceModel {
+ override val title = stringResource(R.string.wifi_allow_wep_networks)
+ override val summary = { getSummary(isWepSupported) }
+ override val checked = {
+ if (isWepSupported == true) isWepAllowed else isWepSupported
}
- }
- })
+ override val changeable: () -> Boolean
+ get() = { isWepSupported == true }
+
+ override val onCheckedChange: (Boolean) -> Unit = { newChecked ->
+ val wifiInfo = wifiManager.connectionInfo
+ if (!newChecked && wifiInfo.currentSecurityType == WifiEntry.SECURITY_WEP) {
+ openDialog = true
+ } else {
+ wifiManager.setWepAllowed(newChecked)
+ wepAllowedFlow.override(newChecked)
+ }
+ }
+ })
if (openDialog) {
SettingsAlertDialogWithIcon(
onDismissRequest = { openDialog = false },
- confirmButton = AlertDialogButton(
- stringResource(R.string.sim_action_yes)
- ) {
- wifiManager.setWepAllowed(false)
- wepAllowedFlow.override(false)
- openDialog = false
- },
+ confirmButton =
+ AlertDialogButton(stringResource(R.string.sim_action_yes)) {
+ wifiManager.setWepAllowed(false)
+ wepAllowedFlow.override(false)
+ openDialog = false
+ },
dismissButton =
- AlertDialogButton(
- stringResource(R.string.wifi_cancel)
- ) { openDialog = false },
+ AlertDialogButton(stringResource(R.string.wifi_cancel)) { openDialog = false },
title = stringResource(R.string.wifi_settings_wep_networks_disconnect_title),
text = {
Text(
stringResource(R.string.wifi_settings_wep_networks_disconnect_summary),
modifier = Modifier.fillMaxWidth(),
- textAlign = TextAlign.Center
+ textAlign = TextAlign.Center,
)
})
}
}
- override fun getSummary(): String = mContext.getString(
- if (carrierAllowed) {
- R.string.wifi_allow_wep_networks_summary
- } else {
- R.string.wifi_allow_wep_networks_summary_carrier_not_allow
- }
- )
+ private fun getSummary(isWepSupported: Boolean?): String =
+ mContext.getString(
+ when (isWepSupported) {
+ true -> R.string.wifi_allow_wep_networks_summary
+ false -> R.string.wifi_allow_wep_networks_summary_carrier_not_allow
+ null -> R.string.summary_placeholder
+ })
- private val carrierAllowed: Boolean
- get() = wifiManager.isWepSupported
+ private val isWepSupportedFlow =
+ flow { emit(wifiManager.isWepSupported) }.flowOn(Dispatchers.Default)
- val wepAllowedFlow = OverridableFlow(callbackFlow {
- wifiManager.queryWepAllowed(Dispatchers.Default.asExecutor(), ::trySend)
+ val wepAllowedFlow =
+ OverridableFlow(
+ callbackFlow {
+ wifiManager.queryWepAllowed(Dispatchers.Default.asExecutor(), ::trySend)
- awaitClose { }
- })
-}
\ No newline at end of file
+ awaitClose {}
+ })
+}
diff --git a/src/com/android/settings/wifi/WifiConfigController2.java b/src/com/android/settings/wifi/WifiConfigController2.java
index 70e08eb..1ea0103 100644
--- a/src/com/android/settings/wifi/WifiConfigController2.java
+++ b/src/com/android/settings/wifi/WifiConfigController2.java
@@ -344,7 +344,7 @@
if (mPrivacySettingsSpinner != null) {
final int prefMacValue = WifiPrivacyPreferenceController2
- .translateMacRandomizedValueToPrefValue(config.macRandomizationSetting);
+ .translateWifiEntryPrivacyToPrefValue(mWifiEntry.getPrivacy());
mPrivacySettingsSpinner.setSelection(prefMacValue);
}
@@ -863,7 +863,7 @@
if (mPrivacySettingsSpinner != null) {
config.macRandomizationSetting = WifiPrivacyPreferenceController2
- .translatePrefValueToMacRandomizedValue(mPrivacySettingsSpinner
+ .translatePrefValueToWifiConfigSetting(mPrivacySettingsSpinner
.getSelectedItemPosition());
}
diff --git a/src/com/android/settings/wifi/WifiConfigInfo.java b/src/com/android/settings/wifi/WifiConfigInfo.java
index 0de3063..16a4446 100644
--- a/src/com/android/settings/wifi/WifiConfigInfo.java
+++ b/src/com/android/settings/wifi/WifiConfigInfo.java
@@ -37,6 +37,7 @@
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
+ WifiUtils.setupEdgeToEdge(this);
mWifiManager = (WifiManager) getSystemService(WIFI_SERVICE);
setContentView(R.layout.wifi_config_info);
diff --git a/src/com/android/settings/wifi/WifiEnabler.java b/src/com/android/settings/wifi/WifiEnabler.java
index d1cf7d6..bbb014b 100644
--- a/src/com/android/settings/wifi/WifiEnabler.java
+++ b/src/com/android/settings/wifi/WifiEnabler.java
@@ -139,7 +139,8 @@
// Refresh satellite mode status.
try {
mIsSatelliteOn.set(
- mSatelliteRepository.requestIsEnabled(Executors.newSingleThreadExecutor())
+ mSatelliteRepository
+ .requestIsSessionStarted(Executors.newSingleThreadExecutor())
.get(2000, TimeUnit.MILLISECONDS));
} catch (ExecutionException | TimeoutException | InterruptedException e) {
Log.e(TAG, "Error to get satellite status : " + e);
diff --git a/src/com/android/settings/wifi/WifiPrimarySwitchPreferenceController.java b/src/com/android/settings/wifi/WifiPrimarySwitchPreferenceController.java
deleted file mode 100644
index ae44b93..0000000
--- a/src/com/android/settings/wifi/WifiPrimarySwitchPreferenceController.java
+++ /dev/null
@@ -1,110 +0,0 @@
-/*
- * Copyright (C) 2017 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package com.android.settings.wifi;
-
-import android.content.Context;
-
-import androidx.preference.PreferenceScreen;
-
-import com.android.settings.R;
-import com.android.settings.core.PreferenceControllerMixin;
-import com.android.settings.widget.GenericSwitchController;
-import com.android.settings.widget.SummaryUpdater;
-import com.android.settingslib.PrimarySwitchPreference;
-import com.android.settingslib.core.AbstractPreferenceController;
-import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
-import com.android.settingslib.core.lifecycle.LifecycleObserver;
-import com.android.settingslib.core.lifecycle.events.OnPause;
-import com.android.settingslib.core.lifecycle.events.OnResume;
-import com.android.settingslib.core.lifecycle.events.OnStart;
-import com.android.settingslib.core.lifecycle.events.OnStop;
-
-/**
- * PreferenceController to update the wifi state.
- */
-// TODO(b/167474581): Should clean up this controller when Provider Model finished.
-public class WifiPrimarySwitchPreferenceController extends AbstractPreferenceController
- implements PreferenceControllerMixin, SummaryUpdater.OnSummaryChangeListener,
- LifecycleObserver, OnResume, OnPause, OnStart, OnStop {
- //TODO(b/151133650): Replace AbstractPreferenceController with BasePreferenceController.
-
- public static final String KEY_TOGGLE_WIFI = "main_toggle_wifi";
-
- private PrimarySwitchPreference mWifiPreference;
- private WifiEnabler mWifiEnabler;
- private final WifiSummaryUpdater mSummaryHelper;
- private final MetricsFeatureProvider mMetricsFeatureProvider;
-
- public WifiPrimarySwitchPreferenceController(Context context,
- MetricsFeatureProvider metricsFeatureProvider) {
- super(context);
- mMetricsFeatureProvider = metricsFeatureProvider;
- mSummaryHelper = new WifiSummaryUpdater(mContext, this);
- }
-
- @Override
- public void displayPreference(PreferenceScreen screen) {
- super.displayPreference(screen);
- mWifiPreference = screen.findPreference(KEY_TOGGLE_WIFI);
- }
-
- @Override
- public boolean isAvailable() {
- return mContext.getResources().getBoolean(R.bool.config_show_wifi_settings);
- }
-
- @Override
- public String getPreferenceKey() {
- return KEY_TOGGLE_WIFI;
- }
-
- @Override
- public void onResume() {
- mSummaryHelper.register(true);
- if (mWifiEnabler != null) {
- mWifiEnabler.resume(mContext);
- }
- }
-
- @Override
- public void onPause() {
- if (mWifiEnabler != null) {
- mWifiEnabler.pause();
- }
- mSummaryHelper.register(false);
- }
-
- @Override
- public void onStart() {
- mWifiEnabler = new WifiEnabler(mContext, new GenericSwitchController(mWifiPreference),
- mMetricsFeatureProvider);
- }
-
- @Override
- public void onStop() {
- if (mWifiEnabler != null) {
- mWifiEnabler.teardownSwitchController();
- }
- }
-
- @Override
- public void onSummaryChanged(String summary) {
- if (mWifiPreference != null) {
- mWifiPreference.setSummary(summary);
- }
- }
-
-}
diff --git a/src/com/android/settings/wifi/WifiStatusTest.java b/src/com/android/settings/wifi/WifiStatusTest.java
index b4f3ab6..b9b1d70 100644
--- a/src/com/android/settings/wifi/WifiStatusTest.java
+++ b/src/com/android/settings/wifi/WifiStatusTest.java
@@ -115,6 +115,7 @@
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
+ WifiUtils.setupEdgeToEdge(this);
mWifiManager = (WifiManager) getSystemService(WIFI_SERVICE);
diff --git a/src/com/android/settings/wifi/WifiUtils.java b/src/com/android/settings/wifi/WifiUtils.java
index 68d8beb..e307bcf 100644
--- a/src/com/android/settings/wifi/WifiUtils.java
+++ b/src/com/android/settings/wifi/WifiUtils.java
@@ -16,6 +16,8 @@
package com.android.settings.wifi;
+import android.app.ActionBar;
+import android.app.Activity;
import android.app.admin.DevicePolicyManager;
import android.content.ComponentName;
import android.content.ContentResolver;
@@ -32,8 +34,13 @@
import android.provider.Settings;
import android.text.TextUtils;
import android.util.Log;
+import android.util.TypedValue;
+import androidx.annotation.NonNull;
import androidx.annotation.VisibleForTesting;
+import androidx.core.graphics.Insets;
+import androidx.core.view.ViewCompat;
+import androidx.core.view.WindowInsetsCompat;
import com.android.settings.R;
import com.android.settings.Utils;
@@ -308,4 +315,34 @@
public static void setCanShowWifiHotspotCached(Boolean cached) {
sCanShowWifiHotspotCached = cached;
}
+
+ /**
+ * Enable new edge to edge feature.
+ *
+ * @param activity the Activity need to setup the edge to edge feature.
+ */
+ public static void setupEdgeToEdge(@NonNull Activity activity) {
+ final ActionBar actionBar = activity.getActionBar();
+ if (actionBar == null) {
+ return;
+ }
+
+ final TypedValue typedValue = new TypedValue();
+ if (activity.getTheme().resolveAttribute(
+ com.android.internal.R.attr.actionBarSize, typedValue, true)) {
+ ViewCompat.setOnApplyWindowInsetsListener(activity.findViewById(android.R.id.content),
+ (v, windowInsets) -> {
+ Insets insets = windowInsets.getInsets(
+ WindowInsetsCompat.Type.systemBars() |
+ WindowInsetsCompat.Type.ime());
+
+ // Apply the insets paddings to the view.
+ v.setPadding(insets.left, insets.top, insets.right, insets.bottom);
+
+ // Return CONSUMED if you don't want the window insets to keep being
+ // passed down to descendant views.
+ return WindowInsetsCompat.CONSUMED;
+ });
+ }
+ }
}
diff --git a/src/com/android/settings/wifi/details2/WifiPrivacyPreferenceController2.java b/src/com/android/settings/wifi/details2/WifiPrivacyPreferenceController2.java
index 5d393e5..0c67c04 100644
--- a/src/com/android/settings/wifi/details2/WifiPrivacyPreferenceController2.java
+++ b/src/com/android/settings/wifi/details2/WifiPrivacyPreferenceController2.java
@@ -17,6 +17,7 @@
package com.android.settings.wifi.details2;
import android.content.Context;
+import android.net.wifi.WifiConfiguration;
import android.net.wifi.WifiManager;
import androidx.annotation.NonNull;
@@ -98,30 +99,30 @@
private static final int PREF_RANDOMIZATION_NONE = 1;
/**
- * Returns preference index value.
+ * Translates a WifiEntry.Privacy value to the matching preference index value.
*
- * @param macRandomized is mac randomized value
+ * @param privacy WifiEntry.Privacy value
* @return index value of preference
*/
- public static int translateMacRandomizedValueToPrefValue(int macRandomized) {
- return (macRandomized == WifiEntry.PRIVACY_RANDOMIZED_MAC)
+ public static int translateWifiEntryPrivacyToPrefValue(@WifiEntry.Privacy int privacy) {
+ return (privacy == WifiEntry.PRIVACY_RANDOMIZED_MAC)
? PREF_RANDOMIZATION_PERSISTENT : PREF_RANDOMIZATION_NONE;
}
/**
- * Returns mac randomized value.
+ * Translates the pref value to WifiConfiguration.MacRandomizationSetting value
*
* @param prefMacRandomized is preference index value
- * @return mac randomized value
+ * @return WifiConfiguration.MacRandomizationSetting value
*/
- public static int translatePrefValueToMacRandomizedValue(int prefMacRandomized) {
+ public static int translatePrefValueToWifiConfigSetting(int prefMacRandomized) {
return (prefMacRandomized == PREF_RANDOMIZATION_PERSISTENT)
- ? WifiEntry.PRIVACY_RANDOMIZED_MAC : WifiEntry.PRIVACY_DEVICE_MAC;
+ ? WifiConfiguration.RANDOMIZATION_AUTO : WifiConfiguration.RANDOMIZATION_NONE;
}
private void updateSummary(ListPreference preference, int macRandomized) {
// Translates value here to set RANDOMIZATION_PERSISTENT as first item in UI for better UX.
- final int prefMacRandomized = translateMacRandomizedValueToPrefValue(macRandomized);
+ final int prefMacRandomized = translateWifiEntryPrivacyToPrefValue(macRandomized);
preference.setSummary(preference.getEntries()[prefMacRandomized]);
}
}
diff --git a/src/com/android/settings/wifi/dpp/AdbQrCode.java b/src/com/android/settings/wifi/dpp/AdbQrCode.java
index 2d830b2..8a578ea 100644
--- a/src/com/android/settings/wifi/dpp/AdbQrCode.java
+++ b/src/com/android/settings/wifi/dpp/AdbQrCode.java
@@ -16,11 +16,14 @@
package com.android.settings.wifi.dpp;
import android.content.Context;
-import android.net.wifi.UriParserResults;
import android.net.wifi.WifiConfiguration;
import android.text.TextUtils;
-import androidx.annotation.NonNull;
+import androidx.annotation.VisibleForTesting;
+
+import java.util.Arrays;
+import java.util.List;
+import java.util.regex.Pattern;
/**
* Extension of WifiQrCode to support ADB QR code format.
@@ -28,34 +31,74 @@
*
* WIFI:T:ADB;S:myname;P:mypassword;;
*/
-public class AdbQrCode extends WifiQrCode {
+public class AdbQrCode {
static final String SECURITY_ADB = "ADB";
+ static final String SCHEME_DPP = "DPP";
+ static final String SCHEME_ZXING_WIFI_NETWORK_CONFIG = "WIFI";
+ static final String PREFIX_DPP = "DPP:";
+ static final String PREFIX_ZXING_WIFI_NETWORK_CONFIG = "WIFI:";
- private WifiConfiguration mAdbConfig;
+ static final String PREFIX_DPP_PUBLIC_KEY = "K:";
+ static final String PREFIX_DPP_INFORMATION = "I:";
+
+ static final String PREFIX_ZXING_SECURITY = "T:";
+ static final String PREFIX_ZXING_SSID = "S:";
+ static final String PREFIX_ZXING_PASSWORD = "P:";
+ static final String PREFIX_ZXING_HIDDEN_SSID = "H:";
+ static final String DELIMITER_QR_CODE = ";";
+ // Ignores password if security is SECURITY_NO_PASSWORD or absent
+ static final String SECURITY_NO_PASSWORD = "nopass"; //open network or OWE
+ static final String SECURITY_WEP = "WEP";
+ static final String SECURITY_WPA_PSK = "WPA";
+ static final String SECURITY_SAE = "SAE";
+ private String mQrCode;
+ /**
+ * SCHEME_DPP for standard Wi-Fi device provision protocol; SCHEME_ZXING_WIFI_NETWORK_CONFIG
+ * for ZXing reader library' Wi-Fi Network config format
+ */
+ private String mScheme;
+ // Data from parsed Wi-Fi DPP QR code
+ private String mPublicKey;
+ private String mInformation;
+ // Data from parsed ZXing reader library's Wi-Fi Network config format
+ private WifiNetworkConfig mAdbConfig;
public AdbQrCode(String qrCode) throws IllegalArgumentException {
- super(qrCode);
+ if (TextUtils.isEmpty(qrCode)) {
+ throw new IllegalArgumentException("Empty QR code");
+ }
+
+ mQrCode = qrCode;
+ if (qrCode.startsWith(PREFIX_DPP)) {
+ mScheme = SCHEME_DPP;
+ parseWifiDppQrCode(qrCode);
+ } else if (qrCode.startsWith(PREFIX_ZXING_WIFI_NETWORK_CONFIG)) {
+ mScheme = SCHEME_ZXING_WIFI_NETWORK_CONFIG;
+ parseZxingWifiQrCode(qrCode);
+ } else {
+ throw new IllegalArgumentException("Invalid scheme");
+ }
// Only accept the zxing format.
- if (getScheme() != UriParserResults.URI_SCHEME_ZXING_WIFI_NETWORK_CONFIG) {
+ if (!SCHEME_ZXING_WIFI_NETWORK_CONFIG.equals(getScheme())) {
throw new IllegalArgumentException("DPP format not supported for ADB QR code");
}
- mAdbConfig = getWifiConfiguration();
+ mAdbConfig = getWifiNetworkConfig();
- if (mAdbConfig == null) {
- throw new IllegalArgumentException("Null config when parsing ADB QR code");
+ if (!SECURITY_ADB.equals(mAdbConfig.getSecurity())) {
+ throw new IllegalArgumentException("Invalid security type");
}
- if (TextUtils.isEmpty(mAdbConfig.SSID)) {
+
+ if (TextUtils.isEmpty(mAdbConfig.getSsid())) {
throw new IllegalArgumentException("Empty service name");
}
- if (TextUtils.isEmpty(mAdbConfig.preSharedKey)) {
+ if (TextUtils.isEmpty(mAdbConfig.getPreSharedKey())) {
throw new IllegalArgumentException("Empty password");
}
}
- @NonNull
- public WifiConfiguration getAdbNetworkConfig() {
+ public WifiNetworkConfig getAdbNetworkConfig() {
return mAdbConfig;
}
@@ -67,4 +110,117 @@
public static void triggerVibrationForQrCodeRecognition(Context context) {
WifiDppUtils.triggerVibrationForQrCodeRecognition(context);
}
+
+ /** Parses Wi-Fi DPP QR code string */
+ private void parseWifiDppQrCode(String qrCode) throws IllegalArgumentException {
+ List<String> keyValueList = getKeyValueList(qrCode, PREFIX_DPP, DELIMITER_QR_CODE);
+ String publicKey = getValueOrNull(keyValueList, PREFIX_DPP_PUBLIC_KEY);
+ if (TextUtils.isEmpty(publicKey)) {
+ throw new IllegalArgumentException("Invalid format");
+ }
+ mPublicKey = publicKey;
+ mInformation = getValueOrNull(keyValueList, PREFIX_DPP_INFORMATION);
+ }
+
+ /** Parses ZXing reader library's Wi-Fi Network config format */
+ private void parseZxingWifiQrCode(String qrCode) throws IllegalArgumentException {
+ List<String> keyValueList = getKeyValueList(qrCode, PREFIX_ZXING_WIFI_NETWORK_CONFIG,
+ DELIMITER_QR_CODE);
+ String security = getValueOrNull(keyValueList, PREFIX_ZXING_SECURITY);
+ String ssid = getValueOrNull(keyValueList, PREFIX_ZXING_SSID);
+ String password = getValueOrNull(keyValueList, PREFIX_ZXING_PASSWORD);
+ String hiddenSsidString = getValueOrNull(keyValueList, PREFIX_ZXING_HIDDEN_SSID);
+ boolean hiddenSsid = "true".equalsIgnoreCase(hiddenSsidString);
+ //"\", ";", "," and ":" are escaped with a backslash "\", should remove at first
+ security = removeBackSlash(security);
+ ssid = removeBackSlash(ssid);
+ password = removeBackSlash(password);
+ mAdbConfig = WifiNetworkConfig.getValidConfigOrNull(security, ssid, password,
+ hiddenSsid, WifiConfiguration.INVALID_NETWORK_ID, /* isHotspot */ false);
+ if (mAdbConfig == null) {
+ throw new IllegalArgumentException("Invalid format");
+ }
+ }
+
+ /**
+ * Splits key/value pairs from qrCode
+ *
+ * @param qrCode the QR code raw string
+ * @param prefixQrCode the string before all key/value pairs in qrCode
+ * @param delimiter the string to split key/value pairs, can't contain a backslash
+ * @return a list contains string of key/value (e.g. K:key1)
+ */
+ private List<String> getKeyValueList(String qrCode, String prefixQrCode,
+ String delimiter) {
+ String keyValueString = qrCode.substring(prefixQrCode.length());
+ // Should not treat \delimiter as a delimiter
+ String regex = "(?<!\\\\)" + Pattern.quote(delimiter);
+ return Arrays.asList(keyValueString.split(regex));
+ }
+
+ private String getValueOrNull(List<String> keyValueList, String prefix) {
+ for (String keyValue : keyValueList) {
+ String strippedKeyValue = keyValue.stripLeading();
+ if (strippedKeyValue.startsWith(prefix)) {
+ return strippedKeyValue.substring(prefix.length());
+ }
+ }
+ return null;
+ }
+
+ @VisibleForTesting
+ String removeBackSlash(String input) {
+ if (input == null) {
+ return null;
+ }
+ StringBuilder sb = new StringBuilder();
+ boolean backSlash = false;
+ for (char ch : input.toCharArray()) {
+ if (ch != '\\') {
+ sb.append(ch);
+ backSlash = false;
+ } else {
+ if (backSlash) {
+ sb.append(ch);
+ backSlash = false;
+ continue;
+ }
+ backSlash = true;
+ }
+ }
+ return sb.toString();
+ }
+
+ String getQrCode() {
+ return mQrCode;
+ }
+
+ /**
+ * Uses to check type of QR code
+ *
+ * SCHEME_DPP for standard Wi-Fi device provision protocol; SCHEME_ZXING_WIFI_NETWORK_CONFIG
+ * for ZXing reader library' Wi-Fi Network config format
+ */
+ public String getScheme() {
+ return mScheme;
+ }
+
+ /** Available when {@code getScheme()} returns SCHEME_DPP */
+ @VisibleForTesting
+ String getPublicKey() {
+ return mPublicKey;
+ }
+
+ /** May be available when {@code getScheme()} returns SCHEME_DPP */
+ public String getInformation() {
+ return mInformation;
+ }
+
+ /** Available when {@code getScheme()} returns SCHEME_ZXING_WIFI_NETWORK_CONFIG */
+ WifiNetworkConfig getWifiNetworkConfig() {
+ if (mAdbConfig == null) {
+ return null;
+ }
+ return new WifiNetworkConfig(mAdbConfig);
+ }
}
diff --git a/src/com/android/settings/wifi/dpp/OWNERS b/src/com/android/settings/wifi/dpp/OWNERS
new file mode 100644
index 0000000..b61221e
--- /dev/null
+++ b/src/com/android/settings/wifi/dpp/OWNERS
@@ -0,0 +1,2 @@
+per-file AdbQrCode.java=set noparent
+per-file AdbQrCode.java=file:platform/packages/modules/adb:/OWNERS
diff --git a/src/com/android/settings/wifi/dpp/WifiDppQrCodeGeneratorFragment.java b/src/com/android/settings/wifi/dpp/WifiDppQrCodeGeneratorFragment.java
index 42a74dd..40cf24d 100644
--- a/src/com/android/settings/wifi/dpp/WifiDppQrCodeGeneratorFragment.java
+++ b/src/com/android/settings/wifi/dpp/WifiDppQrCodeGeneratorFragment.java
@@ -114,6 +114,7 @@
super.onViewCreated(view, savedInstanceState);
mQrCodeView = view.findViewById(R.id.qrcode_view);
+ mQrCodeView.setContentDescription(getString(R.string.qr_code_content_description));
final WifiNetworkConfig wifiNetworkConfig = getWifiNetworkConfigFromHostActivity();
if (wifiNetworkConfig.isHotspot()) {
diff --git a/src/com/android/settings/wifi/dpp/WifiQrCode.java b/src/com/android/settings/wifi/dpp/WifiQrCode.java
index 9b93480..78e0625 100644
--- a/src/com/android/settings/wifi/dpp/WifiQrCode.java
+++ b/src/com/android/settings/wifi/dpp/WifiQrCode.java
@@ -46,6 +46,7 @@
*
*/
public class WifiQrCode {
+ private static final String TAG = "WifiQrCode";
static final String SCHEME_DPP = "DPP";
static final String SCHEME_ZXING_WIFI_NETWORK_CONFIG = "WIFI";
static final String PREFIX_DPP = "DPP:";
@@ -119,13 +120,13 @@
try {
wifiQrCode = new WifiQrCode(qrCode);
} catch(IllegalArgumentException e) {
+ Log.e(TAG, "Failed to create WifiQrCode!", e);
return null;
}
-
- if (SCHEME_DPP.equals(wifiQrCode.getScheme())) {
- return wifiQrCode;
+ if (wifiQrCode.getScheme() != UriParserResults.URI_SCHEME_DPP) {
+ Log.e(TAG, "wifiQrCode scheme is not DPP!");
+ return null;
}
-
- return null;
+ return wifiQrCode;
}
}
diff --git a/src/com/android/settings/wifi/repository/WifiStatusRepository.kt b/src/com/android/settings/wifi/repository/WifiStatusRepository.kt
index f97ed49..fe4ba6c 100644
--- a/src/com/android/settings/wifi/repository/WifiStatusRepository.kt
+++ b/src/com/android/settings/wifi/repository/WifiStatusRepository.kt
@@ -50,14 +50,20 @@
var wifiStatusTracker: WifiStatusTracker? = null
wifiStatusTracker = wifiStatusTrackerFactory { wifiStatusTracker?.let(::trySend) }
+ // Fetches initial state first, before set listening to true, otherwise could cause
+ // race condition.
+ wifiStatusTracker.fetchInitialState()
+ trySend(wifiStatusTracker)
+
context
.broadcastReceiverFlow(INTENT_FILTER)
- .onEach { intent -> wifiStatusTracker.handleBroadcast(intent) }
+ .onEach { intent ->
+ wifiStatusTracker.handleBroadcast(intent)
+ trySend(wifiStatusTracker)
+ }
.launchIn(this)
wifiStatusTracker.setListening(true)
- wifiStatusTracker.fetchInitialState()
- trySend(wifiStatusTracker)
awaitClose { wifiStatusTracker.setListening(false) }
}
diff --git a/src/com/android/settings/wifi/slice/WifiSlice.java b/src/com/android/settings/wifi/slice/WifiSlice.java
index ff448a8..3bb50d3 100644
--- a/src/com/android/settings/wifi/slice/WifiSlice.java
+++ b/src/com/android/settings/wifi/slice/WifiSlice.java
@@ -431,7 +431,7 @@
boolean isSatelliteOn = false;
try {
isSatelliteOn =
- satelliteRepository.requestIsEnabled(Executors.newSingleThreadExecutor())
+ satelliteRepository.requestIsSessionStarted(Executors.newSingleThreadExecutor())
.get(2000, TimeUnit.MILLISECONDS);
} catch (ExecutionException | TimeoutException | InterruptedException e) {
Log.e(TAG, "Error to get satellite status : " + e);
diff --git a/tests/robotests/res/xml/modes_fake_settings.xml b/tests/robotests/res/xml/modes_fake_settings.xml
new file mode 100644
index 0000000..a5602dc
--- /dev/null
+++ b/tests/robotests/res/xml/modes_fake_settings.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ ~ Copyright (C) 2024 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License.
+ -->
+
+<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
+ <Preference android:key="pref_id" />
+ <Preference android:key="pref_name" />
+ <Preference android:key="pref_enabled" />
+</PreferenceScreen>
\ No newline at end of file
diff --git a/tests/robotests/src/com/android/settings/MainClearConfirmTest.java b/tests/robotests/src/com/android/settings/MainClearConfirmTest.java
index 6d85368..f7711c8 100644
--- a/tests/robotests/src/com/android/settings/MainClearConfirmTest.java
+++ b/tests/robotests/src/com/android/settings/MainClearConfirmTest.java
@@ -77,6 +77,7 @@
when(mMockActivity.getSystemService(Context.DEVICE_POLICY_SERVICE))
.thenReturn(mDevicePolicyManager);
+ when(mPersistentDataBlockManager.isFactoryResetProtectionActive()).thenReturn(false);
}
@Test
@@ -113,6 +114,13 @@
}
@Test
+ public void shouldWipePersistentDataBlock_frpIsAlive_shouldReturnFalse() {
+ when(mPersistentDataBlockManager.isFactoryResetProtectionActive()).thenReturn(true);
+ assertThat(mMainClearConfirm.shouldWipePersistentDataBlock(mPersistentDataBlockManager))
+ .isFalse();
+ }
+
+ @Test
public void shouldWipePersistentDataBlock_deviceIsStillBeingProvisioned_shouldReturnFalse() {
doReturn(true).when(mMainClearConfirm).isDeviceStillBeingProvisioned();
diff --git a/tests/robotests/src/com/android/settings/MainClearTest.java b/tests/robotests/src/com/android/settings/MainClearTest.java
index 187fce1..26a430b 100644
--- a/tests/robotests/src/com/android/settings/MainClearTest.java
+++ b/tests/robotests/src/com/android/settings/MainClearTest.java
@@ -140,8 +140,8 @@
when(mScrollView.getChildCount()).thenReturn(1);
doReturn(mMockActivity).when(mMainClear).getActivity();
when(mMockActivity.getSystemService(BiometricManager.class)).thenReturn(mBiometricManager);
- when(mBiometricManager.canAuthenticate(
- BiometricManager.Authenticators.MANDATORY_BIOMETRICS))
+ when(mBiometricManager.canAuthenticate(anyInt(),
+ eq(BiometricManager.Authenticators.MANDATORY_BIOMETRICS)))
.thenReturn(BiometricManager.BIOMETRIC_ERROR_HW_UNAVAILABLE);
}
@@ -370,8 +370,8 @@
when(mContext.getResources()).thenReturn(mResources);
when(mMockActivity.getSystemService(BiometricManager.class)).thenReturn(mBiometricManager);
when(mResources.getString(anyInt())).thenReturn(TEST_ACCOUNT_NAME);
- when(mBiometricManager.canAuthenticate(
- BiometricManager.Authenticators.MANDATORY_BIOMETRICS))
+ when(mBiometricManager.canAuthenticate(anyInt(),
+ eq(BiometricManager.Authenticators.MANDATORY_BIOMETRICS)))
.thenReturn(BiometricManager.BIOMETRIC_SUCCESS);
doReturn(true).when(mMainClear).isValidRequestCode(eq(MainClear.KEYGUARD_REQUEST));
doNothing().when(mMainClear).startActivityForResult(any(), anyInt());
diff --git a/tests/robotests/src/com/android/settings/UtilsTest.java b/tests/robotests/src/com/android/settings/UtilsTest.java
index fd97b78..2aeb906 100644
--- a/tests/robotests/src/com/android/settings/UtilsTest.java
+++ b/tests/robotests/src/com/android/settings/UtilsTest.java
@@ -22,6 +22,7 @@
import static com.android.settings.Utils.SETTINGS_PACKAGE_NAME;
import static com.android.settings.password.ConfirmDeviceCredentialActivity.BIOMETRIC_PROMPT_AUTHENTICATORS;
+import static com.android.settings.password.ConfirmDeviceCredentialActivity.BIOMETRIC_PROMPT_HIDE_BACKGROUND;
import static com.android.settings.password.ConfirmDeviceCredentialActivity.BIOMETRIC_PROMPT_NEGATIVE_BUTTON_TEXT;
import static com.google.common.truth.Truth.assertThat;
@@ -81,6 +82,7 @@
import androidx.fragment.app.FragmentActivity;
import com.android.internal.widget.LockPatternUtils;
+import com.android.settings.password.ChooseLockSettingsHelper;
import com.android.settings.password.ConfirmDeviceCredentialActivity;
import com.android.settings.testutils.shadow.ShadowLockPatternUtils;
@@ -532,31 +534,45 @@
when(mContext.getSystemService(BiometricManager.class)).thenReturn(null);
assertThat(Utils.requestBiometricAuthenticationForMandatoryBiometrics(mContext,
false /* biometricsSuccessfullyAuthenticated */,
- false /* biometricsAuthenticationRequested */)).isFalse();
+ false /* biometricsAuthenticationRequested */, USER_ID)).isFalse();
}
@Test
@EnableFlags(Flags.FLAG_MANDATORY_BIOMETRICS)
public void testRequestBiometricAuthentication_biometricManagerReturnsSuccess_shouldReturnTrue() {
- when(mBiometricManager.canAuthenticate(
+ when(mBiometricManager.canAuthenticate(USER_ID,
BiometricManager.Authenticators.MANDATORY_BIOMETRICS))
.thenReturn(BiometricManager.BIOMETRIC_SUCCESS);
- boolean requestBiometricAuthenticationForMandatoryBiometrics =
+ final boolean requestBiometricAuthenticationForMandatoryBiometrics =
Utils.requestBiometricAuthenticationForMandatoryBiometrics(mContext,
- true /* biometricsSuccessfullyAuthenticated */,
- false /* biometricsAuthenticationRequested */);
- assertThat(requestBiometricAuthenticationForMandatoryBiometrics).isFalse();
+ false /* biometricsSuccessfullyAuthenticated */,
+ false /* biometricsAuthenticationRequested */, USER_ID);
+ assertThat(requestBiometricAuthenticationForMandatoryBiometrics).isTrue();
}
@Test
@EnableFlags(Flags.FLAG_MANDATORY_BIOMETRICS)
public void testRequestBiometricAuthentication_biometricManagerReturnsError_shouldReturnFalse() {
- when(mBiometricManager.canAuthenticate(
- BiometricManager.Authenticators.MANDATORY_BIOMETRICS))
+ when(mBiometricManager.canAuthenticate(anyInt(),
+ eq(BiometricManager.Authenticators.MANDATORY_BIOMETRICS)))
.thenReturn(BiometricManager.BIOMETRIC_ERROR_HW_UNAVAILABLE);
assertThat(Utils.requestBiometricAuthenticationForMandatoryBiometrics(mContext,
false /* biometricsSuccessfullyAuthenticated */,
- false /* biometricsAuthenticationRequested */)).isFalse();
+ false /* biometricsAuthenticationRequested */, USER_ID)).isFalse();
+ }
+
+ @Test
+ @EnableFlags(Flags.FLAG_MANDATORY_BIOMETRICS)
+ public void testRequestBiometricAuthentication_biometricManagerReturnsSuccessForDifferentUser_shouldReturnFalse() {
+ when(mBiometricManager.canAuthenticate(anyInt(),
+ eq(BiometricManager.Authenticators.MANDATORY_BIOMETRICS)))
+ .thenReturn(BiometricManager.BIOMETRIC_ERROR_HW_UNAVAILABLE);
+ when(mBiometricManager.canAuthenticate(0 /* userId */,
+ BiometricManager.Authenticators.MANDATORY_BIOMETRICS))
+ .thenReturn(BiometricManager.BIOMETRIC_SUCCESS);
+ assertThat(Utils.requestBiometricAuthenticationForMandatoryBiometrics(mContext,
+ false /* biometricsSuccessfullyAuthenticated */,
+ false /* biometricsAuthenticationRequested */, USER_ID)).isFalse();
}
@Test
@@ -566,7 +582,8 @@
final int requestCode = 1;
final ArgumentCaptor<Intent> intentArgumentCaptor = ArgumentCaptor.forClass(Intent.class);
- Utils.launchBiometricPromptForMandatoryBiometrics(mFragment, requestCode);
+ Utils.launchBiometricPromptForMandatoryBiometrics(mFragment, requestCode, USER_ID,
+ false /* hideBackground */);
verify(mFragment).startActivityForResult(intentArgumentCaptor.capture(), eq(requestCode));
@@ -576,9 +593,14 @@
BiometricManager.Authenticators.MANDATORY_BIOMETRICS);
assertThat(intent.getExtra(BIOMETRIC_PROMPT_NEGATIVE_BUTTON_TEXT)).isNotNull();
assertThat(intent.getExtra(KeyguardManager.EXTRA_DESCRIPTION)).isNotNull();
+ assertThat(intent.getBooleanExtra(ChooseLockSettingsHelper.EXTRA_KEY_ALLOW_ANY_USER, false))
+ .isTrue();
+ assertThat(intent.getBooleanExtra(BIOMETRIC_PROMPT_HIDE_BACKGROUND, true))
+ .isFalse();
+ assertThat(intent.getIntExtra(Intent.EXTRA_USER_ID, 0)).isEqualTo(USER_ID);
assertThat(intent.getComponent().getPackageName()).isEqualTo(SETTINGS_PACKAGE_NAME);
assertThat(intent.getComponent().getClassName()).isEqualTo(
- ConfirmDeviceCredentialActivity.class.getName());
+ ConfirmDeviceCredentialActivity.InternalActivity.class.getName());
}
private void setUpForConfirmCredentialString(boolean isEffectiveUserManagedProfile) {
diff --git a/tests/robotests/src/com/android/settings/accessibility/AccessibilityDialogUtilsTest.java b/tests/robotests/src/com/android/settings/accessibility/AccessibilityDialogUtilsTest.java
index ad53ad6..547d0b6 100644
--- a/tests/robotests/src/com/android/settings/accessibility/AccessibilityDialogUtilsTest.java
+++ b/tests/robotests/src/com/android/settings/accessibility/AccessibilityDialogUtilsTest.java
@@ -21,7 +21,6 @@
import android.app.Dialog;
import android.content.Context;
-import androidx.appcompat.app.AlertDialog;
import androidx.test.core.app.ApplicationProvider;
import org.junit.Before;
@@ -41,24 +40,6 @@
}
@Test
- public void updateShortcutInDialog_correctDialogType_success() {
- final AlertDialog dialog = AccessibilityDialogUtils.showEditShortcutDialog(
- mContext, AccessibilityDialogUtils.DialogType.EDIT_SHORTCUT_GENERIC, "Title",
- null);
-
- assertThat(
- AccessibilityDialogUtils.updateShortcutInDialog(mContext, dialog)).isTrue();
- }
-
- @Test
- public void updateShortcutInDialog_useNotSupportedDialog_fail() {
- final AlertDialog dialog = new AlertDialog.Builder(mContext).setTitle("Title").show();
-
- assertThat(AccessibilityDialogUtils.updateShortcutInDialog(mContext,
- dialog)).isFalse();
- }
-
- @Test
public void showDialog_createCustomDialog_isShowing() {
final Dialog dialog = AccessibilityDialogUtils.createCustomDialog(mContext,
"Title", /* customView= */ null, "positiveButton", /* positiveListener= */ null,
diff --git a/tests/robotests/src/com/android/settings/accessibility/AccessibilitySettingsTest.java b/tests/robotests/src/com/android/settings/accessibility/AccessibilitySettingsTest.java
index 1463cd0..86763fd 100644
--- a/tests/robotests/src/com/android/settings/accessibility/AccessibilitySettingsTest.java
+++ b/tests/robotests/src/com/android/settings/accessibility/AccessibilitySettingsTest.java
@@ -26,11 +26,9 @@
import static java.util.Collections.singletonList;
import android.accessibilityservice.AccessibilityServiceInfo;
-import android.accessibilityservice.AccessibilityShortcutInfo;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
-import android.content.pm.ActivityInfo;
import android.content.pm.ApplicationInfo;
import android.content.pm.ResolveInfo;
import android.content.pm.ServiceInfo;
@@ -110,9 +108,7 @@
private final Context mContext = ApplicationProvider.getApplicationContext();
@Spy
private final AccessibilityServiceInfo mServiceInfo = getMockAccessibilityServiceInfo(
- PACKAGE_NAME, CLASS_NAME);
- @Mock
- private AccessibilityShortcutInfo mShortcutInfo;
+ new ComponentName(PACKAGE_NAME, CLASS_NAME));
private ShadowAccessibilityManager mShadowAccessibilityManager;
@Mock
private LocalBluetoothManager mLocalBluetoothManager;
@@ -125,7 +121,6 @@
mShadowAccessibilityManager.setInstalledAccessibilityServiceList(new ArrayList<>());
mContext.setTheme(androidx.appcompat.R.style.Theme_AppCompat);
ShadowBluetoothUtils.sLocalBluetoothManager = mLocalBluetoothManager;
- setMockAccessibilityShortcutInfo(mShortcutInfo);
Intent intent = new Intent();
intent.putExtra(SettingsActivity.EXTRA_SHOW_FRAGMENT,
@@ -174,7 +169,8 @@
mServiceInfo, SERVICE_ENABLED);
assertThat(summary).isEqualTo(
- mContext.getString(R.string.preference_summary_default_combination,
+ mContext.getString(
+ com.android.settingslib.R.string.preference_summary_default_combination,
mContext.getString(R.string.accessibility_summary_shortcut_enabled),
DEFAULT_SUMMARY));
}
@@ -189,7 +185,8 @@
mServiceInfo, SERVICE_ENABLED);
assertThat(summary).isEqualTo(
- mContext.getString(R.string.preference_summary_default_combination,
+ mContext.getString(
+ com.android.settingslib.R.string.preference_summary_default_combination,
mContext.getString(R.string.generic_accessibility_feature_shortcut_off),
DEFAULT_SUMMARY));
}
@@ -251,7 +248,8 @@
mServiceInfo, SERVICE_ENABLED).toString();
assertThat(summary).isEqualTo(
- mContext.getString(R.string.preference_summary_default_combination,
+ mContext.getString(
+ com.android.settingslib.R.string.preference_summary_default_combination,
mContext.getString(R.string.generic_accessibility_service_on),
DEFAULT_SUMMARY));
}
@@ -265,7 +263,8 @@
mServiceInfo, SERVICE_ENABLED).toString();
assertThat(summary).isEqualTo(
- mContext.getString(R.string.preference_summary_default_combination,
+ mContext.getString(
+ com.android.settingslib.R.string.preference_summary_default_combination,
mContext.getString(R.string.generic_accessibility_service_on),
DEFAULT_SUMMARY));
}
@@ -279,7 +278,8 @@
mServiceInfo, SERVICE_DISABLED).toString();
assertThat(summary).isEqualTo(
- mContext.getString(R.string.preference_summary_default_combination,
+ mContext.getString(
+ com.android.settingslib.R.string.preference_summary_default_combination,
mContext.getString(R.string.generic_accessibility_service_off),
DEFAULT_SUMMARY));
}
@@ -293,7 +293,8 @@
mServiceInfo, SERVICE_DISABLED).toString();
assertThat(summary).isEqualTo(
- mContext.getString(R.string.preference_summary_default_combination,
+ mContext.getString(
+ com.android.settingslib.R.string.preference_summary_default_combination,
mContext.getString(R.string.generic_accessibility_service_off),
DEFAULT_SUMMARY));
}
@@ -398,14 +399,25 @@
public void testAccessibilityMenuInSystem_IncludedInInteractionControl() {
mShadowAccessibilityManager.setInstalledAccessibilityServiceList(
List.of(getMockAccessibilityServiceInfo(
- AccessibilityUtils.ACCESSIBILITY_MENU_IN_SYSTEM)));
+ AccessibilityUtils.ACCESSIBILITY_MENU_IN_SYSTEM,
+ /*isSystemApp=*/true)));
setupFragment();
- final RestrictedPreference pref = mFragment.getPreferenceScreen().findPreference(
- AccessibilityUtils.ACCESSIBILITY_MENU_IN_SYSTEM.flattenToString());
- final String prefCategory = mFragment.mServicePreferenceToPreferenceCategoryMap.get(
- pref).getKey();
- assertThat(prefCategory).isEqualTo(AccessibilitySettings.CATEGORY_INTERACTION_CONTROL);
+ assertThat(getPreferenceCategory(AccessibilityUtils.ACCESSIBILITY_MENU_IN_SYSTEM))
+ .isEqualTo(AccessibilitySettings.CATEGORY_INTERACTION_CONTROL);
+ }
+
+ @Test
+ @EnableFlags(com.android.settings.accessibility.Flags.FLAG_CHECK_PREBUNDLED_IS_PREINSTALLED)
+ public void testNonPreinstalledApp_IncludedInDownloadedCategory() {
+ mShadowAccessibilityManager.setInstalledAccessibilityServiceList(
+ List.of(getMockAccessibilityServiceInfo(
+ AccessibilityUtils.ACCESSIBILITY_MENU_IN_SYSTEM,
+ /*isSystemApp=*/false)));
+ setupFragment();
+
+ assertThat(getPreferenceCategory(AccessibilityUtils.ACCESSIBILITY_MENU_IN_SYSTEM))
+ .isEqualTo(AccessibilitySettings.CATEGORY_DOWNLOADED_SERVICES);
}
@Test
@@ -418,13 +430,20 @@
assertThat(pref).isNull();
}
- private AccessibilityServiceInfo getMockAccessibilityServiceInfo(String packageName,
- String className) {
- return getMockAccessibilityServiceInfo(new ComponentName(packageName, className));
+ private String getPreferenceCategory(ComponentName componentName) {
+ return mFragment.mServicePreferenceToPreferenceCategoryMap.get(
+ mFragment.getPreferenceScreen().findPreference(
+ componentName.flattenToString())).getKey();
}
private AccessibilityServiceInfo getMockAccessibilityServiceInfo(ComponentName componentName) {
- final ApplicationInfo applicationInfo = new ApplicationInfo();
+ return getMockAccessibilityServiceInfo(componentName, true);
+ }
+
+ private AccessibilityServiceInfo getMockAccessibilityServiceInfo(ComponentName componentName,
+ boolean isSystemApp) {
+ final ApplicationInfo applicationInfo = Mockito.mock(ApplicationInfo.class);
+ when(applicationInfo.isSystemApp()).thenReturn(isSystemApp);
final ServiceInfo serviceInfo = new ServiceInfo();
applicationInfo.packageName = componentName.getPackageName();
serviceInfo.packageName = componentName.getPackageName();
@@ -445,16 +464,6 @@
return null;
}
- private void setMockAccessibilityShortcutInfo(AccessibilityShortcutInfo mockInfo) {
- final ActivityInfo activityInfo = Mockito.mock(ActivityInfo.class);
- activityInfo.applicationInfo = new ApplicationInfo();
- when(mockInfo.getActivityInfo()).thenReturn(activityInfo);
- when(activityInfo.loadLabel(any())).thenReturn(DEFAULT_LABEL);
- when(mockInfo.loadSummary(any())).thenReturn(DEFAULT_SUMMARY);
- when(mockInfo.loadDescription(any())).thenReturn(DEFAULT_DESCRIPTION);
- when(mockInfo.getComponentName()).thenReturn(COMPONENT_NAME);
- }
-
private void setInvisibleToggleFragmentType(AccessibilityServiceInfo info) {
info.getResolveInfo().serviceInfo.applicationInfo.targetSdkVersion = Build.VERSION_CODES.R;
info.flags |= AccessibilityServiceInfo.FLAG_REQUEST_ACCESSIBILITY_BUTTON;
diff --git a/tests/robotests/src/com/android/settings/accessibility/AccessibilityShortcutPreferenceFragmentTest.java b/tests/robotests/src/com/android/settings/accessibility/AccessibilityShortcutPreferenceFragmentTest.java
index b74f38e..9d18c44 100644
--- a/tests/robotests/src/com/android/settings/accessibility/AccessibilityShortcutPreferenceFragmentTest.java
+++ b/tests/robotests/src/com/android/settings/accessibility/AccessibilityShortcutPreferenceFragmentTest.java
@@ -16,12 +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.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.google.common.truth.Truth.assertThat;
@@ -37,7 +35,6 @@
import android.app.Application;
import android.content.ComponentName;
import android.content.Context;
-import android.content.DialogInterface;
import android.content.Intent;
import android.icu.text.CaseMap;
import android.os.Bundle;
@@ -52,7 +49,6 @@
import android.widget.PopupWindow;
import androidx.annotation.Nullable;
-import androidx.appcompat.app.AlertDialog;
import androidx.fragment.app.FragmentActivity;
import androidx.preference.PreferenceManager;
import androidx.preference.PreferenceScreen;
@@ -160,71 +156,6 @@
}
@Test
- public void setupEditShortcutDialog_shortcutPreferenceOff_checkboxIsEmptyValue() {
- mContext.setTheme(androidx.appcompat.R.style.Theme_AppCompat);
- final AlertDialog dialog = AccessibilityDialogUtils.showEditShortcutDialog(
- mContext, AccessibilityDialogUtils.DialogType.EDIT_SHORTCUT_GENERIC,
- PLACEHOLDER_DIALOG_TITLE,
- this::callEmptyOnClicked);
- final ShortcutPreference shortcutPreference = new ShortcutPreference(mContext, /* attrs= */
- null);
- mFragment.mShortcutPreference = shortcutPreference;
-
- mFragment.mShortcutPreference.setChecked(false);
- mFragment.setupEditShortcutDialog(dialog);
-
- final int checkboxValue = mFragment.getShortcutTypeCheckBoxValue();
- assertThat(checkboxValue).isEqualTo(DEFAULT);
- }
-
- @Test
- public void setupEditShortcutDialog_shortcutPreferenceOn_checkboxIsSavedValue() {
- mContext.setTheme(androidx.appcompat.R.style.Theme_AppCompat);
- final AlertDialog dialog = AccessibilityDialogUtils.showEditShortcutDialog(
- mContext, AccessibilityDialogUtils.DialogType.EDIT_SHORTCUT_GENERIC,
- PLACEHOLDER_DIALOG_TITLE,
- this::callEmptyOnClicked);
- final ShortcutPreference shortcutPreference = new ShortcutPreference(mContext, /* attrs= */
- null);
- final PreferredShortcut hardwareShortcut = new PreferredShortcut(
- PLACEHOLDER_COMPONENT_NAME.flattenToString(), HARDWARE);
- mFragment.mShortcutPreference = shortcutPreference;
-
- PreferredShortcuts.saveUserShortcutType(mContext, hardwareShortcut);
- mFragment.mShortcutPreference.setChecked(true);
- mFragment.setupEditShortcutDialog(dialog);
-
- final int checkboxValue = mFragment.getShortcutTypeCheckBoxValue();
- assertThat(checkboxValue).isEqualTo(HARDWARE);
- }
-
- @Test
- @Config(shadows = ShadowFragment.class)
- public void restoreValueFromSavedInstanceState_assignShortcutTypeToVariable() {
- mContext.setTheme(androidx.appcompat.R.style.Theme_AppCompat);
- final AlertDialog dialog = AccessibilityDialogUtils.showEditShortcutDialog(
- mContext, AccessibilityDialogUtils.DialogType.EDIT_SHORTCUT_GENERIC,
- PLACEHOLDER_DIALOG_TITLE,
- this::callEmptyOnClicked);
- final Bundle savedInstanceState = new Bundle();
- final ShortcutPreference shortcutPreference = new ShortcutPreference(mContext, /* attrs= */
- null);
- mFragment.mShortcutPreference = shortcutPreference;
-
- savedInstanceState.putInt(KEY_SAVED_USER_SHORTCUT_TYPE,
- SOFTWARE | HARDWARE);
- mFragment.onAttach(mContext);
- mFragment.onCreate(savedInstanceState);
- mFragment.setupEditShortcutDialog(dialog);
- final int value = mFragment.getShortcutTypeCheckBoxValue();
- mFragment.saveNonEmptyUserShortcutType(value);
-
- final int expectedType = PreferredShortcuts.retrieveUserShortcutType(mContext,
- mFragment.getComponentName().flattenToString());
- assertThat(expectedType).isEqualTo(SOFTWARE | HARDWARE);
- }
-
- @Test
@DisableFlags(Flags.FLAG_A11Y_QS_SHORTCUT)
@Config(shadows = ShadowFragment.class)
public void restoreValueFromSavedInstanceState_showTooltipView() {
@@ -268,8 +199,7 @@
}
@Test
- @EnableFlags(com.android.settings.accessibility.Flags.FLAG_EDIT_SHORTCUTS_IN_FULL_SCREEN)
- public void onSettingsClicked_editShortcutsFullScreenFlagOn_showFullScreenEditShortcutScreen() {
+ public void onSettingsClicked_showFullScreenEditShortcutScreen() {
Activity activity = Robolectric.setupActivity(FragmentActivity.class);
when(mFragment.getContext()).thenReturn(activity);
Context context = mFragment.getContext();
@@ -311,8 +241,6 @@
assertThat(summary).isEqualTo(expected);
}
- private void callEmptyOnClicked(DialogInterface dialog, int which) {}
-
private void putStringIntoSettings(String key, String componentName) {
Settings.Secure.putString(mContext.getContentResolver(), key, componentName);
}
diff --git a/tests/robotests/src/com/android/settings/accessibility/CaptioningAppearancePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/accessibility/CaptioningAppearancePreferenceControllerTest.java
index b9de66d..b4dd2fc 100644
--- a/tests/robotests/src/com/android/settings/accessibility/CaptioningAppearancePreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/accessibility/CaptioningAppearancePreferenceControllerTest.java
@@ -17,6 +17,7 @@
package com.android.settings.accessibility;
import static com.google.common.truth.Truth.assertThat;
+
import static org.robolectric.Shadows.shadowOf;
import android.content.Context;
@@ -188,7 +189,8 @@
R.array.captioning_font_size_selector_titles);
final String[] presetArray = mContext.getResources().getStringArray(
R.array.captioning_preset_selector_titles);
- return mContext.getString(R.string.preference_summary_default_combination,
+ return mContext.getString(
+ com.android.settingslib.R.string.preference_summary_default_combination,
fontScaleArray[fontScaleIndex], presetArray[presetIndex]);
}
}
diff --git a/tests/robotests/src/com/android/settings/accessibility/DaltonizerSaturationSeekbarPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/accessibility/DaltonizerSaturationSeekbarPreferenceControllerTest.java
index 98ed442..5fd11f9 100644
--- a/tests/robotests/src/com/android/settings/accessibility/DaltonizerSaturationSeekbarPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/accessibility/DaltonizerSaturationSeekbarPreferenceControllerTest.java
@@ -16,38 +16,39 @@
package com.android.settings.accessibility;
+import static androidx.lifecycle.Lifecycle.Event.ON_RESUME;
+import static androidx.lifecycle.Lifecycle.Event.ON_STOP;
+
import static com.android.settings.core.BasePreferenceController.AVAILABLE;
import static com.android.settings.core.BasePreferenceController.CONDITIONALLY_UNAVAILABLE;
+import static com.android.settings.core.BasePreferenceController.DISABLED_DEPENDENT_SETTING;
import static com.google.common.truth.Truth.assertThat;
-import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.ArgumentMatchers.eq;
-import static org.mockito.Mockito.never;
-import static org.mockito.Mockito.spy;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.when;
+import static org.robolectric.Shadows.shadowOf;
import android.content.ContentResolver;
import android.content.Context;
+import android.os.Looper;
import android.platform.test.annotations.DisableFlags;
import android.platform.test.annotations.EnableFlags;
import android.platform.test.flag.junit.SetFlagsRule;
import android.provider.Settings;
+import androidx.lifecycle.LifecycleOwner;
+import androidx.preference.PreferenceManager;
import androidx.preference.PreferenceScreen;
import androidx.test.core.app.ApplicationProvider;
import com.android.server.accessibility.Flags;
import com.android.settings.widget.SeekBarPreference;
+import com.android.settingslib.core.lifecycle.Lifecycle;
import org.junit.After;
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
import org.junit.runner.RunWith;
-import org.mockito.Mock;
-import org.mockito.MockitoAnnotations;
import org.robolectric.RobolectricTestRunner;
/** Tests for {@link DaltonizerSaturationSeekbarPreferenceController}. */
@@ -60,8 +61,9 @@
private int mOriginalSaturationLevel = -1;
private PreferenceScreen mScreen;
+ private LifecycleOwner mLifecycleOwner;
+ private Lifecycle mLifecycle;
- @Mock
private SeekBarPreference mPreference;
@Rule
@@ -69,7 +71,6 @@
@Before
public void setup() {
- MockitoAnnotations.initMocks(this);
Context context = ApplicationProvider.getApplicationContext();
mContentResolver = context.getContentResolver();
mOriginalSaturationLevel = Settings.Secure.getInt(
@@ -77,10 +78,13 @@
Settings.Secure.ACCESSIBILITY_DISPLAY_DALTONIZER_SATURATION_LEVEL,
7);
- mScreen = spy(new PreferenceScreen(context, /* attrs= */ null));
- when(mScreen.findPreference(ToggleDaltonizerPreferenceFragment.KEY_SATURATION))
- .thenReturn(mPreference);
+ mPreference = new SeekBarPreference(context);
+ mPreference.setKey(ToggleDaltonizerPreferenceFragment.KEY_SATURATION);
+ mScreen = new PreferenceManager(context).createPreferenceScreen(context);
+ mScreen.addPreference(mPreference);
+ mLifecycleOwner = () -> mLifecycle;
+ mLifecycle = new Lifecycle(mLifecycleOwner);
mController = new DaltonizerSaturationSeekbarPreferenceController(
context,
ToggleDaltonizerPreferenceFragment.KEY_SATURATION);
@@ -94,6 +98,12 @@
mOriginalSaturationLevel);
}
+ @Test
+ public void constructor_defaultValuesMatch() {
+ assertThat(mController.getSliderPosition()).isEqualTo(7);
+ assertThat(mController.getMax()).isEqualTo(10);
+ assertThat(mController.getMin()).isEqualTo(1);
+ }
@Test
@DisableFlags(Flags.FLAG_ENABLE_COLOR_CORRECTION_SATURATION)
@@ -103,28 +113,72 @@
@Test
@EnableFlags(Flags.FLAG_ENABLE_COLOR_CORRECTION_SATURATION)
- public void getAvailabilityStatus_flagEnabled_available() {
+ public void getAvailabilityStatus_flagEnabledProtanEnabled_available() {
+ setDaltonizerMode(/* enabled= */ 1, /* mode= */ 11);
assertThat(mController.getAvailabilityStatus()).isEqualTo(AVAILABLE);
}
@Test
- public void constructor_defaultValuesMatch() {
- assertThat(mController.getSliderPosition()).isEqualTo(7);
- assertThat(mController.getMax()).isEqualTo(10);
- assertThat(mController.getMin()).isEqualTo(0);
+ @EnableFlags(Flags.FLAG_ENABLE_COLOR_CORRECTION_SATURATION)
+ public void getAvailabilityStatus_flagEnabledDeutranEnabled_available() {
+ setDaltonizerMode(/* enabled= */ 1, /* mode= */ 12);
+ assertThat(mController.getAvailabilityStatus()).isEqualTo(AVAILABLE);
}
@Test
@EnableFlags(Flags.FLAG_ENABLE_COLOR_CORRECTION_SATURATION)
- public void displayPreference_enabled_visible() {
+ public void getAvailabilityStatus_flagEnabledTritanEnabled_available() {
+ setDaltonizerMode(/* enabled= */ 1, /* mode= */ 13);
+ assertThat(mController.getAvailabilityStatus()).isEqualTo(AVAILABLE);
+ }
+
+ @Test
+ @EnableFlags(Flags.FLAG_ENABLE_COLOR_CORRECTION_SATURATION)
+ public void getAvailabilityStatus_flagEnabledGrayScale_disabled() {
+ setDaltonizerMode(/* enabled= */ 1, /* mode= */ 0);
+ assertThat(mController.getAvailabilityStatus()).isEqualTo(DISABLED_DEPENDENT_SETTING);
+ }
+
+ @Test
+ @EnableFlags(Flags.FLAG_ENABLE_COLOR_CORRECTION_SATURATION)
+ public void getAvailabilityStatus_flagEnabledColorCorrectionDisabled_disabled() {
+ setDaltonizerMode(/* enabled= */ 0, /* mode= */ 11);
+ assertThat(mController.getAvailabilityStatus()).isEqualTo(DISABLED_DEPENDENT_SETTING);
+ }
+
+ @Test
+ @EnableFlags(Flags.FLAG_ENABLE_COLOR_CORRECTION_SATURATION)
+ public void getAvailabilityStatus_flagEnabledColorCorrectionDisabledGrayScale_disabled() {
+ setDaltonizerMode(/* enabled= */ 0, /* mode= */ 0);
+ assertThat(mController.getAvailabilityStatus()).isEqualTo(DISABLED_DEPENDENT_SETTING);
+ }
+
+ @Test
+ @EnableFlags(Flags.FLAG_ENABLE_COLOR_CORRECTION_SATURATION)
+ public void displayPreference_flagEnabledColorCorrectionEnabled_enabledWithDefaultValues() {
+ setDaltonizerMode(/* enabled= */ 1, /* mode= */ 11);
mController.displayPreference(mScreen);
- verify(mPreference).setMax(eq(10));
- verify(mPreference).setMin(eq(0));
- verify(mPreference).setProgress(eq(7));
- verify(mPreference).setContinuousUpdates(eq(true));
- verify(mPreference).setOnPreferenceChangeListener(eq(mController));
- verify(mPreference).setVisible(eq(true));
+ assertThat(mPreference.isEnabled()).isTrue();
+ assertThat(mPreference.getMax()).isEqualTo(10);
+ assertThat(mPreference.getMin()).isEqualTo(1);
+ assertThat(mPreference.getProgress()).isEqualTo(7);
+ assertThat(mPreference.isVisible()).isTrue();
+ assertThat(mPreference.getOnPreferenceChangeListener()).isEqualTo(mController);
+ }
+
+ @Test
+ @EnableFlags(Flags.FLAG_ENABLE_COLOR_CORRECTION_SATURATION)
+ public void displayPreference_flagEnabledColorCorrectionDisabled_disabledWithDefaultValues() {
+ setDaltonizerMode(/* enabled= */ 0, /* mode= */ 11);
+ mController.displayPreference(mScreen);
+
+ assertThat(mPreference.isEnabled()).isFalse();
+ assertThat(mPreference.getMax()).isEqualTo(10);
+ assertThat(mPreference.getMin()).isEqualTo(1);
+ assertThat(mPreference.getProgress()).isEqualTo(7);
+ assertThat(mPreference.isVisible()).isTrue();
+ assertThat(mPreference.getOnPreferenceChangeListener()).isEqualTo(mController);
}
@Test
@@ -132,12 +186,8 @@
public void displayPreference_disabled_notVisible() {
mController.displayPreference(mScreen);
- verify(mPreference).setMax(eq(10));
- verify(mPreference).setMin(eq(0));
- verify(mPreference).setProgress(eq(7));
- verify(mPreference).setContinuousUpdates(eq(true));
- verify(mPreference, never()).setOnPreferenceChangeListener(any());
- verify(mPreference).setVisible(eq(false));
+ assertThat(mPreference.isVisible()).isFalse();
+ assertThat(mPreference.getOnPreferenceChangeListener()).isNull();
}
@Test
@@ -153,13 +203,13 @@
@Test
public void setSliderPosition_min_secureSettingsUpdated() {
- var isSliderSet = mController.setSliderPosition(0);
+ var isSliderSet = mController.setSliderPosition(1);
assertThat(isSliderSet).isTrue();
assertThat(Settings.Secure.getInt(
mContentResolver,
Settings.Secure.ACCESSIBILITY_DISPLAY_DALTONIZER_SATURATION_LEVEL,
- 7)).isEqualTo(0);
+ 7)).isEqualTo(1);
}
@Test
@@ -194,4 +244,140 @@
Settings.Secure.ACCESSIBILITY_DISPLAY_DALTONIZER_SATURATION_LEVEL,
7)).isEqualTo(7);
}
+
+ @Test
+ public void updateState_enabledProtan_preferenceEnabled() {
+ setDaltonizerMode(/* enabled= */ 1, /* mode= */ 11);
+
+ mController.updateState(mPreference);
+
+ assertThat(mPreference.isEnabled()).isTrue();
+ }
+
+ @Test
+ public void updateState_enabledDeuteran_preferenceEnabled() {
+ setDaltonizerMode(/* enabled= */ 1, /* mode= */ 12);
+
+ mController.updateState(mPreference);
+
+ assertThat(mPreference.isEnabled()).isTrue();
+ }
+
+ @Test
+ public void updateState_enabledTritan_preferenceEnabled() {
+ setDaltonizerMode(/* enabled= */ 1, /* mode= */ 13);
+
+ mController.updateState(mPreference);
+
+ assertThat(mPreference.isEnabled()).isTrue();
+ }
+
+ @Test
+ public void updateState_disabledGrayScale_preferenceDisabled() {
+ setDaltonizerMode(/* enabled= */ 0, /* mode= */ 0);
+
+ mController.updateState(mPreference);
+
+ assertThat(mPreference.isEnabled()).isFalse();
+ }
+
+ @Test
+ public void updateState_nullPreference_noError() {
+ setDaltonizerMode(/* enabled= */ 0, /* mode= */ 0);
+
+ mController.updateState(null);
+ }
+
+ @Test
+ public void updateState_enabledGrayScale_preferenceDisabled() {
+ setDaltonizerMode(/* enabled= */ 1, /* mode= */ 0);
+
+ mController.updateState(mPreference);
+
+ assertThat(mPreference.isEnabled()).isFalse();
+ }
+
+ @Test
+ public void onResume_daltonizerEnabledAfterResumed_preferenceEnabled() {
+ setDaltonizerMode(/* enabled= */ 0, /* mode= */ 11);
+ mController.displayPreference(mScreen);
+ assertThat(mPreference.isEnabled()).isFalse();
+
+ mLifecycle.addObserver(mController);
+ mLifecycle.handleLifecycleEvent(ON_RESUME);
+
+ Settings.Secure.putInt(
+ mContentResolver,
+ Settings.Secure.ACCESSIBILITY_DISPLAY_DALTONIZER_ENABLED,
+ 1);
+ shadowOf(Looper.getMainLooper()).idle();
+
+ assertThat(mPreference.isEnabled()).isTrue();
+ }
+
+ @Test
+ public void onResume_daltonizerDisabledAfterResumed_preferenceDisabled() {
+ setDaltonizerMode(/* enabled= */ 1, /* mode= */ 11);
+ mController.displayPreference(mScreen);
+ assertThat(mPreference.isEnabled()).isTrue();
+
+ mLifecycle.addObserver(mController);
+ mLifecycle.handleLifecycleEvent(ON_RESUME);
+
+ Settings.Secure.putInt(
+ mContentResolver,
+ Settings.Secure.ACCESSIBILITY_DISPLAY_DALTONIZER_ENABLED,
+ 0);
+ shadowOf(Looper.getMainLooper()).idle();
+
+ assertThat(mPreference.isEnabled()).isFalse();
+ }
+
+ @Test
+ public void onResume_daltonizerGrayScaledAfterResumed_preferenceDisabled() {
+ setDaltonizerMode(/* enabled= */ 1, /* mode= */ 11);
+ mController.displayPreference(mScreen);
+ assertThat(mPreference.isEnabled()).isTrue();
+
+ mLifecycle.addObserver(mController);
+ mLifecycle.handleLifecycleEvent(ON_RESUME);
+
+ Settings.Secure.putInt(
+ mContentResolver,
+ Settings.Secure.ACCESSIBILITY_DISPLAY_DALTONIZER,
+ 0);
+ shadowOf(Looper.getMainLooper()).idle();
+
+ assertThat(mPreference.isEnabled()).isFalse();
+ }
+
+ @Test
+ public void onStop_daltonizerEnabledAfterOnStop_preferenceNotChanged() {
+ setDaltonizerMode(/* enabled= */ 0, /* mode= */ 11);
+ mController.displayPreference(mScreen);
+ assertThat(mPreference.isEnabled()).isFalse();
+
+ mLifecycle.addObserver(mController);
+ mLifecycle.handleLifecycleEvent(ON_STOP);
+
+ // enabled.
+ Settings.Secure.putInt(
+ mContentResolver,
+ Settings.Secure.ACCESSIBILITY_DISPLAY_DALTONIZER_ENABLED,
+ 1);
+ shadowOf(Looper.getMainLooper()).idle();
+
+ assertThat(mPreference.isEnabled()).isFalse();
+ }
+
+ private void setDaltonizerMode(int enabled, int mode) {
+ Settings.Secure.putInt(
+ mContentResolver,
+ Settings.Secure.ACCESSIBILITY_DISPLAY_DALTONIZER_ENABLED,
+ enabled);
+ Settings.Secure.putInt(
+ mContentResolver,
+ Settings.Secure.ACCESSIBILITY_DISPLAY_DALTONIZER,
+ mode);
+ }
}
diff --git a/tests/robotests/src/com/android/settings/accessibility/FlashNotificationsPreviewPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/accessibility/FlashNotificationsPreviewPreferenceControllerTest.java
index 0f32f31..6432a17 100644
--- a/tests/robotests/src/com/android/settings/accessibility/FlashNotificationsPreviewPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/accessibility/FlashNotificationsPreviewPreferenceControllerTest.java
@@ -67,22 +67,23 @@
public MockitoRule mMockitoRule = MockitoJUnit.rule();
@Spy
private final Context mContext = ApplicationProvider.getApplicationContext();
- @Mock
- private PreferenceScreen mPreferenceScreen;
- @Mock
- private Preference mPreference;
@Spy
private ContentResolver mContentResolver = mContext.getContentResolver();
-
+ @Mock
+ private PreferenceScreen mPreferenceScreen;
+ private Preference mPreference;
private FlashNotificationsPreviewPreferenceController mController;
@Before
public void setUp() {
MockitoAnnotations.initMocks(this);
- when(mPreferenceScreen.findPreference(PREFERENCE_KEY)).thenReturn(mPreference);
- when(mPreference.getKey()).thenReturn(PREFERENCE_KEY);
when(mContext.getContentResolver()).thenReturn(mContentResolver);
+
+ mPreference = new Preference(mContext);
+ mPreference.setKey(PREFERENCE_KEY);
+ when(mPreferenceScreen.findPreference(PREFERENCE_KEY)).thenReturn(mPreference);
+
mController = new FlashNotificationsPreviewPreferenceController(mContext, PREFERENCE_KEY);
}
@@ -97,40 +98,45 @@
}
@Test
- public void testDisplayPreference_torchPresent_cameraOff_screenOff_verifyDisabled() {
+ public void testDisplayPreference_torchPresent_cameraOff_screenOff_notVisible() {
setFlashNotificationsState(FlashNotificationsUtil.State.OFF);
mController.displayPreference(mPreferenceScreen);
- verify(mPreference).setEnabled(eq(false));
+
+ assertThat(mPreference.isVisible()).isFalse();
}
@Test
- public void testDisplayPreference_torchPresent_cameraOn_screenOff_verifyEnabled() {
+ public void testDisplayPreference_torchPresent_cameraOn_screenOff_isVisible() {
setFlashNotificationsState(FlashNotificationsUtil.State.CAMERA);
mController.displayPreference(mPreferenceScreen);
- verify(mPreference).setEnabled(eq(true));
+
+ assertThat(mPreference.isVisible()).isTrue();
}
@Test
- public void testDisplayPreference_torchPresent_cameraOff_screenOn_verifyEnabled() {
+ public void testDisplayPreference_torchPresent_cameraOff_screenOn_isVisible() {
setFlashNotificationsState(FlashNotificationsUtil.State.SCREEN);
mController.displayPreference(mPreferenceScreen);
- verify(mPreference).setEnabled(eq(true));
+
+ assertThat(mPreference.isVisible()).isTrue();
}
@Test
- public void testDisplayPreference_torchPresent_cameraOn_screenOn_verifyEnabled() {
+ public void testDisplayPreference_torchPresent_cameraOn_screenOn_isVisible() {
setFlashNotificationsState(FlashNotificationsUtil.State.CAMERA_SCREEN);
mController.displayPreference(mPreferenceScreen);
- verify(mPreference).setEnabled(eq(true));
+
+ assertThat(mPreference.isVisible()).isTrue();
}
@Test
public void testHandlePreferenceTreeClick_invalidPreference() {
mController.handlePreferenceTreeClick(mock(Preference.class));
+
verify(mContext, never()).sendBroadcastAsUser(any(), any());
}
@@ -160,6 +166,7 @@
@Test
public void onStateChanged_onResume_cameraUri_verifyRegister() {
mController.onStateChanged(mock(LifecycleOwner.class), Lifecycle.Event.ON_RESUME);
+
verify(mContentResolver).registerContentObserver(
eq(Settings.System.getUriFor(Settings.System.CAMERA_FLASH_NOTIFICATION)),
anyBoolean(), eq(mController.mContentObserver));
@@ -168,6 +175,7 @@
@Test
public void onStateChanged_onResume_screenUri_verifyRegister() {
mController.onStateChanged(mock(LifecycleOwner.class), Lifecycle.Event.ON_RESUME);
+
verify(mContentResolver).registerContentObserver(
eq(Settings.System.getUriFor(Settings.System.SCREEN_FLASH_NOTIFICATION)),
anyBoolean(), eq(mController.mContentObserver));
@@ -176,6 +184,7 @@
@Test
public void onStateChanged_onPause_verifyUnregister() {
mController.onStateChanged(mock(LifecycleOwner.class), Lifecycle.Event.ON_PAUSE);
+
verify(mContentResolver).unregisterContentObserver(eq(mController.mContentObserver));
}
}
diff --git a/tests/robotests/src/com/android/settings/accessibility/KeyboardBounceKeyPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/accessibility/KeyboardBounceKeyPreferenceControllerTest.java
index 96beb43..bf6efd0 100644
--- a/tests/robotests/src/com/android/settings/accessibility/KeyboardBounceKeyPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/accessibility/KeyboardBounceKeyPreferenceControllerTest.java
@@ -25,6 +25,8 @@
import static org.mockito.Mockito.verify;
import android.content.Context;
+import android.platform.test.annotations.EnableFlags;
+import android.platform.test.flag.junit.SetFlagsRule;
import android.provider.Settings;
import androidx.preference.PreferenceManager;
@@ -34,19 +36,24 @@
import com.android.settings.core.BasePreferenceController;
+import org.junit.Assume;
import org.junit.Before;
+import org.junit.Rule;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.RobolectricTestRunner;
+import java.util.ArrayList;
+import java.util.List;
@RunWith(RobolectricTestRunner.class)
public class KeyboardBounceKeyPreferenceControllerTest {
-
private static final String KEY_ACCESSIBILITY_BOUNCE_KEYS =
Settings.Secure.ACCESSIBILITY_BOUNCE_KEYS;
private static final int UNKNOWN = -1;
+ @Rule
+ public final SetFlagsRule mSetFlagRule = new SetFlagsRule();
private final Context mContext = ApplicationProvider.getApplicationContext();
private final SwitchPreference mSwitchPreference = spy(new SwitchPreference(mContext));
private final KeyboardBounceKeyPreferenceController mController =
@@ -131,4 +138,26 @@
mContext.getContentResolver(), KEY_ACCESSIBILITY_BOUNCE_KEYS,
UNKNOWN)).isNotEqualTo(OFF);
}
+
+ @Test
+ @EnableFlags(Flags.FLAG_FIX_A11Y_SETTINGS_SEARCH)
+ public void updateNonIndexableKeys_physicalKeyboardExists_returnEmptyList() {
+ Assume.assumeTrue(AccessibilitySettings.isAnyHardKeyboardsExist());
+
+ List<String> nonIndexableKeys = new ArrayList<>();
+ mController.updateNonIndexableKeys(nonIndexableKeys);
+
+ assertThat(nonIndexableKeys).isEmpty();
+ }
+
+ @Test
+ @EnableFlags(Flags.FLAG_FIX_A11Y_SETTINGS_SEARCH)
+ public void updateNonIndexableKeys_noPhysicalKeyboard_returnPreKey() {
+ Assume.assumeFalse(AccessibilitySettings.isAnyHardKeyboardsExist());
+
+ List<String> nonIndexableKeys = new ArrayList<>();
+ mController.updateNonIndexableKeys(nonIndexableKeys);
+
+ assertThat(nonIndexableKeys).contains(mController.getPreferenceKey());
+ }
}
diff --git a/tests/robotests/src/com/android/settings/accessibility/KeyboardSlowKeyPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/accessibility/KeyboardSlowKeyPreferenceControllerTest.java
index 321b69f..2721a64 100644
--- a/tests/robotests/src/com/android/settings/accessibility/KeyboardSlowKeyPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/accessibility/KeyboardSlowKeyPreferenceControllerTest.java
@@ -25,6 +25,8 @@
import static org.mockito.Mockito.verify;
import android.content.Context;
+import android.platform.test.annotations.EnableFlags;
+import android.platform.test.flag.junit.SetFlagsRule;
import android.provider.Settings;
import androidx.preference.PreferenceManager;
@@ -34,19 +36,24 @@
import com.android.settings.core.BasePreferenceController;
+import org.junit.Assume;
import org.junit.Before;
+import org.junit.Rule;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.RobolectricTestRunner;
+import java.util.ArrayList;
+import java.util.List;
@RunWith(RobolectricTestRunner.class)
public class KeyboardSlowKeyPreferenceControllerTest {
-
private static final String KEY_ACCESSIBILITY_SLOW_KEYS =
Settings.Secure.ACCESSIBILITY_SLOW_KEYS;
private static final int UNKNOWN = -1;
+ @Rule
+ public final SetFlagsRule mSetFlagRule = new SetFlagsRule();
private final Context mContext = ApplicationProvider.getApplicationContext();
private final SwitchPreference mSwitchPreference = spy(new SwitchPreference(mContext));
private final KeyboardSlowKeyPreferenceController mController =
@@ -131,4 +138,26 @@
mContext.getContentResolver(), KEY_ACCESSIBILITY_SLOW_KEYS, UNKNOWN)).isNotEqualTo(
OFF);
}
+
+ @Test
+ @EnableFlags(Flags.FLAG_FIX_A11Y_SETTINGS_SEARCH)
+ public void updateNonIndexableKeys_physicalKeyboardExists_returnEmptyList() {
+ Assume.assumeTrue(AccessibilitySettings.isAnyHardKeyboardsExist());
+
+ List<String> nonIndexableKeys = new ArrayList<>();
+ mController.updateNonIndexableKeys(nonIndexableKeys);
+
+ assertThat(nonIndexableKeys).isEmpty();
+ }
+
+ @Test
+ @EnableFlags(Flags.FLAG_FIX_A11Y_SETTINGS_SEARCH)
+ public void updateNonIndexableKeys_noPhysicalKeyboard_returnPreKey() {
+ Assume.assumeFalse(AccessibilitySettings.isAnyHardKeyboardsExist());
+
+ List<String> nonIndexableKeys = new ArrayList<>();
+ mController.updateNonIndexableKeys(nonIndexableKeys);
+
+ assertThat(nonIndexableKeys).contains(mController.getPreferenceKey());
+ }
}
diff --git a/tests/robotests/src/com/android/settings/accessibility/KeyboardStickyKeyPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/accessibility/KeyboardStickyKeyPreferenceControllerTest.java
index 31d46b7..0001e85 100644
--- a/tests/robotests/src/com/android/settings/accessibility/KeyboardStickyKeyPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/accessibility/KeyboardStickyKeyPreferenceControllerTest.java
@@ -25,6 +25,8 @@
import static org.mockito.Mockito.verify;
import android.content.Context;
+import android.platform.test.annotations.EnableFlags;
+import android.platform.test.flag.junit.SetFlagsRule;
import android.provider.Settings;
import androidx.preference.PreferenceManager;
@@ -34,19 +36,24 @@
import com.android.settings.core.BasePreferenceController;
+import org.junit.Assume;
import org.junit.Before;
+import org.junit.Rule;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.RobolectricTestRunner;
+import java.util.ArrayList;
+import java.util.List;
@RunWith(RobolectricTestRunner.class)
public class KeyboardStickyKeyPreferenceControllerTest {
-
private static final String KEY_ACCESSIBILITY_STICKY_KEYS =
Settings.Secure.ACCESSIBILITY_STICKY_KEYS;
private static final int UNKNOWN = -1;
+ @Rule
+ public final SetFlagsRule mSetFlagRule = new SetFlagsRule();
private final Context mContext = ApplicationProvider.getApplicationContext();
private final SwitchPreference mSwitchPreference = spy(new SwitchPreference(mContext));
private final KeyboardStickyKeyPreferenceController mController =
@@ -129,4 +136,26 @@
assertThat(Settings.Secure.getInt(
mContext.getContentResolver(), KEY_ACCESSIBILITY_STICKY_KEYS, UNKNOWN)).isEqualTo(ON);
}
+
+ @Test
+ @EnableFlags(Flags.FLAG_FIX_A11Y_SETTINGS_SEARCH)
+ public void updateNonIndexableKeys_physicalKeyboardExists_returnEmptyList() {
+ Assume.assumeTrue(AccessibilitySettings.isAnyHardKeyboardsExist());
+
+ List<String> nonIndexableKeys = new ArrayList<>();
+ mController.updateNonIndexableKeys(nonIndexableKeys);
+
+ assertThat(nonIndexableKeys).isEmpty();
+ }
+
+ @Test
+ @EnableFlags(Flags.FLAG_FIX_A11Y_SETTINGS_SEARCH)
+ public void updateNonIndexableKeys_noPhysicalKeyboard_returnPreKey() {
+ Assume.assumeFalse(AccessibilitySettings.isAnyHardKeyboardsExist());
+
+ List<String> nonIndexableKeys = new ArrayList<>();
+ mController.updateNonIndexableKeys(nonIndexableKeys);
+
+ assertThat(nonIndexableKeys).contains(mController.getPreferenceKey());
+ }
}
diff --git a/tests/robotests/src/com/android/settings/accessibility/KeyboardVibrationTogglePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/accessibility/KeyboardVibrationTogglePreferenceControllerTest.java
index 569109c..78f49a6 100644
--- a/tests/robotests/src/com/android/settings/accessibility/KeyboardVibrationTogglePreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/accessibility/KeyboardVibrationTogglePreferenceControllerTest.java
@@ -33,7 +33,6 @@
import android.content.ContentResolver;
import android.content.Context;
import android.content.res.Resources;
-import android.os.vibrator.Flags;
import android.platform.test.flag.junit.SetFlagsRule;
import android.provider.Settings;
@@ -41,7 +40,6 @@
import androidx.preference.SwitchPreference;
import androidx.test.core.app.ApplicationProvider;
-import com.android.settings.R;
import com.android.settings.testutils.FakeFeatureFactory;
import org.junit.Before;
@@ -87,7 +85,6 @@
@Test
public void getAvailabilityStatus_featureSupported_available() {
- mSetFlagsRule.enableFlags(Flags.FLAG_KEYBOARD_CATEGORY_ENABLED);
when(mResources.getBoolean(
com.android.internal.R.bool.config_keyboardVibrationSettingsSupported))
.thenReturn(true);
@@ -97,7 +94,6 @@
@Test
public void getAvailabilityStatus_featureNotSupported_unavailable() {
- mSetFlagsRule.enableFlags(Flags.FLAG_KEYBOARD_CATEGORY_ENABLED);
when(mResources.getBoolean(
com.android.internal.R.bool.config_keyboardVibrationSettingsSupported))
.thenReturn(false);
@@ -105,15 +101,6 @@
assertThat(mController.getAvailabilityStatus()).isEqualTo(UNSUPPORTED_ON_DEVICE);
}
- @Test
- public void getAvailabilityStatus_keyboardCategoryDisabled_unavailable() {
- mSetFlagsRule.disableFlags(Flags.FLAG_KEYBOARD_CATEGORY_ENABLED);
- when(mResources.getBoolean(
- com.android.internal.R.bool.config_keyboardVibrationSettingsSupported))
- .thenReturn(true);
-
- assertThat(mController.getAvailabilityStatus()).isEqualTo(UNSUPPORTED_ON_DEVICE);
- }
@Test
public void updateState_mainVibrateDisabled_shouldReturnFalseForCheckedAndEnabled() {
diff --git a/tests/robotests/src/com/android/settings/accessibility/RestrictedPreferenceHelperTest.java b/tests/robotests/src/com/android/settings/accessibility/RestrictedPreferenceHelperTest.java
index b4f4dc1..2a41e62 100644
--- a/tests/robotests/src/com/android/settings/accessibility/RestrictedPreferenceHelperTest.java
+++ b/tests/robotests/src/com/android/settings/accessibility/RestrictedPreferenceHelperTest.java
@@ -31,9 +31,8 @@
import android.content.pm.ApplicationInfo;
import android.content.pm.ResolveInfo;
import android.content.pm.ServiceInfo;
-import android.platform.test.annotations.RequiresFlagsEnabled;
-import android.platform.test.flag.junit.CheckFlagsRule;
-import android.platform.test.flag.junit.DeviceFlagsValueProvider;
+import android.platform.test.annotations.DisableFlags;
+import android.platform.test.annotations.EnableFlags;
import android.platform.test.flag.junit.SetFlagsRule;
import androidx.test.core.app.ApplicationProvider;
@@ -83,8 +82,6 @@
@Rule
public final SetFlagsRule mSetFlagsRule = new SetFlagsRule();
- @Rule
- public final CheckFlagsRule mCheckFlagsRule = DeviceFlagsValueProvider.createCheckFlagsRule();
@Test
public void createAccessibilityServicePreferenceList_hasOneInfo_containsSameKey() {
@@ -100,7 +97,7 @@
}
@Test
- @RequiresFlagsEnabled(value = {android.security.Flags.FLAG_EXTEND_ECM_TO_ALL_SETTINGS,
+ @EnableFlags(value = {android.security.Flags.FLAG_EXTEND_ECM_TO_ALL_SETTINGS,
android.permission.flags.Flags.FLAG_ENHANCED_CONFIRMATION_MODE_APIS_ENABLED})
public void createAccessibilityServicePreferenceList_ecmRestricted_prefIsEcmRestricted() {
ShadowRestrictedLockUtilsInternal.setEcmRestrictedPkgs(
@@ -116,7 +113,7 @@
}
@Test
- @RequiresFlagsEnabled(value = {android.security.Flags.FLAG_EXTEND_ECM_TO_ALL_SETTINGS,
+ @EnableFlags(value = {android.security.Flags.FLAG_EXTEND_ECM_TO_ALL_SETTINGS,
android.permission.flags.Flags.FLAG_ENHANCED_CONFIRMATION_MODE_APIS_ENABLED})
public void createAccessibilityServicePreferenceList_ecmNotRestricted_prefIsNotEcmRestricted() {
ShadowRestrictedLockUtilsInternal.setEcmRestrictedPkgs();
@@ -144,6 +141,40 @@
assertThat(preference.getKey()).isEqualTo(key);
}
+ @Test
+ @EnableFlags(value = {android.security.Flags.FLAG_EXTEND_ECM_TO_ALL_SETTINGS,
+ android.permission.flags.Flags.FLAG_ENHANCED_CONFIRMATION_MODE_APIS_ENABLED})
+ @DisableFlags(Flags.FLAG_NEVER_RESTRICT_ACCESSIBILITY_ACTIVITY)
+ public void createAccessibilityActivityPreference_ecmRestricted_prefIsEcmRestricted() {
+ setMockAccessibilityShortcutInfo(mShortcutInfo);
+ ShadowRestrictedLockUtilsInternal.setEcmRestrictedPkgs(PACKAGE_NAME);
+
+ final List<AccessibilityActivityPreference> preferenceList =
+ mHelper.createAccessibilityActivityPreferenceList(List.of(mShortcutInfo));
+ assertThat(preferenceList).hasSize(1);
+ final RestrictedPreference preference = preferenceList.get(0);
+
+ assertThat(preference.isDisabledByEcm()).isTrue();
+ }
+
+ @Test
+ @EnableFlags(value = {
+ android.security.Flags.FLAG_EXTEND_ECM_TO_ALL_SETTINGS,
+ android.permission.flags.Flags.FLAG_ENHANCED_CONFIRMATION_MODE_APIS_ENABLED,
+ Flags.FLAG_NEVER_RESTRICT_ACCESSIBILITY_ACTIVITY,
+ })
+ public void createAccessibilityActivityPreference_ecmRestricted_prefIsNotEcmRestricted() {
+ setMockAccessibilityShortcutInfo(mShortcutInfo);
+ ShadowRestrictedLockUtilsInternal.setEcmRestrictedPkgs(PACKAGE_NAME);
+
+ final List<AccessibilityActivityPreference> preferenceList =
+ mHelper.createAccessibilityActivityPreferenceList(List.of(mShortcutInfo));
+ assertThat(preferenceList).hasSize(1);
+ final RestrictedPreference preference = preferenceList.get(0);
+
+ assertThat(preference.isDisabledByEcm()).isFalse();
+ }
+
private AccessibilityServiceInfo getMockAccessibilityServiceInfo(String packageName,
String className) {
final ApplicationInfo applicationInfo = new ApplicationInfo();
diff --git a/tests/robotests/src/com/android/settings/accessibility/ScreenFlashNotificationColorDialogFragmentTest.java b/tests/robotests/src/com/android/settings/accessibility/ScreenFlashNotificationColorDialogFragmentTest.java
index f3fa69d..ea48253 100644
--- a/tests/robotests/src/com/android/settings/accessibility/ScreenFlashNotificationColorDialogFragmentTest.java
+++ b/tests/robotests/src/com/android/settings/accessibility/ScreenFlashNotificationColorDialogFragmentTest.java
@@ -37,10 +37,13 @@
import android.content.Intent;
import android.graphics.Color;
+import android.os.Bundle;
+import android.provider.Settings;
import androidx.appcompat.app.AlertDialog;
import androidx.fragment.app.testing.FragmentScenario;
import androidx.lifecycle.Lifecycle;
+import androidx.test.core.app.ApplicationProvider;
import com.android.settings.R;
import com.android.settings.testutils.FakeTimer;
@@ -56,23 +59,26 @@
import java.util.List;
import java.util.Timer;
-import java.util.function.Consumer;
@RunWith(RobolectricTestRunner.class)
public class ScreenFlashNotificationColorDialogFragmentTest {
+ private static final int DEFAULT_COLOR = ROSE.mColorInt;
+
private FragmentScenario<TestScreenFlashNotificationColorDialogFragment> mFragmentScenario;
private ScreenFlashNotificationColorDialogFragment mDialogFragment;
private AlertDialog mAlertDialog;
private ColorSelectorLayout mColorSelectorLayout;
- private int mCurrentColor;
@Before
public void setUp() {
- mCurrentColor = ROSE.mColorInt;
+ Settings.System.putInt(ApplicationProvider.getApplicationContext().getContentResolver(),
+ Settings.System.SCREEN_FLASH_NOTIFICATION_COLOR, DEFAULT_COLOR);
+ Bundle fragmentArgs = new Bundle();
+ fragmentArgs.putInt(ScreenFlashNotificationColorDialogFragment.EXTRA_COLOR, DEFAULT_COLOR);
mFragmentScenario = FragmentScenario.launch(
TestScreenFlashNotificationColorDialogFragment.class,
- /* fragmentArgs= */ null,
+ fragmentArgs,
R.style.Theme_AlertDialog_SettingsLib,
Lifecycle.State.INITIALIZED);
setupFragment();
@@ -99,7 +105,7 @@
performClickOnDialog(BUTTON_NEUTRAL);
getTimerFromFragment().runOneTask();
- assertStartPreview(ROSE.mColorInt);
+ assertStartPreview(DEFAULT_COLOR);
}
@Test
@@ -168,20 +174,26 @@
}
@Test
- public void clickColorAndClickNegative_assertColor() {
+ public void clickColorAndClickNegative_assertDefaultColor() {
checkColorButton(AZURE);
performClickOnDialog(BUTTON_NEGATIVE);
assertThat(getTimerFromFragment()).isNull();
- assertThat(mCurrentColor).isEqualTo(ROSE.mColorInt);
+ assertThat(Settings.System.getInt(
+ ApplicationProvider.getApplicationContext().getContentResolver(),
+ Settings.System.SCREEN_FLASH_NOTIFICATION_COLOR, AZURE.mColorInt)).isEqualTo(
+ DEFAULT_COLOR);
}
@Test
- public void clickColorAndClickPositive_assertColor() {
+ public void clickColorAndClickPositive_assertSameColor() {
checkColorButton(BLUE);
performClickOnDialog(BUTTON_POSITIVE);
- assertThat(mCurrentColor).isEqualTo(BLUE.mColorInt);
+ assertThat(Settings.System.getInt(
+ ApplicationProvider.getApplicationContext().getContentResolver(),
+ Settings.System.SCREEN_FLASH_NOTIFICATION_COLOR, DEFAULT_COLOR)).isEqualTo(
+ BLUE.mColorInt);
}
private void checkColorButton(ScreenFlashNotificationColor color) {
@@ -201,11 +213,6 @@
}
private void setupFragment() {
- mFragmentScenario.onFragment(fragment -> {
- ReflectionHelpers.setField(fragment, "mCurrentColor", mCurrentColor);
- ReflectionHelpers.setField(fragment, "mConsumer",
- (Consumer<Integer>) selectedColor -> mCurrentColor = selectedColor);
- });
mFragmentScenario.moveToState(Lifecycle.State.RESUMED);
mFragmentScenario.onFragment(fragment -> {
diff --git a/tests/robotests/src/com/android/settings/accessibility/ScreenFlashNotificationPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/accessibility/ScreenFlashNotificationPreferenceControllerTest.java
index 95a9438..d7c1a0f 100644
--- a/tests/robotests/src/com/android/settings/accessibility/ScreenFlashNotificationPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/accessibility/ScreenFlashNotificationPreferenceControllerTest.java
@@ -57,8 +57,6 @@
import org.robolectric.annotation.Implements;
import org.robolectric.annotation.Resetter;
-import java.util.function.Consumer;
-
@RunWith(RobolectricTestRunner.class)
@Config(shadows = {
ScreenFlashNotificationPreferenceControllerTest
@@ -83,7 +81,6 @@
private FragmentManager mFragmentManager;
@Mock
private ScreenFlashNotificationColorDialogFragment mDialogFragment;
-
private ScreenFlashNotificationPreferenceController mController;
private ContentResolver mContentResolver;
@@ -92,6 +89,7 @@
MockitoAnnotations.initMocks(this);
FragmentActivity fragmentActivity = Robolectric.setupActivity(FragmentActivity.class);
Context context = fragmentActivity.getApplicationContext();
+
ShadowScreenFlashNotificationColorDialogFragment.setInstance(mDialogFragment);
ShadowFlashNotificationsUtils.setColorDescriptionText(COLOR_DESCRIPTION_TEXT);
@@ -99,8 +97,9 @@
mController = new ScreenFlashNotificationPreferenceController(context, PREFERENCE_KEY);
when(mPreferenceScreen.findPreference(PREFERENCE_KEY)).thenReturn(mPreference);
when(mPreference.getKey()).thenReturn(PREFERENCE_KEY);
- mController.setParentFragment(mParentFragment);
when(mParentFragment.getParentFragmentManager()).thenReturn(mFragmentManager);
+
+ mController.setParentFragment(mParentFragment);
}
@After
@@ -181,6 +180,7 @@
@Test
public void handlePreferenceTreeClick() {
mController.handlePreferenceTreeClick(mPreference);
+
verify(mDialogFragment).show(any(FragmentManager.class), anyString());
}
@@ -194,7 +194,7 @@
@Implementation
protected static ScreenFlashNotificationColorDialogFragment getInstance(
- int initialColor, Consumer<Integer> colorConsumer) {
+ int initialColor) {
return sInstance;
}
diff --git a/tests/robotests/src/com/android/settings/accessibility/ToggleAccessibilityServicePreferenceFragmentTest.java b/tests/robotests/src/com/android/settings/accessibility/ToggleAccessibilityServicePreferenceFragmentTest.java
index 5522361..008f542 100644
--- a/tests/robotests/src/com/android/settings/accessibility/ToggleAccessibilityServicePreferenceFragmentTest.java
+++ b/tests/robotests/src/com/android/settings/accessibility/ToggleAccessibilityServicePreferenceFragmentTest.java
@@ -299,21 +299,6 @@
}
@Test
- @DisableFlags(
- com.android.settings.accessibility.Flags.FLAG_EDIT_SHORTCUTS_IN_FULL_SCREEN)
- public void clickShortcutSettingsPreference_warningNotRequired_dontShowWarning_showDialog()
- throws Throwable {
- setupServiceWarningRequired(false);
- mFragment.mShortcutPreference = new ShortcutPreference(mContext, /* attrs= */null);
-
- mFragment.onSettingsClicked(mFragment.mShortcutPreference);
-
- assertThat(mFragment.mLastShownDialogId).isEqualTo(
- AccessibilityDialogUtils.DialogEnums.EDIT_SHORTCUT);
- }
-
- @Test
- @EnableFlags(com.android.settings.accessibility.Flags.FLAG_EDIT_SHORTCUTS_IN_FULL_SCREEN)
public void clickShortcutSettingsPreference_warningNotRequired_dontShowWarning_launchActivity()
throws Throwable {
setupServiceWarningRequired(false);
diff --git a/tests/robotests/src/com/android/settings/accessibility/ToggleFeaturePreferenceFragmentTest.java b/tests/robotests/src/com/android/settings/accessibility/ToggleFeaturePreferenceFragmentTest.java
index 04ff4fe..71855e0 100644
--- a/tests/robotests/src/com/android/settings/accessibility/ToggleFeaturePreferenceFragmentTest.java
+++ b/tests/robotests/src/com/android/settings/accessibility/ToggleFeaturePreferenceFragmentTest.java
@@ -16,11 +16,9 @@
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;
@@ -36,7 +34,6 @@
import android.content.ComponentName;
import android.content.ContentResolver;
import android.content.Context;
-import android.content.DialogInterface;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.icu.text.CaseMap;
@@ -48,10 +45,8 @@
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
-import android.widget.CheckBox;
import android.widget.PopupWindow;
-import androidx.appcompat.app.AlertDialog;
import androidx.fragment.app.FragmentActivity;
import androidx.preference.Preference;
import androidx.preference.PreferenceManager;
@@ -59,7 +54,6 @@
import androidx.test.core.app.ApplicationProvider;
import com.android.settings.R;
-import com.android.settings.accessibility.AccessibilityDialogUtils.DialogType;
import com.android.settings.accessibility.AccessibilityUtil.QuickSettingsTooltipType;
import com.android.settings.flags.Flags;
import com.android.settings.testutils.shadow.ShadowFragment;
@@ -79,7 +73,6 @@
import org.robolectric.annotation.Config;
import org.robolectric.shadow.api.Shadow;
import org.robolectric.shadows.ShadowApplication;
-import org.robolectric.shadows.ShadowLooper;
import java.util.Locale;
@@ -240,89 +233,6 @@
}
@Test
- public void dialogCheckboxClicked_hardwareType_skipTimeoutRestriction() {
- final ShortcutPreference shortcutPreference = new ShortcutPreference(mContext, /* attrs= */
- null);
- mFragment.mComponentName = PLACEHOLDER_COMPONENT_NAME;
- mFragment.mShortcutPreference = shortcutPreference;
- final AlertDialog dialog = AccessibilityDialogUtils.showEditShortcutDialog(
- mContext, DialogType.EDIT_SHORTCUT_GENERIC, PLACEHOLDER_DIALOG_TITLE,
- mFragment::callOnAlertDialogCheckboxClicked);
- mFragment.setupEditShortcutDialog(dialog);
-
- final View dialogHardwareView = dialog.findViewById(R.id.hardware_shortcut);
- final CheckBox hardwareTypeCheckBox = dialogHardwareView.findViewById(R.id.checkbox);
- hardwareTypeCheckBox.setChecked(true);
- dialog.getButton(DialogInterface.BUTTON_POSITIVE).callOnClick();
- ShadowLooper.idleMainLooper();
- final boolean skipTimeoutRestriction = Settings.Secure.getInt(mContext.getContentResolver(),
- Settings.Secure.SKIP_ACCESSIBILITY_SHORTCUT_DIALOG_TIMEOUT_RESTRICTION, 0) != 0;
-
- assertThat(skipTimeoutRestriction).isTrue();
- }
-
- @Test
- public void setupEditShortcutDialog_shortcutPreferenceOff_checkboxIsEmptyValue() {
- final AlertDialog dialog = AccessibilityDialogUtils.showEditShortcutDialog(
- mContext, DialogType.EDIT_SHORTCUT_GENERIC, PLACEHOLDER_DIALOG_TITLE,
- this::callEmptyOnClicked);
- final ShortcutPreference shortcutPreference = new ShortcutPreference(mContext, /* attrs= */
- null);
- mFragment.mComponentName = PLACEHOLDER_COMPONENT_NAME;
- mFragment.mShortcutPreference = shortcutPreference;
-
- mFragment.mShortcutPreference.setChecked(false);
- mFragment.setupEditShortcutDialog(dialog);
-
- final int checkboxValue = mFragment.getShortcutTypeCheckBoxValue();
- assertThat(checkboxValue).isEqualTo(DEFAULT);
- }
-
- @Test
- public void setupEditShortcutDialog_shortcutPreferenceOn_checkboxIsSavedValue() {
- final AlertDialog dialog = AccessibilityDialogUtils.showEditShortcutDialog(
- mContext, DialogType.EDIT_SHORTCUT_GENERIC, PLACEHOLDER_DIALOG_TITLE,
- this::callEmptyOnClicked);
- final ShortcutPreference shortcutPreference = new ShortcutPreference(mContext, /* attrs= */
- null);
- final PreferredShortcut hardwareShortcut = new PreferredShortcut(
- PLACEHOLDER_COMPONENT_NAME.flattenToString(), HARDWARE);
- mFragment.mComponentName = PLACEHOLDER_COMPONENT_NAME;
- mFragment.mShortcutPreference = shortcutPreference;
-
- PreferredShortcuts.saveUserShortcutType(mContext, hardwareShortcut);
- mFragment.mShortcutPreference.setChecked(true);
- mFragment.setupEditShortcutDialog(dialog);
-
- final int checkboxValue = mFragment.getShortcutTypeCheckBoxValue();
- assertThat(checkboxValue).isEqualTo(HARDWARE);
- }
-
- @Test
- @Config(shadows = ShadowFragment.class)
- public void restoreValueFromSavedInstanceState_assignShortcutTypeToVariable() {
- final AlertDialog dialog = AccessibilityDialogUtils.showEditShortcutDialog(
- mContext, DialogType.EDIT_SHORTCUT_GENERIC, PLACEHOLDER_DIALOG_TITLE,
- this::callEmptyOnClicked);
- final Bundle savedInstanceState = new Bundle();
- final ShortcutPreference shortcutPreference = new ShortcutPreference(mContext, /* attrs= */
- null);
- mFragment.mComponentName = PLACEHOLDER_COMPONENT_NAME;
- mFragment.mShortcutPreference = shortcutPreference;
-
- savedInstanceState.putInt(KEY_SAVED_USER_SHORTCUT_TYPE,
- SOFTWARE | HARDWARE);
- mFragment.onCreate(savedInstanceState);
- mFragment.setupEditShortcutDialog(dialog);
- final int value = mFragment.getShortcutTypeCheckBoxValue();
- mFragment.saveNonEmptyUserShortcutType(value);
-
- final int expectedType = PreferredShortcuts.retrieveUserShortcutType(mContext,
- mFragment.mComponentName.flattenToString());
- assertThat(expectedType).isEqualTo(SOFTWARE | HARDWARE);
- }
-
- @Test
@Config(shadows = ShadowFragment.class)
public void onPreferenceToggledOnDisabledService_notShowTooltipView() {
mFragment.onPreferenceToggled(
@@ -505,9 +415,6 @@
PreferredShortcut shortcut) {
PreferredShortcuts.saveUserShortcutType(context, shortcut);
}
-
- private void callEmptyOnClicked(DialogInterface dialog, int which) {}
-
private static PopupWindow getLatestPopupWindow() {
final ShadowApplication shadowApplication =
Shadow.extract(ApplicationProvider.getApplicationContext());
diff --git a/tests/robotests/src/com/android/settings/accessibility/ToggleScreenMagnificationPreferenceFragmentTest.java b/tests/robotests/src/com/android/settings/accessibility/ToggleScreenMagnificationPreferenceFragmentTest.java
index 6f9981a..22bb266 100644
--- a/tests/robotests/src/com/android/settings/accessibility/ToggleScreenMagnificationPreferenceFragmentTest.java
+++ b/tests/robotests/src/com/android/settings/accessibility/ToggleScreenMagnificationPreferenceFragmentTest.java
@@ -16,7 +16,6 @@
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;
@@ -25,7 +24,6 @@
import static com.android.settings.accessibility.AccessibilityUtil.State.OFF;
import static com.android.settings.accessibility.AccessibilityUtil.State.ON;
import static com.android.settings.accessibility.MagnificationCapabilities.MagnificationMode;
-import static com.android.settings.accessibility.ToggleFeaturePreferenceFragment.KEY_SAVED_USER_SHORTCUT_TYPE;
import static com.google.common.truth.Truth.assertThat;
@@ -42,7 +40,6 @@
import android.app.settings.SettingsEnums;
import android.content.ComponentName;
import android.content.Context;
-import android.content.DialogInterface;
import android.content.pm.PackageManager;
import android.content.res.Resources;
import android.database.ContentObserver;
@@ -57,7 +54,6 @@
import android.provider.Settings;
import android.view.accessibility.AccessibilityManager;
-import androidx.appcompat.app.AlertDialog;
import androidx.preference.Preference;
import androidx.preference.TwoStatePreference;
import androidx.test.core.app.ApplicationProvider;
@@ -66,7 +62,6 @@
import com.android.settings.DialogCreatable;
import com.android.settings.R;
import com.android.settings.SettingsActivity;
-import com.android.settings.accessibility.AccessibilityDialogUtils.DialogType;
import com.android.settings.testutils.AccessibilityTestUtils;
import com.android.settings.testutils.shadow.ShadowDeviceConfig;
import com.android.settings.testutils.shadow.ShadowStorageManager;
@@ -736,105 +731,6 @@
}
@Test
- public void setupMagnificationEditShortcutDialog_shortcutPreferenceOff_checkboxIsEmptyValue() {
- ToggleScreenMagnificationPreferenceFragment fragment =
- mFragController.create(R.id.main_content, /* bundle= */
- null).start().resume().get();
- fragment.mShortcutPreference = new ShortcutPreference(mContext, /* attrs= */ null);
-
- fragment.mShortcutPreference.setChecked(false);
- fragment.setupMagnificationEditShortcutDialog(
- createEditShortcutDialog(fragment.getActivity()));
-
- final int checkboxValue = fragment.getShortcutTypeCheckBoxValue();
- assertThat(checkboxValue).isEqualTo(DEFAULT);
- }
-
- @Test
- public void setupMagnificationEditShortcutDialog_shortcutPreferenceOn_checkboxIsSavedValue() {
- ToggleScreenMagnificationPreferenceFragment fragment =
- mFragController.create(R.id.main_content, /* bundle= */
- null).start().resume().get();
- final ShortcutPreference shortcutPreference = new ShortcutPreference(mContext, /* attrs= */
- null);
- final PreferredShortcut tripletapShortcut = new PreferredShortcut(
- MAGNIFICATION_CONTROLLER_NAME, TRIPLETAP);
- fragment.mShortcutPreference = shortcutPreference;
-
- PreferredShortcuts.saveUserShortcutType(mContext, tripletapShortcut);
- fragment.mShortcutPreference.setChecked(true);
- fragment.setupMagnificationEditShortcutDialog(
- createEditShortcutDialog(fragment.getActivity()));
-
- final int checkboxValue = fragment.getShortcutTypeCheckBoxValue();
- assertThat(checkboxValue).isEqualTo(TRIPLETAP);
- }
-
- @Test
- @EnableFlags(Flags.FLAG_ENABLE_MAGNIFICATION_MULTIPLE_FINGER_MULTIPLE_TAP_GESTURE)
- public void setupMagnificationEditShortcutDialog_twoFingerTripleTapOn_checkboxIsSavedValue() {
- ToggleScreenMagnificationPreferenceFragment fragment =
- mFragController.create(R.id.main_content, /* bundle= */
- null).start().resume().get();
- final ShortcutPreference shortcutPreference = new ShortcutPreference(mContext, /* attrs= */
- null);
- final PreferredShortcut twoFingerTripleTapShortcut = new PreferredShortcut(
- MAGNIFICATION_CONTROLLER_NAME, TWOFINGER_DOUBLETAP);
- fragment.mShortcutPreference = shortcutPreference;
-
- PreferredShortcuts.saveUserShortcutType(mContext, twoFingerTripleTapShortcut);
- fragment.mShortcutPreference.setChecked(true);
- fragment.setupMagnificationEditShortcutDialog(
- createEditShortcutDialog(fragment.getActivity()));
-
- final int checkboxValue = fragment.getShortcutTypeCheckBoxValue();
- assertThat(checkboxValue).isEqualTo(TWOFINGER_DOUBLETAP);
- }
-
- @Test
- public void restoreValueFromSavedInstanceState_assignToVariable() {
- final Bundle fragmentState = createFragmentSavedInstanceState(
- HARDWARE | TRIPLETAP);
- ToggleScreenMagnificationPreferenceFragment fragment = mFragController.get();
- // Had to use reflection to pass the savedInstanceState when launching the fragment
- ReflectionHelpers.setField(fragment, "mSavedFragmentState", fragmentState);
-
- FragmentController.of(fragment, SettingsActivity.class).create(
- R.id.main_content, /* bundle= */ null).start().resume().get();
- fragment.setupMagnificationEditShortcutDialog(
- createEditShortcutDialog(fragment.getActivity()));
- final int value = fragment.getShortcutTypeCheckBoxValue();
- fragment.saveNonEmptyUserShortcutType(value);
-
- final int expectedType = PreferredShortcuts.retrieveUserShortcutType(mContext,
- MAGNIFICATION_CONTROLLER_NAME);
- assertThat(value).isEqualTo(6);
- assertThat(expectedType).isEqualTo(HARDWARE | TRIPLETAP);
- }
-
- @Test
- @EnableFlags(Flags.FLAG_ENABLE_MAGNIFICATION_MULTIPLE_FINGER_MULTIPLE_TAP_GESTURE)
- public void restoreValueFromSavedInstanceState_twoFingerTripleTap_assignToVariable() {
- final Bundle fragmentState =
- createFragmentSavedInstanceState(TWOFINGER_DOUBLETAP);
- ToggleScreenMagnificationPreferenceFragment fragment = mFragController.get();
- // Had to use reflection to pass the savedInstanceState when launching the fragment
- ReflectionHelpers.setField(fragment, "mSavedFragmentState", fragmentState);
-
- FragmentController.of(fragment, SettingsActivity.class).create(
- R.id.main_content, /* bundle= */ null).start().resume().get();
- fragment.setupMagnificationEditShortcutDialog(
- createEditShortcutDialog(fragment.getActivity()));
- final int value = fragment.getShortcutTypeCheckBoxValue();
- fragment.saveNonEmptyUserShortcutType(value);
-
- final int expectedType = PreferredShortcuts.retrieveUserShortcutType(mContext,
- MAGNIFICATION_CONTROLLER_NAME);
- assertThat(value).isEqualTo(TWOFINGER_DOUBLETAP);
- assertThat(expectedType).isEqualTo(TWOFINGER_DOUBLETAP);
- }
-
- @Test
public void onCreateView_magnificationAreaNotSupported_settingsPreferenceIsNull() {
setWindowMagnificationSupported(
/* magnificationAreaSupported= */ false,
@@ -1022,7 +918,9 @@
assertThat(
ToggleScreenMagnificationPreferenceFragment.getServiceSummary(mContext).toString())
.isEqualTo(
- mContext.getString(R.string.preference_summary_default_combination,
+ mContext.getString(
+ com.android.settingslib.R.string
+ .preference_summary_default_combination,
mContext.getText(R.string.accessibility_summary_shortcut_enabled),
mContext.getText(R.string.magnification_feature_summary)));
}
@@ -1034,7 +932,9 @@
assertThat(
ToggleScreenMagnificationPreferenceFragment.getServiceSummary(mContext).toString())
.isEqualTo(
- mContext.getString(R.string.preference_summary_default_combination,
+ mContext.getString(
+ com.android.settingslib.R.string
+ .preference_summary_default_combination,
mContext.getText(
R.string.generic_accessibility_feature_shortcut_off),
mContext.getText(R.string.magnification_feature_summary)));
@@ -1049,7 +949,9 @@
assertThat(
ToggleScreenMagnificationPreferenceFragment.getServiceSummary(mContext).toString())
.isEqualTo(
- mContext.getString(R.string.preference_summary_default_combination,
+ mContext.getString(
+ com.android.settingslib.R.string
+ .preference_summary_default_combination,
mContext.getText(R.string.accessibility_summary_shortcut_enabled),
mContext.getText(R.string.magnification_feature_summary)));
}
@@ -1063,7 +965,9 @@
assertThat(
ToggleScreenMagnificationPreferenceFragment.getServiceSummary(mContext).toString())
.isEqualTo(
- mContext.getString(R.string.preference_summary_default_combination,
+ mContext.getString(
+ com.android.settingslib.R.string
+ .preference_summary_default_combination,
mContext.getText(
R.string.generic_accessibility_feature_shortcut_off),
mContext.getText(R.string.magnification_feature_summary)));
@@ -1159,9 +1063,6 @@
== ON;
}
- private void callEmptyOnClicked(DialogInterface dialog, int which) {
- }
-
private void setWindowMagnificationSupported(boolean magnificationAreaSupported,
boolean windowMagnificationSupported) {
when(mSpyResources.getBoolean(
@@ -1171,24 +1072,6 @@
windowMagnificationSupported);
}
- private AlertDialog createEditShortcutDialog(Context context) {
- context.setTheme(androidx.appcompat.R.style.Theme_AppCompat);
- return AccessibilityDialogUtils.showEditShortcutDialog(
- context,
- DialogType.EDIT_SHORTCUT_MAGNIFICATION, PLACEHOLDER_DIALOG_TITLE,
- this::callEmptyOnClicked);
- }
-
- private Bundle createFragmentSavedInstanceState(int userShortcutType) {
- final Bundle savedInstanceState = new Bundle();
- savedInstanceState.putInt(KEY_SAVED_USER_SHORTCUT_TYPE, userShortcutType);
- final Bundle fragmentState = new Bundle();
- fragmentState.putBundle(
- /* FragmentStateManager.SAVED_INSTANCE_STATE_KEY */ "savedInstanceState",
- savedInstanceState);
- return fragmentState;
- }
-
/**
* A test fragment that provides a way to change the context
*/
diff --git a/tests/robotests/src/com/android/settings/accessibility/shortcuts/FloatingButtonShortcutOptionControllerTest.java b/tests/robotests/src/com/android/settings/accessibility/shortcuts/FloatingButtonShortcutOptionControllerTest.java
index 20f5d5d..0952b09 100644
--- a/tests/robotests/src/com/android/settings/accessibility/shortcuts/FloatingButtonShortcutOptionControllerTest.java
+++ b/tests/robotests/src/com/android/settings/accessibility/shortcuts/FloatingButtonShortcutOptionControllerTest.java
@@ -16,37 +16,46 @@
package com.android.settings.accessibility.shortcuts;
-import static android.provider.Settings.Secure.ACCESSIBILITY_BUTTON_MODE_FLOATING_MENU;
-import static android.provider.Settings.Secure.ACCESSIBILITY_BUTTON_MODE_GESTURE;
-
import static com.google.common.truth.Truth.assertThat;
+import static org.mockito.Mockito.spy;
+
import android.content.ComponentName;
import android.content.Context;
-import android.provider.Settings;
+import android.platform.test.annotations.EnableFlags;
+import android.platform.test.flag.junit.SetFlagsRule;
+import android.provider.Flags;
import androidx.preference.PreferenceManager;
import androidx.preference.PreferenceScreen;
import androidx.test.core.app.ApplicationProvider;
import com.android.settings.R;
+import com.android.settings.testutils.AccessibilityTestUtils;
+import com.android.settings.testutils.shadow.SettingsShadowResources;
import org.junit.Before;
+import org.junit.Rule;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.RobolectricTestRunner;
+import org.robolectric.annotation.Config;
import java.util.Set;
/**
* Tests for {@link FloatingButtonShortcutOptionController}
*/
+@Config(shadows = SettingsShadowResources.class)
@RunWith(RobolectricTestRunner.class)
public class FloatingButtonShortcutOptionControllerTest {
+ @Rule
+ public final SetFlagsRule mSetFlagsRule = new SetFlagsRule();
+
private static final String PREF_KEY = "prefKey";
private static final String TARGET =
new ComponentName("FakePackage", "FakeClass").flattenToString();
- private final Context mContext = ApplicationProvider.getApplicationContext();
+ private final Context mContext = spy(ApplicationProvider.getApplicationContext());
private FloatingButtonShortcutOptionController mController;
private ShortcutOptionPreference mShortcutOptionPreference;
@@ -61,7 +70,6 @@
mShortcutOptionPreference.setKey(PREF_KEY);
mPreferenceScreen = new PreferenceManager(mContext).createPreferenceScreen(mContext);
mPreferenceScreen.addPreference(mShortcutOptionPreference);
- setFloatingButtonEnabled(true);
}
@Test
@@ -95,23 +103,26 @@
@Test
public void isShortcutAvailable_floatingMenuEnabled_returnTrue() {
- setFloatingButtonEnabled(true);
+ AccessibilityTestUtils.setSoftwareShortcutMode(
+ mContext, /* gestureNavEnabled= */ false, /* floatingButtonEnabled= */ true);
assertThat(mController.isShortcutAvailable()).isTrue();
}
@Test
public void isShortcutAvailable_floatingMenuDisabled_returnFalse() {
- setFloatingButtonEnabled(false);
+ AccessibilityTestUtils.setSoftwareShortcutMode(
+ mContext, /* gestureNavEnabled= */ false, /* floatingButtonEnabled= */ false);
assertThat(mController.isShortcutAvailable()).isFalse();
}
- private void setFloatingButtonEnabled(boolean enable) {
- int mode = enable
- ? ACCESSIBILITY_BUTTON_MODE_FLOATING_MENU : ACCESSIBILITY_BUTTON_MODE_GESTURE;
+ @Test
+ @EnableFlags(Flags.FLAG_A11Y_STANDALONE_GESTURE_ENABLED)
+ public void isShortcutAvailable_gestureNavigationMode_returnsTrue() {
+ AccessibilityTestUtils.setSoftwareShortcutMode(
+ mContext, /* gestureNavEnabled= */ true, /* floatingButtonEnabled= */ false);
- Settings.Secure.putInt(mContext.getContentResolver(),
- Settings.Secure.ACCESSIBILITY_BUTTON_MODE, mode);
+ assertThat(mController.isShortcutAvailable()).isTrue();
}
}
diff --git a/tests/robotests/src/com/android/settings/accessibility/shortcuts/GestureShortcutOptionControllerTest.java b/tests/robotests/src/com/android/settings/accessibility/shortcuts/GestureShortcutOptionControllerTest.java
index 0149cc3..1d46cae 100644
--- a/tests/robotests/src/com/android/settings/accessibility/shortcuts/GestureShortcutOptionControllerTest.java
+++ b/tests/robotests/src/com/android/settings/accessibility/shortcuts/GestureShortcutOptionControllerTest.java
@@ -16,6 +16,8 @@
package com.android.settings.accessibility.shortcuts;
+import static com.android.internal.accessibility.common.ShortcutConstants.UserShortcutType.GESTURE;
+import static com.android.internal.accessibility.common.ShortcutConstants.UserShortcutType.SOFTWARE;
import static com.android.settings.testutils.AccessibilityTestUtils.setupMockAccessibilityManager;
import static com.google.common.truth.Truth.assertThat;
@@ -25,6 +27,10 @@
import android.content.ComponentName;
import android.content.Context;
+import android.platform.test.annotations.DisableFlags;
+import android.platform.test.annotations.EnableFlags;
+import android.platform.test.flag.junit.SetFlagsRule;
+import android.provider.Flags;
import android.view.accessibility.AccessibilityManager;
import androidx.preference.PreferenceManager;
@@ -37,6 +43,7 @@
import com.android.settingslib.utils.StringUtil;
import org.junit.Before;
+import org.junit.Rule;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.RobolectricTestRunner;
@@ -50,6 +57,8 @@
@Config(shadows = SettingsShadowResources.class)
@RunWith(RobolectricTestRunner.class)
public class GestureShortcutOptionControllerTest {
+ @Rule
+ public final SetFlagsRule mSetFlagsRule = new SetFlagsRule();
private static final String PREF_KEY = "prefKey";
private static final String TARGET =
new ComponentName("FakePackage", "FakeClass").flattenToString();
@@ -137,6 +146,18 @@
}
@Test
+ @EnableFlags(Flags.FLAG_A11Y_STANDALONE_GESTURE_ENABLED)
+ public void getSummary_standaloneGestureFlagOn_verifyNoCustomizeA11yButtonTest() {
+ enableTouchExploration(true);
+ String expected = StringUtil.getIcuPluralsString(
+ mContext,
+ /* count= */ 3,
+ R.string.accessibility_shortcut_edit_dialog_summary_gesture);
+
+ assertThat(mController.getSummary().toString()).isEqualTo(expected);
+ }
+
+ @Test
public void isShortcutAvailable_inSuw_returnFalse() {
mController.setInSetupWizard(true);
@@ -144,6 +165,7 @@
}
@Test
+ @DisableFlags(Flags.FLAG_A11Y_STANDALONE_GESTURE_ENABLED)
public void isShortcutAvailable_notInSuwUseGestureNavSystemUseFab_returnFalse() {
mController.setInSetupWizard(false);
AccessibilityTestUtils.setSoftwareShortcutMode(
@@ -179,6 +201,28 @@
assertThat(mController.isShortcutAvailable()).isFalse();
}
+ @EnableFlags(Flags.FLAG_A11Y_STANDALONE_GESTURE_ENABLED)
+ @Test
+ public void isShortcutAvailable_floatingMenuEnabled_gestureNavEnabled_returnsTrue() {
+ mController.setInSetupWizard(false);
+ AccessibilityTestUtils.setSoftwareShortcutMode(
+ mContext, /* gestureNavEnabled= */ true, /* floatingButtonEnabled= */ true);
+
+ assertThat(mController.isShortcutAvailable()).isTrue();
+ }
+
+ @EnableFlags(Flags.FLAG_A11Y_STANDALONE_GESTURE_ENABLED)
+ @Test
+ public void getShortcutType_gesture() {
+ assertThat(mController.getShortcutType()).isEqualTo(GESTURE);
+ }
+
+ @DisableFlags(Flags.FLAG_A11Y_STANDALONE_GESTURE_ENABLED)
+ @Test
+ public void getShortcutType_software() {
+ assertThat(mController.getShortcutType()).isEqualTo(SOFTWARE);
+ }
+
private void enableTouchExploration(boolean enable) {
AccessibilityManager am = setupMockAccessibilityManager(mContext);
when(am.isTouchExplorationEnabled()).thenReturn(enable);
diff --git a/tests/robotests/src/com/android/settings/accessibility/shortcuts/ShortcutOptionPreferenceTest.java b/tests/robotests/src/com/android/settings/accessibility/shortcuts/ShortcutOptionPreferenceTest.java
index 954c72d..17d416f 100644
--- a/tests/robotests/src/com/android/settings/accessibility/shortcuts/ShortcutOptionPreferenceTest.java
+++ b/tests/robotests/src/com/android/settings/accessibility/shortcuts/ShortcutOptionPreferenceTest.java
@@ -62,7 +62,7 @@
@Test
public void bindViewHolder_imageResIdSet_shouldShowImageView() {
mShortcutOptionPreference.setIntroImageResId(
- R.drawable.accessibility_shortcut_type_hardware);
+ R.drawable.accessibility_shortcut_type_volume_keys);
mShortcutOptionPreference.onBindViewHolder(mViewHolder);
diff --git a/tests/robotests/src/com/android/settings/biometrics/combination/CombinedBiometricProfileSettingsTest.java b/tests/robotests/src/com/android/settings/biometrics/combination/CombinedBiometricProfileSettingsTest.java
index 8593860..4f8860e 100644
--- a/tests/robotests/src/com/android/settings/biometrics/combination/CombinedBiometricProfileSettingsTest.java
+++ b/tests/robotests/src/com/android/settings/biometrics/combination/CombinedBiometricProfileSettingsTest.java
@@ -24,7 +24,9 @@
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.anyInt;
import static org.mockito.ArgumentMatchers.anyLong;
+import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Mockito.doAnswer;
+import static org.mockito.Mockito.doNothing;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.doThrow;
import static org.mockito.Mockito.mock;
@@ -36,9 +38,12 @@
import android.content.Context;
import android.content.Intent;
import android.hardware.biometrics.BiometricManager;
+import android.hardware.biometrics.Flags;
import android.hardware.face.FaceManager;
import android.hardware.fingerprint.FingerprintManager;
import android.os.Bundle;
+import android.platform.test.annotations.EnableFlags;
+import android.platform.test.flag.junit.SetFlagsRule;
import android.util.AndroidRuntimeException;
import android.view.LayoutInflater;
import android.view.View;
@@ -57,6 +62,7 @@
import com.android.settings.biometrics.face.FaceStatusPreferenceController;
import com.android.settings.biometrics.fingerprint.FingerprintStatusPreferenceController;
import com.android.settings.password.ChooseLockSettingsHelper;
+import com.android.settings.password.ConfirmDeviceCredentialActivity;
import com.android.settings.testutils.FakeFeatureFactory;
import com.android.settings.testutils.shadow.ShadowFragment;
import com.android.settings.testutils.shadow.ShadowSettingsPreferenceFragment;
@@ -92,6 +98,8 @@
@Rule
public final MockitoRule mMockitoRule = MockitoJUnit.rule();
+ @Rule
+ public final SetFlagsRule mSetFlagsRule = new SetFlagsRule();
@Captor
private ArgumentCaptor<Preference> mPreferenceCaptor;
@Mock
@@ -119,8 +127,8 @@
mFragment = spy(new TestCombinedBiometricProfileSettings(mContext));
doReturn(mActivity).when(mFragment).getActivity();
doReturn(mBiometricManager).when(mActivity).getSystemService(BiometricManager.class);
- when(mBiometricManager.canAuthenticate(
- BiometricManager.Authenticators.MANDATORY_BIOMETRICS))
+ when(mBiometricManager.canAuthenticate(anyInt(),
+ eq(BiometricManager.Authenticators.MANDATORY_BIOMETRICS)))
.thenReturn(BiometricManager.BIOMETRIC_ERROR_HW_UNAVAILABLE);
ReflectionHelpers.setField(mFragment, "mDashboardFeatureProvider",
@@ -169,6 +177,26 @@
}
@Test
+ @EnableFlags(Flags.FLAG_MANDATORY_BIOMETRICS)
+ public void testLaunchBiometricPrompt_onCreateFragment() {
+ ArgumentCaptor<Intent> intentArgumentCaptor = ArgumentCaptor.forClass(Intent.class);
+ doNothing().when(mFragment).startActivityForResult(any(), anyInt());
+ when(mBiometricManager.canAuthenticate(anyInt(),
+ eq(BiometricManager.Authenticators.MANDATORY_BIOMETRICS)))
+ .thenReturn(BiometricManager.BIOMETRIC_SUCCESS);
+
+ mFragment.onAttach(mContext);
+ mFragment.onCreate(null);
+
+ verify(mFragment).startActivityForResult(intentArgumentCaptor.capture(),
+ eq(BiometricsSettingsBase.BIOMETRIC_AUTH_REQUEST));
+
+ Intent intent = intentArgumentCaptor.getValue();
+ assertThat(intent.getComponent().getClassName()).isEqualTo(
+ ConfirmDeviceCredentialActivity.InternalActivity.class.getName());
+ }
+
+ @Test
public void testClickFingerprintUnlockWithValidGkPwHandle() {
doAnswer(invocation -> {
final FingerprintManager.GenerateChallengeCallback callback =
diff --git a/tests/robotests/src/com/android/settings/biometrics/fingerprint/FingerprintSettingsFragmentTest.java b/tests/robotests/src/com/android/settings/biometrics/fingerprint/FingerprintSettingsFragmentTest.java
index 58e7e2d..ca76c1e 100644
--- a/tests/robotests/src/com/android/settings/biometrics/fingerprint/FingerprintSettingsFragmentTest.java
+++ b/tests/robotests/src/com/android/settings/biometrics/fingerprint/FingerprintSettingsFragmentTest.java
@@ -19,6 +19,7 @@
import static android.hardware.fingerprint.FingerprintSensorProperties.TYPE_POWER_BUTTON;
import static android.hardware.fingerprint.FingerprintSensorProperties.TYPE_UDFPS_OPTICAL;
+import static com.android.settings.biometrics.BiometricEnrollBase.BIOMETRIC_AUTH_REQUEST;
import static com.android.settings.biometrics.fingerprint.FingerprintSettings.FingerprintSettingsFragment;
import static com.android.settings.biometrics.fingerprint.FingerprintSettings.FingerprintSettingsFragment.CHOOSE_LOCK_GENERIC_REQUEST;
import static com.android.settings.biometrics.fingerprint.FingerprintSettings.FingerprintSettingsFragment.KEY_REQUIRE_SCREEN_ON_TO_AUTH;
@@ -34,18 +35,28 @@
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+import static org.robolectric.Shadows.shadowOf;
import android.content.Context;
import android.content.Intent;
+import android.content.pm.PackageManager;
import android.content.pm.UserInfo;
+import android.hardware.biometrics.BiometricManager;
import android.hardware.biometrics.ComponentInfoInternal;
+import android.hardware.biometrics.Flags;
import android.hardware.biometrics.SensorProperties;
+import android.hardware.fingerprint.Fingerprint;
import android.hardware.fingerprint.FingerprintManager;
import android.hardware.fingerprint.FingerprintSensorProperties;
import android.hardware.fingerprint.FingerprintSensorPropertiesInternal;
import android.os.Bundle;
import android.os.CancellationSignal;
+import android.os.Looper;
import android.os.UserHandle;
+import android.os.Vibrator;
+import android.platform.test.annotations.EnableFlags;
+import android.platform.test.flag.junit.SetFlagsRule;
import android.provider.Settings;
import android.view.LayoutInflater;
import android.view.ViewGroup;
@@ -53,9 +64,12 @@
import androidx.fragment.app.FragmentActivity;
import androidx.fragment.app.FragmentManager;
import androidx.fragment.app.FragmentTransaction;
+import androidx.preference.Preference;
import androidx.test.core.app.ApplicationProvider;
import com.android.settings.password.ChooseLockSettingsHelper;
+import com.android.settings.password.ConfirmDeviceCredentialActivity;
+import com.android.settings.search.BaseSearchIndexProvider;
import com.android.settings.testutils.FakeFeatureFactory;
import com.android.settings.testutils.shadow.ShadowFragment;
import com.android.settings.testutils.shadow.ShadowLockPatternUtils;
@@ -80,11 +94,17 @@
import org.robolectric.annotation.Config;
import java.util.ArrayList;
+import java.util.List;
@RunWith(RobolectricTestRunner.class)
@Config(shadows = {ShadowSettingsPreferenceFragment.class, ShadowUtils.class, ShadowFragment.class,
ShadowUserManager.class, ShadowLockPatternUtils.class})
public class FingerprintSettingsFragmentTest {
+ @Rule
+ public final SetFlagsRule mSetFlagsRule = new SetFlagsRule();
+ @Rule
+ public final MockitoRule mMockitoRule = MockitoJUnit.rule();
+
private static final int PRIMARY_USER_ID = 0;
private static final int GUEST_USER_ID = 10;
@@ -92,12 +112,14 @@
private Context mContext;
private FragmentActivity mActivity;
- @Rule
- public final MockitoRule mMockitoRule = MockitoJUnit.rule();
@Mock
private FingerprintManager mFingerprintManager;
@Mock
private FragmentTransaction mFragmentTransaction;
+ @Mock
+ private PackageManager mPackageManager;
+ @Mock
+ private BiometricManager mBiometricManager;
@Captor
private ArgumentCaptor<CancellationSignal> mCancellationSignalArgumentCaptor =
@@ -107,7 +129,11 @@
mAuthenticationCallbackArgumentCaptor = ArgumentCaptor.forClass(
FingerprintManager.AuthenticationCallback.class);
+ @Mock
+ private Vibrator mVibrator;
+
private FingerprintAuthenticateSidecar mFingerprintAuthenticateSidecar;
+ private FingerprintRemoveSidecar mFingerprintRemoveSidecar;
@Before
public void setUp() {
@@ -117,8 +143,12 @@
mContext = spy(ApplicationProvider.getApplicationContext());
mFragment = spy(new FingerprintSettingsFragment());
doReturn(mContext).when(mFragment).getContext();
-
+ doReturn(mBiometricManager).when(mContext).getSystemService(BiometricManager.class);
doReturn(true).when(mFingerprintManager).isHardwareDetected();
+ doReturn(mVibrator).when(mContext).getSystemService(Vibrator.class);
+ when(mBiometricManager.canAuthenticate(
+ BiometricManager.Authenticators.MANDATORY_BIOMETRICS))
+ .thenReturn(BiometricManager.BIOMETRIC_ERROR_HW_UNAVAILABLE);
}
@After
@@ -139,6 +169,25 @@
false)).isTrue();
}
+ @Test
+ @EnableFlags(Flags.FLAG_MANDATORY_BIOMETRICS)
+ public void testLaunchBiometricPromptForFingerprint() {
+ when(mBiometricManager.canAuthenticate(
+ BiometricManager.Authenticators.MANDATORY_BIOMETRICS))
+ .thenReturn(BiometricManager.BIOMETRIC_SUCCESS);
+
+ setUpFragment(false);
+ ArgumentCaptor<Intent> intentArgumentCaptor = ArgumentCaptor.forClass(
+ Intent.class);
+
+ verify(mFragment).startActivityForResult(intentArgumentCaptor.capture(),
+ eq(BIOMETRIC_AUTH_REQUEST));
+
+ Intent intent = intentArgumentCaptor.getValue();
+ assertThat(intent.getComponent().getClassName()).isEqualTo(
+ ConfirmDeviceCredentialActivity.InternalActivity.class.getName());
+ }
+
// Test the case when FingerprintAuthenticateSidecar receives an error callback from the
// framework or from another authentication client. The cancellation signal should not be set
// to null because there may exist a running authentication client.
@@ -182,7 +231,7 @@
1,
UserHandle.of(GUEST_USER_ID).getIdentifier());
- setUpFragment(false, GUEST_USER_ID, TYPE_POWER_BUTTON);
+ setUpFragment(false, GUEST_USER_ID, TYPE_POWER_BUTTON, 1);
final RestrictedSwitchPreference requireScreenOnToAuthPreference = mFragment.findPreference(
KEY_REQUIRE_SCREEN_ON_TO_AUTH);
@@ -190,11 +239,15 @@
}
private void setUpFragment(boolean showChooseLock) {
- setUpFragment(showChooseLock, PRIMARY_USER_ID, TYPE_UDFPS_OPTICAL);
+ setUpFragment(showChooseLock, PRIMARY_USER_ID, TYPE_UDFPS_OPTICAL, 1);
+ }
+
+ private void setUpFragment(boolean showChooseLock, int maxFingerprints) {
+ setUpFragment(showChooseLock, PRIMARY_USER_ID, TYPE_UDFPS_OPTICAL, maxFingerprints);
}
private void setUpFragment(boolean showChooseLock, int userId,
- @FingerprintSensorProperties.SensorType int sensorType) {
+ @FingerprintSensorProperties.SensorType int sensorType, int maxFingerprints) {
ShadowUserManager.getShadow().addProfile(new UserInfo(userId, "", 0));
Intent intent = new Intent();
@@ -216,9 +269,13 @@
doReturn(mFingerprintAuthenticateSidecar).when(fragmentManager).findFragmentByTag(
"authenticate_sidecar");
+ mFingerprintRemoveSidecar = new FingerprintRemoveSidecar();
+ doReturn(mFingerprintRemoveSidecar).when(fragmentManager).findFragmentByTag(
+ "removal_sidecar");
+
doNothing().when(mFragment).startActivityForResult(any(Intent.class), anyInt());
- setSensor(sensorType);
+ setSensor(sensorType, maxFingerprints);
// Start fragment
mFragment.onAttach(mContext);
@@ -235,12 +292,70 @@
assertThat(mFragment.isVisible()).isTrue();
}
- private void setSensor(@FingerprintSensorProperties.SensorType int sensorType) {
+ @Test
+ @Ignore("b/353726774")
+ public void fingerprintVibratesOnAuthSuccess() {
+ setUpFragment(false);
+
+ doNothing().when(mFingerprintManager).authenticate(any(),
+ mCancellationSignalArgumentCaptor.capture(),
+ mAuthenticationCallbackArgumentCaptor.capture(), any(), anyInt());
+
+ mFingerprintAuthenticateSidecar.startAuthentication(1);
+
+ assertThat(mAuthenticationCallbackArgumentCaptor.getValue()).isNotNull();
+ assertThat(mCancellationSignalArgumentCaptor.getValue()).isNotNull();
+
+ mAuthenticationCallbackArgumentCaptor.getValue()
+ .onAuthenticationSucceeded(new FingerprintManager.AuthenticationResult(null,
+ new Fingerprint("finger 1", 1, 1), 0 /* userId */, false));
+
+ shadowOf(Looper.getMainLooper()).idle();
+ verify(mVibrator).vibrate(FingerprintSettings.SUCCESS_VIBRATION_EFFECT);
+ }
+
+ @Test
+ public void testNotIndexable_whenDisabled() {
+ doReturn(mPackageManager).when(mContext).getPackageManager();
+ doReturn(false)
+ .when(mPackageManager).hasSystemFeature(PackageManager.FEATURE_FINGERPRINT);
+
+ final BaseSearchIndexProvider provider = FingerprintSettingsFragment.SEARCH_INDEX_DATA_PROVIDER;
+ assertThat(provider.getDynamicRawDataToIndex(mContext, true)).isEmpty();
+ }
+
+ @Ignore("b/353726774")
+ @Test
+ public void testAddButtonWorksAfterRemovalError() {
+ final Fingerprint fingerprint = new Fingerprint("Test", 0, 0);
+ doReturn(List.of(fingerprint)).when(mFingerprintManager).getEnrolledFingerprints(anyInt());
+ setUpFragment(false, 5);
+ shadowOf(Looper.getMainLooper()).idle();
+ final Preference addPref = mFragment.findPreference("key_fingerprint_add");
+ final FingerprintSettings.FingerprintPreference fpPref =
+ mFragment.findPreference("key_fingerprint_item_0");
+ assertThat(fpPref).isNotNull();
+ assertThat(addPref).isNotNull();
+ assertThat(addPref.isEnabled()).isTrue();
+
+ mFingerprintRemoveSidecar.setListener(mFragment.mRemovalListener);
+ mFragment.deleteFingerPrint(fingerprint);
+ verify(mFingerprintManager).remove(any(), anyInt(), any());
+ assertThat(addPref.isEnabled()).isFalse();
+
+ mFingerprintRemoveSidecar.mRemoveCallback.onRemovalError(fingerprint, 0, "failure");
+
+ shadowOf(Looper.getMainLooper()).idle();
+ assertThat(addPref.isEnabled()).isTrue();
+ }
+
+ private void setSensor(@FingerprintSensorProperties.SensorType int sensorType,
+ int maxFingerprints) {
final ArrayList<FingerprintSensorPropertiesInternal> props = new ArrayList<>();
props.add(new FingerprintSensorPropertiesInternal(
0 /* sensorId */,
SensorProperties.STRENGTH_STRONG,
- 1 /* maxEnrollmentsPerUser */,
+ maxFingerprints /* maxEnrollmentsPerUser */,
new ArrayList<ComponentInfoInternal>(),
sensorType,
true /* resetLockoutRequiresHardwareAuthToken */));
diff --git a/tests/robotests/src/com/android/settings/bluetooth/BluetoothDetailsProfilesControllerTest.java b/tests/robotests/src/com/android/settings/bluetooth/BluetoothDetailsProfilesControllerTest.java
index 2d1f4c0..4f084a4 100644
--- a/tests/robotests/src/com/android/settings/bluetooth/BluetoothDetailsProfilesControllerTest.java
+++ b/tests/robotests/src/com/android/settings/bluetooth/BluetoothDetailsProfilesControllerTest.java
@@ -44,6 +44,7 @@
import com.android.settingslib.R;
import com.android.settingslib.bluetooth.A2dpProfile;
import com.android.settingslib.bluetooth.CachedBluetoothDeviceManager;
+import com.android.settingslib.bluetooth.HearingAidProfile;
import com.android.settingslib.bluetooth.LeAudioProfile;
import com.android.settingslib.bluetooth.LocalBluetoothManager;
import com.android.settingslib.bluetooth.LocalBluetoothProfile;
@@ -90,8 +91,12 @@
@Mock
private CachedBluetoothDeviceManager mCachedBluetoothDeviceManager;
- private @Mock A2dpProfile mA2dpProfile;
- private @Mock LeAudioProfile mLeAudioProfile;
+ @Mock
+ private A2dpProfile mA2dpProfile;
+ @Mock
+ private LeAudioProfile mLeAudioProfile;
+ @Mock
+ private HearingAidProfile mHearingAidProfile;
@Override
public void setUp() {
@@ -109,7 +114,7 @@
setUpMockProfiles();
when(mCachedBluetoothDeviceManager.getCachedDevicesCopy())
.thenReturn(ImmutableList.of(mCachedDevice));
- when(mCachedDevice.getConnectableProfiles())
+ when(mCachedDevice.getUiAccessibleProfiles())
.thenAnswer(invocation -> new ArrayList<>(mConnectableProfiles));
when(mCachedDevice.getProfiles())
.thenAnswer(invocation -> ImmutableList.of(mConnectableProfiles));
@@ -399,18 +404,23 @@
when(mProfileManager.getProfileByName(eq(mA2dpProfile.toString())))
.thenReturn(mA2dpProfile);
when(mA2dpProfile.getNameResource(any()))
- .thenReturn(com.android.settingslib.R.string.bluetooth_profile_a2dp);
+ .thenReturn(R.string.bluetooth_profile_a2dp);
when(mA2dpProfile.getHighQualityAudioOptionLabel(any())).thenReturn(
- mContext.getString(com.android.settingslib.R
- .string.bluetooth_profile_a2dp_high_quality_unknown_codec));
+ mContext.getString(R.string.bluetooth_profile_a2dp_high_quality_unknown_codec));
when(mA2dpProfile.isProfileReady()).thenReturn(true);
when(mProfileManager.getA2dpProfile()).thenReturn(mA2dpProfile);
when(mLeAudioProfile.toString()).thenReturn("LE_AUDIO");
when(mLeAudioProfile.getNameResource(any()))
- .thenReturn(com.android.settingslib.R.string.bluetooth_profile_le_audio);
+ .thenReturn(R.string.bluetooth_profile_le_audio);
when(mLeAudioProfile.isProfileReady()).thenReturn(true);
when(mProfileManager.getLeAudioProfile()).thenReturn(mLeAudioProfile);
+
+ when(mHearingAidProfile.toString()).thenReturn("HearingAid");
+ when(mHearingAidProfile.getNameResource(any()))
+ .thenReturn(R.string.bluetooth_profile_hearing_aid);
+ when(mHearingAidProfile.isProfileReady()).thenReturn(true);
+ when(mProfileManager.getHearingAidProfile()).thenReturn(mHearingAidProfile);
}
private void addA2dpProfileToDevice(boolean preferred, boolean supportsHighQualityAudio,
@@ -426,6 +436,11 @@
mConnectableProfiles.add(mLeAudioProfile);
}
+ private void addHearingAidProfileToDevice(boolean enabled) {
+ when(mHearingAidProfile.isEnabled(any())).thenReturn(enabled);
+ mConnectableProfiles.add(mHearingAidProfile);
+ }
+
private SwitchPreferenceCompat getHighQualityAudioPref() {
return (SwitchPreferenceCompat) mScreen.findPreference(
BluetoothDetailsProfilesController.HIGH_QUALITY_AUDIO_PREF_TAG);
@@ -591,4 +606,27 @@
List<SwitchPreferenceCompat> switches = getProfileSwitches(false);
assertThat(switches.get(0).isVisible()).isFalse();
}
+
+ @Test
+ public void ashaHearingAid_hideAshaToggle() {
+ setupDevice(makeDefaultDeviceConfig());
+ addHearingAidProfileToDevice(true);
+
+ showScreen(mController);
+
+ List<SwitchPreferenceCompat> switches = getProfileSwitches(false);
+ assertThat(switches.isEmpty()).isTrue();
+ }
+ @Test
+ public void ashaHearingAidWithLeAudio_showLeAudioToggle() {
+ setupDevice(makeDefaultDeviceConfig());
+ addHearingAidProfileToDevice(false);
+ addLeAudioProfileToDevice(true);
+
+ showScreen(mController);
+
+ List<SwitchPreferenceCompat> switches = getProfileSwitches(false);
+ assertThat(switches.getFirst().getTitle()).isEqualTo(
+ mContext.getString(mLeAudioProfile.getNameResource(mDevice)));
+ }
}
diff --git a/tests/robotests/src/com/android/settings/bluetooth/BluetoothDevicePreferenceTest.java b/tests/robotests/src/com/android/settings/bluetooth/BluetoothDevicePreferenceTest.java
index 03113421..ba90ccf 100644
--- a/tests/robotests/src/com/android/settings/bluetooth/BluetoothDevicePreferenceTest.java
+++ b/tests/robotests/src/com/android/settings/bluetooth/BluetoothDevicePreferenceTest.java
@@ -18,10 +18,10 @@
import static com.google.common.truth.Truth.assertThat;
import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.never;
-import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
@@ -32,22 +32,31 @@
import android.graphics.drawable.Drawable;
import android.os.UserManager;
import android.util.Pair;
-import android.view.ContextThemeWrapper;
+
+import androidx.test.core.app.ApplicationProvider;
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
import com.android.settings.R;
import com.android.settings.testutils.FakeFeatureFactory;
import com.android.settings.testutils.shadow.ShadowAlertDialogCompat;
+import com.android.settings.testutils.shadow.ShadowBluetoothUtils;
import com.android.settingslib.bluetooth.CachedBluetoothDevice;
+import com.android.settingslib.bluetooth.CachedBluetoothDeviceManager;
+import com.android.settingslib.bluetooth.LocalBluetoothManager;
import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
+import com.google.common.collect.ImmutableList;
+import com.google.common.collect.ImmutableSet;
+
import org.junit.Before;
+import org.junit.Rule;
import org.junit.Test;
import org.junit.runner.RunWith;
+import org.mockito.ArgumentCaptor;
import org.mockito.Mock;
-import org.mockito.MockitoAnnotations;
+import org.mockito.junit.MockitoJUnit;
+import org.mockito.junit.MockitoRule;
import org.robolectric.RobolectricTestRunner;
-import org.robolectric.RuntimeEnvironment;
import org.robolectric.annotation.Config;
import org.robolectric.util.ReflectionHelpers;
@@ -57,18 +66,21 @@
import java.util.List;
@RunWith(RobolectricTestRunner.class)
-@Config(shadows = {ShadowAlertDialogCompat.class})
+@Config(shadows = {ShadowAlertDialogCompat.class,
+ com.android.settings.testutils.shadow.ShadowBluetoothUtils.class})
public class BluetoothDevicePreferenceTest {
private static final boolean SHOW_DEVICES_WITHOUT_NAMES = true;
- private static final String MAC_ADDRESS = "04:52:C7:0B:D8:3C";
- private static final String MAC_ADDRESS_2 = "05:52:C7:0B:D8:3C";
- private static final String MAC_ADDRESS_3 = "06:52:C7:0B:D8:3C";
- private static final String MAC_ADDRESS_4 = "07:52:C7:0B:D8:3C";
+ private static final String TEST_MAC_ADDRESS = "04:52:C7:0B:D8:3C";
+ private static final String TEST_MAC_ADDRESS_1 = "05:52:C7:0B:D8:3C";
+ private static final String TEST_MAC_ADDRESS_2 = "06:52:C7:0B:D8:3C";
+ private static final String TEST_MAC_ADDRESS_3 = "07:52:C7:0B:D8:3C";
private static final Comparator<BluetoothDevicePreference> COMPARATOR =
Comparator.naturalOrder();
private static final String FAKE_DESCRIPTION = "fake_description";
+ private static final int TEST_DEVICE_GROUP_ID = 1;
- private Context mContext;
+ @Rule
+ public final MockitoRule mockito = MockitoJUnit.rule();
@Mock
private CachedBluetoothDevice mCachedBluetoothDevice;
@Mock
@@ -89,35 +101,37 @@
private Drawable mDrawable;
@Mock
private BluetoothAdapter mBluetoothAdapter;
+ @Mock
+ private LocalBluetoothManager mLocalBluetoothManager;
+ @Mock
+ private CachedBluetoothDeviceManager mDeviceManager;
+ private Context mContext = ApplicationProvider.getApplicationContext();
private FakeFeatureFactory mFakeFeatureFactory;
private MetricsFeatureProvider mMetricsFeatureProvider;
+
private BluetoothDevicePreference mPreference;
private List<BluetoothDevicePreference> mPreferenceList = new ArrayList<>();
@Before
public void setUp() {
- MockitoAnnotations.initMocks(this);
- Context context = spy(RuntimeEnvironment.application.getApplicationContext());
- mContext = new ContextThemeWrapper(context, R.style.Theme_Settings);
+ mContext.setTheme(R.style.Theme_Settings);
mFakeFeatureFactory = FakeFeatureFactory.setupForTest();
mMetricsFeatureProvider = mFakeFeatureFactory.getMetricsFeatureProvider();
- when(mCachedBluetoothDevice.getAddress()).thenReturn(MAC_ADDRESS);
- when(mCachedBluetoothDevice.getDrawableWithDescription())
- .thenReturn(new Pair<>(mDrawable, FAKE_DESCRIPTION));
- when(mCachedBluetoothDevice.getDevice()).thenReturn(mBluetoothDevice);
- when(mCachedDevice1.getAddress()).thenReturn(MAC_ADDRESS_2);
- when(mCachedDevice1.getDrawableWithDescription())
- .thenReturn(new Pair<>(mDrawable, FAKE_DESCRIPTION));
- when(mCachedDevice1.getDevice()).thenReturn(mBluetoothDevice1);
- when(mCachedDevice2.getAddress()).thenReturn(MAC_ADDRESS_3);
- when(mCachedDevice2.getDrawableWithDescription())
- .thenReturn(new Pair<>(mDrawable, FAKE_DESCRIPTION));
- when(mCachedDevice2.getDevice()).thenReturn(mBluetoothDevice2);
- when(mCachedDevice3.getAddress()).thenReturn(MAC_ADDRESS_4);
- when(mCachedDevice3.getDrawableWithDescription())
- .thenReturn(new Pair<>(mDrawable, FAKE_DESCRIPTION));
- when(mCachedDevice3.getDevice()).thenReturn(mBluetoothDevice3);
+ ShadowBluetoothUtils.sLocalBluetoothManager = mLocalBluetoothManager;
+ mLocalBluetoothManager = Utils.getLocalBtManager(mContext);
+ when(mLocalBluetoothManager.getCachedDeviceManager()).thenReturn(mDeviceManager);
+ prepareCachedBluetoothDevice(mCachedBluetoothDevice, TEST_MAC_ADDRESS,
+ new Pair<>(mDrawable, FAKE_DESCRIPTION), TEST_DEVICE_GROUP_ID, mBluetoothDevice);
+ prepareCachedBluetoothDevice(mCachedDevice1, TEST_MAC_ADDRESS_1,
+ new Pair<>(mDrawable, FAKE_DESCRIPTION), TEST_DEVICE_GROUP_ID, mBluetoothDevice1);
+ prepareCachedBluetoothDevice(mCachedDevice2, TEST_MAC_ADDRESS_2,
+ new Pair<>(mDrawable, FAKE_DESCRIPTION), TEST_DEVICE_GROUP_ID, mBluetoothDevice2);
+ prepareCachedBluetoothDevice(mCachedDevice3, TEST_MAC_ADDRESS_3,
+ new Pair<>(mDrawable, FAKE_DESCRIPTION), TEST_DEVICE_GROUP_ID, mBluetoothDevice3);
+ when(mDeviceManager.getCachedDevicesCopy()).thenReturn(
+ ImmutableList.of(mCachedBluetoothDevice));
+
mPreference = new BluetoothDevicePreference(mContext, mCachedBluetoothDevice,
SHOW_DEVICES_WITHOUT_NAMES, BluetoothDevicePreference.SortType.TYPE_DEFAULT);
mPreference.mBluetoothAdapter = mBluetoothAdapter;
@@ -301,7 +315,8 @@
// callback is not removed.
mPreference.onAttached();
- verify(mCachedBluetoothDevice, times(1)).registerCallback(any());
+ verify(mCachedBluetoothDevice, times(1)).registerCallback(eq(mContext.getMainExecutor()),
+ any());
verify(mBluetoothAdapter, times(1)).addOnMetadataChangedListener(any(), any(), any());
}
@@ -313,7 +328,99 @@
mPreference.onAttached();
verify(mCachedBluetoothDevice, times(1)).unregisterCallback(any());
- verify(mCachedBluetoothDevice, times(2)).registerCallback(any());
+ verify(mCachedBluetoothDevice, times(2)).registerCallback(eq(mContext.getMainExecutor()),
+ any());
verify(mBluetoothAdapter, times(2)).addOnMetadataChangedListener(any(), any(), any());
}
+
+ @Test
+ public void onDeviceAttributesChanged_updatePreference() {
+ when(mCachedBluetoothDevice.getName()).thenReturn("Name");
+ mPreference.onAttached();
+ final String updatedName = "updatedName";
+ when(mCachedBluetoothDevice.getName()).thenReturn(updatedName);
+
+ getCachedBluetoothDeviceCallback().onDeviceAttributesChanged();
+
+ assertThat(mPreference.getTitle().toString()).isEqualTo(updatedName);
+ }
+
+ @Test
+ public void onAttached_memberDevicesAdded_registerAllCallback() {
+ when(mCachedBluetoothDevice.getMemberDevice()).thenReturn(
+ ImmutableSet.of(mCachedDevice1, mCachedDevice2, mCachedDevice3));
+ when(mDeviceManager.getCachedDevicesCopy()).thenReturn(
+ ImmutableList.of(mCachedBluetoothDevice, mCachedDevice1, mCachedDevice2,
+ mCachedDevice3));
+ mPreference = new BluetoothDevicePreference(mContext, mCachedBluetoothDevice,
+ SHOW_DEVICES_WITHOUT_NAMES, BluetoothDevicePreference.SortType.TYPE_DEFAULT);
+
+ mPreference.onAttached();
+
+ verify(mCachedBluetoothDevice).registerCallback(eq(mContext.getMainExecutor()), any());
+ verify(mCachedDevice1).registerCallback(eq(mContext.getMainExecutor()), any());
+ verify(mCachedDevice2).registerCallback(eq(mContext.getMainExecutor()), any());
+ verify(mCachedDevice3).registerCallback(eq(mContext.getMainExecutor()), any());
+ }
+
+ @Test
+ public void onDetached_memberDevicesAdded_unregisterAllCallback() {
+ when(mCachedBluetoothDevice.getMemberDevice()).thenReturn(
+ ImmutableSet.of(mCachedDevice1, mCachedDevice2, mCachedDevice3));
+ when(mDeviceManager.getCachedDevicesCopy()).thenReturn(
+ ImmutableList.of(mCachedBluetoothDevice, mCachedDevice1, mCachedDevice2,
+ mCachedDevice3));
+ mPreference = new BluetoothDevicePreference(mContext, mCachedBluetoothDevice,
+ SHOW_DEVICES_WITHOUT_NAMES, BluetoothDevicePreference.SortType.TYPE_DEFAULT);
+
+ mPreference.onAttached();
+ mPreference.onDetached();
+
+ verify(mCachedBluetoothDevice).unregisterCallback(any());
+ verify(mCachedDevice1).unregisterCallback(any());
+ verify(mCachedDevice2).unregisterCallback(any());
+ verify(mCachedDevice3).unregisterCallback(any());
+ }
+
+ @Test
+ public void onDeviceAttributesChanged_memberDevicesChanged_registerOnlyExistDeviceCallback() {
+ when(mCachedBluetoothDevice.getMemberDevice()).thenReturn(
+ ImmutableSet.of(mCachedDevice1, mCachedDevice2, mCachedDevice3));
+ when(mDeviceManager.getCachedDevicesCopy()).thenReturn(
+ ImmutableList.of(mCachedBluetoothDevice, mCachedDevice1, mCachedDevice2,
+ mCachedDevice3));
+ mPreference = new BluetoothDevicePreference(mContext, mCachedBluetoothDevice,
+ SHOW_DEVICES_WITHOUT_NAMES, BluetoothDevicePreference.SortType.TYPE_DEFAULT);
+ mPreference.onAttached();
+ when(mCachedBluetoothDevice.getMemberDevice()).thenReturn(
+ ImmutableSet.of(mCachedDevice1, mCachedDevice2));
+ when(mDeviceManager.getCachedDevicesCopy()).thenReturn(
+ ImmutableList.of(mCachedBluetoothDevice, mCachedDevice1, mCachedDevice2));
+
+ getCachedBluetoothDeviceCallback().onDeviceAttributesChanged();
+
+ verify(mCachedBluetoothDevice, times(2)).registerCallback(eq(mContext.getMainExecutor()),
+ any());
+ verify(mCachedDevice1, times(2)).registerCallback(eq(mContext.getMainExecutor()), any());
+ verify(mCachedDevice2, times(2)).registerCallback(eq(mContext.getMainExecutor()), any());
+ verify(mCachedDevice3, times(1)).registerCallback(eq(mContext.getMainExecutor()), any());
+ }
+
+ private void prepareCachedBluetoothDevice(CachedBluetoothDevice cachedDevice, String address,
+ Pair<Drawable, String> drawableWithDescription, int groupId,
+ BluetoothDevice bluetoothDevice) {
+ when(cachedDevice.getAddress()).thenReturn(address);
+ when(cachedDevice.getDrawableWithDescription()).thenReturn(drawableWithDescription);
+ when(cachedDevice.getGroupId()).thenReturn(groupId);
+ when(cachedDevice.getDevice()).thenReturn(bluetoothDevice);
+ }
+
+ private CachedBluetoothDevice.Callback getCachedBluetoothDeviceCallback() {
+ ArgumentCaptor<CachedBluetoothDevice.Callback> callbackCaptor = ArgumentCaptor.forClass(
+ CachedBluetoothDevice.Callback.class);
+ verify(mCachedBluetoothDevice).registerCallback(eq(mContext.getMainExecutor()),
+ callbackCaptor.capture());
+
+ return callbackCaptor.getValue();
+ }
}
diff --git a/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/AudioSharingCallAudioDialogFragmentTest.java b/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/AudioSharingCallAudioDialogFragmentTest.java
index 51ed899..ceafcf0 100644
--- a/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/AudioSharingCallAudioDialogFragmentTest.java
+++ b/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/AudioSharingCallAudioDialogFragmentTest.java
@@ -99,7 +99,7 @@
mParent = new Fragment();
FragmentController.setupFragment(
mParent, FragmentActivity.class, /* containerViewId= */ 0, /* bundle= */ null);
- AudioSharingCallAudioDialogFragment.show(mParent, new ArrayList<>(), (item) -> {});
+ AudioSharingCallAudioDialogFragment.show(mParent, new ArrayList<>(), -1, (item) -> {});
shadowMainLooper().idle();
AlertDialog dialog = ShadowAlertDialogCompat.getLatestAlertDialog();
assertThat(dialog).isNull();
@@ -109,7 +109,7 @@
public void onCreateDialog_unattachedFragment_dialogNotExist() {
mSetFlagsRule.enableFlags(Flags.FLAG_ENABLE_LE_AUDIO_SHARING);
mParent = new Fragment();
- AudioSharingCallAudioDialogFragment.show(mParent, new ArrayList<>(), (item) -> {});
+ AudioSharingCallAudioDialogFragment.show(mParent, new ArrayList<>(), -1, (item) -> {});
shadowMainLooper().idle();
AlertDialog dialog = ShadowAlertDialogCompat.getLatestAlertDialog();
assertThat(dialog).isNull();
@@ -138,7 +138,7 @@
ArrayList<AudioSharingDeviceItem> deviceItemList = new ArrayList<>();
deviceItemList.add(TEST_DEVICE_ITEM1);
deviceItemList.add(TEST_DEVICE_ITEM2);
- AudioSharingCallAudioDialogFragment.show(mParent, deviceItemList, (item) -> {});
+ AudioSharingCallAudioDialogFragment.show(mParent, deviceItemList, 0, (item) -> {});
shadowMainLooper().idle();
AlertDialog dialog = ShadowAlertDialogCompat.getLatestAlertDialog();
assertThat(dialog).isNotNull();
diff --git a/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/AudioSharingCallAudioPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/AudioSharingCallAudioPreferenceControllerTest.java
index c72b5a5..87ae3d5 100644
--- a/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/AudioSharingCallAudioPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/AudioSharingCallAudioPreferenceControllerTest.java
@@ -16,7 +16,6 @@
package com.android.settings.connecteddevice.audiosharing;
-import static com.android.settings.connecteddevice.audiosharing.AudioSharingUtils.SETTINGS_KEY_FALLBACK_DEVICE_GROUP_ID;
import static com.android.settings.core.BasePreferenceController.AVAILABLE;
import static com.android.settings.core.BasePreferenceController.UNSUPPORTED_ON_DEVICE;
@@ -64,6 +63,7 @@
import com.android.settings.testutils.shadow.ShadowBluetoothUtils;
import com.android.settings.testutils.shadow.ShadowThreadUtils;
import com.android.settingslib.bluetooth.BluetoothEventManager;
+import com.android.settingslib.bluetooth.BluetoothUtils;
import com.android.settingslib.bluetooth.CachedBluetoothDevice;
import com.android.settingslib.bluetooth.CachedBluetoothDeviceManager;
import com.android.settingslib.bluetooth.LocalBluetoothLeBroadcast;
@@ -197,7 +197,8 @@
verify(mBtEventManager, never()).registerCallback(mController);
verify(mContentResolver, never())
.registerContentObserver(
- Settings.Secure.getUriFor(SETTINGS_KEY_FALLBACK_DEVICE_GROUP_ID),
+ Settings.Secure.getUriFor(
+ BluetoothUtils.getPrimaryGroupIdUriForBroadcast()),
false,
mContentObserver);
verify(mAssistant, never())
@@ -211,7 +212,8 @@
verify(mBtEventManager).registerCallback(mController);
verify(mContentResolver)
.registerContentObserver(
- Settings.Secure.getUriFor(SETTINGS_KEY_FALLBACK_DEVICE_GROUP_ID),
+ Settings.Secure.getUriFor(
+ BluetoothUtils.getPrimaryGroupIdUriForBroadcast()),
false,
mContentObserver);
verify(mAssistant)
@@ -319,9 +321,7 @@
public void onProfileConnectionStateChanged_noDeviceInSharing_updateSummary() {
Settings.Secure.putInt(mContentResolver, TEST_SETTINGS_KEY, TEST_DEVICE_GROUP_ID1);
when(mBroadcast.isEnabled(any())).thenReturn(true);
- when(mAssistant.getDevicesMatchingConnectionStates(
- new int[] {BluetoothProfile.STATE_CONNECTED}))
- .thenReturn(ImmutableList.of());
+ when(mAssistant.getAllConnectedDevices()).thenReturn(ImmutableList.of());
mController.displayPreference(mScreen);
mPreference.setSummary("test");
mController.onProfileConnectionStateChanged(
@@ -340,9 +340,7 @@
when(mCachedDevice1.getName()).thenReturn(TEST_DEVICE_NAME1);
when(mCacheManager.findDevice(mDevice1)).thenReturn(mCachedDevice1);
when(mBroadcast.isEnabled(any())).thenReturn(true);
- when(mAssistant.getDevicesMatchingConnectionStates(
- new int[] {BluetoothProfile.STATE_CONNECTED}))
- .thenReturn(ImmutableList.of(mDevice1));
+ when(mAssistant.getAllConnectedDevices()).thenReturn(ImmutableList.of(mDevice1));
when(mAssistant.getAllSources(any())).thenReturn(ImmutableList.of(mState));
mController.displayPreference(mScreen);
mContentObserver.onChange(true);
@@ -369,8 +367,7 @@
when(mCacheManager.findDevice(mDevice2)).thenReturn(mCachedDevice2);
when(mCacheManager.findDevice(mDevice3)).thenReturn(mCachedDevice3);
when(mBroadcast.isEnabled(any())).thenReturn(true);
- when(mAssistant.getDevicesMatchingConnectionStates(
- new int[] {BluetoothProfile.STATE_CONNECTED}))
+ when(mAssistant.getAllConnectedDevices())
.thenReturn(ImmutableList.of(mDevice1, mDevice2, mDevice3));
when(mAssistant.getAllSources(any())).thenReturn(ImmutableList.of(mState));
mController.displayPreference(mScreen);
@@ -389,9 +386,7 @@
when(mCachedDevice1.getName()).thenReturn(TEST_DEVICE_NAME1);
when(mCacheManager.findDevice(mDevice1)).thenReturn(mCachedDevice1);
when(mBroadcast.isEnabled(any())).thenReturn(true);
- when(mAssistant.getDevicesMatchingConnectionStates(
- new int[] {BluetoothProfile.STATE_CONNECTED}))
- .thenReturn(ImmutableList.of(mDevice1));
+ when(mAssistant.getAllConnectedDevices()).thenReturn(ImmutableList.of(mDevice1));
when(mAssistant.getAllSources(any())).thenReturn(ImmutableList.of(mState));
mController.displayPreference(mScreen);
shadowOf(Looper.getMainLooper()).idle();
@@ -403,9 +398,7 @@
Settings.Secure.putInt(
mContentResolver, TEST_SETTINGS_KEY, BluetoothCsipSetCoordinator.GROUP_ID_INVALID);
when(mBroadcast.isEnabled(any())).thenReturn(true);
- when(mAssistant.getDevicesMatchingConnectionStates(
- new int[] {BluetoothProfile.STATE_CONNECTED}))
- .thenReturn(ImmutableList.of());
+ when(mAssistant.getAllConnectedDevices()).thenReturn(ImmutableList.of());
mController.displayPreference(mScreen);
shadowOf(Looper.getMainLooper()).idle();
assertThat(mPreference.getSummary().toString()).isEmpty();
@@ -429,9 +422,7 @@
when(mCacheManager.findDevice(mDevice2)).thenReturn(mCachedDevice2);
mShadowBluetoothAdapter.setMostRecentlyConnectedDevices(List.of(mDevice1, mDevice2));
when(mBroadcast.isEnabled(any())).thenReturn(true);
- when(mAssistant.getDevicesMatchingConnectionStates(
- new int[] {BluetoothProfile.STATE_CONNECTED}))
- .thenReturn(ImmutableList.of(mDevice1, mDevice2));
+ when(mAssistant.getAllConnectedDevices()).thenReturn(ImmutableList.of(mDevice1, mDevice2));
when(mAssistant.getAllSources(any())).thenReturn(ImmutableList.of(mState));
mController.init(mParentFragment);
mController.displayPreference(mScreen);
@@ -521,18 +512,14 @@
Settings.Secure.putInt(
mContentResolver, TEST_SETTINGS_KEY, BluetoothCsipSetCoordinator.GROUP_ID_INVALID);
when(mBroadcast.isEnabled(any())).thenReturn(true);
- when(mAssistant.getDevicesMatchingConnectionStates(
- new int[] {BluetoothProfile.STATE_CONNECTED}))
- .thenReturn(ImmutableList.of());
+ when(mAssistant.getAllConnectedDevices()).thenReturn(ImmutableList.of());
mController.displayPreference(mScreen);
shadowOf(Looper.getMainLooper()).idle();
assertThat(mPreference.getSummary().toString()).isEmpty();
// onReceiveStateChanged will update summary
Settings.Secure.putInt(mContentResolver, TEST_SETTINGS_KEY, TEST_DEVICE_GROUP_ID1);
- when(mAssistant.getDevicesMatchingConnectionStates(
- new int[] {BluetoothProfile.STATE_CONNECTED}))
- .thenReturn(ImmutableList.of(mDevice1));
+ when(mAssistant.getAllConnectedDevices()).thenReturn(ImmutableList.of(mDevice1));
when(mAssistant.getAllSources(any())).thenReturn(ImmutableList.of(mState));
mController.mBroadcastAssistantCallback.onReceiveStateChanged(
mDevice1, /* sourceId= */ 1, mState);
@@ -552,17 +539,13 @@
Settings.Secure.putInt(
mContentResolver, TEST_SETTINGS_KEY, BluetoothCsipSetCoordinator.GROUP_ID_INVALID);
when(mBroadcast.isEnabled(any())).thenReturn(true);
- when(mAssistant.getDevicesMatchingConnectionStates(
- new int[] {BluetoothProfile.STATE_CONNECTED}))
- .thenReturn(ImmutableList.of());
+ when(mAssistant.getAllConnectedDevices()).thenReturn(ImmutableList.of());
mController.displayPreference(mScreen);
shadowOf(Looper.getMainLooper()).idle();
assertThat(mPreference.getSummary().toString()).isEmpty();
Settings.Secure.putInt(mContentResolver, TEST_SETTINGS_KEY, TEST_DEVICE_GROUP_ID1);
- when(mAssistant.getDevicesMatchingConnectionStates(
- new int[] {BluetoothProfile.STATE_CONNECTED}))
- .thenReturn(ImmutableList.of(mDevice1));
+ when(mAssistant.getAllConnectedDevices()).thenReturn(ImmutableList.of(mDevice1));
when(mAssistant.getAllSources(any())).thenReturn(ImmutableList.of(mState));
mController.mBroadcastAssistantCallback.onSearchStarted(/* reason= */ 1);
mController.mBroadcastAssistantCallback.onSearchStartFailed(/* reason= */ 1);
diff --git a/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDashboardFragmentTest.java b/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDashboardFragmentTest.java
index 8e4915c..7d8846d 100644
--- a/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDashboardFragmentTest.java
+++ b/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDashboardFragmentTest.java
@@ -21,10 +21,12 @@
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
import android.app.settings.SettingsEnums;
import android.content.Context;
import android.os.Bundle;
+import android.view.View;
import androidx.test.core.app.ApplicationProvider;
@@ -52,6 +54,7 @@
@Mock private SettingsActivity mActivity;
@Mock private SettingsMainSwitchBar mSwitchBar;
+ @Mock private View mView;
@Mock private AudioSharingDeviceVolumeGroupController mVolumeGroupController;
@Mock private AudioSharingCallAudioPreferenceController mCallAudioController;
@Mock private AudioSharingPlaySoundPreferenceController mPlaySoundController;
@@ -61,6 +64,7 @@
@Before
public void setUp() {
+ when(mSwitchBar.getRootView()).thenReturn(mView);
mFragment = new AudioSharingDashboardFragment();
}
diff --git a/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDevicePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDevicePreferenceControllerTest.java
index f3f32ae..03f1303 100644
--- a/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDevicePreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDevicePreferenceControllerTest.java
@@ -303,7 +303,7 @@
@Test
public void onProfileConnectionStateChanged_notMediaDevice_doNothing() {
- doReturn(ImmutableList.of()).when(mCachedDevice).getConnectableProfiles();
+ doReturn(ImmutableList.of()).when(mCachedDevice).getUiAccessibleProfiles();
mController.onProfileConnectionStateChanged(
mCachedDevice, BluetoothAdapter.STATE_CONNECTED, BluetoothProfile.HID_DEVICE);
verifyNoInteractions(mDialogHandler);
@@ -313,7 +313,7 @@
public void onProfileConnectionStateChanged_leaDeviceDisconnected_closeOpeningDialogsForIt() {
// Test when LEA device LE_AUDIO_BROADCAST_ASSISTANT disconnected.
when(mDevice.isConnected()).thenReturn(true);
- doReturn(ImmutableList.of(mLeAudioProfile)).when(mCachedDevice).getConnectableProfiles();
+ doReturn(ImmutableList.of(mLeAudioProfile)).when(mCachedDevice).getUiAccessibleProfiles();
doReturn(ImmutableList.of(mLeAudioProfile)).when(mCachedDevice).getProfiles();
mController.onProfileConnectionStateChanged(
mCachedDevice,
@@ -325,7 +325,7 @@
@Test
public void onProfileConnectionStateChanged_assistantProfileConnecting_doNothing() {
// Test when LEA device LE_AUDIO_BROADCAST_ASSISTANT connecting
- doReturn(ImmutableList.of(mLeAudioProfile)).when(mCachedDevice).getConnectableProfiles();
+ doReturn(ImmutableList.of(mLeAudioProfile)).when(mCachedDevice).getUiAccessibleProfiles();
doReturn(ImmutableList.of(mLeAudioProfile)).when(mCachedDevice).getProfiles();
mController.onProfileConnectionStateChanged(
mCachedDevice,
@@ -338,7 +338,7 @@
public void onProfileConnectionStateChanged_otherProfileConnected_doNothing() {
// Test when LEA device other profile connected
when(mDevice.isConnected()).thenReturn(true);
- doReturn(ImmutableList.of(mLeAudioProfile)).when(mCachedDevice).getConnectableProfiles();
+ doReturn(ImmutableList.of(mLeAudioProfile)).when(mCachedDevice).getUiAccessibleProfiles();
doReturn(ImmutableList.of(mLeAudioProfile)).when(mCachedDevice).getProfiles();
mController.onProfileConnectionStateChanged(
mCachedDevice, BluetoothAdapter.STATE_CONNECTED, BluetoothProfile.A2DP);
@@ -349,7 +349,7 @@
public void onProfileConnectionStateChanged_otherProfileConnecting_doNothing() {
// Test when LEA device other profile connecting
when(mDevice.isConnected()).thenReturn(true);
- doReturn(ImmutableList.of(mLeAudioProfile)).when(mCachedDevice).getConnectableProfiles();
+ doReturn(ImmutableList.of(mLeAudioProfile)).when(mCachedDevice).getUiAccessibleProfiles();
doReturn(ImmutableList.of(mLeAudioProfile)).when(mCachedDevice).getProfiles();
mController.onProfileConnectionStateChanged(
mCachedDevice, BluetoothAdapter.STATE_CONNECTING, BluetoothProfile.A2DP);
@@ -360,7 +360,7 @@
public void onProfileConnectionStateChanged_assistantProfileConnected_handle() {
// Test when LEA device LE_AUDIO_BROADCAST_ASSISTANT connected
when(mDevice.isConnected()).thenReturn(true);
- doReturn(ImmutableList.of(mLeAudioProfile)).when(mCachedDevice).getConnectableProfiles();
+ doReturn(ImmutableList.of(mLeAudioProfile)).when(mCachedDevice).getUiAccessibleProfiles();
doReturn(ImmutableList.of(mLeAudioProfile)).when(mCachedDevice).getProfiles();
mController.onProfileConnectionStateChanged(
mCachedDevice,
@@ -374,7 +374,7 @@
onProfileConnectionStateChanged_nonLeaDeviceDisconnected_closeOpeningDialogsForIt() {
// Test when non-LEA device totally disconnected
when(mLeAudioProfile.isEnabled(mDevice)).thenReturn(false);
- doReturn(ImmutableList.of(mA2dpProfile)).when(mCachedDevice).getConnectableProfiles();
+ doReturn(ImmutableList.of(mA2dpProfile)).when(mCachedDevice).getUiAccessibleProfiles();
doReturn(ImmutableList.of(mLeAudioProfile, mA2dpProfile)).when(mCachedDevice).getProfiles();
when(mCachedDevice.isConnected()).thenReturn(false);
mController.onProfileConnectionStateChanged(
@@ -390,7 +390,7 @@
.thenReturn(BluetoothAdapter.STATE_CONNECTED);
doReturn(ImmutableList.of(mA2dpProfile, mHeadsetProfile))
.when(mCachedDevice)
- .getConnectableProfiles();
+ .getUiAccessibleProfiles();
doReturn(ImmutableList.of(mA2dpProfile, mHeadsetProfile)).when(mCachedDevice).getProfiles();
mController.onProfileConnectionStateChanged(
mCachedDevice, BluetoothAdapter.STATE_CONNECTED, BluetoothProfile.A2DP);
@@ -405,7 +405,7 @@
.thenReturn(BluetoothAdapter.STATE_DISCONNECTED);
doReturn(ImmutableList.of(mA2dpProfile, mHeadsetProfile))
.when(mCachedDevice)
- .getConnectableProfiles();
+ .getUiAccessibleProfiles();
doReturn(ImmutableList.of(mA2dpProfile, mHeadsetProfile)).when(mCachedDevice).getProfiles();
mController.onProfileConnectionStateChanged(
mCachedDevice, BluetoothAdapter.STATE_CONNECTED, BluetoothProfile.A2DP);
diff --git a/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDeviceVolumeControlUpdaterTest.java b/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDeviceVolumeControlUpdaterTest.java
index 3c12946..95e51e9 100644
--- a/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDeviceVolumeControlUpdaterTest.java
+++ b/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDeviceVolumeControlUpdaterTest.java
@@ -31,15 +31,11 @@
import static org.mockito.Mockito.when;
import static org.robolectric.Shadows.shadowOf;
-import android.app.settings.SettingsEnums;
import android.bluetooth.BluetoothDevice;
import android.bluetooth.BluetoothLeBroadcastReceiveState;
import android.bluetooth.BluetoothProfile;
import android.content.Context;
-import android.media.AudioManager;
import android.os.Looper;
-import android.provider.Settings;
-import android.widget.SeekBar;
import androidx.preference.Preference;
import androidx.test.core.app.ApplicationProvider;
@@ -47,7 +43,6 @@
import com.android.settings.bluetooth.BluetoothDevicePreference;
import com.android.settings.bluetooth.Utils;
import com.android.settings.connecteddevice.DevicePreferenceCallback;
-import com.android.settings.testutils.FakeFeatureFactory;
import com.android.settings.testutils.shadow.ShadowBluetoothUtils;
import com.android.settingslib.bluetooth.CachedBluetoothDevice;
import com.android.settingslib.bluetooth.CachedBluetoothDeviceManager;
@@ -55,7 +50,6 @@
import com.android.settingslib.bluetooth.LocalBluetoothLeBroadcastAssistant;
import com.android.settingslib.bluetooth.LocalBluetoothManager;
import com.android.settingslib.bluetooth.LocalBluetoothProfileManager;
-import com.android.settingslib.bluetooth.VolumeControlProfile;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableSet;
@@ -80,13 +74,7 @@
@Config(shadows = {ShadowBluetoothUtils.class})
public class AudioSharingDeviceVolumeControlUpdaterTest {
private static final String TEST_DEVICE_NAME = "test";
- private static final String TAG = "AudioSharingDeviceVolumeControlUpdater";
- private static final String TEST_SETTINGS_KEY =
- "bluetooth_le_broadcast_fallback_active_group_id";
- private static final int TEST_DEVICE_GROUP_ID = 1;
- private static final int TEST_VOLUME_VALUE = 255;
- private static final int TEST_MAX_STREAM_VALUE = 10;
- private static final int TEST_MIN_STREAM_VALUE = 0;
+ private static final String TAG = "AudioSharingVolUpdater";
@Rule public final MockitoRule mMockitoRule = MockitoJUnit.rule();
@@ -98,39 +86,32 @@
@Mock private LocalBluetoothProfileManager mLocalBtProfileManager;
@Mock private LocalBluetoothLeBroadcast mBroadcast;
@Mock private LocalBluetoothLeBroadcastAssistant mAssistant;
- @Mock private VolumeControlProfile mVolumeControl;
@Mock private BluetoothLeBroadcastReceiveState mState;
- @Mock private AudioManager mAudioManager;
private Context mContext;
private AudioSharingDeviceVolumeControlUpdater mDeviceUpdater;
private Collection<CachedBluetoothDevice> mCachedDevices;
- private FakeFeatureFactory mFeatureFactory;
@Before
public void setUp() {
- mContext = spy(ApplicationProvider.getApplicationContext());
+ mContext = ApplicationProvider.getApplicationContext();
ShadowBluetoothUtils.sLocalBluetoothManager = mLocalBtManager;
mLocalBtManager = Utils.getLocalBtManager(mContext);
- mFeatureFactory = FakeFeatureFactory.setupForTest();
when(mLocalBtManager.getCachedDeviceManager()).thenReturn(mCachedDeviceManager);
when(mLocalBtManager.getProfileManager()).thenReturn(mLocalBtProfileManager);
when(mLocalBtProfileManager.getLeAudioBroadcastProfile()).thenReturn(mBroadcast);
when(mLocalBtProfileManager.getLeAudioBroadcastAssistantProfile()).thenReturn(mAssistant);
- when(mLocalBtProfileManager.getVolumeControlProfile()).thenReturn(mVolumeControl);
List<Long> bisSyncState = new ArrayList<>();
bisSyncState.add(1L);
when(mState.getBisSyncState()).thenReturn(bisSyncState);
doReturn(TEST_DEVICE_NAME).when(mCachedBluetoothDevice).getName();
doReturn(mBluetoothDevice).when(mCachedBluetoothDevice).getDevice();
doReturn(ImmutableSet.of()).when(mCachedBluetoothDevice).getMemberDevice();
- doReturn(TEST_DEVICE_GROUP_ID).when(mCachedBluetoothDevice).getGroupId();
mCachedDevices = new ArrayList<>();
mCachedDevices.add(mCachedBluetoothDevice);
when(mCachedDeviceManager.getCachedDevicesCopy()).thenReturn(mCachedDevices);
doNothing().when(mDevicePreferenceCallback).onDeviceAdded(any(Preference.class));
doNothing().when(mDevicePreferenceCallback).onDeviceRemoved(any(Preference.class));
- when(mContext.getSystemService(AudioManager.class)).thenReturn(mAudioManager);
mDeviceUpdater =
spy(
new AudioSharingDeviceVolumeControlUpdater(
@@ -251,76 +232,6 @@
}
@Test
- public void addPreference_notFallbackDevice_setDeviceVolume() {
- ArgumentCaptor<Preference> captor = ArgumentCaptor.forClass(Preference.class);
- setupPreferenceMapWithDevice();
-
- verify(mDevicePreferenceCallback).onDeviceAdded(captor.capture());
- assertThat(captor.getValue() instanceof AudioSharingDeviceVolumePreference).isTrue();
- AudioSharingDeviceVolumePreference preference =
- (AudioSharingDeviceVolumePreference) captor.getValue();
-
- SeekBar seekBar = mock(SeekBar.class);
- when(seekBar.getProgress()).thenReturn(TEST_VOLUME_VALUE);
- preference.onStopTrackingTouch(seekBar);
-
- verify(mVolumeControl)
- .setDeviceVolume(mBluetoothDevice, TEST_VOLUME_VALUE, /* isGroupOp= */ true);
- verifyNoInteractions(mAudioManager);
- verify(mFeatureFactory.metricsFeatureProvider)
- .action(
- mContext,
- SettingsEnums.ACTION_AUDIO_SHARING_CHANGE_MEDIA_DEVICE_VOLUME,
- /* isPrimary= */ false);
- }
-
- @Test
- public void addPreference_fallbackDevice_setStreamVolume() {
- ArgumentCaptor<Preference> captor = ArgumentCaptor.forClass(Preference.class);
- setupPreferenceMapWithDevice();
-
- verify(mDevicePreferenceCallback).onDeviceAdded(captor.capture());
- assertThat(captor.getValue() instanceof AudioSharingDeviceVolumePreference).isTrue();
- AudioSharingDeviceVolumePreference preference =
- (AudioSharingDeviceVolumePreference) captor.getValue();
-
- Settings.Secure.putInt(
- mContext.getContentResolver(), TEST_SETTINGS_KEY, TEST_DEVICE_GROUP_ID);
- when(mAudioManager.getStreamMaxVolume(AudioManager.STREAM_MUSIC))
- .thenReturn(TEST_MAX_STREAM_VALUE);
- when(mAudioManager.getStreamMinVolume(AudioManager.STREAM_MUSIC))
- .thenReturn(TEST_MIN_STREAM_VALUE);
- SeekBar seekBar = mock(SeekBar.class);
- when(seekBar.getProgress()).thenReturn(TEST_VOLUME_VALUE);
- preference.onStopTrackingTouch(seekBar);
-
- verifyNoInteractions(mVolumeControl);
- verify(mAudioManager)
- .setStreamVolume(AudioManager.STREAM_MUSIC, TEST_MAX_STREAM_VALUE, /* flags= */ 0);
- verify(mFeatureFactory.metricsFeatureProvider)
- .action(
- mContext,
- SettingsEnums.ACTION_AUDIO_SHARING_CHANGE_MEDIA_DEVICE_VOLUME,
- /* isPrimary= */ true);
- }
-
- @Test
- public void testOnSeekBarChangeListener_doNothing() {
- ArgumentCaptor<Preference> captor = ArgumentCaptor.forClass(Preference.class);
- setupPreferenceMapWithDevice();
-
- verify(mDevicePreferenceCallback).onDeviceAdded(captor.capture());
- assertThat(captor.getValue() instanceof AudioSharingDeviceVolumePreference).isTrue();
- AudioSharingDeviceVolumePreference preference =
- (AudioSharingDeviceVolumePreference) captor.getValue();
- SeekBar seekBar = mock(SeekBar.class);
- preference.onProgressChanged(seekBar, TEST_VOLUME_VALUE, /* fromUser= */ false);
-
- verifyNoInteractions(mAudioManager);
- verifyNoInteractions(mVolumeControl);
- }
-
- @Test
public void getLogTag_returnsCorrectTag() {
assertThat(mDeviceUpdater.getLogTag()).isEqualTo(TAG);
}
diff --git a/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDeviceVolumeGroupControllerTest.java b/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDeviceVolumeGroupControllerTest.java
index f2f0a2f..d8c663f 100644
--- a/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDeviceVolumeGroupControllerTest.java
+++ b/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDeviceVolumeGroupControllerTest.java
@@ -16,8 +16,6 @@
package com.android.settings.connecteddevice.audiosharing;
-import static com.android.settings.connecteddevice.audiosharing.AudioSharingUtils.SETTINGS_KEY_FALLBACK_DEVICE_GROUP_ID;
-
import static com.google.common.truth.Truth.assertThat;
import static org.mockito.ArgumentMatchers.any;
@@ -59,6 +57,7 @@
import com.android.settings.testutils.shadow.ShadowBluetoothAdapter;
import com.android.settings.testutils.shadow.ShadowBluetoothUtils;
import com.android.settings.testutils.shadow.ShadowThreadUtils;
+import com.android.settingslib.bluetooth.BluetoothUtils;
import com.android.settingslib.bluetooth.CachedBluetoothDevice;
import com.android.settingslib.bluetooth.CachedBluetoothDeviceManager;
import com.android.settingslib.bluetooth.LocalBluetoothLeBroadcast;
@@ -208,7 +207,8 @@
.registerCallback(any(Executor.class), any(BluetoothVolumeControl.Callback.class));
verify(mContentResolver, never())
.registerContentObserver(
- Settings.Secure.getUriFor(SETTINGS_KEY_FALLBACK_DEVICE_GROUP_ID),
+ Settings.Secure.getUriFor(
+ BluetoothUtils.getPrimaryGroupIdUriForBroadcast()),
false,
mContentObserver);
}
@@ -223,11 +223,9 @@
verify(mDeviceUpdater).registerCallback();
verify(mVolumeControl)
.registerCallback(any(Executor.class), any(BluetoothVolumeControl.Callback.class));
- verify(mContentResolver)
- .registerContentObserver(
- Settings.Secure.getUriFor(SETTINGS_KEY_FALLBACK_DEVICE_GROUP_ID),
- false,
- mContentObserver);
+ verify(mContentResolver).registerContentObserver(
+ Settings.Secure.getUriFor(BluetoothUtils.getPrimaryGroupIdUriForBroadcast()), false,
+ mContentObserver);
}
@Test
@@ -242,7 +240,8 @@
.registerCallback(any(Executor.class), any(BluetoothVolumeControl.Callback.class));
verify(mContentResolver)
.registerContentObserver(
- Settings.Secure.getUriFor(SETTINGS_KEY_FALLBACK_DEVICE_GROUP_ID),
+ Settings.Secure.getUriFor(
+ BluetoothUtils.getPrimaryGroupIdUriForBroadcast()),
false,
mContentObserver);
}
@@ -317,7 +316,8 @@
@Test
public void onDeviceAdded_rankFallbackDeviceOnTop() {
Settings.Secure.putInt(
- mContentResolver, SETTINGS_KEY_FALLBACK_DEVICE_GROUP_ID, TEST_DEVICE_GROUP_ID2);
+ mContentResolver, BluetoothUtils.getPrimaryGroupIdUriForBroadcast(),
+ TEST_DEVICE_GROUP_ID2);
when(mPreference1.getProgress()).thenReturn(TEST_VOLUME_VALUE);
when(mPreference2.getProgress()).thenReturn(TEST_VOLUME_VALUE);
mController.setPreferenceGroup(mPreferenceGroup);
@@ -427,7 +427,8 @@
@Test
public void settingsObserverOnChange_updatePreferenceOrder() {
Settings.Secure.putInt(
- mContentResolver, SETTINGS_KEY_FALLBACK_DEVICE_GROUP_ID, TEST_DEVICE_GROUP_ID2);
+ mContentResolver, BluetoothUtils.getPrimaryGroupIdUriForBroadcast(),
+ TEST_DEVICE_GROUP_ID2);
when(mPreference1.getProgress()).thenReturn(TEST_VOLUME_VALUE);
when(mPreference2.getProgress()).thenReturn(TEST_VOLUME_VALUE);
mController.setPreferenceGroup(mPreferenceGroup);
@@ -435,8 +436,8 @@
mController.onDeviceAdded(mPreference2);
shadowOf(Looper.getMainLooper()).idle();
- Settings.Secure.putInt(
- mContentResolver, SETTINGS_KEY_FALLBACK_DEVICE_GROUP_ID, TEST_DEVICE_GROUP_ID1);
+ Settings.Secure.putInt(mContentResolver, BluetoothUtils.getPrimaryGroupIdUriForBroadcast(),
+ TEST_DEVICE_GROUP_ID1);
mContentObserver.onChange(true);
shadowOf(Looper.getMainLooper()).idle();
diff --git a/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDeviceVolumePreferenceTest.java b/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDeviceVolumePreferenceTest.java
index 8ceb0eb..5ff143f 100644
--- a/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDeviceVolumePreferenceTest.java
+++ b/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDeviceVolumePreferenceTest.java
@@ -18,11 +18,32 @@
import static com.google.common.truth.Truth.assertThat;
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.anyBoolean;
+import static org.mockito.ArgumentMatchers.eq;
+import static org.mockito.Mockito.never;
+import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.verifyNoInteractions;
+import static org.mockito.Mockito.when;
+
+import android.app.settings.SettingsEnums;
+import android.bluetooth.BluetoothDevice;
import android.content.Context;
+import android.media.AudioManager;
+import android.provider.Settings;
+import android.widget.SeekBar;
import androidx.test.core.app.ApplicationProvider;
+import com.android.settings.bluetooth.Utils;
+import com.android.settings.testutils.FakeFeatureFactory;
+import com.android.settings.testutils.shadow.ShadowBluetoothUtils;
+import com.android.settingslib.bluetooth.BluetoothUtils;
import com.android.settingslib.bluetooth.CachedBluetoothDevice;
+import com.android.settingslib.bluetooth.LocalBluetoothManager;
+import com.android.settingslib.bluetooth.LocalBluetoothProfileManager;
+import com.android.settingslib.bluetooth.VolumeControlProfile;
import org.junit.Before;
import org.junit.Rule;
@@ -32,18 +53,45 @@
import org.mockito.junit.MockitoJUnit;
import org.mockito.junit.MockitoRule;
import org.robolectric.RobolectricTestRunner;
+import org.robolectric.annotation.Config;
@RunWith(RobolectricTestRunner.class)
+@Config(shadows = {ShadowBluetoothUtils.class})
public class AudioSharingDeviceVolumePreferenceTest {
+ private static final int TEST_DEVICE_GROUP_ID = 1;
+ private static final int TEST_VOLUME_VALUE = 255;
+ private static final int TEST_MAX_STREAM_VALUE = 10;
+ private static final int TEST_MIN_STREAM_VALUE = 0;
+
@Rule public final MockitoRule mMockitoRule = MockitoJUnit.rule();
+ @Mock private LocalBluetoothManager mLocalBtManager;
+ @Mock private LocalBluetoothProfileManager mLocalBtProfileManager;
+ @Mock private VolumeControlProfile mVolumeControl;
@Mock private CachedBluetoothDevice mCachedDevice;
+ @Mock private BluetoothDevice mDevice;
+ @Mock private AudioManager mAudioManager;
+ @Mock private SeekBar mSeekBar;
private Context mContext;
private AudioSharingDeviceVolumePreference mPreference;
+ private FakeFeatureFactory mFeatureFactory;
@Before
public void setup() {
- mContext = ApplicationProvider.getApplicationContext();
+ mContext = spy(ApplicationProvider.getApplicationContext());
+ ShadowBluetoothUtils.sLocalBluetoothManager = mLocalBtManager;
+ mLocalBtManager = Utils.getLocalBtManager(mContext);
+ mFeatureFactory = FakeFeatureFactory.setupForTest();
+ when(mLocalBtManager.getProfileManager()).thenReturn(mLocalBtProfileManager);
+ when(mLocalBtProfileManager.getVolumeControlProfile()).thenReturn(mVolumeControl);
+ when(mContext.getSystemService(AudioManager.class)).thenReturn(mAudioManager);
+ when(mAudioManager.getStreamMaxVolume(AudioManager.STREAM_MUSIC))
+ .thenReturn(TEST_MAX_STREAM_VALUE);
+ when(mAudioManager.getStreamMinVolume(AudioManager.STREAM_MUSIC))
+ .thenReturn(TEST_MIN_STREAM_VALUE);
+ when(mCachedDevice.getDevice()).thenReturn(mDevice);
+ when(mCachedDevice.getGroupId()).thenReturn(TEST_DEVICE_GROUP_ID);
+ when(mSeekBar.getProgress()).thenReturn(TEST_VOLUME_VALUE);
mPreference = new AudioSharingDeviceVolumePreference(mContext, mCachedDevice);
}
@@ -58,4 +106,128 @@
assertThat(mPreference.getMax()).isEqualTo(AudioSharingDeviceVolumePreference.MAX_VOLUME);
assertThat(mPreference.getMin()).isEqualTo(AudioSharingDeviceVolumePreference.MIN_VOLUME);
}
+
+ @Test
+ public void onStopTrackingTouch_notFallbackDevice_setDeviceVolume() {
+ mPreference.onStopTrackingTouch(mSeekBar);
+
+ verify(mVolumeControl).setDeviceVolume(mDevice, TEST_VOLUME_VALUE, /* isGroupOp= */ true);
+ verifyNoInteractions(mAudioManager);
+ verify(mFeatureFactory.metricsFeatureProvider)
+ .action(
+ mContext,
+ SettingsEnums.ACTION_AUDIO_SHARING_CHANGE_MEDIA_DEVICE_VOLUME,
+ /* isPrimary= */ false);
+ }
+
+ @Test
+ public void onProgressChanged_notFallbackDevice_fromUserNotInTouch_setDeviceVolume() {
+ mPreference.onProgressChanged(mSeekBar, TEST_VOLUME_VALUE, /* fromUser= */ true);
+
+ verify(mVolumeControl).setDeviceVolume(mDevice, TEST_VOLUME_VALUE, /* isGroupOp= */ true);
+ verifyNoInteractions(mAudioManager);
+ verify(mFeatureFactory.metricsFeatureProvider)
+ .action(
+ mContext,
+ SettingsEnums.ACTION_AUDIO_SHARING_CHANGE_MEDIA_DEVICE_VOLUME,
+ /* isPrimary= */ false);
+ }
+
+ @Test
+ public void onProgressChanged_notFallbackDevice_fromUserInTouch_doNothing() {
+ mPreference.onStartTrackingTouch(mSeekBar);
+ mPreference.onProgressChanged(mSeekBar, TEST_VOLUME_VALUE, /* fromUser= */ true);
+
+ verifyNoInteractions(mVolumeControl);
+ verifyNoInteractions(mAudioManager);
+ verify(mFeatureFactory.metricsFeatureProvider, never())
+ .action(
+ any(Context.class),
+ eq(SettingsEnums.ACTION_AUDIO_SHARING_CHANGE_MEDIA_DEVICE_VOLUME),
+ anyBoolean());
+ }
+
+ @Test
+ public void onProgressChanged_notFallbackDevice_notFromUserNotInTouch_doNothing() {
+ mPreference.onProgressChanged(mSeekBar, TEST_VOLUME_VALUE, /* fromUser= */ false);
+
+ verifyNoInteractions(mVolumeControl);
+ verifyNoInteractions(mAudioManager);
+ verify(mFeatureFactory.metricsFeatureProvider, never())
+ .action(
+ any(Context.class),
+ eq(SettingsEnums.ACTION_AUDIO_SHARING_CHANGE_MEDIA_DEVICE_VOLUME),
+ anyBoolean());
+ }
+
+ @Test
+ public void onStopTrackingTouch_fallbackDevice_setDeviceVolume() {
+ Settings.Secure.putInt(
+ mContext.getContentResolver(),
+ BluetoothUtils.getPrimaryGroupIdUriForBroadcast(),
+ TEST_DEVICE_GROUP_ID);
+ mPreference.onStopTrackingTouch(mSeekBar);
+
+ verifyNoInteractions(mVolumeControl);
+ verify(mAudioManager)
+ .setStreamVolume(AudioManager.STREAM_MUSIC, TEST_MAX_STREAM_VALUE, /* flags= */ 0);
+ verify(mFeatureFactory.metricsFeatureProvider)
+ .action(
+ mContext,
+ SettingsEnums.ACTION_AUDIO_SHARING_CHANGE_MEDIA_DEVICE_VOLUME,
+ /* isPrimary= */ true);
+ }
+
+ @Test
+ public void onProgressChanged_fallbackDevice_fromUserNotInTouch_setDeviceVolume() {
+ Settings.Secure.putInt(
+ mContext.getContentResolver(),
+ BluetoothUtils.getPrimaryGroupIdUriForBroadcast(),
+ TEST_DEVICE_GROUP_ID);
+ mPreference.onProgressChanged(mSeekBar, TEST_VOLUME_VALUE, /* fromUser= */ true);
+
+ verifyNoInteractions(mVolumeControl);
+ verify(mAudioManager)
+ .setStreamVolume(AudioManager.STREAM_MUSIC, TEST_MAX_STREAM_VALUE, /* flags= */ 0);
+ verify(mFeatureFactory.metricsFeatureProvider)
+ .action(
+ mContext,
+ SettingsEnums.ACTION_AUDIO_SHARING_CHANGE_MEDIA_DEVICE_VOLUME,
+ /* isPrimary= */ true);
+ }
+
+ @Test
+ public void onProgressChanged_fallbackDevice_fromUserInTouch_doNothing() {
+ Settings.Secure.putInt(
+ mContext.getContentResolver(),
+ BluetoothUtils.getPrimaryGroupIdUriForBroadcast(),
+ TEST_DEVICE_GROUP_ID);
+ mPreference.onStartTrackingTouch(mSeekBar);
+ mPreference.onProgressChanged(mSeekBar, TEST_VOLUME_VALUE, /* fromUser= */ true);
+
+ verifyNoInteractions(mVolumeControl);
+ verifyNoInteractions(mAudioManager);
+ verify(mFeatureFactory.metricsFeatureProvider, never())
+ .action(
+ any(Context.class),
+ eq(SettingsEnums.ACTION_AUDIO_SHARING_CHANGE_MEDIA_DEVICE_VOLUME),
+ anyBoolean());
+ }
+
+ @Test
+ public void onProgressChanged_fallbackDevice_notFromUserNotInTouch_doNothing() {
+ Settings.Secure.putInt(
+ mContext.getContentResolver(),
+ BluetoothUtils.getPrimaryGroupIdUriForBroadcast(),
+ TEST_DEVICE_GROUP_ID);
+ mPreference.onProgressChanged(mSeekBar, TEST_VOLUME_VALUE, /* fromUser= */ false);
+
+ verifyNoInteractions(mVolumeControl);
+ verifyNoInteractions(mAudioManager);
+ verify(mFeatureFactory.metricsFeatureProvider, never())
+ .action(
+ any(Context.class),
+ eq(SettingsEnums.ACTION_AUDIO_SHARING_CHANGE_MEDIA_DEVICE_VOLUME),
+ anyBoolean());
+ }
}
diff --git a/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDialogFragmentTest.java b/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDialogFragmentTest.java
index 20c225c..7227f37 100644
--- a/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDialogFragmentTest.java
+++ b/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDialogFragmentTest.java
@@ -93,7 +93,6 @@
new Pair[] {TEST_EVENT_DATA};
private Fragment mParent;
- private AudioSharingDialogFragment mFragment;
private FakeFeatureFactory mFeatureFactory;
@Before
@@ -107,7 +106,6 @@
shadowBluetoothAdapter.setIsLeAudioBroadcastAssistantSupported(
BluetoothStatusCodes.FEATURE_SUPPORTED);
mFeatureFactory = FakeFeatureFactory.setupForTest();
- mFragment = new AudioSharingDialogFragment();
mParent = new Fragment();
FragmentController.setupFragment(
mParent, FragmentActivity.class, /* containerViewId= */ 0, /* bundle= */ null);
@@ -120,7 +118,8 @@
@Test
public void getMetricsCategory_correctValue() {
- assertThat(mFragment.getMetricsCategory())
+ AudioSharingDialogFragment fragment = new AudioSharingDialogFragment();
+ assertThat(fragment.getMetricsCategory())
.isEqualTo(SettingsEnums.DIALOG_AUDIO_SHARING_ADD_DEVICE);
}
@@ -145,7 +144,7 @@
}
@Test
- public void onCreateDialog_flagOn_noConnectedDevice() {
+ public void onCreateDialog_flagOn_noExtraConnectedDevice() {
mSetFlagsRule.enableFlags(Flags.FLAG_ENABLE_LE_AUDIO_SHARING);
AudioSharingDialogFragment.show(
mParent, new ArrayList<>(), EMPTY_EVENT_LISTENER, TEST_EVENT_DATA_LIST);
@@ -157,42 +156,67 @@
assertThat(description).isNotNull();
ImageView image = dialog.findViewById(R.id.description_image);
assertThat(image).isNotNull();
- Button shareBtn = dialog.findViewById(R.id.positive_btn);
- assertThat(shareBtn).isNotNull();
- Button cancelBtn = dialog.findViewById(R.id.negative_btn);
- assertThat(cancelBtn).isNotNull();
+ Button positiveBtn = dialog.findViewById(R.id.positive_btn);
+ assertThat(positiveBtn).isNotNull();
+ Button negativeBtn = dialog.findViewById(R.id.negative_btn);
+ assertThat(negativeBtn).isNotNull();
assertThat(dialog.isShowing()).isTrue();
assertThat(description.getVisibility()).isEqualTo(View.VISIBLE);
assertThat(description.getText().toString())
.isEqualTo(mParent.getString(R.string.audio_sharing_dialog_connect_device_content));
assertThat(image.getVisibility()).isEqualTo(View.VISIBLE);
- assertThat(shareBtn.getVisibility()).isEqualTo(View.GONE);
- assertThat(cancelBtn.getVisibility()).isEqualTo(View.GONE);
+ assertThat(positiveBtn.getVisibility()).isEqualTo(View.VISIBLE);
+ assertThat(positiveBtn.getText().toString())
+ .isEqualTo(mParent.getString(R.string.audio_sharing_pair_button_label));
+ assertThat(negativeBtn.getVisibility()).isEqualTo(View.VISIBLE);
+ assertThat(negativeBtn.getText().toString())
+ .isEqualTo(mParent.getString(R.string.audio_sharing_qrcode_button_label));
}
@Test
- public void onCreateDialog_noConnectedDevice_dialogDismiss() {
+ public void onCreateDialog_noExtraConnectedDevice_pairNewDevice() {
mSetFlagsRule.enableFlags(Flags.FLAG_ENABLE_LE_AUDIO_SHARING);
AudioSharingDialogFragment.show(
mParent, new ArrayList<>(), EMPTY_EVENT_LISTENER, TEST_EVENT_DATA_LIST);
shadowMainLooper().idle();
AlertDialog dialog = ShadowAlertDialogCompat.getLatestAlertDialog();
assertThat(dialog).isNotNull();
- View btnView = dialog.findViewById(android.R.id.button2);
- assertThat(btnView).isNotNull();
- btnView.performClick();
+ Button pairBtn = dialog.findViewById(R.id.positive_btn);
+ assertThat(pairBtn).isNotNull();
+ pairBtn.performClick();
shadowMainLooper().idle();
+ verify(mFeatureFactory.metricsFeatureProvider)
+ .action(
+ any(Context.class),
+ eq(SettingsEnums.ACTION_AUDIO_SHARING_DIALOG_POSITIVE_BTN_CLICKED),
+ eq(TEST_EVENT_DATA));
assertThat(dialog.isShowing()).isFalse();
+ }
+
+ @Test
+ public void onCreateDialog_noExtraConnectedDevice_showQRCode() {
+ mSetFlagsRule.enableFlags(Flags.FLAG_ENABLE_LE_AUDIO_SHARING);
+ AudioSharingDialogFragment.show(
+ mParent, new ArrayList<>(), EMPTY_EVENT_LISTENER, TEST_EVENT_DATA_LIST);
+ shadowMainLooper().idle();
+ AlertDialog dialog = ShadowAlertDialogCompat.getLatestAlertDialog();
+ assertThat(dialog).isNotNull();
+ Button qrCodeBtn = dialog.findViewById(R.id.negative_btn);
+ assertThat(qrCodeBtn).isNotNull();
+ qrCodeBtn.performClick();
+ shadowMainLooper().idle();
+
verify(mFeatureFactory.metricsFeatureProvider)
.action(
any(Context.class),
eq(SettingsEnums.ACTION_AUDIO_SHARING_DIALOG_NEGATIVE_BTN_CLICKED),
eq(TEST_EVENT_DATA));
+ assertThat(dialog.isShowing()).isFalse();
}
@Test
- public void onCreateDialog_flagOn_singleConnectedDevice() {
+ public void onCreateDialog_flagOn_singleExtraConnectedDevice() {
mSetFlagsRule.enableFlags(Flags.FLAG_ENABLE_LE_AUDIO_SHARING);
ArrayList<AudioSharingDeviceItem> list = new ArrayList<>();
list.add(TEST_DEVICE_ITEM1);
@@ -207,10 +231,10 @@
assertThat(description).isNotNull();
ImageView image = dialog.findViewById(R.id.description_image);
assertThat(image).isNotNull();
- Button shareBtn = dialog.findViewById(R.id.positive_btn);
- assertThat(shareBtn).isNotNull();
- Button cancelBtn = dialog.findViewById(R.id.negative_btn);
- assertThat(cancelBtn).isNotNull();
+ Button positiveBtn = dialog.findViewById(R.id.positive_btn);
+ assertThat(positiveBtn).isNotNull();
+ Button negativeBtn = dialog.findViewById(R.id.negative_btn);
+ assertThat(negativeBtn).isNotNull();
assertThat(dialog.isShowing()).isTrue();
assertThat(title.getText().toString())
.isEqualTo(
@@ -220,12 +244,16 @@
assertThat(description.getText().toString())
.isEqualTo(mParent.getString(R.string.audio_sharing_dialog_share_content));
assertThat(image.getVisibility()).isEqualTo(View.GONE);
- assertThat(shareBtn.getVisibility()).isEqualTo(View.VISIBLE);
- assertThat(cancelBtn.getVisibility()).isEqualTo(View.VISIBLE);
+ assertThat(positiveBtn.getVisibility()).isEqualTo(View.VISIBLE);
+ assertThat(positiveBtn.getText().toString())
+ .isEqualTo(mParent.getString(R.string.audio_sharing_share_button_label));
+ assertThat(negativeBtn.getVisibility()).isEqualTo(View.VISIBLE);
+ assertThat(negativeBtn.getText().toString())
+ .isEqualTo(mParent.getString(R.string.audio_sharing_no_thanks_button_label));
}
@Test
- public void onCreateDialog_singleConnectedDevice_dialogDismiss() {
+ public void onCreateDialog_singleExtraConnectedDevice_dialogDismiss() {
mSetFlagsRule.enableFlags(Flags.FLAG_ENABLE_LE_AUDIO_SHARING);
ArrayList<AudioSharingDeviceItem> list = new ArrayList<>();
list.add(TEST_DEVICE_ITEM1);
@@ -248,7 +276,7 @@
}
@Test
- public void onCreateDialog_singleConnectedDevice_shareClicked() {
+ public void onCreateDialog_singleExtraConnectedDevice_shareClicked() {
mSetFlagsRule.enableFlags(Flags.FLAG_ENABLE_LE_AUDIO_SHARING);
ArrayList<AudioSharingDeviceItem> list = new ArrayList<>();
list.add(TEST_DEVICE_ITEM1);
@@ -285,7 +313,7 @@
}
@Test
- public void onCreateDialog_flagOn_multipleConnectedDevice() {
+ public void onCreateDialog_flagOn_multipleExtraConnectedDevice() {
mSetFlagsRule.enableFlags(Flags.FLAG_ENABLE_LE_AUDIO_SHARING);
ArrayList<AudioSharingDeviceItem> list = new ArrayList<>();
list.add(TEST_DEVICE_ITEM1);
@@ -313,12 +341,14 @@
assertThat(image.getVisibility()).isEqualTo(View.GONE);
assertThat(shareBtn.getVisibility()).isEqualTo(View.GONE);
assertThat(cancelBtn.getVisibility()).isEqualTo(View.VISIBLE);
+ assertThat(cancelBtn.getText().toString())
+ .isEqualTo(mParent.getString(com.android.settings.R.string.cancel));
assertThat(recyclerView.getVisibility()).isEqualTo(View.VISIBLE);
assertThat(recyclerView.getAdapter().getItemCount()).isEqualTo(3);
}
@Test
- public void onCreateDialog_multipleConnectedDevice_dialogDismiss() {
+ public void onCreateDialog_multipleExtraConnectedDevice_dialogDismiss() {
mSetFlagsRule.enableFlags(Flags.FLAG_ENABLE_LE_AUDIO_SHARING);
ArrayList<AudioSharingDeviceItem> list = new ArrayList<>();
list.add(TEST_DEVICE_ITEM1);
diff --git a/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDialogHandlerTest.java b/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDialogHandlerTest.java
index e71e876..1bff78b 100644
--- a/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDialogHandlerTest.java
+++ b/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDialogHandlerTest.java
@@ -35,7 +35,6 @@
import android.bluetooth.BluetoothLeBroadcast;
import android.bluetooth.BluetoothLeBroadcastMetadata;
import android.bluetooth.BluetoothLeBroadcastReceiveState;
-import android.bluetooth.BluetoothProfile;
import android.bluetooth.BluetoothStatusCodes;
import android.content.Context;
import android.os.Looper;
@@ -187,9 +186,7 @@
public void handleUserTriggeredNonLeaDeviceConnected_noSharing_setActive() {
setUpBroadcast(false);
ImmutableList<BluetoothDevice> deviceList = ImmutableList.of(mDevice2);
- when(mAssistant.getDevicesMatchingConnectionStates(
- new int[] {BluetoothProfile.STATE_CONNECTED}))
- .thenReturn(deviceList);
+ when(mAssistant.getAllConnectedDevices()).thenReturn(deviceList);
when(mAssistant.getAllSources(any())).thenReturn(ImmutableList.of());
mHandler.handleDeviceConnected(mCachedDevice2, /* userTriggered= */ true);
shadowOf(Looper.getMainLooper()).idle();
@@ -200,9 +197,7 @@
public void handleUserTriggeredNonLeaDeviceConnected_sharing_showStopDialog() {
setUpBroadcast(true);
ImmutableList<BluetoothDevice> deviceList = ImmutableList.of(mDevice2);
- when(mAssistant.getDevicesMatchingConnectionStates(
- new int[] {BluetoothProfile.STATE_CONNECTED}))
- .thenReturn(deviceList);
+ when(mAssistant.getAllConnectedDevices()).thenReturn(deviceList);
when(mAssistant.getAllSources(any())).thenReturn(ImmutableList.of(mState));
mHandler.handleDeviceConnected(mCachedDevice2, /* userTriggered= */ true);
shadowOf(Looper.getMainLooper()).idle();
@@ -239,9 +234,7 @@
public void handleUserTriggeredLeaDeviceConnected_noSharingNoTwoLeaDevices_setActive() {
setUpBroadcast(false);
ImmutableList<BluetoothDevice> deviceList = ImmutableList.of(mDevice1);
- when(mAssistant.getDevicesMatchingConnectionStates(
- new int[] {BluetoothProfile.STATE_CONNECTED}))
- .thenReturn(deviceList);
+ when(mAssistant.getAllConnectedDevices()).thenReturn(deviceList);
when(mAssistant.getAllSources(any())).thenReturn(ImmutableList.of());
mHandler.handleDeviceConnected(mCachedDevice1, /* userTriggered= */ true);
shadowOf(Looper.getMainLooper()).idle();
@@ -254,9 +247,7 @@
when(mCachedDevice1.getGroupId()).thenReturn(-1);
when(mLeAudioProfile.getGroupId(mDevice1)).thenReturn(-1);
ImmutableList<BluetoothDevice> deviceList = ImmutableList.of(mDevice1, mDevice3);
- when(mAssistant.getDevicesMatchingConnectionStates(
- new int[] {BluetoothProfile.STATE_CONNECTED}))
- .thenReturn(deviceList);
+ when(mAssistant.getAllConnectedDevices()).thenReturn(deviceList);
when(mAssistant.getAllSources(any())).thenReturn(ImmutableList.of());
mHandler.handleDeviceConnected(mCachedDevice1, /* userTriggered= */ true);
shadowOf(Looper.getMainLooper()).idle();
@@ -269,9 +260,7 @@
public void handleUserTriggeredLeaDeviceConnected_noSharingTwoLeaDevices_showJoinDialog() {
setUpBroadcast(false);
ImmutableList<BluetoothDevice> deviceList = ImmutableList.of(mDevice1, mDevice3);
- when(mAssistant.getDevicesMatchingConnectionStates(
- new int[] {BluetoothProfile.STATE_CONNECTED}))
- .thenReturn(deviceList);
+ when(mAssistant.getAllConnectedDevices()).thenReturn(deviceList);
when(mAssistant.getAllSources(any())).thenReturn(ImmutableList.of());
mHandler.handleDeviceConnected(mCachedDevice1, /* userTriggered= */ true);
shadowOf(Looper.getMainLooper()).idle();
@@ -314,9 +303,7 @@
public void handleUserTriggeredLeaDeviceConnected_sharing_showJoinDialog() {
setUpBroadcast(true);
ImmutableList<BluetoothDevice> deviceList = ImmutableList.of(mDevice1, mDevice3);
- when(mAssistant.getDevicesMatchingConnectionStates(
- new int[] {BluetoothProfile.STATE_CONNECTED}))
- .thenReturn(deviceList);
+ when(mAssistant.getAllConnectedDevices()).thenReturn(deviceList);
when(mAssistant.getAllSources(mDevice1)).thenReturn(ImmutableList.of());
when(mAssistant.getAllSources(mDevice3)).thenReturn(ImmutableList.of(mState));
mHandler.handleDeviceConnected(mCachedDevice1, /* userTriggered= */ true);
@@ -361,9 +348,7 @@
handleUserTriggeredLeaDeviceConnected_sharingWithTwoLeaDevices_showDisconnectDialog() {
setUpBroadcast(true);
ImmutableList<BluetoothDevice> deviceList = ImmutableList.of(mDevice1, mDevice3, mDevice4);
- when(mAssistant.getDevicesMatchingConnectionStates(
- new int[] {BluetoothProfile.STATE_CONNECTED}))
- .thenReturn(deviceList);
+ when(mAssistant.getAllConnectedDevices()).thenReturn(deviceList);
when(mAssistant.getAllSources(mDevice1)).thenReturn(ImmutableList.of());
when(mAssistant.getAllSources(mDevice3)).thenReturn(ImmutableList.of(mState));
when(mAssistant.getAllSources(mDevice4)).thenReturn(ImmutableList.of(mState));
@@ -407,9 +392,7 @@
public void handleNonLeaDeviceConnected_noSharing_doNothing() {
setUpBroadcast(false);
ImmutableList<BluetoothDevice> deviceList = ImmutableList.of(mDevice2);
- when(mAssistant.getDevicesMatchingConnectionStates(
- new int[] {BluetoothProfile.STATE_CONNECTED}))
- .thenReturn(deviceList);
+ when(mAssistant.getAllConnectedDevices()).thenReturn(deviceList);
when(mAssistant.getAllSources(any())).thenReturn(ImmutableList.of());
mHandler.handleDeviceConnected(mCachedDevice2, /* userTriggered= */ false);
shadowOf(Looper.getMainLooper()).idle();
@@ -420,9 +403,7 @@
public void handleNonLeaDeviceConnected_sharing_showStopDialog() {
setUpBroadcast(true);
ImmutableList<BluetoothDevice> deviceList = ImmutableList.of(mDevice1);
- when(mAssistant.getDevicesMatchingConnectionStates(
- new int[] {BluetoothProfile.STATE_CONNECTED}))
- .thenReturn(deviceList);
+ when(mAssistant.getAllConnectedDevices()).thenReturn(deviceList);
when(mAssistant.getAllSources(any())).thenReturn(ImmutableList.of(mState));
mHandler.handleDeviceConnected(mCachedDevice2, /* userTriggered= */ false);
shadowOf(Looper.getMainLooper()).idle();
@@ -459,9 +440,7 @@
public void handleLeaDeviceConnected_noSharingNoTwoLeaDevices_doNothing() {
setUpBroadcast(false);
ImmutableList<BluetoothDevice> deviceList = ImmutableList.of(mDevice1);
- when(mAssistant.getDevicesMatchingConnectionStates(
- new int[] {BluetoothProfile.STATE_CONNECTED}))
- .thenReturn(deviceList);
+ when(mAssistant.getAllConnectedDevices()).thenReturn(deviceList);
when(mAssistant.getAllSources(any())).thenReturn(ImmutableList.of());
mHandler.handleDeviceConnected(mCachedDevice1, /* userTriggered= */ false);
shadowOf(Looper.getMainLooper()).idle();
@@ -474,9 +453,7 @@
when(mCachedDevice1.getGroupId()).thenReturn(-1);
when(mLeAudioProfile.getGroupId(mDevice1)).thenReturn(-1);
ImmutableList<BluetoothDevice> deviceList = ImmutableList.of(mDevice1, mDevice3);
- when(mAssistant.getDevicesMatchingConnectionStates(
- new int[] {BluetoothProfile.STATE_CONNECTED}))
- .thenReturn(deviceList);
+ when(mAssistant.getAllConnectedDevices()).thenReturn(deviceList);
when(mAssistant.getAllSources(any())).thenReturn(ImmutableList.of());
mHandler.handleDeviceConnected(mCachedDevice1, /* userTriggered= */ false);
shadowOf(Looper.getMainLooper()).idle();
@@ -489,9 +466,7 @@
public void handleLeaDeviceConnected_noSharingTwoLeaDevices_showJoinDialog() {
setUpBroadcast(false);
ImmutableList<BluetoothDevice> deviceList = ImmutableList.of(mDevice1, mDevice3);
- when(mAssistant.getDevicesMatchingConnectionStates(
- new int[] {BluetoothProfile.STATE_CONNECTED}))
- .thenReturn(deviceList);
+ when(mAssistant.getAllConnectedDevices()).thenReturn(deviceList);
when(mAssistant.getAllSources(any())).thenReturn(ImmutableList.of());
mHandler.handleDeviceConnected(mCachedDevice1, /* userTriggered= */ false);
shadowOf(Looper.getMainLooper()).idle();
@@ -534,9 +509,7 @@
public void handleLeaDeviceConnected_sharing_showJoinDialog() {
setUpBroadcast(true);
ImmutableList<BluetoothDevice> deviceList = ImmutableList.of(mDevice1, mDevice3);
- when(mAssistant.getDevicesMatchingConnectionStates(
- new int[] {BluetoothProfile.STATE_CONNECTED}))
- .thenReturn(deviceList);
+ when(mAssistant.getAllConnectedDevices()).thenReturn(deviceList);
when(mAssistant.getAllSources(mDevice1)).thenReturn(ImmutableList.of());
when(mAssistant.getAllSources(mDevice3)).thenReturn(ImmutableList.of(mState));
mHandler.handleDeviceConnected(mCachedDevice1, /* userTriggered= */ false);
@@ -580,9 +553,7 @@
public void handleLeaDeviceConnected_sharingWithTwoLeaDevices_showDisconnectDialog() {
setUpBroadcast(true);
ImmutableList<BluetoothDevice> deviceList = ImmutableList.of(mDevice1, mDevice3, mDevice4);
- when(mAssistant.getDevicesMatchingConnectionStates(
- new int[] {BluetoothProfile.STATE_CONNECTED}))
- .thenReturn(deviceList);
+ when(mAssistant.getAllConnectedDevices()).thenReturn(deviceList);
when(mAssistant.getAllSources(mDevice1)).thenReturn(ImmutableList.of());
when(mAssistant.getAllSources(mDevice3)).thenReturn(ImmutableList.of(mState));
when(mAssistant.getAllSources(mDevice4)).thenReturn(ImmutableList.of(mState));
@@ -627,9 +598,7 @@
// Show join dialog
setUpBroadcast(false);
ImmutableList<BluetoothDevice> deviceList = ImmutableList.of(mDevice1, mDevice3);
- when(mAssistant.getDevicesMatchingConnectionStates(
- new int[] {BluetoothProfile.STATE_CONNECTED}))
- .thenReturn(deviceList);
+ when(mAssistant.getAllConnectedDevices()).thenReturn(deviceList);
when(mAssistant.getAllSources(any())).thenReturn(ImmutableList.of());
mHandler.handleDeviceConnected(mCachedDevice1, /* userTriggered= */ true);
shadowOf(Looper.getMainLooper()).idle();
@@ -661,9 +630,7 @@
// Show disconnect dialog
setUpBroadcast(true);
ImmutableList<BluetoothDevice> deviceList = ImmutableList.of(mDevice1, mDevice3, mDevice4);
- when(mAssistant.getDevicesMatchingConnectionStates(
- new int[] {BluetoothProfile.STATE_CONNECTED}))
- .thenReturn(deviceList);
+ when(mAssistant.getAllConnectedDevices()).thenReturn(deviceList);
when(mAssistant.getAllSources(mDevice1)).thenReturn(ImmutableList.of());
when(mAssistant.getAllSources(mDevice3)).thenReturn(ImmutableList.of(mState));
when(mAssistant.getAllSources(mDevice4)).thenReturn(ImmutableList.of(mState));
@@ -697,9 +664,7 @@
// Show stop dialog
setUpBroadcast(true);
ImmutableList<BluetoothDevice> deviceList = ImmutableList.of(mDevice1);
- when(mAssistant.getDevicesMatchingConnectionStates(
- new int[] {BluetoothProfile.STATE_CONNECTED}))
- .thenReturn(deviceList);
+ when(mAssistant.getAllConnectedDevices()).thenReturn(deviceList);
when(mAssistant.getAllSources(any())).thenReturn(ImmutableList.of(mState));
mHandler.handleDeviceConnected(mCachedDevice2, /* userTriggered= */ true);
shadowOf(Looper.getMainLooper()).idle();
@@ -721,9 +686,7 @@
public void closeOpeningDialogsOtherThan() {
setUpBroadcast(true);
ImmutableList<BluetoothDevice> deviceList = ImmutableList.of(mDevice3);
- when(mAssistant.getDevicesMatchingConnectionStates(
- new int[] {BluetoothProfile.STATE_CONNECTED}))
- .thenReturn(deviceList);
+ when(mAssistant.getAllConnectedDevices()).thenReturn(deviceList);
when(mAssistant.getAllSources(mDevice3)).thenReturn(ImmutableList.of(mState));
mHandler.handleDeviceConnected(mCachedDevice2, /* userTriggered= */ true);
shadowOf(Looper.getMainLooper()).idle();
@@ -733,9 +696,7 @@
.containsExactly(AudioSharingStopDialogFragment.tag());
deviceList = ImmutableList.of(mDevice1, mDevice3);
- when(mAssistant.getDevicesMatchingConnectionStates(
- new int[] {BluetoothProfile.STATE_CONNECTED}))
- .thenReturn(deviceList);
+ when(mAssistant.getAllConnectedDevices()).thenReturn(deviceList);
when(mAssistant.getAllSources(mDevice1)).thenReturn(ImmutableList.of());
mHandler.handleDeviceConnected(mCachedDevice1, /* userTriggered= */ false);
shadowOf(Looper.getMainLooper()).idle();
@@ -769,9 +730,7 @@
public void onBroadcastStartFailed_logAction() {
setUpBroadcast(false);
ImmutableList<BluetoothDevice> deviceList = ImmutableList.of(mDevice1, mDevice3);
- when(mAssistant.getDevicesMatchingConnectionStates(
- new int[] {BluetoothProfile.STATE_CONNECTED}))
- .thenReturn(deviceList);
+ when(mAssistant.getAllConnectedDevices()).thenReturn(deviceList);
when(mAssistant.getAllSources(any())).thenReturn(ImmutableList.of());
mHandler.handleDeviceConnected(mCachedDevice1, /* userTriggered= */ false);
shadowOf(Looper.getMainLooper()).idle();
@@ -797,9 +756,7 @@
public void onPlaybackStarted_addSource() {
setUpBroadcast(false);
ImmutableList<BluetoothDevice> deviceList = ImmutableList.of(mDevice1, mDevice3);
- when(mAssistant.getDevicesMatchingConnectionStates(
- new int[] {BluetoothProfile.STATE_CONNECTED}))
- .thenReturn(deviceList);
+ when(mAssistant.getAllConnectedDevices()).thenReturn(deviceList);
when(mAssistant.getAllSources(any())).thenReturn(ImmutableList.of());
mHandler.handleDeviceConnected(mCachedDevice1, /* userTriggered= */ true);
shadowOf(Looper.getMainLooper()).idle();
@@ -825,9 +782,7 @@
public void onBroadcastStopFailed_logAction() {
setUpBroadcast(true);
ImmutableList<BluetoothDevice> deviceList = ImmutableList.of(mDevice1);
- when(mAssistant.getDevicesMatchingConnectionStates(
- new int[] {BluetoothProfile.STATE_CONNECTED}))
- .thenReturn(deviceList);
+ when(mAssistant.getAllConnectedDevices()).thenReturn(deviceList);
when(mAssistant.getAllSources(any())).thenReturn(ImmutableList.of(mState));
mHandler.handleDeviceConnected(mCachedDevice2, /* userTriggered= */ false);
shadowOf(Looper.getMainLooper()).idle();
diff --git a/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/AudioSharingNamePreferenceTest.java b/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/AudioSharingNamePreferenceTest.java
index 13e2a9d..be62414 100644
--- a/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/AudioSharingNamePreferenceTest.java
+++ b/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/AudioSharingNamePreferenceTest.java
@@ -117,6 +117,7 @@
assertThat(shareButton.getVisibility()).isEqualTo(View.VISIBLE);
assertThat(shareButton.getDrawable()).isNotNull();
assertThat(shareButton.hasOnClickListeners()).isTrue();
+ assertThat(shareButton.getContentDescription()).isNotNull();
assertThat(divider).isNotNull();
assertThat(divider.getVisibility()).isEqualTo(View.VISIBLE);
diff --git a/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/AudioSharingReceiverTest.java b/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/AudioSharingReceiverTest.java
index deed229..db6eb8c 100644
--- a/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/AudioSharingReceiverTest.java
+++ b/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/AudioSharingReceiverTest.java
@@ -25,7 +25,7 @@
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.eq;
-import static org.mockito.Mockito.times;
+import static org.mockito.Mockito.never;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.verifyNoInteractions;
import static org.mockito.Mockito.when;
@@ -164,8 +164,7 @@
AudioSharingReceiver audioSharingReceiver = getAudioSharingReceiver(intent);
audioSharingReceiver.onReceive(mContext, intent);
- verify(mNm, times(1))
- .notify(eq(R.drawable.ic_bt_le_audio_sharing), any(Notification.class));
+ verify(mNm).notify(eq(R.drawable.ic_bt_le_audio_sharing), any(Notification.class));
verify(mFeatureFactory.metricsFeatureProvider)
.action(mContext, SettingsEnums.ACTION_SHOW_AUDIO_SHARING_NOTIFICATION);
}
@@ -181,7 +180,7 @@
AudioSharingReceiver audioSharingReceiver = getAudioSharingReceiver(intent);
audioSharingReceiver.onReceive(mContext, intent);
- verify(mNm, times(1)).cancel(R.drawable.ic_bt_le_audio_sharing);
+ verify(mNm).cancel(R.drawable.ic_bt_le_audio_sharing);
verify(mFeatureFactory.metricsFeatureProvider)
.action(mContext, SettingsEnums.ACTION_CANCEL_AUDIO_SHARING_NOTIFICATION);
}
@@ -199,8 +198,10 @@
}
@Test
- public void broadcastReceiver_receiveAudioSharingStopIntent_stopBroadcast() {
+ public void
+ broadcastReceiver_receiveAudioSharingStopIntent_notInBroadcast_cancelNotification() {
mSetFlagsRule.enableFlags(Flags.FLAG_ENABLE_LE_AUDIO_SHARING);
+ when(mBroadcast.isEnabled(null)).thenReturn(false);
int broadcastId = 1;
when(mBroadcast.getLatestBroadcastId()).thenReturn(broadcastId);
@@ -209,7 +210,25 @@
AudioSharingReceiver audioSharingReceiver = getAudioSharingReceiver(intent);
audioSharingReceiver.onReceive(mContext, intent);
- verify(mBroadcast, times(1)).stopBroadcast(broadcastId);
+ verify(mBroadcast, never()).stopBroadcast(broadcastId);
+ verify(mNm).cancel(R.drawable.ic_bt_le_audio_sharing);
+ verify(mFeatureFactory.metricsFeatureProvider)
+ .action(mContext, SettingsEnums.ACTION_CANCEL_AUDIO_SHARING_NOTIFICATION);
+ }
+
+ @Test
+ public void broadcastReceiver_receiveAudioSharingStopIntent_inBroadcast_stopBroadcast() {
+ mSetFlagsRule.enableFlags(Flags.FLAG_ENABLE_LE_AUDIO_SHARING);
+ when(mBroadcast.isEnabled(null)).thenReturn(true);
+ int broadcastId = 1;
+ when(mBroadcast.getLatestBroadcastId()).thenReturn(broadcastId);
+
+ Intent intent = new Intent(ACTION_LE_AUDIO_SHARING_STOP);
+ intent.setPackage(mContext.getPackageName());
+ AudioSharingReceiver audioSharingReceiver = getAudioSharingReceiver(intent);
+ audioSharingReceiver.onReceive(mContext, intent);
+
+ verify(mBroadcast).stopBroadcast(broadcastId);
verify(mFeatureFactory.metricsFeatureProvider)
.action(mContext, SettingsEnums.ACTION_STOP_AUDIO_SHARING_FROM_NOTIFICATION);
}
diff --git a/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/AudioSharingSwitchBarControllerTest.java b/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/AudioSharingSwitchBarControllerTest.java
index d68b68b..711ef6f 100644
--- a/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/AudioSharingSwitchBarControllerTest.java
+++ b/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/AudioSharingSwitchBarControllerTest.java
@@ -51,6 +51,8 @@
import android.platform.test.flag.junit.SetFlagsRule;
import android.util.FeatureFlagUtils;
import android.util.Pair;
+import android.view.View;
+import android.view.accessibility.AccessibilityEvent;
import android.widget.CompoundButton;
import androidx.fragment.app.DialogFragment;
@@ -378,9 +380,7 @@
FeatureFlagUtils.setEnabled(
mContext, FeatureFlagUtils.SETTINGS_NEED_CONNECTED_BLE_DEVICE_FOR_BROADCAST, true);
when(mBtnView.isEnabled()).thenReturn(true);
- when(mAssistant.getDevicesMatchingConnectionStates(
- new int[] {BluetoothProfile.STATE_CONNECTED}))
- .thenReturn(ImmutableList.of());
+ when(mAssistant.getAllConnectedDevices()).thenReturn(ImmutableList.of());
doNothing().when(mBroadcast).startPrivateBroadcast();
mController.onCheckedChanged(mBtnView, /* isChecked= */ true);
assertThat(mSwitchBar.isChecked()).isFalse();
@@ -392,9 +392,7 @@
FeatureFlagUtils.setEnabled(
mContext, FeatureFlagUtils.SETTINGS_NEED_CONNECTED_BLE_DEVICE_FOR_BROADCAST, false);
when(mBtnView.isEnabled()).thenReturn(true);
- when(mAssistant.getDevicesMatchingConnectionStates(
- new int[] {BluetoothProfile.STATE_CONNECTED}))
- .thenReturn(ImmutableList.of());
+ when(mAssistant.getAllConnectedDevices()).thenReturn(ImmutableList.of());
doNothing().when(mBroadcast).startPrivateBroadcast();
mController.onCheckedChanged(mBtnView, /* isChecked= */ true);
verify(mBroadcast).startPrivateBroadcast();
@@ -405,9 +403,7 @@
FeatureFlagUtils.setEnabled(
mContext, FeatureFlagUtils.SETTINGS_NEED_CONNECTED_BLE_DEVICE_FOR_BROADCAST, true);
when(mBtnView.isEnabled()).thenReturn(true);
- when(mAssistant.getDevicesMatchingConnectionStates(
- new int[] {BluetoothProfile.STATE_CONNECTED}))
- .thenReturn(ImmutableList.of(mDevice1));
+ when(mAssistant.getAllConnectedDevices()).thenReturn(ImmutableList.of(mDevice1));
doNothing().when(mBroadcast).startPrivateBroadcast();
mController.onCheckedChanged(mBtnView, /* isChecked= */ true);
verify(mBroadcast).startPrivateBroadcast();
@@ -437,9 +433,7 @@
FeatureFlagUtils.setEnabled(
mContext, FeatureFlagUtils.SETTINGS_NEED_CONNECTED_BLE_DEVICE_FOR_BROADCAST, true);
when(mBtnView.isEnabled()).thenReturn(true);
- when(mAssistant.getDevicesMatchingConnectionStates(
- new int[] {BluetoothProfile.STATE_CONNECTED}))
- .thenReturn(ImmutableList.of(mDevice2, mDevice1));
+ when(mAssistant.getAllConnectedDevices()).thenReturn(ImmutableList.of(mDevice2, mDevice1));
doNothing().when(mBroadcast).startPrivateBroadcast();
mController =
new AudioSharingSwitchBarController(
@@ -469,9 +463,7 @@
FeatureFlagUtils.setEnabled(
mContext, FeatureFlagUtils.SETTINGS_NEED_CONNECTED_BLE_DEVICE_FOR_BROADCAST, true);
when(mBtnView.isEnabled()).thenReturn(true);
- when(mAssistant.getDevicesMatchingConnectionStates(
- new int[] {BluetoothProfile.STATE_CONNECTED}))
- .thenReturn(ImmutableList.of(mDevice2, mDevice1));
+ when(mAssistant.getAllConnectedDevices()).thenReturn(ImmutableList.of(mDevice2, mDevice1));
doNothing().when(mBroadcast).startPrivateBroadcast();
mController.onCheckedChanged(mBtnView, /* isChecked= */ true);
verify(mBroadcast).startPrivateBroadcast();
@@ -600,4 +592,26 @@
mController.mBroadcastAssistantCallback.onSourceLost(/* broadcastId= */ 1);
verifyNoMoreInteractions(mFeatureFactory.metricsFeatureProvider);
}
+
+ @Test
+ public void testAccessibilityDelegate() {
+ View view = new View(mContext);
+ AccessibilityEvent event =
+ new AccessibilityEvent(AccessibilityEvent.TYPE_WINDOW_CONTENT_CHANGED);
+ event.setContentChangeTypes(AccessibilityEvent.CONTENT_CHANGE_TYPE_UNDEFINED);
+ assertThat(
+ mSwitchBar
+ .getRootView()
+ .getAccessibilityDelegate()
+ .onRequestSendAccessibilityEvent(mSwitchBar, view, event))
+ .isTrue();
+
+ event.setContentChangeTypes(AccessibilityEvent.CONTENT_CHANGE_TYPE_ENABLED);
+ assertThat(
+ mSwitchBar
+ .getRootView()
+ .getAccessibilityDelegate()
+ .onRequestSendAccessibilityEvent(mSwitchBar, view, event))
+ .isFalse();
+ }
}
diff --git a/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamConfirmDialogTest.java b/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamConfirmDialogTest.java
index 601c432..9c83fa6 100644
--- a/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamConfirmDialogTest.java
+++ b/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamConfirmDialogTest.java
@@ -23,7 +23,6 @@
import static com.google.common.truth.Truth.assertThat;
-import static org.mockito.ArgumentMatchers.any;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
@@ -219,7 +218,7 @@
public void showDialog_noMetadata() {
List<BluetoothDevice> devices = new ArrayList<>();
devices.add(mBluetoothDevice);
- when(mAssistant.getDevicesMatchingConnectionStates(any())).thenReturn(devices);
+ when(mAssistant.getAllConnectedDevices()).thenReturn(devices);
when(mBluetoothDevice.getAlias()).thenReturn(DEVICE_NAME);
FragmentController.setupFragment(
@@ -267,7 +266,7 @@
public void showDialog_invalidMetadata() {
List<BluetoothDevice> devices = new ArrayList<>();
devices.add(mBluetoothDevice);
- when(mAssistant.getDevicesMatchingConnectionStates(any())).thenReturn(devices);
+ when(mAssistant.getAllConnectedDevices()).thenReturn(devices);
when(mBluetoothDevice.getAlias()).thenReturn(DEVICE_NAME);
Intent intent = new Intent();
@@ -318,7 +317,7 @@
public void showDialog_confirmListen() {
List<BluetoothDevice> devices = new ArrayList<>();
devices.add(mBluetoothDevice);
- when(mAssistant.getDevicesMatchingConnectionStates(any())).thenReturn(devices);
+ when(mAssistant.getAllConnectedDevices()).thenReturn(devices);
when(mBluetoothDevice.getAlias()).thenReturn("");
Intent intent = new Intent();
diff --git a/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamPreferenceTest.java b/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamPreferenceTest.java
index c8f9358..2515668 100644
--- a/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamPreferenceTest.java
+++ b/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamPreferenceTest.java
@@ -28,7 +28,6 @@
import android.view.LayoutInflater;
import android.view.View;
-import androidx.preference.Preference.OnPreferenceClickListener;
import androidx.preference.PreferenceViewHolder;
import androidx.test.core.app.ApplicationProvider;
@@ -94,17 +93,6 @@
}
@Test
- public void setConnected_shouldUpdatePreferenceUI() {
- String summary = "Connected";
- OnPreferenceClickListener listener = mock(OnPreferenceClickListener.class);
- mPreference.setIsConnected(true, summary, listener);
-
- assertThat(mPreference.getSummary()).isNotNull();
- assertThat(mPreference.getSummary().toString()).isEqualTo(summary);
- assertThat(mPreference.getOnPreferenceClickListener()).isEqualTo(listener);
- }
-
- @Test
public void setAudioStreamMetadata_shouldUpdateMetadata() {
AudioStreamPreference p =
AudioStreamPreference.fromMetadata(
@@ -147,7 +135,7 @@
@Test
public void shouldHideSecondTarget_connected() {
- mPreference.setIsConnected(true, "", null);
+ mPreference.setIsConnected(true);
assertThat(mPreference.shouldHideSecondTarget()).isTrue();
}
diff --git a/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamStateHandlerTest.java b/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamStateHandlerTest.java
index adc77a1..e44dee9 100644
--- a/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamStateHandlerTest.java
+++ b/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamStateHandlerTest.java
@@ -21,7 +21,6 @@
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.anyBoolean;
import static org.mockito.ArgumentMatchers.anyInt;
-import static org.mockito.ArgumentMatchers.anyString;
import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.mock;
@@ -31,6 +30,7 @@
import static org.mockito.Mockito.when;
import android.content.Context;
+import android.text.SpannableString;
import androidx.preference.Preference;
import androidx.test.core.app.ApplicationProvider;
@@ -39,6 +39,7 @@
import org.junit.Rule;
import org.junit.Test;
import org.junit.runner.RunWith;
+import org.mockito.ArgumentCaptor;
import org.mockito.Mock;
import org.mockito.junit.MockitoJUnit;
import org.mockito.junit.MockitoRule;
@@ -75,7 +76,9 @@
verify(mPreference, never()).setAudioStreamState(any());
verify(mHandler, never()).performAction(any(), any(), any());
- verify(mPreference, never()).setIsConnected(anyBoolean(), anyString(), any());
+ verify(mPreference, never()).setIsConnected(anyBoolean());
+ verify(mPreference, never()).setSummary(any());
+ verify(mPreference, never()).setOnPreferenceClickListener(any());
}
@Test
@@ -93,7 +96,9 @@
.setAudioStreamState(
AudioStreamsProgressCategoryController.AudioStreamState.SOURCE_ADDED);
verify(mHandler).performAction(any(), any(), any());
- verify(mPreference).setIsConnected(eq(true), eq(""), eq(null));
+ verify(mPreference).setIsConnected(eq(true));
+ verify(mPreference).setSummary(eq(""));
+ verify(mPreference).setOnPreferenceClickListener(eq(null));
}
@Test
@@ -119,7 +124,13 @@
AudioStreamsProgressCategoryController.AudioStreamState
.ADD_SOURCE_BAD_CODE);
verify(mHandler).performAction(any(), any(), any());
- verify(mPreference).setIsConnected(eq(false), eq(SUMMARY), eq(listener));
+ verify(mPreference).setIsConnected(eq(false));
+ ArgumentCaptor<SpannableString> argumentCaptor =
+ ArgumentCaptor.forClass(SpannableString.class);
+ verify(mPreference).setSummary(argumentCaptor.capture());
+ assertThat(argumentCaptor.getValue()).isNotNull();
+ assertThat(argumentCaptor.getValue().toString()).isEqualTo(SUMMARY);
+ verify(mPreference).setOnPreferenceClickListener(eq(listener));
}
@Test
diff --git a/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamsHelperTest.java b/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamsHelperTest.java
index 66ef5fb..4266798 100644
--- a/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamsHelperTest.java
+++ b/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamsHelperTest.java
@@ -16,6 +16,9 @@
package com.android.settings.connecteddevice.audiosharing.audiostreams;
+import static android.content.res.Configuration.ORIENTATION_LANDSCAPE;
+import static android.content.res.Configuration.ORIENTATION_PORTRAIT;
+
import static com.google.common.truth.Truth.assertThat;
import static org.mockito.ArgumentMatchers.any;
@@ -32,9 +35,13 @@
import android.bluetooth.BluetoothLeBroadcastMetadata;
import android.bluetooth.BluetoothLeBroadcastReceiveState;
import android.content.Context;
+import android.content.res.Configuration;
+import android.content.res.Resources;
+import androidx.fragment.app.FragmentActivity;
import androidx.test.core.app.ApplicationProvider;
+import com.android.settings.R;
import com.android.settings.testutils.shadow.ShadowThreadUtils;
import com.android.settingslib.bluetooth.CachedBluetoothDevice;
import com.android.settingslib.bluetooth.CachedBluetoothDeviceManager;
@@ -42,6 +49,7 @@
import com.android.settingslib.bluetooth.LocalBluetoothManager;
import com.android.settingslib.bluetooth.LocalBluetoothProfileManager;
+import com.google.android.material.appbar.AppBarLayout;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableSet;
@@ -91,8 +99,7 @@
@Test
public void addSource_noDevice_doNothing() {
- when(mAssistant.getDevicesMatchingConnectionStates(any()))
- .thenReturn(Collections.emptyList());
+ when(mAssistant.getAllConnectedDevices()).thenReturn(Collections.emptyList());
mHelper.addSource(mMetadata);
verify(mAssistant, never()).addSource(any(), any(), anyBoolean());
@@ -102,7 +109,7 @@
public void addSource_hasDevice() {
List<BluetoothDevice> devices = new ArrayList<>();
devices.add(mDevice);
- when(mAssistant.getDevicesMatchingConnectionStates(any())).thenReturn(devices);
+ when(mAssistant.getAllConnectedDevices()).thenReturn(devices);
when(mDeviceManager.findDevice(any())).thenReturn(mCachedDevice);
when(mCachedDevice.getDevice()).thenReturn(mDevice);
when(mCachedDevice.getGroupId()).thenReturn(GROUP_ID);
@@ -114,8 +121,7 @@
@Test
public void removeSource_noDevice_doNothing() {
- when(mAssistant.getDevicesMatchingConnectionStates(any()))
- .thenReturn(Collections.emptyList());
+ when(mAssistant.getAllConnectedDevices()).thenReturn(Collections.emptyList());
mHelper.removeSource(BROADCAST_ID_1);
verify(mAssistant, never()).removeSource(any(), anyInt());
@@ -125,7 +131,7 @@
public void removeSource_noConnectedSource_doNothing() {
List<BluetoothDevice> devices = new ArrayList<>();
devices.add(mDevice);
- when(mAssistant.getDevicesMatchingConnectionStates(any())).thenReturn(devices);
+ when(mAssistant.getAllConnectedDevices()).thenReturn(devices);
BluetoothLeBroadcastReceiveState source = mock(BluetoothLeBroadcastReceiveState.class);
when(source.getBroadcastId()).thenReturn(BROADCAST_ID_2);
when(mDeviceManager.findDevice(any())).thenReturn(mCachedDevice);
@@ -142,7 +148,7 @@
public void removeSource_hasConnectedSource() {
List<BluetoothDevice> devices = new ArrayList<>();
devices.add(mDevice);
- when(mAssistant.getDevicesMatchingConnectionStates(any())).thenReturn(devices);
+ when(mAssistant.getAllConnectedDevices()).thenReturn(devices);
BluetoothLeBroadcastReceiveState source = mock(BluetoothLeBroadcastReceiveState.class);
when(source.getBroadcastId()).thenReturn(BROADCAST_ID_2);
when(mDeviceManager.findDevice(any())).thenReturn(mCachedDevice);
@@ -164,7 +170,7 @@
var memberDevice = mock(BluetoothDevice.class);
devices.add(mDevice);
devices.add(memberDevice);
- when(mAssistant.getDevicesMatchingConnectionStates(any())).thenReturn(devices);
+ when(mAssistant.getAllConnectedDevices()).thenReturn(devices);
BluetoothLeBroadcastReceiveState source = mock(BluetoothLeBroadcastReceiveState.class);
when(source.getBroadcastId()).thenReturn(BROADCAST_ID_2);
when(mDeviceManager.findDevice(any())).thenReturn(mCachedDevice);
@@ -196,7 +202,7 @@
public void getAllConnectedSources_returnSource() {
List<BluetoothDevice> devices = new ArrayList<>();
devices.add(mDevice);
- when(mAssistant.getDevicesMatchingConnectionStates(any())).thenReturn(devices);
+ when(mAssistant.getAllConnectedDevices()).thenReturn(devices);
BluetoothLeBroadcastReceiveState source = mock(BluetoothLeBroadcastReceiveState.class);
when(mDeviceManager.findDevice(any())).thenReturn(mCachedDevice);
when(mCachedDevice.getDevice()).thenReturn(mDevice);
@@ -222,7 +228,7 @@
public void startMediaService_hasDevice() {
List<BluetoothDevice> devices = new ArrayList<>();
devices.add(mDevice);
- when(mAssistant.getDevicesMatchingConnectionStates(any())).thenReturn(devices);
+ when(mAssistant.getAllConnectedDevices()).thenReturn(devices);
BluetoothLeBroadcastReceiveState source = mock(BluetoothLeBroadcastReceiveState.class);
when(mDeviceManager.findDevice(any())).thenReturn(mCachedDevice);
when(mCachedDevice.getDevice()).thenReturn(mDevice);
@@ -236,4 +242,40 @@
verify(mContext).startService(any());
}
+
+ @Test
+ public void configureAppBarByOrientation_landscape_shouldNotExpand() {
+ FragmentActivity fragmentActivity = mock(FragmentActivity.class);
+ // AppBarLayout requires a Theme.AppCompat.
+ mContext.setTheme(R.style.Theme_Settings_Home);
+ AppBarLayout appBarLayout = spy(new AppBarLayout(mContext));
+ setUpFragment(fragmentActivity, appBarLayout, ORIENTATION_LANDSCAPE);
+
+ AudioStreamsHelper.configureAppBarByOrientation(fragmentActivity);
+
+ verify(appBarLayout).setExpanded(eq(false));
+ }
+
+ @Test
+ public void configureAppBarByOrientation_portrait_shouldExpand() {
+ FragmentActivity fragmentActivity = mock(FragmentActivity.class);
+ // AppBarLayout requires a Theme.AppCompat.
+ mContext.setTheme(R.style.Theme_Settings_Home);
+ AppBarLayout appBarLayout = spy(new AppBarLayout(mContext));
+ setUpFragment(fragmentActivity, appBarLayout, ORIENTATION_PORTRAIT);
+
+ AudioStreamsHelper.configureAppBarByOrientation(fragmentActivity);
+
+ verify(appBarLayout).setExpanded(eq(true));
+ }
+
+ private void setUpFragment(
+ FragmentActivity fragmentActivity, AppBarLayout appBarLayout, int orientationPortrait) {
+ Resources resources = mock(Resources.class);
+ when(fragmentActivity.getResources()).thenReturn(resources);
+ Configuration configuration = new Configuration();
+ configuration.orientation = orientationPortrait;
+ when(resources.getConfiguration()).thenReturn(configuration);
+ when(fragmentActivity.findViewById(anyInt())).thenReturn(appBarLayout);
+ }
}
diff --git a/tests/robotests/src/com/android/settings/development/DesktopModeSecondaryDisplayPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/development/DesktopModeSecondaryDisplayPreferenceControllerTest.java
index 5931004..3691d12 100644
--- a/tests/robotests/src/com/android/settings/development/DesktopModeSecondaryDisplayPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/development/DesktopModeSecondaryDisplayPreferenceControllerTest.java
@@ -16,6 +16,7 @@
package com.android.settings.development;
+import static android.provider.Settings.Global.DEVELOPMENT_ENABLE_FREEFORM_WINDOWS_SUPPORT;
import static android.provider.Settings.Global.DEVELOPMENT_FORCE_DESKTOP_MODE_ON_EXTERNAL_DISPLAYS;
import static com.android.settings.development.DesktopModeSecondaryDisplayPreferenceController.SETTING_VALUE_OFF;
@@ -55,6 +56,7 @@
private static final String ENG_BUILD_TYPE = "eng";
private static final String USER_BUILD_TYPE = "user";
+ private static final int SETTING_VALUE_INVALID = -1;
@Mock
private SwitchPreference mPreference;
@@ -102,21 +104,41 @@
@Test
public void onPreferenceChange_switchEnabled_enablesDesktopModeOnSecondaryDisplay() {
- mController.onPreferenceChange(mPreference, true /* new value */);
+ mController.onPreferenceChange(mPreference, /* newValue= */ true);
final int mode = Settings.Global.getInt(mContext.getContentResolver(),
- DEVELOPMENT_FORCE_DESKTOP_MODE_ON_EXTERNAL_DISPLAYS, -1 /* default */);
+ DEVELOPMENT_FORCE_DESKTOP_MODE_ON_EXTERNAL_DISPLAYS,
+ /* def= */ SETTING_VALUE_INVALID);
assertThat(mode).isEqualTo(SETTING_VALUE_ON);
verify(mTransaction).add(any(RebootConfirmationDialogFragment.class), any());
}
@Test
- public void onPreferenceChange_switchDisabled_disablesDesktopModeOnSecondaryDisplay() {
- mController.onPreferenceChange(mPreference, false /* new value */);
+ public void onPreferenceChange_switchEnabled_enablesFreeformSupport() {
+ mController.onPreferenceChange(mPreference, /* newValue= */ true);
final int mode = Settings.Global.getInt(mContext.getContentResolver(),
- DEVELOPMENT_FORCE_DESKTOP_MODE_ON_EXTERNAL_DISPLAYS, -1 /* default */);
+ DEVELOPMENT_ENABLE_FREEFORM_WINDOWS_SUPPORT, /* def= */ SETTING_VALUE_INVALID);
+ assertThat(mode).isEqualTo(SETTING_VALUE_ON);
+ }
+
+ @Test
+ public void onPreferenceChange_switchDisabled_disablesDesktopModeOnSecondaryDisplay() {
+ mController.onPreferenceChange(mPreference, /* newValue= */ false);
+
+ final int mode = Settings.Global.getInt(mContext.getContentResolver(),
+ DEVELOPMENT_FORCE_DESKTOP_MODE_ON_EXTERNAL_DISPLAYS,
+ /* def= */ SETTING_VALUE_INVALID);
+ assertThat(mode).isEqualTo(SETTING_VALUE_OFF);
+ }
+
+ @Test
+ public void onPreferenceChange_switchDisabled_disablesFreeformSupport() {
+ mController.onPreferenceChange(mPreference, /* newValue= */ false);
+
+ final int mode = Settings.Global.getInt(mContext.getContentResolver(),
+ DEVELOPMENT_ENABLE_FREEFORM_WINDOWS_SUPPORT, /* def= */ SETTING_VALUE_INVALID);
assertThat(mode).isEqualTo(SETTING_VALUE_OFF);
}
@@ -145,7 +167,8 @@
mController.onDeveloperOptionsSwitchDisabled();
final int mode = Settings.Global.getInt(mContext.getContentResolver(),
- DEVELOPMENT_FORCE_DESKTOP_MODE_ON_EXTERNAL_DISPLAYS, -1 /* default */);
+ DEVELOPMENT_FORCE_DESKTOP_MODE_ON_EXTERNAL_DISPLAYS,
+ /* def= */ SETTING_VALUE_INVALID);
assertThat(mode).isEqualTo(SETTING_VALUE_OFF);
verify(mPreference).setEnabled(false);
}
diff --git a/tests/robotests/src/com/android/settings/development/DevelopmentSettingsDashboardFragmentTest.java b/tests/robotests/src/com/android/settings/development/DevelopmentSettingsDashboardFragmentTest.java
index 37a4aea..9f45edb 100644
--- a/tests/robotests/src/com/android/settings/development/DevelopmentSettingsDashboardFragmentTest.java
+++ b/tests/robotests/src/com/android/settings/development/DevelopmentSettingsDashboardFragmentTest.java
@@ -18,13 +18,21 @@
import static com.google.common.truth.Truth.assertThat;
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.eq;
+import static org.mockito.Mockito.doNothing;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
+import android.app.Activity;
import android.content.Context;
+import android.hardware.biometrics.BiometricManager;
+import android.hardware.biometrics.Flags;
+import android.platform.test.annotations.EnableFlags;
+import android.platform.test.flag.junit.SetFlagsRule;
import android.provider.SearchIndexableResource;
import android.provider.Settings;
@@ -42,6 +50,7 @@
import org.junit.After;
import org.junit.Before;
import org.junit.Ignore;
+import org.junit.Rule;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.MockitoAnnotations;
@@ -51,6 +60,7 @@
import org.robolectric.annotation.Implementation;
import org.robolectric.annotation.Implements;
import org.robolectric.shadow.api.Shadow;
+import org.robolectric.shadows.ShadowBiometricManager;
import org.robolectric.shadows.androidx.fragment.FragmentController;
import org.robolectric.util.ReflectionHelpers;
@@ -61,22 +71,34 @@
ShadowAlertDialogCompat.class,
ShadowUserManager.class,
ShadowUserManager.class,
+ ShadowBiometricManager.class,
})
public class DevelopmentSettingsDashboardFragmentTest {
+ @Rule
+ public final SetFlagsRule mSetFlagsRule = new SetFlagsRule();
private Context mContext;
private ShadowUserManager mShadowUserManager;
+ private ShadowBiometricManager mShadowBiometricManager;
private DevelopmentSettingsDashboardFragment mDashboard;
+ private SettingsMainSwitchBar mSwitchBar;
@Before
public void setUp() {
MockitoAnnotations.initMocks(this);
mContext = RuntimeEnvironment.application;
- SettingsMainSwitchBar switchBar = new SettingsMainSwitchBar(mContext);
+ mSwitchBar = new SettingsMainSwitchBar(mContext);
mDashboard = spy(new DevelopmentSettingsDashboardFragment());
- ReflectionHelpers.setField(mDashboard, "mSwitchBar", switchBar);
+ ReflectionHelpers.setField(mDashboard, "mSwitchBar", mSwitchBar);
mShadowUserManager = Shadow.extract(mContext.getSystemService(Context.USER_SERVICE));
mShadowUserManager.setIsAdminUser(true);
+ mShadowBiometricManager = Shadow.extract(mContext.getSystemService(
+ Context.BIOMETRIC_SERVICE));
+ mShadowBiometricManager.setCanAuthenticate(false);
+ //TODO(b/352603684): Should be Authenticators.MANDATORY_BIOMETRICS,
+ // but it is not supported by ShadowBiometricManager
+ mShadowBiometricManager.setAuthenticatorType(
+ BiometricManager.Authenticators.BIOMETRIC_STRONG);
}
@After
@@ -177,6 +199,41 @@
}
@Test
+ @Config(shadows = ShadowEnableDevelopmentSettingWarningDialog.class)
+ @EnableFlags(Flags.FLAG_MANDATORY_BIOMETRICS)
+ public void onSwitchChanged_turnOn_shouldLaunchBiometricPromptIfMandatoryBiometricsEffective() {
+ when(mDashboard.getContext()).thenReturn(mContext);
+ doNothing().when(mDashboard).startActivityForResult(any(),
+ eq(DevelopmentSettingsDashboardFragment.REQUEST_BIOMETRIC_PROMPT));
+
+ Settings.Global.putInt(mContext.getContentResolver(),
+ Settings.Global.DEVELOPMENT_SETTINGS_ENABLED, 0);
+ mShadowBiometricManager.setCanAuthenticate(true);
+ mDashboard.onCheckedChanged(null, true /* isChecked */);
+
+ assertThat(mSwitchBar.isChecked()).isFalse();
+ verify(mDashboard).startActivityForResult(any(),
+ eq(DevelopmentSettingsDashboardFragment.REQUEST_BIOMETRIC_PROMPT));
+ assertThat(ShadowEnableDevelopmentSettingWarningDialog.mShown).isFalse();
+ }
+
+ @Test
+ @Config(shadows = ShadowEnableDevelopmentSettingWarningDialog.class)
+ @EnableFlags(Flags.FLAG_MANDATORY_BIOMETRICS)
+ public void onActivityResult_requestBiometricPrompt_shouldShowWarningDialog() {
+ when(mDashboard.getContext()).thenReturn(mContext);
+
+ Settings.Global.putInt(mContext.getContentResolver(),
+ Settings.Global.DEVELOPMENT_SETTINGS_ENABLED, 0);
+ mDashboard.onActivityResult(DevelopmentSettingsDashboardFragment.REQUEST_BIOMETRIC_PROMPT,
+ Activity.RESULT_OK, null);
+ mDashboard.onCheckedChanged(null, true /* isChecked */);
+
+ assertThat(mSwitchBar.isChecked()).isTrue();
+ assertThat(ShadowEnableDevelopmentSettingWarningDialog.mShown).isTrue();
+ }
+
+ @Test
@Ignore
@Config(shadows = ShadowEnableDevelopmentSettingWarningDialog.class)
public void onSwitchChanged_turnOff_shouldTurnOff() {
diff --git a/tests/robotests/src/com/android/settings/development/FreeformWindowsPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/development/FreeformWindowsPreferenceControllerTest.java
index bd005b3..978380e 100644
--- a/tests/robotests/src/com/android/settings/development/FreeformWindowsPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/development/FreeformWindowsPreferenceControllerTest.java
@@ -16,8 +16,9 @@
package com.android.settings.development;
-import static com.android.settings.development.FreeformWindowsPreferenceController
- .SETTING_VALUE_OFF;
+import static android.content.pm.PackageManager.FEATURE_FREEFORM_WINDOW_MANAGEMENT;
+
+import static com.android.settings.development.FreeformWindowsPreferenceController.SETTING_VALUE_OFF;
import static com.android.settings.development.FreeformWindowsPreferenceController.SETTING_VALUE_ON;
import static com.google.common.truth.Truth.assertThat;
@@ -29,6 +30,7 @@
import static org.mockito.Mockito.when;
import android.content.Context;
+import android.content.pm.PackageManager;
import android.provider.Settings;
import androidx.fragment.app.FragmentActivity;
@@ -43,7 +45,6 @@
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.robolectric.RobolectricTestRunner;
-import org.robolectric.RuntimeEnvironment;
import org.robolectric.annotation.Config;
@RunWith(RobolectricTestRunner.class)
@@ -52,9 +53,10 @@
})
public class FreeformWindowsPreferenceControllerTest {
- private static final String ENG_BUILD_TYPE = "eng";
- private static final String USER_BUILD_TYPE = "user";
-
+ @Mock
+ Context mContext;
+ @Mock
+ private PackageManager mPackageManager;
@Mock
private SwitchPreference mPreference;
@Mock
@@ -68,33 +70,33 @@
@Mock
private FragmentTransaction mTransaction;
- private Context mContext;
private FreeformWindowsPreferenceController mController;
@Before
public void setup() {
MockitoAnnotations.initMocks(this);
- mContext = RuntimeEnvironment.application;
doReturn(mTransaction).when(mFragmentManager).beginTransaction();
doReturn(mFragmentManager).when(mActivity).getSupportFragmentManager();
doReturn(mActivity).when(mFragment).getActivity();
mController = new FreeformWindowsPreferenceController(mContext, mFragment);
when(mScreen.findPreference(mController.getPreferenceKey())).thenReturn(mPreference);
+ when(mContext.getPackageManager()).thenReturn(mPackageManager);
mController.displayPreference(mScreen);
}
@Test
- public void isAvailable_engBuild_shouldBeTrue() {
+ public void isAvailable_deviceHasFreeformWindowSystemFeature_returnsFalse() {
mController = spy(mController);
- doReturn(ENG_BUILD_TYPE).when(mController).getBuildType();
+ when(mPackageManager.hasSystemFeature(FEATURE_FREEFORM_WINDOW_MANAGEMENT)).thenReturn(true);
- assertThat(mController.isAvailable()).isTrue();
+ assertThat(mController.isAvailable()).isFalse();
}
@Test
- public void isAvailable_userBuild_shouldBeTrue() {
+ public void isAvailable_deviceDoesNotHaveFreeformWindowSystemFeature_returnsTrue() {
mController = spy(mController);
- doReturn(USER_BUILD_TYPE).when(mController).getBuildType();
+ when(mPackageManager.hasSystemFeature(FEATURE_FREEFORM_WINDOW_MANAGEMENT)).thenReturn(
+ false);
assertThat(mController.isAvailable()).isTrue();
}
diff --git a/tests/robotests/src/com/android/settings/development/TouchpadVisualizerPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/development/TouchpadVisualizerPreferenceControllerTest.java
new file mode 100644
index 0000000..98c774e
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/development/TouchpadVisualizerPreferenceControllerTest.java
@@ -0,0 +1,111 @@
+/*
+ * Copyright 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.development;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+import android.content.Context;
+import android.provider.Settings;
+
+import androidx.preference.PreferenceScreen;
+import androidx.preference.SwitchPreference;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+import org.robolectric.RobolectricTestRunner;
+import org.robolectric.RuntimeEnvironment;
+
+@RunWith(RobolectricTestRunner.class)
+public class TouchpadVisualizerPreferenceControllerTest {
+
+ @Mock
+ private PreferenceScreen mScreen;
+ @Mock
+ private SwitchPreference mPreference;
+
+ private Context mContext;
+
+ private TouchpadVisualizerPreferenceController mController;
+
+ @Before
+ public void setUp() {
+ MockitoAnnotations.initMocks(this);
+ mContext = RuntimeEnvironment.application;
+ mController = new TouchpadVisualizerPreferenceController(mContext);
+ when(mScreen.findPreference(mController.getPreferenceKey())).thenReturn(mPreference);
+ mController.displayPreference(mScreen);
+ }
+
+ @Test
+ public void updateState_touchpadVisualizerEnabled_shouldCheckedPreference() {
+ Settings.System.putInt(mContext.getContentResolver(),
+ Settings.System.TOUCHPAD_VISUALIZER, ShowTapsPreferenceController.SETTING_VALUE_ON);
+
+ mController.updateState(mPreference);
+
+ verify(mPreference).setChecked(true);
+ }
+
+ @Test
+ public void updateState_touchpadVisualizerDisabled_shouldUncheckedPreference() {
+ Settings.System.putInt(mContext.getContentResolver(),
+ Settings.System.TOUCHPAD_VISUALIZER,
+ ShowTapsPreferenceController.SETTING_VALUE_OFF);
+
+ mController.updateState(mPreference);
+
+ verify(mPreference).setChecked(false);
+ }
+
+ @Test
+ public void onPreferenceChange_preferenceChecked_shouldEnableTouchpadVisualizer() {
+ mController.onPreferenceChange(mPreference, true /* new value */);
+
+ final int touchpadVisualizer = Settings.System.getInt(mContext.getContentResolver(),
+ Settings.System.TOUCHPAD_VISUALIZER, -1 /* default */);
+
+ assertThat(touchpadVisualizer).isEqualTo(ShowTapsPreferenceController.SETTING_VALUE_ON);
+ }
+
+ @Test
+ public void onPreferenceChange_preferenceUnchecked_shouldDisableTouchpadVisualizer() {
+ mController.onPreferenceChange(mPreference, false /* new value */);
+
+ final int showTapsMode = Settings.System.getInt(mContext.getContentResolver(),
+ Settings.System.TOUCHPAD_VISUALIZER, -1 /* default */);
+
+ assertThat(showTapsMode).isEqualTo(ShowTapsPreferenceController.SETTING_VALUE_OFF);
+ }
+
+ @Test
+ public void onDeveloperOptionsSwitchDisabled_preferenceShouldBeEnabled() {
+ mController.onDeveloperOptionsSwitchDisabled();
+
+ final int showTapsMode = Settings.System.getInt(mContext.getContentResolver(),
+ Settings.System.TOUCHPAD_VISUALIZER, -1 /* default */);
+
+ assertThat(showTapsMode).isEqualTo(ShowTapsPreferenceController.SETTING_VALUE_OFF);
+ verify(mPreference).setEnabled(false);
+ verify(mPreference).setChecked(false);
+ }
+}
\ No newline at end of file
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/BatteryHeaderPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/fuelgauge/BatteryHeaderPreferenceControllerTest.java
index b949a3e..fdb075d 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/BatteryHeaderPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/BatteryHeaderPreferenceControllerTest.java
@@ -389,6 +389,28 @@
verify(mBatteryUsageProgressBarPref).setBottomSummary(expectedChargingString);
}
+ @Test
+ public void updateBatteryStatus_dockDefend_chargingOnHold() {
+ var expected = "Charging on hold";
+ mBatteryInfo.isBatteryDefender = false;
+ when(mFactory.powerUsageFeatureProvider.isExtraDefend()).thenReturn(true);
+
+ mController.updateBatteryStatus(/* label= */ null, mBatteryInfo);
+
+ verify(mBatteryUsageProgressBarPref).setBottomSummary(expected);
+ }
+
+ @Test
+ public void updateBatteryStatus_batteryDefender_chargingOnHold() {
+ var expected = "Charging on hold";
+ mBatteryInfo.isBatteryDefender = true;
+ when(mFactory.powerUsageFeatureProvider.isExtraDefend()).thenReturn(false);
+
+ mController.updateBatteryStatus(/* label= */ null, mBatteryInfo);
+
+ verify(mBatteryUsageProgressBarPref).setBottomSummary(expected);
+ }
+
private BatteryInfo arrangeUpdateBatteryStatusTestWithRemainingLabel(
String remainingLabel,
String statusLabel,
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/BatteryInfoTest.java b/tests/robotests/src/com/android/settings/fuelgauge/BatteryInfoTest.java
index 851dc79..8d6cc08 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/BatteryInfoTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/BatteryInfoTest.java
@@ -75,7 +75,8 @@
private static final String STATUS_CHARGING_TIME = "50% - 0 min left until full";
private static final String STATUS_NOT_CHARGING = "Not charging";
private static final String STATUS_CHARGING_FUTURE_BYPASS = "50% - Charging";
- private static final String STATUS_CHARGING_PAUSED = "50% - Charging optimized";
+ private static final String STATUS_CHARGING_PAUSED =
+ "50% - Charging on hold to protect battery";
private static final long REMAINING_TIME_NULL = -1;
private static final long REMAINING_TIME = 2;
// Strings are defined in frameworks/base/packages/SettingsLib/res/values/strings.xml
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/BatteryOptimizeUtilsTest.java b/tests/robotests/src/com/android/settings/fuelgauge/BatteryOptimizeUtilsTest.java
index 84f549e..72b49e2 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/BatteryOptimizeUtilsTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/BatteryOptimizeUtilsTest.java
@@ -164,7 +164,7 @@
TimeUnit.SECONDS.sleep(1);
verifySetAppOptimizationMode(AppOpsManager.MODE_IGNORED, /* allowListed */ false);
- verify(mObserver).onChanged(DataChangeReason.UPDATE);
+ verify(mObserver).onChanged(mBatterySettingsStorage, DataChangeReason.UPDATE);
}
@Test
@@ -178,7 +178,7 @@
TimeUnit.SECONDS.sleep(1);
verifySetAppOptimizationMode(AppOpsManager.MODE_ALLOWED, /* allowListed */ true);
- verify(mObserver).onChanged(DataChangeReason.UPDATE);
+ verify(mObserver).onChanged(mBatterySettingsStorage, DataChangeReason.UPDATE);
}
@Test
@@ -192,7 +192,7 @@
TimeUnit.SECONDS.sleep(1);
verifySetAppOptimizationMode(AppOpsManager.MODE_ALLOWED, /* allowListed */ false);
- verify(mObserver).onChanged(DataChangeReason.UPDATE);
+ verify(mObserver).onChanged(mBatterySettingsStorage, DataChangeReason.UPDATE);
}
@Test
@@ -301,7 +301,7 @@
inOrder.verify(mMockBackend).isAllowlisted(PACKAGE_NAME, UID);
inOrder.verify(mMockBackend).isSysAllowlisted(PACKAGE_NAME);
verifyNoMoreInteractions(mMockBackend);
- verify(mObserver).onChanged(DataChangeReason.DELETE);
+ verify(mObserver).onChanged(mBatterySettingsStorage, DataChangeReason.DELETE);
}
@Test
@@ -312,7 +312,7 @@
/* isSystemOrDefaultApp */ false);
verifySetAppOptimizationMode(AppOpsManager.MODE_ALLOWED, /* allowListed */ false);
- verify(mObserver).onChanged(DataChangeReason.DELETE);
+ verify(mObserver).onChanged(mBatterySettingsStorage, DataChangeReason.DELETE);
}
@Test
@@ -323,7 +323,7 @@
/* isSystemOrDefaultApp */ false);
verifySetAppOptimizationMode(AppOpsManager.MODE_ALLOWED, /* allowListed */ false);
- verify(mObserver).onChanged(DataChangeReason.DELETE);
+ verify(mObserver).onChanged(mBatterySettingsStorage, DataChangeReason.DELETE);
}
private void runTestForResetWithMode(
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryTipsCardPreferenceTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryTipsCardPreferenceTest.java
deleted file mode 100644
index 5f86301..0000000
--- a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryTipsCardPreferenceTest.java
+++ /dev/null
@@ -1,293 +0,0 @@
-/*
- * Copyright (C) 2023 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.fuelgauge.batteryusage;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.ArgumentMatchers.eq;
-import static org.mockito.Mockito.doNothing;
-import static org.mockito.Mockito.doReturn;
-import static org.mockito.Mockito.never;
-import static org.mockito.Mockito.spy;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.when;
-
-import android.app.settings.SettingsEnums;
-import android.content.Context;
-import android.content.Intent;
-import android.provider.Settings;
-import android.util.Pair;
-import android.view.View;
-
-import com.android.settings.DisplaySettings;
-import com.android.settings.R;
-import com.android.settings.SettingsActivity;
-import com.android.settings.testutils.BatteryTestUtils;
-import com.android.settings.testutils.FakeFeatureFactory;
-import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
-
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.ArgumentCaptor;
-import org.mockito.Mock;
-import org.mockito.MockitoAnnotations;
-import org.robolectric.RobolectricTestRunner;
-import org.robolectric.RuntimeEnvironment;
-
-import java.util.Map;
-import java.util.Optional;
-import java.util.TimeZone;
-
-@RunWith(RobolectricTestRunner.class)
-public final class BatteryTipsCardPreferenceTest {
-
- private Context mContext;
- private FakeFeatureFactory mFeatureFactory;
- private BatteryTipsCardPreference mBatteryTipsCardPreference;
- private PowerUsageAdvanced mPowerUsageAdvanced;
- private BatteryTipsController mBatteryTipsController;
- private BatteryChartPreferenceController mBatteryChartPreferenceController;
-
- @Mock private View mFakeView;
- @Mock private BatteryUsageBreakdownController mBatteryUsageBreakdownController;
- @Mock private BatteryDiffEntry mFakeEntry;
-
- @Before
- public void setUp() {
- MockitoAnnotations.initMocks(this);
- TimeZone.setDefault(TimeZone.getTimeZone("GMT+8"));
- mContext = spy(RuntimeEnvironment.application);
- mFeatureFactory = FakeFeatureFactory.setupForTest();
- mBatteryTipsCardPreference = new BatteryTipsCardPreference(mContext, /* attrs= */ null);
- mBatteryTipsController = new BatteryTipsController(mContext);
- mBatteryChartPreferenceController =
- spy(new BatteryChartPreferenceController(mContext, null, null));
- mBatteryChartPreferenceController.mPrefContext = mContext;
- mBatteryTipsController.mCardPreference = mBatteryTipsCardPreference;
-
- mPowerUsageAdvanced = spy(new PowerUsageAdvanced());
- doReturn(mContext).when(mPowerUsageAdvanced).getContext();
- mPowerUsageAdvanced.mBatteryTipsController = mBatteryTipsController;
- mPowerUsageAdvanced.mBatteryChartPreferenceController = mBatteryChartPreferenceController;
- mPowerUsageAdvanced.mBatteryUsageBreakdownController = mBatteryUsageBreakdownController;
- mPowerUsageAdvanced.mBatteryLevelData =
- Optional.of(
- new BatteryLevelData(
- Map.of(
- 1694354400000L, 1, // 2023-09-10 22:00:00
- 1694361600000L, 2, // 2023-09-11 00:00:00
- 1694368800000L, 3))); // 2023-09-11 02:00:00
- doReturn("TestEntriesKey").when(mFakeEntry).getKey();
- }
-
- @Test
- public void constructor_returnExpectedResult() {
- assertThat(mBatteryTipsCardPreference.getLayoutResource())
- .isEqualTo(R.layout.battery_tips_card);
- }
-
- @Test
- public void onClick_mainBtnOfSettingsAnomalyLaunchPage_getAdaptiveBrightnessLauncher() {
- final ArgumentCaptor<Intent> captor = ArgumentCaptor.forClass(Intent.class);
- PowerAnomalyEvent adaptiveBrightnessAnomaly =
- BatteryTestUtils.createAdaptiveBrightnessAnomalyEvent(/* changeSettings= */ false);
- when(mFeatureFactory.powerUsageFeatureProvider.isBatteryTipsEnabled()).thenReturn(true);
- when(mFakeView.getId()).thenReturn(R.id.main_button);
- doNothing().when(mContext).startActivity(captor.capture());
-
- mPowerUsageAdvanced.onDisplayAnomalyEventUpdated(
- adaptiveBrightnessAnomaly, adaptiveBrightnessAnomaly);
- mBatteryTipsCardPreference.onClick(mFakeView);
-
- assertThat(mBatteryTipsCardPreference.isVisible()).isFalse();
- verify(mContext).startActivity(any(Intent.class));
- final Intent intent = captor.getValue();
- assertThat(intent.getStringExtra(SettingsActivity.EXTRA_SHOW_FRAGMENT))
- .isEqualTo(DisplaySettings.class.getName());
- assertThat(intent.getIntExtra(MetricsFeatureProvider.EXTRA_SOURCE_METRICS_CATEGORY, -1))
- .isEqualTo(SettingsEnums.DISPLAY);
- verify(mFeatureFactory.metricsFeatureProvider)
- .action(
- SettingsEnums.FUELGAUGE_BATTERY_HISTORY_DETAIL,
- SettingsEnums.ACTION_BATTERY_TIPS_CARD_SHOW,
- SettingsEnums.FUELGAUGE_BATTERY_HISTORY_DETAIL,
- BatteryTipsController.ANOMALY_KEY,
- PowerAnomalyKey.KEY_BRIGHTNESS.getNumber());
- verify(mFeatureFactory.metricsFeatureProvider)
- .action(
- SettingsEnums.FUELGAUGE_BATTERY_HISTORY_DETAIL,
- SettingsEnums.ACTION_BATTERY_TIPS_CARD_ACCEPT,
- SettingsEnums.FUELGAUGE_BATTERY_HISTORY_DETAIL,
- BatteryTipsController.ANOMALY_KEY,
- PowerAnomalyKey.KEY_BRIGHTNESS.getNumber());
- }
-
- @Test
- public void onClick_mainBtnOfSettingsAnomalyChangeSettings_settingsChanged()
- throws Settings.SettingNotFoundException {
- Settings.System.putInt(
- mContext.getContentResolver(),
- Settings.System.SCREEN_BRIGHTNESS_MODE,
- Settings.System.SCREEN_BRIGHTNESS_MODE_MANUAL);
- final ArgumentCaptor<Intent> captor = ArgumentCaptor.forClass(Intent.class);
- PowerAnomalyEvent adaptiveBrightnessAnomaly =
- BatteryTestUtils.createAdaptiveBrightnessAnomalyEvent(/* changeSettings= */ true);
- when(mFeatureFactory.powerUsageFeatureProvider.isBatteryTipsEnabled()).thenReturn(true);
- when(mFakeView.getId()).thenReturn(R.id.main_button);
- doNothing().when(mContext).startActivity(captor.capture());
-
- mPowerUsageAdvanced.onDisplayAnomalyEventUpdated(
- adaptiveBrightnessAnomaly, adaptiveBrightnessAnomaly);
- mBatteryTipsCardPreference.onClick(mFakeView);
-
- assertThat(mBatteryTipsCardPreference.isVisible()).isFalse();
- assertThat(
- Settings.System.getInt(
- mContext.getContentResolver(),
- Settings.System.SCREEN_BRIGHTNESS_MODE))
- .isEqualTo(Settings.System.SCREEN_BRIGHTNESS_MODE_AUTOMATIC);
- verify(mContext, never()).startActivity(any(Intent.class));
- verify(mFeatureFactory.metricsFeatureProvider)
- .action(
- SettingsEnums.FUELGAUGE_BATTERY_HISTORY_DETAIL,
- SettingsEnums.ACTION_BATTERY_TIPS_CARD_SHOW,
- SettingsEnums.FUELGAUGE_BATTERY_HISTORY_DETAIL,
- BatteryTipsController.ANOMALY_KEY,
- PowerAnomalyKey.KEY_BRIGHTNESS.getNumber());
- verify(mFeatureFactory.metricsFeatureProvider)
- .action(
- SettingsEnums.FUELGAUGE_BATTERY_HISTORY_DETAIL,
- SettingsEnums.ACTION_BATTERY_TIPS_CARD_ACCEPT,
- SettingsEnums.FUELGAUGE_BATTERY_HISTORY_DETAIL,
- BatteryTipsController.ANOMALY_KEY,
- PowerAnomalyKey.KEY_BRIGHTNESS.getNumber());
- }
-
- @Test
- public void onClick_dismissBtnOfSettingsAnomaly_cardDismissAndLogged() {
- final PowerAnomalyEvent screenTimeoutAnomaly =
- BatteryTestUtils.createScreenTimeoutAnomalyEvent();
- DatabaseUtils.removeDismissedPowerAnomalyKeys(mContext);
- when(mFeatureFactory.powerUsageFeatureProvider.isBatteryTipsEnabled()).thenReturn(true);
- when(mFakeView.getId()).thenReturn(R.id.dismiss_button);
-
- mPowerUsageAdvanced.onDisplayAnomalyEventUpdated(
- screenTimeoutAnomaly, screenTimeoutAnomaly);
- mBatteryTipsCardPreference.onClick(mFakeView);
-
- assertThat(mBatteryTipsCardPreference.isVisible()).isFalse();
- assertThat(DatabaseUtils.getDismissedPowerAnomalyKeys(mContext)).hasSize(1);
- assertThat(DatabaseUtils.getDismissedPowerAnomalyKeys(mContext))
- .contains(PowerAnomalyKey.KEY_SCREEN_TIMEOUT.name());
- verify(mFeatureFactory.metricsFeatureProvider)
- .action(
- SettingsEnums.FUELGAUGE_BATTERY_HISTORY_DETAIL,
- SettingsEnums.ACTION_BATTERY_TIPS_CARD_SHOW,
- SettingsEnums.FUELGAUGE_BATTERY_HISTORY_DETAIL,
- BatteryTipsController.ANOMALY_KEY,
- PowerAnomalyKey.KEY_SCREEN_TIMEOUT.getNumber());
- verify(mFeatureFactory.metricsFeatureProvider)
- .action(
- SettingsEnums.FUELGAUGE_BATTERY_HISTORY_DETAIL,
- SettingsEnums.ACTION_BATTERY_TIPS_CARD_DISMISS,
- SettingsEnums.FUELGAUGE_BATTERY_HISTORY_DETAIL,
- BatteryTipsController.ANOMALY_KEY,
- PowerAnomalyKey.KEY_SCREEN_TIMEOUT.getNumber());
- }
-
- @Test
- public void onClick_mainBtnOfAppsAnomaly_selectHighlightSlot() {
- final PowerAnomalyEvent appsAnomaly = BatteryTestUtils.createAppAnomalyEvent();
- when(mFeatureFactory.powerUsageFeatureProvider.isBatteryTipsEnabled()).thenReturn(true);
- when(mFakeView.getId()).thenReturn(R.id.main_button);
- doNothing().when(mBatteryChartPreferenceController).selectHighlightSlotIndex();
- when(mPowerUsageAdvanced.findRelatedBatteryDiffEntry(any())).thenReturn(mFakeEntry);
-
- mPowerUsageAdvanced.onDisplayAnomalyEventUpdated(appsAnomaly, appsAnomaly);
- assertHighlightSlotIndexPair(1, 0);
- mBatteryTipsCardPreference.onClick(mFakeView);
-
- assertThat(mBatteryTipsCardPreference.isVisible()).isFalse();
- verify(mContext, never()).startActivity(any(Intent.class));
- verify(mBatteryChartPreferenceController).onHighlightSlotIndexUpdate(eq(1), eq(0));
- verify(mBatteryChartPreferenceController).selectHighlightSlotIndex();
- verify(mFeatureFactory.metricsFeatureProvider)
- .action(
- SettingsEnums.FUELGAUGE_BATTERY_HISTORY_DETAIL,
- SettingsEnums.ACTION_BATTERY_TIPS_CARD_SHOW,
- SettingsEnums.FUELGAUGE_BATTERY_HISTORY_DETAIL,
- BatteryTipsController.ANOMALY_KEY,
- PowerAnomalyKey.KEY_APP_TOTAL_HIGHER_THAN_USUAL.getNumber());
- verify(mFeatureFactory.metricsFeatureProvider)
- .action(
- SettingsEnums.FUELGAUGE_BATTERY_HISTORY_DETAIL,
- SettingsEnums.ACTION_BATTERY_TIPS_CARD_ACCEPT,
- SettingsEnums.FUELGAUGE_BATTERY_HISTORY_DETAIL,
- BatteryTipsController.ANOMALY_KEY,
- PowerAnomalyKey.KEY_APP_TOTAL_HIGHER_THAN_USUAL.getNumber());
- }
-
- @Test
- public void onClick_dismissBtnOfAppsAnomaly_keepHighlightSlotIndex() {
- final PowerAnomalyEvent appsAnomaly = BatteryTestUtils.createAppAnomalyEvent();
- when(mFeatureFactory.powerUsageFeatureProvider.isBatteryTipsEnabled()).thenReturn(true);
- when(mFakeView.getId()).thenReturn(R.id.dismiss_button);
- when(mPowerUsageAdvanced.findRelatedBatteryDiffEntry(any())).thenReturn(mFakeEntry);
-
- mPowerUsageAdvanced.onDisplayAnomalyEventUpdated(appsAnomaly, appsAnomaly);
- assertHighlightSlotIndexPair(1, 0);
- mBatteryTipsCardPreference.onClick(mFakeView);
-
- assertThat(mBatteryTipsCardPreference.isVisible()).isFalse();
- verify(mContext, never()).startActivity(any(Intent.class));
- verify(mBatteryChartPreferenceController).onHighlightSlotIndexUpdate(eq(1), eq(0));
- verify(mBatteryChartPreferenceController, never()).selectHighlightSlotIndex();
- verify(mFeatureFactory.metricsFeatureProvider)
- .action(
- SettingsEnums.FUELGAUGE_BATTERY_HISTORY_DETAIL,
- SettingsEnums.ACTION_BATTERY_TIPS_CARD_SHOW,
- SettingsEnums.FUELGAUGE_BATTERY_HISTORY_DETAIL,
- BatteryTipsController.ANOMALY_KEY,
- PowerAnomalyKey.KEY_APP_TOTAL_HIGHER_THAN_USUAL.getNumber());
- verify(mFeatureFactory.metricsFeatureProvider)
- .action(
- SettingsEnums.FUELGAUGE_BATTERY_HISTORY_DETAIL,
- SettingsEnums.ACTION_BATTERY_TIPS_CARD_DISMISS,
- SettingsEnums.FUELGAUGE_BATTERY_HISTORY_DETAIL,
- BatteryTipsController.ANOMALY_KEY,
- PowerAnomalyKey.KEY_APP_TOTAL_HIGHER_THAN_USUAL.getNumber());
- }
-
- private void assertHighlightSlotIndexPair(
- int dailyHighlightSlotIndex, int hourlyHighlightSlotIndex) {
- assertThat(mPowerUsageAdvanced.mBatteryLevelData.isPresent()).isTrue();
- assertThat(mPowerUsageAdvanced.mHighlightEventWrapper.isPresent()).isTrue();
- Pair<Integer, Integer> slotIndexPair =
- mPowerUsageAdvanced
- .mHighlightEventWrapper
- .get()
- .getHighlightSlotPair(mPowerUsageAdvanced.mBatteryLevelData.get());
- assertThat(slotIndexPair)
- .isEqualTo(Pair.create(dailyHighlightSlotIndex, hourlyHighlightSlotIndex));
- assertThat(mPowerUsageAdvanced.mBatteryChartPreferenceController.mDailyHighlightSlotIndex)
- .isEqualTo(dailyHighlightSlotIndex);
- assertThat(mPowerUsageAdvanced.mBatteryChartPreferenceController.mHourlyHighlightSlotIndex)
- .isEqualTo(hourlyHighlightSlotIndex);
- }
-}
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryTipsControllerTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryTipsControllerTest.java
index 954437f..6c29036b 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryTipsControllerTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryTipsControllerTest.java
@@ -16,8 +16,13 @@
package com.android.settings.fuelgauge.batteryusage;
+
+import static com.google.common.truth.Truth.assertThat;
+
import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.never;
import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
@@ -29,11 +34,11 @@
import com.android.settings.R;
import com.android.settings.testutils.BatteryTestUtils;
import com.android.settings.testutils.FakeFeatureFactory;
+import com.android.settings.widget.TipCardPreference;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
-import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.RuntimeEnvironment;
@@ -47,134 +52,156 @@
private Context mContext;
private FakeFeatureFactory mFeatureFactory;
private BatteryTipsController mBatteryTipsController;
-
- @Mock private BatteryTipsCardPreference mBatteryTipsCardPreference;
+ private TipCardPreference mCardPreference;
@Before
public void setUp() {
MockitoAnnotations.initMocks(this);
Locale.setDefault(new Locale("en_US"));
- org.robolectric.shadows.ShadowSettings.set24HourTimeFormat(false);
TimeZone.setDefault(TimeZone.getTimeZone("UTC"));
+
mContext = spy(RuntimeEnvironment.application);
final Resources resources = spy(mContext.getResources());
resources.getConfiguration().setLocales(new LocaleList(new Locale("en_US")));
doReturn(resources).when(mContext).getResources();
mFeatureFactory = FakeFeatureFactory.setupForTest();
- mBatteryTipsController = new BatteryTipsController(mContext);
- mBatteryTipsController.mCardPreference = mBatteryTipsCardPreference;
+ mBatteryTipsController = spy(new BatteryTipsController(mContext));
+ mCardPreference = new TipCardPreference(mContext);
+ mBatteryTipsController.mCardPreference = mCardPreference;
}
@Test
public void handleBatteryTipsCardUpdated_null_hidePreference() {
mBatteryTipsController.handleBatteryTipsCardUpdated(/* powerAnomalyEvents= */ null, false);
- verify(mBatteryTipsCardPreference).setVisible(false);
+ assertThat(mCardPreference.isVisible()).isFalse();
}
@Test
public void handleBatteryTipsCardUpdated_adaptiveBrightnessAnomaly_showAnomaly() {
- PowerAnomalyEvent event = BatteryTestUtils.createAdaptiveBrightnessAnomalyEvent();
+ AnomalyEventWrapper anomalyEventWrapper =
+ spy(
+ new AnomalyEventWrapper(
+ mContext,
+ BatteryTestUtils.createAdaptiveBrightnessAnomalyEvent(true)));
when(mFeatureFactory.powerUsageFeatureProvider.isBatteryTipsEnabled()).thenReturn(true);
- mBatteryTipsController.handleBatteryTipsCardUpdated(
- new AnomalyEventWrapper(mContext, event), false);
+ mBatteryTipsController.handleBatteryTipsCardUpdated(anomalyEventWrapper, false);
- // Check pre-defined string
- verify(mBatteryTipsCardPreference)
- .setTitle("Turn on adaptive brightness to extend battery life");
- verify(mBatteryTipsCardPreference).setIconResourceId(R.drawable.ic_battery_tips_lightbulb);
- verify(mBatteryTipsCardPreference).setButtonColorResourceId(R.color.color_accent_selector);
- verify(mBatteryTipsCardPreference).setMainButtonLabel("View Settings");
- verify(mBatteryTipsCardPreference).setDismissButtonLabel("Got it");
- // Check proto info
- verify(mBatteryTipsCardPreference).setVisible(true);
- verify(mFeatureFactory.metricsFeatureProvider)
- .action(
- SettingsEnums.FUELGAUGE_BATTERY_HISTORY_DETAIL,
- SettingsEnums.ACTION_BATTERY_TIPS_CARD_SHOW,
- SettingsEnums.FUELGAUGE_BATTERY_HISTORY_DETAIL,
- BatteryTipsController.ANOMALY_KEY,
- PowerAnomalyKey.KEY_BRIGHTNESS.getNumber());
+ assertThat(mCardPreference.getTitle())
+ .isEqualTo("Turn on adaptive brightness to extend battery life");
+ assertThat(mCardPreference.getPrimaryButtonText()).isEqualTo("Got it");
+ assertThat(mCardPreference.getSecondaryButtonText()).isEqualTo("View Settings");
+ assertThat(mCardPreference.getIconResId()).isEqualTo(R.drawable.ic_battery_tips_lightbulb);
+ assertThat(mCardPreference.getTintColorResId()).isEqualTo(R.color.color_accent_selector);
+ assertThat(mCardPreference.getPrimaryButtonVisibility()).isTrue();
+ assertThat(mCardPreference.getSecondaryButtonVisibility()).isTrue();
+ assertCardButtonActionAndMetrics(anomalyEventWrapper);
}
@Test
public void handleBatteryTipsCardUpdated_screenTimeoutAnomaly_showAnomaly() {
- PowerAnomalyEvent event = BatteryTestUtils.createScreenTimeoutAnomalyEvent();
+ AnomalyEventWrapper anomalyEventWrapper =
+ spy(
+ new AnomalyEventWrapper(
+ mContext, BatteryTestUtils.createScreenTimeoutAnomalyEvent(true)));
when(mFeatureFactory.powerUsageFeatureProvider.isBatteryTipsEnabled()).thenReturn(true);
- mBatteryTipsController.handleBatteryTipsCardUpdated(
- new AnomalyEventWrapper(mContext, event), false);
+ mBatteryTipsController.handleBatteryTipsCardUpdated(anomalyEventWrapper, false);
- verify(mBatteryTipsCardPreference).setTitle("Reduce screen timeout to extend battery life");
- verify(mBatteryTipsCardPreference).setIconResourceId(R.drawable.ic_battery_tips_lightbulb);
- verify(mBatteryTipsCardPreference).setButtonColorResourceId(R.color.color_accent_selector);
- verify(mBatteryTipsCardPreference).setMainButtonLabel("View Settings");
- verify(mBatteryTipsCardPreference).setDismissButtonLabel("Got it");
- verify(mBatteryTipsCardPreference).setVisible(true);
- verify(mFeatureFactory.metricsFeatureProvider)
- .action(
- SettingsEnums.FUELGAUGE_BATTERY_HISTORY_DETAIL,
- SettingsEnums.ACTION_BATTERY_TIPS_CARD_SHOW,
- SettingsEnums.FUELGAUGE_BATTERY_HISTORY_DETAIL,
- BatteryTipsController.ANOMALY_KEY,
- PowerAnomalyKey.KEY_SCREEN_TIMEOUT.getNumber());
+ assertThat(mCardPreference.getTitle())
+ .isEqualTo("Reduce screen timeout to extend battery life");
+ assertThat(mCardPreference.getPrimaryButtonText()).isEqualTo("Got it");
+ assertThat(mCardPreference.getSecondaryButtonText()).isEqualTo("View Settings");
+ assertThat(mCardPreference.getIconResId()).isEqualTo(R.drawable.ic_battery_tips_lightbulb);
+ assertThat(mCardPreference.getTintColorResId()).isEqualTo(R.color.color_accent_selector);
+ assertThat(mCardPreference.getPrimaryButtonVisibility()).isTrue();
+ assertThat(mCardPreference.getSecondaryButtonVisibility()).isTrue();
+ assertCardButtonActionAndMetrics(anomalyEventWrapper);
}
@Test
public void handleBatteryTipsCardUpdated_screenTimeoutAnomalyHasTitle_showAnomaly() {
- PowerAnomalyEvent event = BatteryTestUtils.createScreenTimeoutAnomalyEvent();
+ PowerAnomalyEvent anomalyEvent = BatteryTestUtils.createScreenTimeoutAnomalyEvent(true);
String testTitle = "TestTitle";
- event =
- event.toBuilder()
+ anomalyEvent =
+ anomalyEvent.toBuilder()
.setWarningBannerInfo(
- event.getWarningBannerInfo().toBuilder()
+ anomalyEvent.getWarningBannerInfo().toBuilder()
.setTitleString(testTitle)
.build())
.build();
+ AnomalyEventWrapper anomalyEventWrapper =
+ spy(new AnomalyEventWrapper(mContext, anomalyEvent));
when(mFeatureFactory.powerUsageFeatureProvider.isBatteryTipsEnabled()).thenReturn(true);
- mBatteryTipsController.handleBatteryTipsCardUpdated(
- new AnomalyEventWrapper(mContext, event), false);
+ mBatteryTipsController.handleBatteryTipsCardUpdated(anomalyEventWrapper, false);
- verify(mBatteryTipsCardPreference).setTitle(testTitle);
- verify(mBatteryTipsCardPreference).setIconResourceId(R.drawable.ic_battery_tips_lightbulb);
- verify(mBatteryTipsCardPreference).setButtonColorResourceId(R.color.color_accent_selector);
- verify(mBatteryTipsCardPreference).setMainButtonLabel("View Settings");
- verify(mBatteryTipsCardPreference).setDismissButtonLabel("Got it");
- verify(mBatteryTipsCardPreference).setVisible(true);
- verify(mFeatureFactory.metricsFeatureProvider)
- .action(
- SettingsEnums.FUELGAUGE_BATTERY_HISTORY_DETAIL,
- SettingsEnums.ACTION_BATTERY_TIPS_CARD_SHOW,
- SettingsEnums.FUELGAUGE_BATTERY_HISTORY_DETAIL,
- BatteryTipsController.ANOMALY_KEY,
- PowerAnomalyKey.KEY_SCREEN_TIMEOUT.getNumber());
+ assertThat(mCardPreference.getTitle()).isEqualTo(testTitle);
+ assertThat(mCardPreference.getPrimaryButtonText()).isEqualTo("Got it");
+ assertThat(mCardPreference.getSecondaryButtonText()).isEqualTo("View Settings");
+ assertThat(mCardPreference.getIconResId()).isEqualTo(R.drawable.ic_battery_tips_lightbulb);
+ assertThat(mCardPreference.getTintColorResId()).isEqualTo(R.color.color_accent_selector);
+ assertThat(mCardPreference.getPrimaryButtonVisibility()).isTrue();
+ assertThat(mCardPreference.getSecondaryButtonVisibility()).isTrue();
+ assertCardButtonActionAndMetrics(anomalyEventWrapper);
}
@Test
public void handleBatteryTipsCardUpdated_appAnomaly_showAnomaly() {
- PowerAnomalyEvent event = BatteryTestUtils.createAppAnomalyEvent();
+ AnomalyEventWrapper anomalyEventWrapper =
+ spy(new AnomalyEventWrapper(mContext, BatteryTestUtils.createAppAnomalyEvent()));
when(mFeatureFactory.powerUsageFeatureProvider.isBatteryTipsEnabled()).thenReturn(true);
- AnomalyEventWrapper eventWrapper = new AnomalyEventWrapper(mContext, event);
- eventWrapper.setRelatedBatteryDiffEntry(new BatteryDiffEntry(mContext, "", "Chrome", 0));
- mBatteryTipsController.handleBatteryTipsCardUpdated(eventWrapper, false);
+ anomalyEventWrapper.setRelatedBatteryDiffEntry(
+ new BatteryDiffEntry(mContext, "", "Chrome", 0));
+ mBatteryTipsController.setOnAnomalyConfirmListener(
+ () -> mBatteryTipsController.acceptTipsCard());
+ mBatteryTipsController.handleBatteryTipsCardUpdated(anomalyEventWrapper, true);
- verify(mBatteryTipsCardPreference).setTitle("Chrome used more battery than usual");
- verify(mBatteryTipsCardPreference)
- .setIconResourceId(R.drawable.ic_battery_tips_warning_icon);
- verify(mBatteryTipsCardPreference)
- .setButtonColorResourceId(R.color.color_battery_anomaly_app_warning_selector);
- verify(mBatteryTipsCardPreference).setMainButtonLabel("Check");
- verify(mBatteryTipsCardPreference).setDismissButtonLabel("Got it");
- verify(mBatteryTipsCardPreference).setVisible(true);
+ assertThat(mCardPreference.getTitle()).isEqualTo("Chrome used more battery than usual");
+ assertThat(mCardPreference.getPrimaryButtonText()).isEqualTo("Got it");
+ assertThat(mCardPreference.getSecondaryButtonText()).isEqualTo("Check");
+ assertThat(mCardPreference.getIconResId())
+ .isEqualTo(R.drawable.ic_battery_tips_warning_icon);
+ assertThat(mCardPreference.getTintColorResId())
+ .isEqualTo(R.color.color_battery_anomaly_app_warning_selector);
+ assertThat(mCardPreference.getPrimaryButtonVisibility()).isTrue();
+ assertThat(mCardPreference.getSecondaryButtonVisibility()).isTrue();
+ assertThat(mCardPreference.isVisible()).isTrue();
+ assertCardButtonActionAndMetrics(anomalyEventWrapper);
+ }
+
+ private void assertCardButtonActionAndMetrics(final AnomalyEventWrapper anomalyEventWrapper) {
+ when(anomalyEventWrapper.updateSystemSettingsIfAvailable()).thenReturn(true);
+
+ final int powerAnomalyKeyNumber = anomalyEventWrapper.getAnomalyKeyNumber();
+ assertCardMetrics(SettingsEnums.ACTION_BATTERY_TIPS_CARD_SHOW, powerAnomalyKeyNumber);
+ assertThat(mCardPreference.isVisible()).isTrue();
+
+ // Check accept button action
+ mCardPreference.setVisible(true);
+ mCardPreference.getSecondaryButtonAction().invoke();
+ assertCardMetrics(SettingsEnums.ACTION_BATTERY_TIPS_CARD_ACCEPT, powerAnomalyKeyNumber);
+ assertThat(mCardPreference.isVisible()).isFalse();
+ final boolean isAppAnomalyCard = powerAnomalyKeyNumber > 1;
+ verify(anomalyEventWrapper, isAppAnomalyCard ? never() : times(1))
+ .updateSystemSettingsIfAvailable();
+
+ // Check reject button action
+ mCardPreference.setVisible(true);
+ mCardPreference.getPrimaryButtonAction().invoke();
+ assertCardMetrics(SettingsEnums.ACTION_BATTERY_TIPS_CARD_DISMISS, powerAnomalyKeyNumber);
+ assertThat(mCardPreference.isVisible()).isFalse();
+ }
+
+ private void assertCardMetrics(final int action, final int powerAnomalyKeyNumber) {
verify(mFeatureFactory.metricsFeatureProvider)
.action(
SettingsEnums.FUELGAUGE_BATTERY_HISTORY_DETAIL,
- SettingsEnums.ACTION_BATTERY_TIPS_CARD_SHOW,
+ action,
SettingsEnums.FUELGAUGE_BATTERY_HISTORY_DETAIL,
BatteryTipsController.ANOMALY_KEY,
- PowerAnomalyKey.KEY_APP_TOTAL_HIGHER_THAN_USUAL.getNumber());
+ powerAnomalyKeyNumber);
}
}
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageBroadcastReceiverTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageBroadcastReceiverTest.java
index af0cb91..63d44d0 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageBroadcastReceiverTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageBroadcastReceiverTest.java
@@ -28,9 +28,9 @@
import android.content.pm.PackageManager;
import android.os.BatteryManager;
import android.os.SystemClock;
+import android.os.UserManager;
import android.text.format.DateUtils;
-import com.android.settings.testutils.BatteryTestUtils;
import com.android.settings.testutils.FakeFeatureFactory;
import org.junit.Before;
@@ -49,6 +49,7 @@
private FakeFeatureFactory mFakeFeatureFactory;
@Mock private PackageManager mPackageManager;
+ @Mock private UserManager mUserManager;
@Before
public void setUp() {
@@ -57,6 +58,7 @@
mFakeFeatureFactory = FakeFeatureFactory.setupForTest();
mBatteryUsageBroadcastReceiver = new BatteryUsageBroadcastReceiver();
doReturn(mPackageManager).when(mContext).getPackageManager();
+ doReturn(mUserManager).when(mContext).getSystemService(UserManager.class);
DatabaseUtils.getSharedPreferences(mContext).edit().clear().apply();
}
@@ -69,7 +71,17 @@
@Test
public void onReceive_workProfile_doNothing() {
- BatteryTestUtils.setWorkProfile(mContext);
+ doReturn(true).when(mUserManager).isManagedProfile();
+
+ mBatteryUsageBroadcastReceiver.onReceive(
+ mContext, new Intent(BatteryUsageBroadcastReceiver.ACTION_BATTERY_UNPLUGGING));
+
+ assertThat(mBatteryUsageBroadcastReceiver.mFetchBatteryUsageData).isFalse();
+ }
+
+ @Test
+ public void onReceive_privateProfile_doNothing() {
+ doReturn(true).when(mUserManager).isPrivateProfile();
mBatteryUsageBroadcastReceiver.onReceive(
mContext, new Intent(BatteryUsageBroadcastReceiver.ACTION_BATTERY_UNPLUGGING));
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageContentProviderTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageContentProviderTest.java
index 950f828..ac711a4 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageContentProviderTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageContentProviderTest.java
@@ -19,12 +19,16 @@
import static com.google.common.truth.Truth.assertThat;
import static org.junit.Assert.assertThrows;
+import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.when;
import android.content.ContentResolver;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.net.Uri;
+import android.os.UserManager;
import androidx.test.core.app.ApplicationProvider;
@@ -39,6 +43,8 @@
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
import org.robolectric.RobolectricTestRunner;
import java.time.Duration;
@@ -62,9 +68,14 @@
private Context mContext;
private BatteryUsageContentProvider mProvider;
+ @Mock
+ private UserManager mUserManager;
+
@Before
public void setUp() {
- mContext = ApplicationProvider.getApplicationContext();
+ MockitoAnnotations.initMocks(this);
+ mContext = spy(ApplicationProvider.getApplicationContext());
+ when(mContext.getSystemService(UserManager.class)).thenReturn(mUserManager);
mProvider = new BatteryUsageContentProvider();
mProvider.attachInfo(mContext, /* info= */ null);
BatteryTestUtils.setUpBatteryStateDatabase(mContext);
@@ -77,7 +88,13 @@
@Test
public void onCreate_withWorkProfileMode_returnsFalse() {
- BatteryTestUtils.setWorkProfile(mContext);
+ doReturn(true).when(mUserManager).isManagedProfile();
+ assertThat(mProvider.onCreate()).isFalse();
+ }
+
+ @Test
+ public void onCreate_withPrivateProfileMode_returnsFalse() {
+ doReturn(true).when(mUserManager).isPrivateProfile();
assertThat(mProvider.onCreate()).isFalse();
}
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BootBroadcastReceiverTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BootBroadcastReceiverTest.java
index 704637f..3cf6e61 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BootBroadcastReceiverTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BootBroadcastReceiverTest.java
@@ -18,6 +18,9 @@
import static com.google.common.truth.Truth.assertThat;
+import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.when;
import static org.robolectric.Shadows.shadowOf;
import android.app.AlarmManager;
@@ -26,9 +29,11 @@
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
+import android.os.UserManager;
import androidx.test.core.app.ApplicationProvider;
+import com.android.settings.fuelgauge.batteryusage.db.BatteryEventDao;
import com.android.settings.fuelgauge.batteryusage.db.BatteryStateDao;
import com.android.settings.fuelgauge.batteryusage.db.BatteryStateDatabase;
import com.android.settings.testutils.BatteryTestUtils;
@@ -37,6 +42,8 @@
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.Shadows;
import org.robolectric.shadows.ShadowAlarmManager;
@@ -50,23 +57,31 @@
@RunWith(RobolectricTestRunner.class)
public final class BootBroadcastReceiverTest {
private Context mContext;
- private BatteryStateDao mDao;
+ private BatteryStateDao mBatteryStateDao;
+ private BatteryEventDao mBatteryEventDao;
private BootBroadcastReceiver mReceiver;
private ShadowAlarmManager mShadowAlarmManager;
private PeriodicJobManager mPeriodicJobManager;
+ @Mock
+ private UserManager mUserManager;
+
@Before
public void setUp() {
+ MockitoAnnotations.initMocks(this);
TimeZone.setDefault(TimeZone.getTimeZone("UTC"));
- mContext = ApplicationProvider.getApplicationContext();
+ mContext = spy(ApplicationProvider.getApplicationContext());
+ when(mContext.getSystemService(UserManager.class)).thenReturn(mUserManager);
mPeriodicJobManager = PeriodicJobManager.getInstance(mContext);
mShadowAlarmManager = shadowOf(mContext.getSystemService(AlarmManager.class));
mReceiver = new BootBroadcastReceiver();
// Inserts fake data into database for testing.
final BatteryStateDatabase database = BatteryTestUtils.setUpBatteryStateDatabase(mContext);
- mDao = database.batteryStateDao();
- mDao.clearAll();
+ mBatteryStateDao = database.batteryStateDao();
+ mBatteryStateDao.clearAll();
+ mBatteryEventDao = database.batteryEventDao();
+ mBatteryEventDao.clearAll();
clearSharedPreferences();
}
@@ -78,7 +93,15 @@
@Test
public void onReceive_withWorkProfile_notRefreshesJob() {
- BatteryTestUtils.setWorkProfile(mContext);
+ doReturn(true).when(mUserManager).isManagedProfile();
+ mReceiver.onReceive(mContext, new Intent(Intent.ACTION_BOOT_COMPLETED));
+
+ assertThat(mShadowAlarmManager.peekNextScheduledAlarm()).isNull();
+ }
+
+ @Test
+ public void onReceive_withPrivateProfile_notRefreshesJob() {
+ doReturn(true).when(mUserManager).isPrivateProfile();
mReceiver.onReceive(mContext, new Intent(Intent.ACTION_BOOT_COMPLETED));
assertThat(mShadowAlarmManager.peekNextScheduledAlarm()).isNull();
@@ -132,36 +155,32 @@
@Test
public void onReceive_withTimeChangedIntentSetEarlierTime_refreshesJob()
throws InterruptedException {
- BatteryTestUtils.insertDataToBatteryStateTable(
- mContext, Clock.systemUTC().millis() + 60000, "com.android.systemui");
- assertThat(mDao.getAllAfter(0).size()).isEqualTo(1);
+ insertDataToTable(Clock.systemUTC().millis() + 60000);
mReceiver.onReceive(mContext, new Intent(Intent.ACTION_TIME_CHANGED));
TimeUnit.MILLISECONDS.sleep(1000);
- assertThat(mDao.getAllAfter(0)).isEmpty();
+ assertThat(mBatteryStateDao.getAllAfter(0)).isEmpty();
+ assertThat(mBatteryEventDao.getAllAfterForLog(0)).isEmpty();
assertThat(mShadowAlarmManager.peekNextScheduledAlarm()).isNotNull();
}
@Test
public void onReceive_withTimeChangedIntentSetLaterTime_clearNoDataAndRefreshesJob()
throws InterruptedException {
- BatteryTestUtils.insertDataToBatteryStateTable(
- mContext, Clock.systemUTC().millis() - 60000, "com.android.systemui");
- assertThat(mDao.getAllAfter(0).size()).isEqualTo(1);
+ insertDataToTable(Clock.systemUTC().millis() - 60000);
mReceiver.onReceive(mContext, new Intent(Intent.ACTION_TIME_CHANGED));
TimeUnit.MILLISECONDS.sleep(1000);
- assertThat(mDao.getAllAfter(0).size()).isEqualTo(1);
+ assertThat(mBatteryStateDao.getAllAfter(0)).hasSize(1);
+ assertThat(mBatteryEventDao.getAllAfterForLog(0)).hasSize(1);
assertThat(mShadowAlarmManager.peekNextScheduledAlarm()).isNotNull();
}
@Test
public void onReceive_withTimeFormatChangedIntent_skipRefreshJob() throws InterruptedException {
- BatteryTestUtils.insertDataToBatteryStateTable(
- mContext, Clock.systemUTC().millis() + 60000, "com.android.systemui");
- assertThat(mDao.getAllAfter(0).size()).isEqualTo(1);
+ insertDataToTable(Clock.systemUTC().millis() + 60000);
mReceiver.onReceive(
mContext,
@@ -171,21 +190,24 @@
Intent.EXTRA_TIME_PREF_VALUE_USE_12_HOUR));
TimeUnit.MILLISECONDS.sleep(1000);
- assertThat(mDao.getAllAfter(0).size()).isEqualTo(1);
+ assertThat(mBatteryStateDao.getAllAfter(0)).hasSize(1);
+ assertThat(mBatteryEventDao.getAllAfterForLog(0)).hasSize(1);
assertThat(mShadowAlarmManager.peekNextScheduledAlarm()).isNull();
}
@Test
- public void onReceive_withTimeZoneChangedIntent_clearAllDataAndRefreshesJob()
+ public void onReceive_withTimeZoneChangedIntent_clearCacheDataAndRefreshesJob()
throws InterruptedException {
- BatteryTestUtils.insertDataToBatteryStateTable(
- mContext, Clock.systemUTC().millis(), "com.android.systemui");
- assertThat(mDao.getAllAfter(0).size()).isEqualTo(1);
+ insertDataToTable(Clock.systemUTC().millis());
+
+ assertThat(mBatteryStateDao.getAllAfter(0)).hasSize(1);
mReceiver.onReceive(mContext, new Intent(Intent.ACTION_TIMEZONE_CHANGED));
TimeUnit.MILLISECONDS.sleep(1000);
- assertThat(mDao.getAllAfter(0)).isEmpty();
+ // Only clear cache data.
+ assertThat(mBatteryStateDao.getAllAfter(0)).hasSize(1);
+ assertThat(mBatteryEventDao.getAllAfterForLog(0)).isEmpty();
assertThat(mShadowAlarmManager.peekNextScheduledAlarm()).isNotNull();
}
@@ -202,4 +224,13 @@
private void clearSharedPreferences() {
DatabaseUtils.getSharedPreferences(mContext).edit().clear().apply();
}
+
+ private void insertDataToTable(long recordTimeMs) {
+ BatteryTestUtils.insertDataToBatteryStateTable(
+ mContext, recordTimeMs, "com.android.systemui");
+ BatteryTestUtils.insertDataToBatteryEventTable(
+ mContext, recordTimeMs, BatteryEventType.EVEN_HOUR.getNumber(), 50);
+ assertThat(mBatteryStateDao.getAllAfter(0)).hasSize(1);
+ assertThat(mBatteryEventDao.getAllAfterForLog(0)).hasSize(1);
+ }
}
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/ConvertUtilsTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/ConvertUtilsTest.java
index a3b35be..a694b2f 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/ConvertUtilsTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/ConvertUtilsTest.java
@@ -38,6 +38,8 @@
import android.os.LocaleList;
import android.os.UserHandle;
+import androidx.core.util.Pair;
+
import com.android.settings.fuelgauge.batteryusage.db.AppUsageEventEntity;
import com.android.settings.fuelgauge.batteryusage.db.BatteryEventEntity;
import com.android.settings.fuelgauge.batteryusage.db.BatteryUsageSlotEntity;
@@ -384,8 +386,9 @@
/* cachedUsageConsumePower= */ 1.5);
BatteryOptimizationModeCache optimizationModeCache =
new BatteryOptimizationModeCache(mContext);
- optimizationModeCache.mBatteryOptimizeModeCacheMap.put(
- (int) batteryDiffEntry.mUid, BatteryOptimizationMode.MODE_OPTIMIZED);
+ optimizationModeCache.mBatteryOptimizeModeCache.put(
+ (int) batteryDiffEntry.mUid,
+ Pair.create(BatteryOptimizationMode.MODE_OPTIMIZED, false));
final BatteryUsageDiff batteryUsageDiff =
ConvertUtils.convertToBatteryUsageDiff(batteryDiffEntry, optimizationModeCache);
@@ -408,6 +411,7 @@
assertThat(batteryUsageDiff.getKey()).isEqualTo("key");
assertThat(batteryUsageDiff.getAppOptimizationMode())
.isEqualTo(BatteryOptimizationMode.MODE_OPTIMIZED);
+ assertThat(batteryUsageDiff.getIsAppOptimizationModeMutable()).isFalse();
assertThat(batteryUsageDiff.hasPackageName()).isFalse();
assertThat(batteryUsageDiff.hasLabel()).isFalse();
}
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/DatabaseUtilsTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/DatabaseUtilsTest.java
index d89e61b..2fda277 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/DatabaseUtilsTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/DatabaseUtilsTest.java
@@ -47,7 +47,6 @@
import com.android.settings.fuelgauge.batteryusage.db.AppUsageEventEntity;
import com.android.settings.fuelgauge.batteryusage.db.BatteryEventEntity;
-import com.android.settings.testutils.BatteryTestUtils;
import org.junit.Before;
import org.junit.Test;
@@ -451,6 +450,26 @@
}
@Test
+ public void getHistoryMap_withPrivateProfile_returnExpectedMap()
+ throws PackageManager.NameNotFoundException {
+ doReturn("com.fake.package").when(mContext).getPackageName();
+ doReturn(mMockContext)
+ .when(mContext)
+ .createPackageContextAsUser("com.fake.package", /* flags= */ 0, UserHandle.OWNER);
+ doReturn(mUserManager).when(mContext).getSystemService(UserManager.class);
+ doReturn(UserHandle.CURRENT).when(mContext).getUser();
+ doReturn(true).when(mUserManager).isPrivateProfile();
+ doReturn(UserHandle.SYSTEM).when(mUserManager).getProfileParent(UserHandle.CURRENT);
+
+ DatabaseUtils.sFakeSupplier = () -> getMatrixCursor();
+
+ final Map<Long, Map<String, BatteryHistEntry>> batteryHistMap =
+ DatabaseUtils.getHistoryMapSinceQueryTimestamp(mContext, 0);
+
+ assertThat(batteryHistMap).isEmpty();
+ }
+
+ @Test
public void removeUsageSource_hasNoData() {
DatabaseUtils.removeUsageSource(mContext);
assertThat(
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/PeriodicJobReceiverTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/PeriodicJobReceiverTest.java
index d111de2..ea3c04c 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/PeriodicJobReceiverTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/PeriodicJobReceiverTest.java
@@ -18,11 +18,15 @@
import static com.google.common.truth.Truth.assertThat;
+import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.when;
import static org.robolectric.Shadows.shadowOf;
import android.app.AlarmManager;
import android.content.Context;
import android.content.Intent;
+import android.os.UserManager;
import androidx.test.core.app.ApplicationProvider;
@@ -34,6 +38,8 @@
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.shadows.ShadowAlarmManager;
@@ -53,12 +59,17 @@
private PeriodicJobManager mPeriodicJobManager;
private ShadowAlarmManager mShadowAlarmManager;
+ @Mock
+ private UserManager mUserManager;
+
@Before
public void setUp() {
- mContext = ApplicationProvider.getApplicationContext();
+ MockitoAnnotations.initMocks(this);
+ mContext = spy(ApplicationProvider.getApplicationContext());
mPeriodicJobManager = PeriodicJobManager.getInstance(mContext);
mShadowAlarmManager = shadowOf(mContext.getSystemService(AlarmManager.class));
mReceiver = new PeriodicJobReceiver();
+ when(mContext.getSystemService(UserManager.class)).thenReturn(mUserManager);
// Inserts fake data into database for testing.
final BatteryStateDatabase database = BatteryTestUtils.setUpBatteryStateDatabase(mContext);
@@ -114,7 +125,14 @@
@Test
public void onReceive_inWorkProfileMode_notRefreshesJob() {
- BatteryTestUtils.setWorkProfile(mContext);
+ doReturn(true).when(mUserManager).isManagedProfile();
+ mReceiver.onReceive(mContext, JOB_UPDATE_INTENT);
+ assertThat(mShadowAlarmManager.peekNextScheduledAlarm()).isNull();
+ }
+
+ @Test
+ public void onReceive_inPrivateProfileMode_notRefreshesJob() {
+ doReturn(true).when(mUserManager).isPrivateProfile();
mReceiver.onReceive(mContext, JOB_UPDATE_INTENT);
assertThat(mShadowAlarmManager.peekNextScheduledAlarm()).isNull();
}
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/bugreport/BugReportContentProviderTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/bugreport/BugReportContentProviderTest.java
index d998106..0dd18c5 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/bugreport/BugReportContentProviderTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/bugreport/BugReportContentProviderTest.java
@@ -18,7 +18,11 @@
import static com.google.common.truth.Truth.assertThat;
+import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.spy;
+
import android.content.Context;
+import android.os.UserManager;
import androidx.test.core.app.ApplicationProvider;
@@ -27,6 +31,8 @@
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
import org.robolectric.RobolectricTestRunner;
import java.io.FileDescriptor;
@@ -46,11 +52,17 @@
private StringWriter mStringWriter;
private BugReportContentProvider mBugReportContentProvider;
+ @Mock
+ private UserManager mUserManager;
+
@Before
public void setUp() {
+ MockitoAnnotations.initMocks(this);
mStringWriter = new StringWriter();
mPrintWriter = new PrintWriter(mStringWriter);
- mContext = ApplicationProvider.getApplicationContext();
+ mContext = spy(ApplicationProvider.getApplicationContext());
+ doReturn(mContext).when(mContext).getApplicationContext();
+ doReturn(mUserManager).when(mContext).getSystemService(UserManager.class);
mBugReportContentProvider = new BugReportContentProvider();
mBugReportContentProvider.attachInfo(mContext, /* info= */ null);
// Inserts fake data into database for testing.
@@ -77,7 +89,14 @@
@Test
public void dump_inWorkProfileMode_notDumpsBatteryUsageData() {
- BatteryTestUtils.setWorkProfile(mContext);
+ doReturn(true).when(mUserManager).isManagedProfile();
+ mBugReportContentProvider.dump(FileDescriptor.out, mPrintWriter, new String[] {});
+ assertThat(mStringWriter.toString()).isEmpty();
+ }
+
+ @Test
+ public void dump_inPrivateProfileMode_notDumpsBatteryUsageData() {
+ doReturn(true).when(mUserManager).isPrivateProfile();
mBugReportContentProvider.dump(FileDescriptor.out, mPrintWriter, new String[] {});
assertThat(mStringWriter.toString()).isEmpty();
}
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/db/BatteryEventDaoTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/db/BatteryEventDaoTest.java
index d36f2b5..cb1f2d0 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/db/BatteryEventDaoTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/db/BatteryEventDaoTest.java
@@ -175,4 +175,31 @@
mBatteryEventDao.clearAll();
assertThat(mBatteryEventDao.getAll()).isEmpty();
}
+
+ @Test
+ public void clearEvenHourEvent_normalFlow_expectedBehavior() {
+ mBatteryEventDao.insert(
+ BatteryEventEntity.newBuilder()
+ .setTimestamp(100L)
+ .setBatteryEventType(1)
+ .setBatteryLevel(66)
+ .build());
+ mBatteryEventDao.insert(
+ BatteryEventEntity.newBuilder()
+ .setTimestamp(200L)
+ .setBatteryEventType(4)
+ .setBatteryLevel(88)
+ .build());
+ assertThat(mBatteryEventDao.getAll()).hasSize(2);
+
+ mBatteryEventDao.clearEvenHourEvent();
+
+ final List<BatteryEventEntity> events = mBatteryEventDao.getAll();
+ assertThat(events).hasSize(1);
+ assertThat(events.get(0).timestamp).isEqualTo(100L);
+ assertThat(events.get(0).batteryEventType).isEqualTo(1);
+ assertThat(events.get(0).batteryLevel).isEqualTo(66);
+ mBatteryEventDao.clearAll();
+ assertThat(mBatteryEventDao.getAll()).isEmpty();
+ }
}
diff --git a/tests/robotests/src/com/android/settings/inputmethod/PointerFillStylePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/inputmethod/PointerFillStylePreferenceControllerTest.java
new file mode 100644
index 0000000..d8765f2
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/inputmethod/PointerFillStylePreferenceControllerTest.java
@@ -0,0 +1,113 @@
+/*
+ * Copyright 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.inputmethod;
+
+import static android.view.flags.Flags.enableVectorCursorA11ySettings;
+
+import static com.android.settings.core.BasePreferenceController.AVAILABLE;
+import static com.android.settings.inputmethod.PointerFillStylePreferenceController.KEY_POINTER_FILL_STYLE;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assume.assumeTrue;
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.eq;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+import android.app.settings.SettingsEnums;
+import android.content.Context;
+import android.os.UserHandle;
+import android.provider.Settings;
+
+import androidx.lifecycle.Lifecycle;
+import androidx.lifecycle.LifecycleEventObserver;
+import androidx.lifecycle.LifecycleOwner;
+import androidx.preference.Preference;
+import androidx.preference.PreferenceScreen;
+import androidx.test.core.app.ApplicationProvider;
+
+import com.android.settings.testutils.FakeFeatureFactory;
+import com.android.settings.testutils.shadow.ShadowSystemSettings;
+
+import org.junit.Before;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.junit.MockitoJUnit;
+import org.mockito.junit.MockitoRule;
+import org.robolectric.RobolectricTestRunner;
+import org.robolectric.annotation.Config;
+
+/** Tests for {@link PointerFillStylePreferenceController} */
+@RunWith(RobolectricTestRunner.class)
+@Config(shadows = {
+ ShadowSystemSettings.class,
+})
+public class PointerFillStylePreferenceControllerTest {
+ @Rule
+ public MockitoRule mMockitoRule = MockitoJUnit.rule();
+
+ @Mock
+ PreferenceScreen mPreferenceScreen;
+ @Mock
+ LifecycleOwner mLifecycleOwner;
+
+ private Context mContext;
+ private PointerFillStylePreferenceController mController;
+ private FakeFeatureFactory mFeatureFactory;
+
+ @Before
+ public void setUp() {
+ mContext = ApplicationProvider.getApplicationContext();
+ mFeatureFactory = FakeFeatureFactory.setupForTest();
+ mController = new PointerFillStylePreferenceController(mContext);
+ }
+
+ @Test
+ public void displayPreference_initializeDataStore() {
+ Preference fillPreference = new Preference(mContext);
+ fillPreference.setKey(KEY_POINTER_FILL_STYLE);
+ when(mPreferenceScreen.findPreference(eq(KEY_POINTER_FILL_STYLE))).thenReturn(
+ fillPreference);
+
+ mController.displayPreference(mPreferenceScreen);
+
+ assertNotNull(fillPreference.getPreferenceDataStore());
+ }
+
+ @Test
+ public void getAvailabilityStatus_flagEnabled() {
+ assumeTrue(enableVectorCursorA11ySettings());
+
+ assertEquals(mController.getAvailabilityStatus(), AVAILABLE);
+ }
+
+ @Test
+ public void onPause_logCurrentFillValue() {
+ int fillStyle = 1;
+ Settings.System.putIntForUser(mContext.getContentResolver(),
+ Settings.System.POINTER_FILL_STYLE, fillStyle, UserHandle.USER_CURRENT);
+
+ mController.onStateChanged(mLifecycleOwner, Lifecycle.Event.ON_PAUSE);
+
+ verify(mFeatureFactory.metricsFeatureProvider).action(
+ any(), eq(SettingsEnums.ACTION_POINTER_ICON_FILL_STYLE_CHANGED),
+ eq(fillStyle));
+ }
+}
diff --git a/tests/robotests/src/com/android/settings/inputmethod/PointerScaleSeekBarControllerTest.java b/tests/robotests/src/com/android/settings/inputmethod/PointerScaleSeekBarControllerTest.java
index 152649f..18705c4 100644
--- a/tests/robotests/src/com/android/settings/inputmethod/PointerScaleSeekBarControllerTest.java
+++ b/tests/robotests/src/com/android/settings/inputmethod/PointerScaleSeekBarControllerTest.java
@@ -22,16 +22,24 @@
import static org.junit.Assert.assertEquals;
import static org.junit.Assume.assumeTrue;
+import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.anyString;
+import static org.mockito.ArgumentMatchers.eq;
+import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
+import android.app.settings.SettingsEnums;
import android.content.Context;
import android.os.UserHandle;
import android.provider.Settings;
import android.widget.SeekBar;
+import androidx.lifecycle.Lifecycle;
+import androidx.lifecycle.LifecycleEventObserver;
+import androidx.lifecycle.LifecycleOwner;
import androidx.preference.PreferenceScreen;
+import com.android.settings.testutils.FakeFeatureFactory;
import com.android.settings.testutils.shadow.ShadowSystemSettings;
import com.android.settings.widget.LabeledSeekBarPreference;
@@ -58,14 +66,17 @@
@Rule public MockitoRule mMockitoRule = MockitoJUnit.rule();
@Mock private PreferenceScreen mPreferenceScreen;
+ @Mock private LifecycleOwner mLifecycleOwner;
private Context mContext;
private LabeledSeekBarPreference mPreference;
private PointerScaleSeekBarController mController;
+ private FakeFeatureFactory mFeatureFactory;
@Before
public void setUp() {
mContext = RuntimeEnvironment.application;
+ mFeatureFactory = FakeFeatureFactory.setupForTest();
mPreference = new LabeledSeekBarPreference(mContext, null);
mController = new PointerScaleSeekBarController(mContext, PREFERENCE_KEY);
}
@@ -91,4 +102,17 @@
Settings.System.POINTER_SCALE, -1, UserHandle.USER_CURRENT);
assertEquals(expectedScale, currentScale, /* delta= */ 0.001f);
}
+
+ @Test
+ public void onPause_logCurrentScaleValue() {
+ float scale = 1.5f;
+ Settings.System.putFloatForUser(mContext.getContentResolver(),
+ Settings.System.POINTER_SCALE, scale, UserHandle.USER_CURRENT);
+
+ mController.onStateChanged(mLifecycleOwner, Lifecycle.Event.ON_PAUSE);
+
+ verify(mFeatureFactory.metricsFeatureProvider).action(
+ any(), eq(SettingsEnums.ACTION_POINTER_ICON_SCALE_CHANGED),
+ eq(Float.toString(scale)));
+ }
}
diff --git a/tests/robotests/src/com/android/settings/inputmethod/PointerStrokeStylePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/inputmethod/PointerStrokeStylePreferenceControllerTest.java
index 9b4d5ef..9fffdc3 100644
--- a/tests/robotests/src/com/android/settings/inputmethod/PointerStrokeStylePreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/inputmethod/PointerStrokeStylePreferenceControllerTest.java
@@ -24,15 +24,26 @@
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assume.assumeTrue;
+import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.eq;
+import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
+import android.app.settings.SettingsEnums;
import android.content.Context;
+import android.os.UserHandle;
+import android.provider.Settings;
+import androidx.lifecycle.Lifecycle;
+import androidx.lifecycle.LifecycleEventObserver;
+import androidx.lifecycle.LifecycleOwner;
import androidx.preference.Preference;
import androidx.preference.PreferenceScreen;
import androidx.test.core.app.ApplicationProvider;
+import com.android.settings.testutils.FakeFeatureFactory;
+import com.android.settings.testutils.shadow.ShadowSystemSettings;
+
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
@@ -41,22 +52,30 @@
import org.mockito.junit.MockitoJUnit;
import org.mockito.junit.MockitoRule;
import org.robolectric.RobolectricTestRunner;
+import org.robolectric.annotation.Config;
/** Tests for {@link PointerStrokeStylePreferenceController} */
@RunWith(RobolectricTestRunner.class)
+@Config(shadows = {
+ ShadowSystemSettings.class,
+})
public class PointerStrokeStylePreferenceControllerTest {
@Rule
public MockitoRule mMockitoRule = MockitoJUnit.rule();
@Mock
PreferenceScreen mPreferenceScreen;
+ @Mock
+ LifecycleOwner mLifecycleOwner;
private Context mContext;
private PointerStrokeStylePreferenceController mController;
+ private FakeFeatureFactory mFeatureFactory;
@Before
public void setUp() {
mContext = ApplicationProvider.getApplicationContext();
+ mFeatureFactory = FakeFeatureFactory.setupForTest();
mController = new PointerStrokeStylePreferenceController(mContext);
}
@@ -78,4 +97,17 @@
assertEquals(mController.getAvailabilityStatus(), AVAILABLE);
}
+
+ @Test
+ public void onPause_logCurrentStrokeValue() {
+ int strokeStyle = 1;
+ Settings.System.putIntForUser(mContext.getContentResolver(),
+ Settings.System.POINTER_STROKE_STYLE, strokeStyle, UserHandle.USER_CURRENT);
+
+ mController.onStateChanged(mLifecycleOwner, Lifecycle.Event.ON_PAUSE);
+
+ verify(mFeatureFactory.metricsFeatureProvider).action(
+ any(), eq(SettingsEnums.ACTION_POINTER_ICON_STROKE_STYLE_CHANGED),
+ eq(strokeStyle));
+ }
}
diff --git a/tests/robotests/src/com/android/settings/network/SatelliteRepositoryTest.kt b/tests/robotests/src/com/android/settings/network/SatelliteRepositoryTest.kt
index 62fd10a..619d290 100644
--- a/tests/robotests/src/com/android/settings/network/SatelliteRepositoryTest.kt
+++ b/tests/robotests/src/com/android/settings/network/SatelliteRepositoryTest.kt
@@ -91,7 +91,8 @@
@Test
fun requestIsSessionStarted_resultIsTrue() = runBlocking {
- `when`(mockSatelliteManager.registerForModemStateChanged(any(), any())
+ `when`(
+ mockSatelliteManager.registerForModemStateChanged(any(), any())
).thenAnswer { invocation ->
val callback = invocation.getArgument<SatelliteModemStateCallback>(1)
callback.onSatelliteModemStateChanged(SatelliteManager.SATELLITE_MODEM_STATE_CONNECTED)
@@ -105,7 +106,8 @@
@Test
fun requestIsSessionStarted_resultIsFalse() = runBlocking {
- `when`(mockSatelliteManager.registerForModemStateChanged(any(), any())
+ `when`(
+ mockSatelliteManager.registerForModemStateChanged(any(), any())
).thenAnswer { invocation ->
val callback = invocation.getArgument<SatelliteModemStateCallback>(1)
callback.onSatelliteModemStateChanged(SatelliteManager.SATELLITE_MODEM_STATE_OFF)
@@ -119,7 +121,8 @@
@Test
fun requestIsSessionStarted_registerFailed() = runBlocking {
- `when`(mockSatelliteManager.registerForModemStateChanged(any(), any())
+ `when`(
+ mockSatelliteManager.registerForModemStateChanged(any(), any())
).thenAnswer {
SatelliteManager.SATELLITE_RESULT_ERROR
}
@@ -130,6 +133,17 @@
}
@Test
+ fun requestIsSessionStarted_phoneCrash_registerFailed() = runBlocking {
+ `when`(
+ mockSatelliteManager.registerForModemStateChanged(any(), any())
+ ).thenThrow(IllegalStateException("Telephony is null"))
+
+ val result: ListenableFuture<Boolean> = repository.requestIsSessionStarted(mockExecutor)
+ assertFalse(result.get())
+ verify(mockSatelliteManager, never()).unregisterForModemStateChanged(any())
+ }
+
+ @Test
fun requestIsSessionStarted_nullSatelliteManager() = runBlocking {
`when`(spyContext.getSystemService(SatelliteManager::class.java)).thenReturn(null)
@@ -157,6 +171,17 @@
assertFalse(result.get())
}
+ @Test
+ fun requestIsEnabled_phoneCrash_resultIsFalse() = runBlocking {
+ `when`(
+ mockSatelliteManager.requestIsEnabled(any(), any())
+ ).thenThrow(IllegalStateException("Telephony is null"))
+
+ val result: ListenableFuture<Boolean> =
+ repository.requestIsEnabled(mockExecutor)
+ assertFalse(result.get())
+ }
+
@Test
fun requestIsEnabled_exceptionFailure() = runBlocking {
@@ -232,7 +257,8 @@
@Test
fun getIsSessionStartedFlow_registerFailed() = runBlocking {
- `when`(mockSatelliteManager.registerForModemStateChanged(any(), any())
+ `when`(
+ mockSatelliteManager.registerForModemStateChanged(any(), any())
).thenAnswer {
SatelliteManager.SATELLITE_RESULT_ERROR
}
diff --git a/tests/robotests/src/com/android/settings/network/telephony/AutoDataSwitchPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/network/telephony/AutoDataSwitchPreferenceControllerTest.java
index 8db4681..29592cf 100644
--- a/tests/robotests/src/com/android/settings/network/telephony/AutoDataSwitchPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/network/telephony/AutoDataSwitchPreferenceControllerTest.java
@@ -85,7 +85,7 @@
return true;
}
};
- mController.init(SUB_ID_1, null);
+ mController.init(SUB_ID_1);
}
@Test
diff --git a/tests/robotests/src/com/android/settings/network/telephony/MobileDataSliceTest.java b/tests/robotests/src/com/android/settings/network/telephony/MobileDataSliceTest.java
index 8445fe2..9cd69b4 100644
--- a/tests/robotests/src/com/android/settings/network/telephony/MobileDataSliceTest.java
+++ b/tests/robotests/src/com/android/settings/network/telephony/MobileDataSliceTest.java
@@ -19,8 +19,10 @@
import static com.google.common.truth.Truth.assertThat;
+import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.anyInt;
import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.never;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
@@ -37,6 +39,7 @@
import androidx.slice.Slice;
import androidx.slice.SliceMetadata;
import androidx.slice.SliceProvider;
+import androidx.slice.builders.ListBuilder;
import androidx.slice.core.SliceAction;
import androidx.slice.widget.SliceLiveData;
@@ -68,6 +71,7 @@
private Context mContext;
private MobileDataSlice mMobileDataSlice;
+ private ListBuilder mListBuilder;
@Before
public void setUp() {
@@ -86,6 +90,8 @@
SliceProvider.setSpecs(SliceLiveData.SUPPORTED_SPECS);
mMobileDataSlice = spy(new MobileDataSlice(mContext));
+ mListBuilder = spy(mMobileDataSlice.createListBuilder());
+ doReturn(mListBuilder).when(mMobileDataSlice).createListBuilder();
}
@Test
@@ -175,25 +181,41 @@
@Test
public void isMobileDataAvailable_noSubscriptions_slicePrimaryActionIsEmpty() {
when(mSubscriptionManager.getAvailableSubscriptionInfoList()).thenReturn(new ArrayList<>());
- final Slice mobileData = mMobileDataSlice.getSlice();
- assertThat(mobileData).isNull();
+ Slice mobileData = mMobileDataSlice.getSlice();
+
+ assertThat(mobileData).isNotNull();
+ verify(mListBuilder, never()).addRow(any());
}
@Test
public void isMobileDataAvailable_nullSubscriptions_slicePrimaryActionIsEmpty() {
when(mSubscriptionManager.getAvailableSubscriptionInfoList()).thenReturn(null);
- final Slice mobileData = mMobileDataSlice.getSlice();
- assertThat(mobileData).isNull();
+ Slice mobileData = mMobileDataSlice.getSlice();
+
+ assertThat(mobileData).isNotNull();
+ verify(mListBuilder, never()).addRow(any());
}
@Test
public void airplaneModeEnabled_slicePrimaryActionIsEmpty() {
doReturn(true).when(mMobileDataSlice).isAirplaneModeEnabled();
doReturn(mSubscriptionInfo).when(mSubscriptionManager).getActiveSubscriptionInfo(SUB_ID);
- final Slice mobileData = mMobileDataSlice.getSlice();
- assertThat(mobileData).isNull();
+ Slice mobileData = mMobileDataSlice.getSlice();
+
+ assertThat(mobileData).isNotNull();
+ verify(mListBuilder, never()).addRow(any());
+ }
+
+ @Test
+ public void getSlice_disallowConfigMobileNetworks_slicePrimaryActionIsEmpty() {
+ doReturn(false).when(mMobileDataSlice).isConfigMobileNetworksAllowed();
+
+ Slice mobileData = mMobileDataSlice.getSlice();
+
+ assertThat(mobileData).isNotNull();
+ verify(mListBuilder, never()).addRow(any());
}
}
diff --git a/tests/robotests/src/com/android/settings/network/telephony/MobileNetworkSettingsTest.java b/tests/robotests/src/com/android/settings/network/telephony/MobileNetworkSettingsTest.java
index 297815b..835985e 100644
--- a/tests/robotests/src/com/android/settings/network/telephony/MobileNetworkSettingsTest.java
+++ b/tests/robotests/src/com/android/settings/network/telephony/MobileNetworkSettingsTest.java
@@ -29,18 +29,14 @@
import android.app.Activity;
import android.app.usage.NetworkStatsManager;
import android.content.Context;
-import android.content.res.Resources;
import android.net.NetworkPolicyManager;
import android.os.Bundle;
-import android.os.UserManager;
import android.provider.Settings;
import android.telephony.TelephonyManager;
import androidx.fragment.app.FragmentActivity;
-import com.android.settings.R;
import com.android.settings.datausage.DataUsageSummaryPreferenceController;
-import com.android.settings.search.BaseSearchIndexProvider;
import com.android.settings.testutils.shadow.ShadowEntityHeaderController;
import com.android.settings.widget.EntityHeaderController;
import com.android.settingslib.core.AbstractPreferenceController;
@@ -53,7 +49,6 @@
import org.robolectric.RobolectricTestRunner;
import org.robolectric.RuntimeEnvironment;
import org.robolectric.annotation.Config;
-import org.robolectric.util.ReflectionHelpers;
import java.util.List;
@@ -73,7 +68,6 @@
private FragmentActivity mActivity;
private Context mContext;
- private Resources mResources;
private MobileNetworkSettings mFragment;
@Before
@@ -81,10 +75,6 @@
MockitoAnnotations.initMocks(this);
mContext = spy(RuntimeEnvironment.application);
- mResources = spy(mContext.getResources());
- when(mContext.getResources()).thenReturn(mResources);
- when(mResources.getBoolean(R.bool.config_show_sim_info)).thenReturn(true);
-
when(mActivity.getSystemService(TelephonyManager.class)).thenReturn(mTelephonyManager);
when(mTelephonyManager.createForSubscriptionId(anyInt())).thenReturn(mTelephonyManager);
when(mContext.getSystemService(NetworkStatsManager.class)).thenReturn(mNetworkStatsManager);
@@ -123,34 +113,4 @@
mFragment.onActivityResult(REQUEST_CODE_DELETE_SUBSCRIPTION, Activity.RESULT_OK, null);
verify(mActivity).finish();
}
-
- @Test
- public void isPageSearchEnabled_adminUser_shouldReturnTrue() {
- final UserManager userManager = mock(UserManager.class);
- when(mContext.getSystemService(UserManager.class)).thenReturn(userManager);
- when(userManager.isAdminUser()).thenReturn(true);
- final BaseSearchIndexProvider provider =
- (BaseSearchIndexProvider) mFragment.SEARCH_INDEX_DATA_PROVIDER;
-
- final Object obj = ReflectionHelpers.callInstanceMethod(provider, "isPageSearchEnabled",
- ReflectionHelpers.ClassParameter.from(Context.class, mContext));
- final boolean isEnabled = (Boolean) obj;
-
- assertThat(isEnabled).isTrue();
- }
-
- @Test
- public void isPageSearchEnabled_nonAdminUser_shouldReturnFalse() {
- final UserManager userManager = mock(UserManager.class);
- when(mContext.getSystemService(UserManager.class)).thenReturn(userManager);
- when(userManager.isAdminUser()).thenReturn(false);
- final BaseSearchIndexProvider provider =
- (BaseSearchIndexProvider) mFragment.SEARCH_INDEX_DATA_PROVIDER;
-
- final Object obj = ReflectionHelpers.callInstanceMethod(provider, "isPageSearchEnabled",
- ReflectionHelpers.ClassParameter.from(Context.class, mContext));
- final boolean isEnabled = (Boolean) obj;
-
- assertThat(isEnabled).isFalse();
- }
}
diff --git a/tests/robotests/src/com/android/settings/notification/app/AppChannelsBypassingDndPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/app/AppChannelsBypassingDndPreferenceControllerTest.java
index b8c9b5b..e0381f2 100644
--- a/tests/robotests/src/com/android/settings/notification/app/AppChannelsBypassingDndPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/app/AppChannelsBypassingDndPreferenceControllerTest.java
@@ -50,6 +50,7 @@
import org.robolectric.shadows.ShadowPausedAsyncTask;
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.Collections;
@RunWith(RobolectricTestRunner.class)
@@ -185,12 +186,7 @@
NotificationManager.IMPORTANCE_DEFAULT));
ParceledListSlice<NotificationChannelGroup> groups = new ParceledListSlice<>(
- new ArrayList<NotificationChannelGroup>() {
- {
- add(group1);
- add(group2);
- }
- }
+ Arrays.asList(group1, group2)
);
when(mBackend.getGroups(eq(mAppRow.pkg), eq(mAppRow.uid))).thenReturn(groups);
diff --git a/tests/robotests/src/com/android/settings/notification/modes/CharSequenceTruth.java b/tests/robotests/src/com/android/settings/notification/modes/CharSequenceTruth.java
new file mode 100644
index 0000000..94b932f
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/notification/modes/CharSequenceTruth.java
@@ -0,0 +1,35 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.notification.modes;
+
+import androidx.annotation.Nullable;
+
+import com.google.common.truth.StringSubject;
+import com.google.common.truth.Truth;
+
+class CharSequenceTruth {
+ /**
+ * Shortcut version of {@link Truth#assertThat(String)} suitable for {@link CharSequence}.
+ * {@link CharSequence} doesn't necessarily provide a good {@code equals()} implementation;
+ * however we don't care about formatting in most cases, and we want to assert on the resulting
+ * string (without needing to worry that {@code assertThat(x.getText().toString())} can
+ * throw if the text is null).
+ */
+ static StringSubject assertThat(@Nullable CharSequence actual) {
+ return Truth.assertThat((String) (actual != null ? actual.toString() : null));
+ }
+}
diff --git a/tests/robotests/src/com/android/settings/notification/modes/CircularIconSetTest.java b/tests/robotests/src/com/android/settings/notification/modes/CircularIconSetTest.java
new file mode 100644
index 0000000..826c9df
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/notification/modes/CircularIconSetTest.java
@@ -0,0 +1,207 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.notification.modes;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.mockito.ArgumentMatchers.anyInt;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.verifyNoMoreInteractions;
+import static org.mockito.Mockito.when;
+
+import android.graphics.Color;
+import android.graphics.drawable.ColorDrawable;
+import android.graphics.drawable.Drawable;
+
+import com.google.common.base.Equivalence;
+import com.google.common.collect.ImmutableList;
+import com.google.common.util.concurrent.ListenableFuture;
+import com.google.common.util.concurrent.MoreExecutors;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+import org.robolectric.RobolectricTestRunner;
+
+import java.util.List;
+import java.util.function.Function;
+
+@RunWith(RobolectricTestRunner.class)
+public class CircularIconSetTest {
+
+ @Mock private Function<Integer, Drawable> mDrawableLoader;
+
+ @Before
+ public void setUp() {
+ MockitoAnnotations.initMocks(this);
+ CircularIconSet.sExecutorService = MoreExecutors.newDirectExecutorService();
+ when(mDrawableLoader.apply(anyInt())).thenReturn(new ColorDrawable(Color.BLACK));
+ }
+
+ @Test
+ public void hasSameItemsAs_sameItems_true() {
+ CircularIconSet<Integer> items1 = new CircularIconSet<>(ImmutableList.of(1, 2),
+ num -> new ColorDrawable(Color.BLUE));
+ CircularIconSet<Integer> items2 = new CircularIconSet<>(ImmutableList.of(1, 2),
+ num -> new ColorDrawable(Color.GREEN));
+
+ assertThat(items1.hasSameItemsAs(items2, null)).isTrue();
+ }
+
+ @Test
+ public void hasSameItemsAs_differentTypes_false() {
+ CircularIconSet<Integer> items1 = new CircularIconSet<>(ImmutableList.of(1, 2),
+ num -> new ColorDrawable(Color.BLUE));
+ CircularIconSet<String> items2 = new CircularIconSet<>(ImmutableList.of("a", "b"),
+ str -> new ColorDrawable(Color.GREEN));
+
+ assertThat(items1.hasSameItemsAs(items2, null)).isFalse();
+ }
+
+ @Test
+ public void hasSameItemsAs_differentItems_false() {
+ CircularIconSet<String> items1 = new CircularIconSet<>(ImmutableList.of("a", "b"),
+ str -> new ColorDrawable(Color.GREEN));
+ CircularIconSet<String> items2 = new CircularIconSet<>(ImmutableList.of("a", "b", "c"),
+ str -> new ColorDrawable(Color.GREEN));
+
+ assertThat(items1.hasSameItemsAs(items2, null)).isFalse();
+ }
+
+ private static class WrapperWithoutEquals<T> {
+ private final T mValue;
+ private WrapperWithoutEquals(T value) {
+ mValue = value;
+ }
+ }
+
+ @Test
+ public void hasSameItemsAs_withEquivalence_trueIfEquivalentItems() {
+ CircularIconSet<WrapperWithoutEquals<Integer>> items1 = new CircularIconSet<>(
+ ImmutableList.of(
+ new WrapperWithoutEquals<>(1),
+ new WrapperWithoutEquals<>(2)),
+ unused -> new ColorDrawable(Color.BLACK));
+ CircularIconSet<WrapperWithoutEquals<Integer>> items2 = new CircularIconSet<>(
+ ImmutableList.of(
+ new WrapperWithoutEquals<>(1),
+ new WrapperWithoutEquals<>(2)),
+ unused -> new ColorDrawable(Color.BLACK));
+ CircularIconSet<WrapperWithoutEquals<Integer>> items3 = new CircularIconSet<>(
+ ImmutableList.of(
+ new WrapperWithoutEquals<>(2),
+ new WrapperWithoutEquals<>(3)),
+ unused -> new ColorDrawable(Color.BLACK));
+ // Needs special equivalence, equals is not enough.
+ assertThat(items1.hasSameItemsAs(items2, null)).isFalse();
+
+ Equivalence<WrapperWithoutEquals<Integer>> equivalence = new Equivalence<>() {
+ @Override
+ protected boolean doEquivalent(WrapperWithoutEquals<Integer> a,
+ WrapperWithoutEquals<Integer> b) {
+ return a.mValue.equals(b.mValue);
+ }
+
+ @Override
+ protected int doHash(WrapperWithoutEquals<Integer> t) {
+ return t.mValue;
+ }
+ };
+
+ assertThat(items1.hasSameItemsAs(items2, equivalence)).isTrue();
+ assertThat(items1.hasSameItemsAs(items3, equivalence)).isFalse();
+ }
+
+ @Test
+ public void hasSameItemsAs_withEquivalenceButDifferentTypes_falseAndNoClassCastExceptions() {
+ CircularIconSet<Integer> items1 = new CircularIconSet<>(ImmutableList.of(1, 2),
+ num -> new ColorDrawable(Color.BLUE));
+ CircularIconSet<String> items2 = new CircularIconSet<>(ImmutableList.of("one", "two"),
+ num -> new ColorDrawable(Color.GREEN));
+
+ Equivalence<String> stringEquivalence = new Equivalence<String>() {
+ @Override
+ protected boolean doEquivalent(String a, String b) {
+ return a.equals(b);
+ }
+
+ @Override
+ protected int doHash(String t) {
+ return t.hashCode();
+ }
+ };
+ Equivalence<Integer> integerEquivalence = new Equivalence<Integer>() {
+ @Override
+ protected boolean doEquivalent(Integer a, Integer b) {
+ return a.equals(b);
+ }
+
+ @Override
+ protected int doHash(Integer t) {
+ return t.hashCode();
+ }
+ };
+
+ assertThat(items1.hasSameItemsAs(items2, stringEquivalence)).isFalse();
+ assertThat(items2.hasSameItemsAs(items1, integerEquivalence)).isFalse();
+ }
+
+ @Test
+ public void getIcons_loadsAllIcons() {
+ CircularIconSet<Integer> set = new CircularIconSet<>(ImmutableList.of(1, 2, 3),
+ mDrawableLoader);
+
+ List<ListenableFuture<Drawable>> iconFutures = set.getIcons();
+
+ assertThat(iconFutures).hasSize(3);
+ verify(mDrawableLoader).apply(1);
+ verify(mDrawableLoader).apply(2);
+ verify(mDrawableLoader).apply(3);
+ }
+
+ @Test
+ public void getIcons_loadsRequestedIcons() {
+ CircularIconSet<Integer> set = new CircularIconSet<>(ImmutableList.of(1, 2, 3, 4, 5),
+ mDrawableLoader);
+
+ List<ListenableFuture<Drawable>> iconFutures = set.getIcons(2);
+
+ assertThat(iconFutures).hasSize(2);
+ verify(mDrawableLoader).apply(1);
+ verify(mDrawableLoader).apply(2);
+ verifyNoMoreInteractions(mDrawableLoader);
+ }
+
+ @Test
+ public void getIcons_cachesIcons() {
+ CircularIconSet<Integer> set = new CircularIconSet<>(ImmutableList.of(1, 2, 3, 4, 5),
+ mDrawableLoader);
+
+ List<ListenableFuture<Drawable>> iconFutures = set.getIcons(2);
+ assertThat(iconFutures).hasSize(2);
+ verify(mDrawableLoader).apply(1);
+ verify(mDrawableLoader).apply(2);
+ verifyNoMoreInteractions(mDrawableLoader);
+
+ List<ListenableFuture<Drawable>> iconFuturesAgain = set.getIcons(3);
+ assertThat(iconFuturesAgain).hasSize(3);
+ verify(mDrawableLoader).apply(3);
+ verifyNoMoreInteractions(mDrawableLoader);
+ }
+}
diff --git a/tests/robotests/src/com/android/settings/notification/modes/CircularIconsPreferenceTest.java b/tests/robotests/src/com/android/settings/notification/modes/CircularIconsPreferenceTest.java
new file mode 100644
index 0000000..d145f25
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/notification/modes/CircularIconsPreferenceTest.java
@@ -0,0 +1,337 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.notification.modes;
+
+import static android.view.View.MeasureSpec.makeMeasureSpec;
+
+import static com.google.common.base.Preconditions.checkNotNull;
+import static com.google.common.base.Preconditions.checkState;
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.mockito.Mockito.when;
+
+import android.content.Context;
+import android.content.res.Resources;
+import android.graphics.drawable.ColorDrawable;
+import android.graphics.drawable.Drawable;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.ImageView;
+import android.widget.TextView;
+
+import androidx.annotation.Nullable;
+import androidx.preference.PreferenceViewHolder;
+
+import com.android.settings.R;
+
+import com.google.common.collect.ImmutableList;
+import com.google.common.util.concurrent.Futures;
+import com.google.common.util.concurrent.MoreExecutors;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mockito;
+import org.mockito.MockitoAnnotations;
+import org.robolectric.RobolectricTestRunner;
+import org.robolectric.RuntimeEnvironment;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.stream.IntStream;
+
+@RunWith(RobolectricTestRunner.class)
+public class CircularIconsPreferenceTest {
+
+ private static final int VIEW_WIDTH = 800;
+
+ private Context mContext;
+ private CircularIconsPreference mPreference;
+ private PreferenceViewHolder mViewHolder;
+ private ViewGroup mContainer;
+
+ private int mOneIconWidth;
+
+ @Before
+ public void setup() {
+ MockitoAnnotations.initMocks(this);
+ mContext = RuntimeEnvironment.application;
+ CircularIconSet.sExecutorService = MoreExecutors.newDirectExecutorService();
+ mPreference = new TestableCircularIconsPreference(mContext);
+ // Tests should call bindAndMeasureViewHolder() so that icons can be added.
+
+ Resources res = mContext.getResources();
+ mOneIconWidth = res.getDimensionPixelSize(R.dimen.zen_mode_circular_icon_diameter)
+ + res.getDimensionPixelSize(R.dimen.zen_mode_circular_icon_margin_between);
+ }
+
+ private void bindAndMeasureViewHolder(int viewWidth) {
+ bindViewHolder();
+ measureViewHolder(viewWidth);
+ }
+
+ private void bindViewHolder() {
+ View preferenceView = LayoutInflater.from(mContext).inflate(mPreference.getLayoutResource(),
+ null);
+ mContainer = checkNotNull(preferenceView.findViewById(R.id.circles_container));
+ mViewHolder = PreferenceViewHolder.createInstanceForTests(preferenceView);
+ mPreference.onBindViewHolder(mViewHolder);
+ }
+
+ private void measureViewHolder(int viewWidth) {
+ checkState(mContainer != null, "Call bindViewHolder() first!");
+ mContainer.measure(makeMeasureSpec(viewWidth, View.MeasureSpec.EXACTLY),
+ makeMeasureSpec(1000, View.MeasureSpec.EXACTLY));
+ mContainer.getViewTreeObserver().dispatchOnGlobalLayout();
+ }
+
+ @Test
+ public void displayIcons_loadsIcons() {
+ CircularIconSet<Integer> iconSet = new CircularIconSet<>(ImmutableList.of(1, 2),
+ ColorDrawable::new);
+
+ bindAndMeasureViewHolder(VIEW_WIDTH);
+ mPreference.displayIcons(iconSet);
+
+ assertThat(getIcons(mContainer)).hasSize(2);
+ assertThat(((ColorDrawable) getIcons(mContainer).get(0)).getColor()).isEqualTo(1);
+ assertThat(((ColorDrawable) getIcons(mContainer).get(1)).getColor()).isEqualTo(2);
+ assertThat(getPlusText(mContainer)).isNull();
+ }
+
+ @Test
+ public void displayIcons_noIcons_hidesRow() {
+ CircularIconSet<Integer> iconSet = new CircularIconSet<>(ImmutableList.of(),
+ ColorDrawable::new);
+
+ bindAndMeasureViewHolder(VIEW_WIDTH);
+ mPreference.displayIcons(iconSet);
+
+ assertThat(mContainer.getVisibility()).isEqualTo(View.GONE);
+ }
+
+ @Test
+ public void displayIcons_exactlyMaxIcons_loadsAllIcons() throws Exception {
+ int width = 300;
+ int fittingCircles = width / mOneIconWidth;
+ CircularIconSet<Integer> iconSet = new CircularIconSet<>(
+ IntStream.range(0, fittingCircles).boxed().toList(),
+ ColorDrawable::new);
+
+ bindAndMeasureViewHolder(width);
+ mPreference.displayIcons(iconSet);
+
+ assertThat(getIcons(mContainer)).hasSize(fittingCircles);
+ assertThat(getIcons(mContainer)).containsExactlyElementsIn(
+ Futures.allAsList(iconSet.getIcons()).get()).inOrder();
+ assertThat(getPlusText(mContainer)).isNull();
+
+ }
+
+ @Test
+ public void displayIcons_tooManyIcons_loadsFirstNAndPlusIcon() throws Exception {
+ int width = 300;
+ int fittingCircles = width / mOneIconWidth;
+ CircularIconSet<Integer> iconSet = new CircularIconSet<>(
+ IntStream.range(0, fittingCircles + 5).boxed().toList(),
+ ColorDrawable::new);
+
+ bindAndMeasureViewHolder(width);
+ mPreference.displayIcons(iconSet);
+
+ // N-1 icons, plus (+6) text.
+ assertThat(getIcons(mContainer)).hasSize(fittingCircles - 1);
+ assertThat(getIcons(mContainer)).containsExactlyElementsIn(
+ Futures.allAsList(iconSet.getIcons(fittingCircles - 1)).get())
+ .inOrder();
+ assertThat(getPlusText(mContainer)).isEqualTo("+6");
+ }
+
+ @Test
+ public void displayIcons_teenyTinySpace_showsPlusIcon_noCrash() {
+ CircularIconSet<Integer> iconSet = new CircularIconSet<>(ImmutableList.of(1, 2),
+ ColorDrawable::new);
+
+ bindAndMeasureViewHolder(1);
+ mPreference.displayIcons(iconSet);
+
+ assertThat(getIcons(mContainer)).isEmpty();
+ assertThat(getPlusText(mContainer)).isEqualTo("+2");
+ }
+
+ @Test
+ public void displayIcons_beforeBind_loadsIconsOnBindAndMeasure() {
+ CircularIconSet<Integer> iconSet = new CircularIconSet<>(ImmutableList.of(1, 2, 3),
+ ColorDrawable::new);
+
+ mPreference.displayIcons(iconSet);
+ assertThat(mPreference.getLoadedIcons()).isNull(); // Hold...
+
+ bindViewHolder();
+ assertThat(mPreference.getLoadedIcons()).isNull(); // Hooooold...
+
+ measureViewHolder(VIEW_WIDTH);
+ assertThat(mPreference.getLoadedIcons().icons()).hasSize(3);
+ assertThat(getIcons(mContainer)).hasSize(3);
+ }
+
+ @Test
+ public void displayIcons_beforeMeasure_loadsIconsOnMeasure() {
+ CircularIconSet<Integer> iconSet = new CircularIconSet<>(ImmutableList.of(1, 2, 3),
+ ColorDrawable::new);
+ bindViewHolder();
+
+ mPreference.displayIcons(iconSet);
+ assertThat(mPreference.getLoadedIcons()).isNull();
+
+ measureViewHolder(VIEW_WIDTH);
+ assertThat(getIcons(mContainer)).hasSize(3);
+ }
+
+ @Test
+ public void displayIcons_calledAgain_reloadsIcons() {
+ CircularIconSet<Integer> threeIcons = new CircularIconSet<>(ImmutableList.of(1, 2, 3),
+ ColorDrawable::new);
+ CircularIconSet<Integer> twoIcons = new CircularIconSet<>(ImmutableList.of(1, 2),
+ ColorDrawable::new);
+ CircularIconSet<Integer> fourIcons = new CircularIconSet<>(ImmutableList.of(1, 2, 3, 4),
+ ColorDrawable::new);
+ bindAndMeasureViewHolder(VIEW_WIDTH);
+
+ mPreference.displayIcons(threeIcons);
+ assertThat(mPreference.getLoadedIcons()).isNotNull();
+ assertThat(getIcons(mContainer)).hasSize(3);
+
+ mPreference.displayIcons(twoIcons);
+ assertThat(mPreference.getLoadedIcons()).isNotNull();
+ assertThat(getIcons(mContainer)).hasSize(2);
+
+ mPreference.displayIcons(fourIcons);
+ assertThat(mPreference.getLoadedIcons()).isNotNull();
+ assertThat(getIcons(mContainer)).hasSize(4);
+ }
+
+ @Test
+ public void displayIcons_sameSet_doesNotReloadIcons() {
+ CircularIconSet<Integer> one = new CircularIconSet<>(ImmutableList.of(1, 2, 3),
+ ColorDrawable::new);
+ CircularIconSet<Integer> same = Mockito.spy(new CircularIconSet<>(ImmutableList.of(1, 2, 3),
+ ColorDrawable::new));
+ when(same.getIcons()).thenThrow(new RuntimeException("Shouldn't be called!"));
+
+ bindAndMeasureViewHolder(VIEW_WIDTH);
+
+ mPreference.displayIcons(one);
+
+ mPreference.displayIcons(same); // if no exception, wasn't called.
+ }
+
+ @Test
+ public void onBindViewHolder_withDifferentView_reloadsIconsCorrectly() {
+ View preferenceViewOne = LayoutInflater.from(mContext).inflate(
+ mPreference.getLayoutResource(), null);
+ ViewGroup containerOne = preferenceViewOne.findViewById(R.id.circles_container);
+ PreferenceViewHolder viewHolderOne = PreferenceViewHolder.createInstanceForTests(
+ preferenceViewOne);
+ containerOne.measure(makeMeasureSpec(1000, View.MeasureSpec.EXACTLY),
+ makeMeasureSpec(1000, View.MeasureSpec.EXACTLY));
+
+ View preferenceViewTwo = LayoutInflater.from(mContext).inflate(
+ mPreference.getLayoutResource(), null);
+ ViewGroup containerTwo = preferenceViewTwo.findViewById(R.id.circles_container);
+ PreferenceViewHolder viewHolderTwo = PreferenceViewHolder.createInstanceForTests(
+ preferenceViewTwo);
+ containerTwo.measure(makeMeasureSpec(1000, View.MeasureSpec.EXACTLY),
+ makeMeasureSpec(1000, View.MeasureSpec.EXACTLY));
+
+ CircularIconSet<Integer> iconSetOne = new CircularIconSet<>(ImmutableList.of(1, 2, 3),
+ ColorDrawable::new);
+ CircularIconSet<Integer> iconSetTwo = new CircularIconSet<>(ImmutableList.of(1, 2),
+ ColorDrawable::new);
+
+ mPreference.onBindViewHolder(viewHolderOne);
+ mPreference.displayIcons(iconSetOne);
+ assertThat(getIcons(containerOne)).hasSize(3);
+
+ mPreference.onBindViewHolder(viewHolderTwo);
+ assertThat(getIcons(containerTwo)).hasSize(3);
+
+ mPreference.displayIcons(iconSetTwo);
+
+ // The second view is updated and the first view is unaffected.
+ assertThat(getIcons(containerTwo)).hasSize(2);
+ assertThat(getIcons(containerOne)).hasSize(3);
+ }
+
+ @Test
+ public void setEnabled_afterDisplayIcons_showsEnabledOrDisabledImages() {
+ CircularIconSet<Integer> iconSet = new CircularIconSet<>(ImmutableList.of(1, 2),
+ ColorDrawable::new);
+ bindAndMeasureViewHolder(VIEW_WIDTH);
+ mPreference.displayIcons(iconSet);
+ assertThat(getViews(mContainer)).hasSize(2);
+
+ mPreference.setEnabled(false);
+ assertThat(getViews(mContainer).get(0).getAlpha()).isLessThan(1f);
+
+ mPreference.setEnabled(true);
+ assertThat(getViews(mContainer).get(0).getAlpha()).isEqualTo(1f);
+ }
+
+ @Test
+ public void setEnabled_beforeDisplayIcons_showsEnabledOrDisabledImages() {
+ CircularIconSet<Integer> iconSet = new CircularIconSet<>(ImmutableList.of(1, 2),
+ ColorDrawable::new);
+
+ mPreference.setEnabled(false);
+ bindAndMeasureViewHolder(VIEW_WIDTH);
+ mPreference.displayIcons(iconSet);
+
+ assertThat(getViews(mContainer)).hasSize(2);
+ assertThat(getViews(mContainer).get(0).getAlpha()).isLessThan(1f);
+ }
+
+ private static List<View> getViews(ViewGroup container) {
+ ArrayList<View> views = new ArrayList<>();
+ for (int i = 0; i < container.getChildCount(); i++) {
+ views.add(container.getChildAt(i));
+ }
+ return views;
+ }
+
+ private static List<Drawable> getIcons(ViewGroup container) {
+ ArrayList<Drawable> drawables = new ArrayList<>();
+ for (int i = 0; i < container.getChildCount(); i++) {
+ if (container.getChildAt(i) instanceof ImageView imageView) {
+ drawables.add(imageView.getDrawable());
+
+ }
+ }
+ return drawables;
+ }
+
+ @Nullable
+ private static String getPlusText(ViewGroup container) {
+ View lastChild = container.getChildAt(container.getChildCount() - 1);
+ if (lastChild instanceof TextView tv) {
+ return tv.getText() != null ? tv.getText().toString() : null;
+ } else {
+ return null;
+ }
+ }
+}
diff --git a/tests/robotests/src/com/android/settings/notification/modes/ConfigurationActivityHelperTest.java b/tests/robotests/src/com/android/settings/notification/modes/ConfigurationActivityHelperTest.java
index 47291a0..5a40c7f 100644
--- a/tests/robotests/src/com/android/settings/notification/modes/ConfigurationActivityHelperTest.java
+++ b/tests/robotests/src/com/android/settings/notification/modes/ConfigurationActivityHelperTest.java
@@ -25,6 +25,7 @@
import static org.mockito.ArgumentMatchers.anyInt;
import static org.mockito.Mockito.when;
+import android.app.Flags;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
@@ -32,12 +33,15 @@
import android.content.pm.PackageManager;
import android.content.pm.ResolveInfo;
import android.os.Bundle;
+import android.platform.test.annotations.EnableFlags;
+import android.platform.test.flag.junit.SetFlagsRule;
import android.service.notification.ConditionProviderService;
import com.android.settingslib.notification.modes.TestModeBuilder;
import com.android.settingslib.notification.modes.ZenMode;
import org.junit.Before;
+import org.junit.Rule;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
@@ -50,7 +54,10 @@
import java.util.function.Function;
@RunWith(RobolectricTestRunner.class)
+@EnableFlags(Flags.FLAG_MODES_UI)
public class ConfigurationActivityHelperTest {
+ @Rule
+ public final SetFlagsRule mSetFlagsRule = new SetFlagsRule();
private Context mContext;
private ConfigurationActivityHelper mHelper;
diff --git a/tests/robotests/src/com/android/settings/notification/modes/IconOptionsProviderImplTest.java b/tests/robotests/src/com/android/settings/notification/modes/IconOptionsProviderImplTest.java
index d5430b1..a9bbb47 100644
--- a/tests/robotests/src/com/android/settings/notification/modes/IconOptionsProviderImplTest.java
+++ b/tests/robotests/src/com/android/settings/notification/modes/IconOptionsProviderImplTest.java
@@ -34,7 +34,7 @@
@RunWith(RobolectricTestRunner.class)
public class IconOptionsProviderImplTest {
- private static final int EXPECTED_NUMBER_OF_ICON_OPTIONS = 9;
+ private static final int EXPECTED_NUMBER_OF_ICON_OPTIONS = 20;
@Test
public void iconResources_correctResources() {
diff --git a/tests/robotests/src/com/android/settings/notification/modes/InterruptionFilterPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/modes/InterruptionFilterPreferenceControllerTest.java
index 61d3192..0c3f8e1 100644
--- a/tests/robotests/src/com/android/settings/notification/modes/InterruptionFilterPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/modes/InterruptionFilterPreferenceControllerTest.java
@@ -68,6 +68,18 @@
}
@Test
+ public void testUpdateState_disabled() {
+ TwoStatePreference preference = mock(TwoStatePreference.class);
+ ZenMode zenMode = new TestModeBuilder()
+ .setEnabled(false)
+ .build();
+
+ mController.updateZenMode(preference, zenMode);
+
+ verify(preference).setEnabled(false);
+ }
+
+ @Test
public void testUpdateState_all() {
TwoStatePreference preference = mock(TwoStatePreference.class);
ZenMode zenMode = new TestModeBuilder()
diff --git a/tests/robotests/src/com/android/settings/notification/modes/ManualDurationHelperTest.java b/tests/robotests/src/com/android/settings/notification/modes/ManualDurationHelperTest.java
index 18ee2cf..c90f337 100644
--- a/tests/robotests/src/com/android/settings/notification/modes/ManualDurationHelperTest.java
+++ b/tests/robotests/src/com/android/settings/notification/modes/ManualDurationHelperTest.java
@@ -18,13 +18,17 @@
import static com.google.common.truth.Truth.assertThat;
+import android.app.Flags;
import android.content.ContentResolver;
import android.content.Context;
+import android.platform.test.annotations.EnableFlags;
+import android.platform.test.flag.junit.SetFlagsRule;
import android.provider.Settings;
import com.android.settings.R;
import org.junit.Before;
+import org.junit.Rule;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.MockitoAnnotations;
@@ -32,7 +36,12 @@
import org.robolectric.RuntimeEnvironment;
@RunWith(RobolectricTestRunner.class)
+@EnableFlags(Flags.FLAG_MODES_UI)
public class ManualDurationHelperTest {
+
+ @Rule
+ public final SetFlagsRule mSetFlagsRule = new SetFlagsRule();
+
private Context mContext;
private ContentResolver mContentResolver;
diff --git a/tests/robotests/src/com/android/settings/notification/modes/SetupInterstitialActivityTest.java b/tests/robotests/src/com/android/settings/notification/modes/SetupInterstitialActivityTest.java
new file mode 100644
index 0000000..129e56e
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/notification/modes/SetupInterstitialActivityTest.java
@@ -0,0 +1,283 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.notification.modes;
+
+import static android.provider.Settings.EXTRA_AUTOMATIC_ZEN_RULE_ID;
+
+import static com.android.settings.SettingsActivity.EXTRA_SHOW_FRAGMENT;
+import static com.android.settings.SettingsActivity.EXTRA_SHOW_FRAGMENT_ARGUMENTS;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.Mockito.never;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+import static org.robolectric.Shadows.shadowOf;
+
+import android.content.Intent;
+import android.graphics.drawable.Drawable;
+import android.os.Bundle;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.FrameLayout;
+import android.widget.ImageView;
+
+import androidx.test.core.app.ActivityScenario;
+
+import com.android.settingslib.notification.modes.TestModeBuilder;
+import com.android.settingslib.notification.modes.ZenMode;
+import com.android.settingslib.notification.modes.ZenModesBackend;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.ArgumentCaptor;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+import org.robolectric.RobolectricTestRunner;
+import org.robolectric.RuntimeEnvironment;
+
+@RunWith(RobolectricTestRunner.class)
+public class SetupInterstitialActivityTest {
+ private static final String MODE_ID = "modeId";
+
+ @Mock
+ private ZenModesBackend mBackend;
+
+ @Mock
+ private ImageView mImage;
+
+ @Mock
+ private Drawable mDrawable;
+
+ @Mock
+ private FrameLayout mFrame;
+
+ @Before
+ public void setUp() {
+ MockitoAnnotations.initMocks(this);
+
+ // set global backend instance so that when the interstitial activity launches, it'll get
+ // this mock backend
+ ZenModesBackend.setInstance(mBackend);
+
+ when(mBackend.getMode(MODE_ID)).thenReturn(new TestModeBuilder().build());
+ when(mImage.getDrawable()).thenReturn(mDrawable);
+ when(mImage.getLayoutParams()).thenReturn(new ViewGroup.LayoutParams(0, 0));
+ }
+
+ @Test
+ public void invalidIntent_doesNotQueryBackend() {
+ // Mode is set up sensibly
+ ZenMode mode = new TestModeBuilder().setId(MODE_ID).setEnabled(false).build();
+ when(mBackend.getMode(MODE_ID)).thenReturn(mode);
+
+ // but the intent is lacking the zen mode extra
+ ActivityScenario<SetupInterstitialActivity> scenario =
+ ActivityScenario.launch(new Intent(Intent.ACTION_MAIN)
+ .setClass(RuntimeEnvironment.getApplication(),
+ SetupInterstitialActivity.class));
+ // creating the scenario takes it through onResume(), which would query the backend if
+ // it had mode data.
+ scenario.onActivity(activity -> {
+ assertThat(activity.isFinishing()).isTrue();
+ verify(mBackend, never()).getMode(any());
+ });
+ scenario.close();
+ }
+
+ @Test
+ public void invalidModeId_doesNotCrash() {
+ when(mBackend.getMode(MODE_ID)).thenReturn(null);
+ ActivityScenario<SetupInterstitialActivity> scenario =
+ ActivityScenario.launch(new Intent(Intent.ACTION_MAIN)
+ .setClass(RuntimeEnvironment.getApplication(),
+ SetupInterstitialActivity.class)
+ .putExtra(EXTRA_AUTOMATIC_ZEN_RULE_ID, MODE_ID));
+ // do nothing, but it would crash if attempting to work with a null mode at any point
+ scenario.onActivity(activity -> {
+ assertThat(activity.isFinishing()).isTrue();
+ });
+ scenario.close();
+ }
+
+ @Test
+ public void enableButton_enablesModeAndRedirectsToModePage() {
+ ZenMode mode = new TestModeBuilder().setId(MODE_ID).setEnabled(false).build();
+ when(mBackend.getMode(MODE_ID)).thenReturn(mode);
+
+ // Set up scenario with this mode information
+ ActivityScenario<SetupInterstitialActivity> scenario =
+ ActivityScenario.launch(new Intent(Intent.ACTION_MAIN)
+ .setClass(RuntimeEnvironment.getApplication(),
+ SetupInterstitialActivity.class)
+ .putExtra(EXTRA_AUTOMATIC_ZEN_RULE_ID, MODE_ID));
+ scenario.onActivity(activity -> {
+ View.OnClickListener listener = activity.enableButtonListener(MODE_ID);
+
+ // simulate button press even though we don't actually have a button
+ listener.onClick(null);
+
+ // verify that the backend got a request to enable the mode
+ ArgumentCaptor<ZenMode> captor = ArgumentCaptor.forClass(ZenMode.class);
+ verify(mBackend).updateMode(captor.capture());
+ ZenMode updatedMode = captor.getValue();
+ assertThat(updatedMode.getId()).isEqualTo(MODE_ID);
+ assertThat(updatedMode.isEnabled()).isTrue();
+
+ // confirm that the next activity is the mode page
+ Intent openModePageIntent = shadowOf(activity).getNextStartedActivity();
+ assertThat(openModePageIntent.getStringExtra(EXTRA_SHOW_FRAGMENT))
+ .isEqualTo(ZenModeFragment.class.getName());
+ Bundle fragmentArgs = openModePageIntent.getBundleExtra(EXTRA_SHOW_FRAGMENT_ARGUMENTS);
+ assertThat(fragmentArgs).isNotNull();
+ assertThat(fragmentArgs.getString(EXTRA_AUTOMATIC_ZEN_RULE_ID)).isEqualTo(MODE_ID);
+ });
+ scenario.close();
+ }
+
+ @Test
+ public void setImageToFrame_sizeZero() {
+ ActivityScenario<SetupInterstitialActivity> scenario =
+ ActivityScenario.launch(new Intent(Intent.ACTION_MAIN)
+ .setClass(RuntimeEnvironment.getApplication(),
+ SetupInterstitialActivity.class)
+ .putExtra(EXTRA_AUTOMATIC_ZEN_RULE_ID, MODE_ID));
+ scenario.onActivity(activity -> {
+ // when either the image or the frame has a size 0, we do nothing
+ when(mDrawable.getIntrinsicWidth()).thenReturn(0);
+ when(mDrawable.getIntrinsicHeight()).thenReturn(25);
+ when(mFrame.getMeasuredWidth()).thenReturn(40);
+ when(mFrame.getMeasuredHeight()).thenReturn(50);
+
+ activity.sizeImageToFrame(mImage, mFrame);
+ verify(mImage, never()).setLayoutParams(any());
+ });
+ scenario.close();
+ }
+
+ @Test
+ public void setImageToFrame_imageLargerThanFrame() {
+ ActivityScenario<SetupInterstitialActivity> scenario =
+ ActivityScenario.launch(new Intent(Intent.ACTION_MAIN)
+ .setClass(RuntimeEnvironment.getApplication(),
+ SetupInterstitialActivity.class)
+ .putExtra(EXTRA_AUTOMATIC_ZEN_RULE_ID, MODE_ID));
+ scenario.onActivity(activity -> {
+ // image: 900(w)x1500(h); frame: 600(w)x500(h)
+ // image expected to be scaled down to match the height of the frame -> 300(w)x500(h)
+ when(mDrawable.getIntrinsicWidth()).thenReturn(900);
+ when(mDrawable.getIntrinsicHeight()).thenReturn(1500);
+ when(mFrame.getMeasuredWidth()).thenReturn(600);
+ when(mFrame.getMeasuredHeight()).thenReturn(500);
+
+ ArgumentCaptor<ViewGroup.LayoutParams> captor = ArgumentCaptor.forClass(
+ ViewGroup.LayoutParams.class);
+ activity.sizeImageToFrame(mImage, mFrame);
+ verify(mImage).setLayoutParams(captor.capture());
+ ViewGroup.LayoutParams out = captor.getValue();
+ assertThat(out.width).isEqualTo(300);
+ assertThat(out.height).isEqualTo(500);
+ });
+ scenario.close();
+ }
+
+ @Test
+ public void setImageToFrame_imageSmallerThanFrame() {
+ ActivityScenario<SetupInterstitialActivity> scenario =
+ ActivityScenario.launch(new Intent(Intent.ACTION_MAIN)
+ .setClass(RuntimeEnvironment.getApplication(),
+ SetupInterstitialActivity.class)
+ .putExtra(EXTRA_AUTOMATIC_ZEN_RULE_ID, MODE_ID));
+ scenario.onActivity(activity -> {
+ // image: 300(w)x200(h); frame: 900(w)x1200(h)
+ // image expected to be scaled up to match the width of the frame -> 900(w)x600(h)
+ when(mDrawable.getIntrinsicWidth()).thenReturn(300);
+ when(mDrawable.getIntrinsicHeight()).thenReturn(200);
+ when(mFrame.getMeasuredWidth()).thenReturn(900);
+ when(mFrame.getMeasuredHeight()).thenReturn(1200);
+
+ ArgumentCaptor<ViewGroup.LayoutParams> captor = ArgumentCaptor.forClass(
+ ViewGroup.LayoutParams.class);
+ activity.sizeImageToFrame(mImage, mFrame);
+ verify(mImage).setLayoutParams(captor.capture());
+ ViewGroup.LayoutParams out = captor.getValue();
+ assertThat(out.width).isEqualTo(900);
+ assertThat(out.height).isEqualTo(600);
+ });
+ scenario.close();
+ }
+
+ @Test
+ public void setImageToFrame_horizontalImageNarrowerThanFrame() {
+ ActivityScenario<SetupInterstitialActivity> scenario =
+ ActivityScenario.launch(new Intent(Intent.ACTION_MAIN)
+ .setClass(RuntimeEnvironment.getApplication(),
+ SetupInterstitialActivity.class)
+ .putExtra(EXTRA_AUTOMATIC_ZEN_RULE_ID, MODE_ID));
+ scenario.onActivity(activity -> {
+ // image: 600(w)x400(h); frame: 1000(w)x100(h)
+ // both image and frame are wider than tall, but frame is much narrower
+ // so should fit image to height of frame -> 150(w)x100(h)
+ when(mDrawable.getIntrinsicWidth()).thenReturn(600);
+ when(mDrawable.getIntrinsicHeight()).thenReturn(400);
+ when(mFrame.getMeasuredWidth()).thenReturn(1000);
+ when(mFrame.getMeasuredHeight()).thenReturn(100);
+
+ ArgumentCaptor<ViewGroup.LayoutParams> captor = ArgumentCaptor.forClass(
+ ViewGroup.LayoutParams.class);
+ activity.sizeImageToFrame(mImage, mFrame);
+ verify(mImage).setLayoutParams(captor.capture());
+ ViewGroup.LayoutParams out = captor.getValue();
+ assertThat(out.width).isEqualTo(150);
+ assertThat(out.height).isEqualTo(100);
+ });
+ scenario.close();
+ }
+
+ @Test
+ public void setImageToFrame_accountsForPadding() {
+ ActivityScenario<SetupInterstitialActivity> scenario =
+ ActivityScenario.launch(new Intent(Intent.ACTION_MAIN)
+ .setClass(RuntimeEnvironment.getApplication(),
+ SetupInterstitialActivity.class)
+ .putExtra(EXTRA_AUTOMATIC_ZEN_RULE_ID, MODE_ID));
+ scenario.onActivity(activity -> {
+ // image: 200(w)x300(h); frame: 1000(w)x1000(h), 50 top/bottom padding, 100 l/r padding
+ // effective size of frame is therefore 800(w)x900(h)
+ // scale image to the height of the effective frame -> 600(w)x900(h)
+ when(mDrawable.getIntrinsicWidth()).thenReturn(200);
+ when(mDrawable.getIntrinsicHeight()).thenReturn(300);
+ when(mFrame.getMeasuredWidth()).thenReturn(1000);
+ when(mFrame.getMeasuredHeight()).thenReturn(1000);
+ when(mFrame.getPaddingTop()).thenReturn(50);
+ when(mFrame.getPaddingBottom()).thenReturn(50);
+ when(mFrame.getPaddingLeft()).thenReturn(100);
+ when(mFrame.getPaddingRight()).thenReturn(100);
+
+ ArgumentCaptor<ViewGroup.LayoutParams> captor = ArgumentCaptor.forClass(
+ ViewGroup.LayoutParams.class);
+ activity.sizeImageToFrame(mImage, mFrame);
+ verify(mImage).setLayoutParams(captor.capture());
+ ViewGroup.LayoutParams out = captor.getValue();
+ assertThat(out.width).isEqualTo(600);
+ assertThat(out.height).isEqualTo(900);
+ });
+ scenario.close();
+ }
+}
diff --git a/tests/robotests/src/com/android/settings/notification/modes/TestableCircularIconsPreference.java b/tests/robotests/src/com/android/settings/notification/modes/TestableCircularIconsPreference.java
new file mode 100644
index 0000000..6fefcac
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/notification/modes/TestableCircularIconsPreference.java
@@ -0,0 +1,49 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.notification.modes;
+
+import android.content.Context;
+
+import androidx.preference.PreferenceViewHolder;
+
+import com.google.common.util.concurrent.MoreExecutors;
+
+class TestableCircularIconsPreference extends CircularIconsPreference {
+
+ private PreferenceViewHolder mLastViewHolder;
+
+ TestableCircularIconsPreference(Context context) {
+ super(context, MoreExecutors.directExecutor());
+ }
+
+ @Override
+ public void onBindViewHolder(PreferenceViewHolder holder) {
+ super.onBindViewHolder(holder);
+ mLastViewHolder = holder;
+ }
+
+ @Override
+ protected void notifyChanged() {
+ // Calling androidx.preference.Preference.notifyChanged() will, through an internal
+ // listener added by PreferenceGroupAdapter, eventually rebind the Preference to its
+ // corresponding view in the RecyclerView. This will not happen to a Preference that is
+ // created without a proper PreferencesScreen/RecyclerView/etc, so we simulate it here.
+ if (mLastViewHolder != null) {
+ onBindViewHolder(mLastViewHolder);
+ }
+ }
+}
diff --git a/tests/robotests/src/com/android/settings/notification/modes/ZenModeAddBypassingAppsPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/modes/ZenModeAddBypassingAppsPreferenceControllerTest.java
index bca1ccf..c524ab9 100644
--- a/tests/robotests/src/com/android/settings/notification/modes/ZenModeAddBypassingAppsPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/modes/ZenModeAddBypassingAppsPreferenceControllerTest.java
@@ -24,10 +24,13 @@
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
+import android.app.Flags;
import android.app.NotificationChannel;
import android.content.Context;
import android.content.pm.ApplicationInfo;
import android.content.pm.ParceledListSlice;
+import android.platform.test.annotations.EnableFlags;
+import android.platform.test.flag.junit.SetFlagsRule;
import androidx.fragment.app.Fragment;
import androidx.preference.Preference;
@@ -37,6 +40,7 @@
import com.android.settingslib.applications.ApplicationsState;
import org.junit.Before;
+import org.junit.Rule;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.ArgumentCaptor;
@@ -50,8 +54,12 @@
import java.util.List;
@RunWith(RobolectricTestRunner.class)
+@EnableFlags(Flags.FLAG_MODES_UI)
public class ZenModeAddBypassingAppsPreferenceControllerTest {
+ @Rule
+ public final SetFlagsRule mSetFlagsRule = new SetFlagsRule();
+
@Mock
private NotificationBackend mBackend;
@Mock
diff --git a/tests/robotests/src/com/android/settings/notification/modes/ZenModeAllBypassingAppsPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/modes/ZenModeAllBypassingAppsPreferenceControllerTest.java
index 3114a2d..a7d52b1 100644
--- a/tests/robotests/src/com/android/settings/notification/modes/ZenModeAllBypassingAppsPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/modes/ZenModeAllBypassingAppsPreferenceControllerTest.java
@@ -27,10 +27,13 @@
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
+import android.app.Flags;
import android.app.NotificationChannel;
import android.content.Context;
import android.content.pm.ApplicationInfo;
import android.content.pm.ParceledListSlice;
+import android.platform.test.annotations.EnableFlags;
+import android.platform.test.flag.junit.SetFlagsRule;
import androidx.fragment.app.Fragment;
import androidx.preference.Preference;
@@ -40,6 +43,7 @@
import com.android.settingslib.applications.ApplicationsState;
import org.junit.Before;
+import org.junit.Rule;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.ArgumentCaptor;
@@ -52,7 +56,12 @@
import java.util.List;
@RunWith(RobolectricTestRunner.class)
+@EnableFlags(Flags.FLAG_MODES_UI)
public class ZenModeAllBypassingAppsPreferenceControllerTest {
+
+ @Rule
+ public final SetFlagsRule mSetFlagsRule = new SetFlagsRule();
+
private ZenModeAllBypassingAppsPreferenceController mController;
private Context mContext;
diff --git a/tests/robotests/src/com/android/settings/notification/modes/ZenModeAppsLinkPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/modes/ZenModeAppsLinkPreferenceControllerTest.java
index 6d12594..9263ffd 100644
--- a/tests/robotests/src/com/android/settings/notification/modes/ZenModeAppsLinkPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/modes/ZenModeAppsLinkPreferenceControllerTest.java
@@ -23,10 +23,13 @@
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.anyBoolean;
+import static org.mockito.ArgumentMatchers.anyInt;
import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.never;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.verifyNoMoreInteractions;
import static org.mockito.Mockito.when;
import static org.robolectric.Shadows.shadowOf;
@@ -41,8 +44,11 @@
import android.platform.test.annotations.EnableFlags;
import android.platform.test.flag.junit.SetFlagsRule;
import android.service.notification.ZenPolicy;
+import android.view.LayoutInflater;
+import android.view.View;
import androidx.fragment.app.Fragment;
+import androidx.preference.PreferenceViewHolder;
import com.android.settings.SettingsActivity;
import com.android.settingslib.applications.ApplicationsState;
@@ -51,7 +57,9 @@
import com.android.settingslib.notification.modes.TestModeBuilder;
import com.android.settingslib.notification.modes.ZenMode;
import com.android.settingslib.notification.modes.ZenModesBackend;
-import com.android.settingslib.widget.SelectorWithWidgetPreference;
+
+import com.google.common.collect.ImmutableList;
+import com.google.common.util.concurrent.MoreExecutors;
import org.junit.Before;
import org.junit.Rule;
@@ -71,6 +79,7 @@
public final class ZenModeAppsLinkPreferenceControllerTest {
private ZenModeAppsLinkPreferenceController mController;
+ private CircularIconsPreference mPreference;
private Context mContext;
@Mock
@@ -91,10 +100,21 @@
public void setup() {
MockitoAnnotations.initMocks(this);
mContext = RuntimeEnvironment.application;
+ CircularIconSet.sExecutorService = MoreExecutors.newDirectExecutorService();
+ mPreference = new TestableCircularIconsPreference(mContext);
+
when(mApplicationsState.newSession(any(), any())).thenReturn(mSession);
mController = new ZenModeAppsLinkPreferenceController(
mContext, "controller_key", mock(Fragment.class), mApplicationsState,
mZenModesBackend, mHelperBackend);
+
+ // Ensure the preference view is bound & measured (needed to add child ImageViews).
+ View preferenceView = LayoutInflater.from(mContext).inflate(mPreference.getLayoutResource(),
+ null);
+ preferenceView.measure(View.MeasureSpec.makeMeasureSpec(1000, View.MeasureSpec.EXACTLY),
+ View.MeasureSpec.makeMeasureSpec(1000, View.MeasureSpec.EXACTLY));
+ PreferenceViewHolder holder = PreferenceViewHolder.createInstanceForTests(preferenceView);
+ mPreference.onBindViewHolder(holder);
}
private AppEntry createAppEntry(String packageName, int userId) {
@@ -122,14 +142,23 @@
}
@Test
+ public void testUpdateState_disabled() {
+ ZenMode zenMode = new TestModeBuilder()
+ .setEnabled(false)
+ .build();
+
+ mController.updateState(mPreference, zenMode);
+
+ assertThat(mPreference.isEnabled()).isFalse();
+ }
+
+ @Test
public void testUpdateSetsIntent() {
- // Creates the preference
- SelectorWithWidgetPreference preference = new SelectorWithWidgetPreference(mContext);
// Create a zen mode that allows priority channels to breakthrough.
ZenMode zenMode = createPriorityChannelsZenMode();
- mController.updateState(preference, zenMode);
- Intent launcherIntent = preference.getIntent();
+ mController.updateState(mPreference, zenMode);
+ Intent launcherIntent = mPreference.getIntent();
assertThat(launcherIntent.getStringExtra(SettingsActivity.EXTRA_SHOW_FRAGMENT))
.isEqualTo("com.android.settings.notification.modes.ZenModeAppsFragment");
@@ -193,9 +222,20 @@
}
@Test
- public void testUpdateTriggersRebuild() {
- // Creates the preference
- SelectorWithWidgetPreference preference = new SelectorWithWidgetPreference(mContext);
+ public void updateState_withPolicyAllowingNoChannels_doesNotLoadPriorityApps() {
+ ZenMode zenMode = new TestModeBuilder()
+ .setZenPolicy(new ZenPolicy.Builder().allowPriorityChannels(false).build())
+ .build();
+
+ mController.updateState(mPreference, zenMode);
+
+ verifyNoMoreInteractions(mSession);
+ verify(mHelperBackend, never()).getPackagesBypassingDnd(anyInt(), anyBoolean());
+ assertThat(String.valueOf(mPreference.getSummary())).isEqualTo("None");
+ }
+
+ @Test
+ public void updateState_withPolicyAllowingPriorityChannels_triggersRebuild() {
// Create a zen mode that allows priority channels to breakthrough.
ZenMode zenMode = createPriorityChannelsZenMode();
@@ -209,21 +249,35 @@
// Updates the preference with the zen mode. We expect that this causes the app session
// to trigger a rebuild (and display a temporary text in the meantime).
- mController.updateZenMode(preference, zenMode);
+ mController.updateZenMode(mPreference, zenMode);
verify(mSession).rebuild(any(), any(), eq(false));
- assertThat(String.valueOf(preference.getSummary())).isEqualTo("Calculating…");
+ assertThat(String.valueOf(mPreference.getSummary())).isEqualTo("Calculating…");
// Manually triggers the callback that will happen on rebuild.
mController.mAppSessionCallbacks.onRebuildComplete(appEntries);
- assertThat(String.valueOf(preference.getSummary())).isEqualTo("test can interrupt");
+ assertThat(String.valueOf(mPreference.getSummary())).isEqualTo("test can interrupt");
+ }
+
+ @Test
+ public void updateState_withPolicyAllowingPriorityChannels_loadsIcons() {
+ ZenMode zenMode = createPriorityChannelsZenMode();
+
+ mController.updateState(mPreference, zenMode);
+ when(mHelperBackend.getPackagesBypassingDnd(anyInt(), anyBoolean()))
+ .thenReturn(ImmutableList.of("test1", "test2"));
+ ArrayList<ApplicationsState.AppEntry> appEntries = new ArrayList<>();
+ appEntries.add(createAppEntry("test1", mContext.getUserId()));
+ appEntries.add(createAppEntry("test2", mContext.getUserId()));
+ mController.mAppSessionCallbacks.onRebuildComplete(appEntries);
+
+ assertThat(mPreference.getLoadedIcons().icons()).hasSize(2);
}
@Test
public void testOnPackageListChangedTriggersRebuild() {
- SelectorWithWidgetPreference preference = new SelectorWithWidgetPreference(mContext);
// Create a zen mode that allows priority channels to breakthrough.
ZenMode zenMode = createPriorityChannelsZenMode();
- mController.updateState(preference, zenMode);
+ mController.updateState(mPreference, zenMode);
verify(mSession).rebuild(any(), any(), eq(false));
mController.mAppSessionCallbacks.onPackageListChanged();
@@ -232,10 +286,9 @@
@Test
public void testOnLoadEntriesCompletedTriggersRebuild() {
- SelectorWithWidgetPreference preference = new SelectorWithWidgetPreference(mContext);
// Create a zen mode that allows priority channels to breakthrough.
ZenMode zenMode = createPriorityChannelsZenMode();
- mController.updateState(preference, zenMode);
+ mController.updateState(mPreference, zenMode);
verify(mSession).rebuild(any(), any(), eq(false));
mController.mAppSessionCallbacks.onLoadEntriesCompleted();
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 368b923..47078b0 100644
--- a/tests/robotests/src/com/android/settings/notification/modes/ZenModeButtonPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/modes/ZenModeButtonPreferenceControllerTest.java
@@ -90,6 +90,16 @@
}
@Test
+ public void isAvailable_ifModeActiveEvenIfAppOptsOut() {
+ ZenMode zenMode = new TestModeBuilder()
+ .setManualInvocationAllowed(false)
+ .setActive(true)
+ .build();
+ mController.setZenMode(zenMode);
+ assertThat(mController.isAvailable()).isTrue();
+ }
+
+ @Test
public void isAvailable_notIfModeDisabled() {
ZenMode zenMode = new TestModeBuilder()
.setManualInvocationAllowed(true)
@@ -119,7 +129,6 @@
LayoutPreference pref = mock(LayoutPreference.class);
when(pref.findViewById(anyInt())).thenReturn(button);
ZenMode zenMode = new TestModeBuilder()
- .setManualInvocationAllowed(true)
.setActive(true)
.build();
@@ -151,7 +160,6 @@
LayoutPreference pref = mock(LayoutPreference.class);
when(pref.findViewById(anyInt())).thenReturn(button);
ZenMode zenMode = new TestModeBuilder()
- .setManualInvocationAllowed(true)
.setActive(true)
.build();
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 6c3d74f..7cf0109 100644
--- a/tests/robotests/src/com/android/settings/notification/modes/ZenModeDisplayLinkPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/modes/ZenModeDisplayLinkPreferenceControllerTest.java
@@ -28,6 +28,7 @@
import androidx.preference.Preference;
import com.android.settingslib.notification.modes.TestModeBuilder;
+import com.android.settingslib.notification.modes.ZenMode;
import com.android.settingslib.notification.modes.ZenModesBackend;
import org.junit.Before;
@@ -40,6 +41,7 @@
import org.robolectric.RuntimeEnvironment;
@RunWith(RobolectricTestRunner.class)
+@EnableFlags(Flags.FLAG_MODES_UI)
public final class ZenModeDisplayLinkPreferenceControllerTest {
private ZenModeDisplayLinkPreferenceController mController;
@@ -62,7 +64,18 @@
}
@Test
- @EnableFlags(Flags.FLAG_MODES_UI)
+ public void testUpdateState_disabled() {
+ Preference preference = mock(Preference.class);
+ ZenMode zenMode = new TestModeBuilder()
+ .setEnabled(false)
+ .build();
+
+ mController.updateState(preference, zenMode);
+
+ verify(preference).setEnabled(false);
+ }
+
+ @Test
public void testHasSummary() {
Preference pref = mock(Preference.class);
mController.updateZenMode(pref, TestModeBuilder.EXAMPLE);
diff --git a/tests/robotests/src/com/android/settings/notification/modes/ZenModeEditDonePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/modes/ZenModeEditDonePreferenceControllerTest.java
index b15d4d6..74328be 100644
--- a/tests/robotests/src/com/android/settings/notification/modes/ZenModeEditDonePreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/modes/ZenModeEditDonePreferenceControllerTest.java
@@ -21,7 +21,10 @@
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.verifyNoMoreInteractions;
+import android.app.Flags;
import android.content.Context;
+import android.platform.test.annotations.EnableFlags;
+import android.platform.test.flag.junit.SetFlagsRule;
import android.widget.Button;
import androidx.preference.PreferenceManager;
@@ -33,6 +36,7 @@
import com.android.settingslib.widget.LayoutPreference;
import org.junit.Before;
+import org.junit.Rule;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
@@ -41,8 +45,12 @@
import org.robolectric.RuntimeEnvironment;
@RunWith(RobolectricTestRunner.class)
+@EnableFlags(Flags.FLAG_MODES_UI)
public class ZenModeEditDonePreferenceControllerTest {
+ @Rule
+ public final SetFlagsRule mSetFlagsRule = new SetFlagsRule();
+
private ZenModeEditDonePreferenceController mController;
private LayoutPreference mPreference;
private Button mButton;
diff --git a/tests/robotests/src/com/android/settings/notification/modes/ZenModeEditNameIconFragmentTest.java b/tests/robotests/src/com/android/settings/notification/modes/ZenModeEditNameIconFragmentTest.java
index 2441803..cb853bb 100644
--- a/tests/robotests/src/com/android/settings/notification/modes/ZenModeEditNameIconFragmentTest.java
+++ b/tests/robotests/src/com/android/settings/notification/modes/ZenModeEditNameIconFragmentTest.java
@@ -27,7 +27,10 @@
import static org.mockito.Mockito.when;
import android.app.Activity;
+import android.app.Flags;
import android.os.Bundle;
+import android.platform.test.annotations.EnableFlags;
+import android.platform.test.flag.junit.SetFlagsRule;
import androidx.annotation.Nullable;
import androidx.fragment.app.testing.FragmentScenario;
@@ -40,6 +43,7 @@
import org.junit.After;
import org.junit.Before;
+import org.junit.Rule;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.ArgumentCaptor;
@@ -48,8 +52,12 @@
import org.robolectric.RobolectricTestRunner;
@RunWith(RobolectricTestRunner.class)
+@EnableFlags(Flags.FLAG_MODES_UI)
public class ZenModeEditNameIconFragmentTest {
+ @Rule
+ public final SetFlagsRule mSetFlagsRule = new SetFlagsRule();
+
private static final ZenMode MODE = new TestModeBuilder().setId("id").setName("Mode").build();
private Activity mActivity;
diff --git a/tests/robotests/src/com/android/settings/notification/modes/ZenModeEditNamePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/modes/ZenModeEditNamePreferenceControllerTest.java
index b54727c..795de50 100644
--- a/tests/robotests/src/com/android/settings/notification/modes/ZenModeEditNamePreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/modes/ZenModeEditNamePreferenceControllerTest.java
@@ -21,7 +21,10 @@
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.verifyNoMoreInteractions;
+import android.app.Flags;
import android.content.Context;
+import android.platform.test.annotations.EnableFlags;
+import android.platform.test.flag.junit.SetFlagsRule;
import android.widget.EditText;
import androidx.preference.PreferenceManager;
@@ -33,6 +36,7 @@
import com.android.settingslib.widget.LayoutPreference;
import org.junit.Before;
+import org.junit.Rule;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
@@ -43,14 +47,17 @@
import java.util.function.Consumer;
@RunWith(RobolectricTestRunner.class)
+@EnableFlags(Flags.FLAG_MODES_UI)
public class ZenModeEditNamePreferenceControllerTest {
+ @Rule
+ public final SetFlagsRule mSetFlagsRule = new SetFlagsRule();
+
private ZenModeEditNamePreferenceController mController;
private LayoutPreference mPreference;
private EditText mEditText;
@Mock private Consumer<String> mNameSetter;
-
@Before
public void setup() {
MockitoAnnotations.initMocks(this);
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 4c8db07..3efa5f0 100644
--- a/tests/robotests/src/com/android/settings/notification/modes/ZenModeExitAtAlarmPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/modes/ZenModeExitAtAlarmPreferenceControllerTest.java
@@ -21,7 +21,10 @@
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.verify;
+import android.app.Flags;
import android.content.Context;
+import android.platform.test.annotations.EnableFlags;
+import android.platform.test.flag.junit.SetFlagsRule;
import android.service.notification.ZenModeConfig;
import androidx.preference.TwoStatePreference;
@@ -32,6 +35,7 @@
import com.android.settingslib.notification.modes.ZenModesBackend;
import org.junit.Before;
+import org.junit.Rule;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.ArgumentCaptor;
@@ -42,7 +46,11 @@
import java.util.Calendar;
@RunWith(RobolectricTestRunner.class)
+@EnableFlags(Flags.FLAG_MODES_UI)
public class ZenModeExitAtAlarmPreferenceControllerTest {
+ @Rule
+ public final SetFlagsRule mSetFlagsRule = new SetFlagsRule();
+
private Context mContext;
@Mock
private ZenModesBackend mBackend;
diff --git a/tests/robotests/src/com/android/settings/notification/modes/ZenModeFragmentBaseTest.java b/tests/robotests/src/com/android/settings/notification/modes/ZenModeFragmentBaseTest.java
new file mode 100644
index 0000000..21f19ff
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/notification/modes/ZenModeFragmentBaseTest.java
@@ -0,0 +1,364 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.notification.modes;
+
+import static android.provider.Settings.EXTRA_AUTOMATIC_ZEN_RULE_ID;
+
+import static com.android.settings.notification.modes.CharSequenceTruth.assertThat;
+
+import static com.google.common.base.Preconditions.checkNotNull;
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.eq;
+import static org.mockito.ArgumentMatchers.same;
+import static org.mockito.Mockito.never;
+import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.times;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+import static org.robolectric.Shadows.shadowOf;
+
+import android.app.Flags;
+import android.content.Context;
+import android.database.ContentObserver;
+import android.net.Uri;
+import android.os.Bundle;
+import android.platform.test.annotations.EnableFlags;
+import android.platform.test.flag.junit.SetFlagsRule;
+import android.provider.Settings;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import androidx.fragment.app.Fragment;
+import androidx.fragment.app.testing.FragmentScenario;
+import androidx.lifecycle.Lifecycle.State;
+import androidx.preference.Preference;
+
+import com.android.settings.R;
+import com.android.settingslib.core.AbstractPreferenceController;
+import com.android.settingslib.notification.modes.TestModeBuilder;
+import com.android.settingslib.notification.modes.ZenMode;
+import com.android.settingslib.notification.modes.ZenModesBackend;
+
+import com.google.common.collect.ImmutableList;
+
+import org.junit.Before;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+import org.robolectric.RobolectricTestRunner;
+import org.robolectric.shadows.ShadowContentResolver;
+import org.robolectric.shadows.ShadowLooper;
+
+import java.util.List;
+
+@RunWith(RobolectricTestRunner.class)
+@EnableFlags(Flags.FLAG_MODES_UI)
+public class ZenModeFragmentBaseTest {
+
+ private static final Uri SETTINGS_URI = Settings.Global.getUriFor(
+ Settings.Global.ZEN_MODE_CONFIG_ETAG);
+
+ @Rule public final SetFlagsRule mSetFlagsRule = new SetFlagsRule();
+
+ @Mock ZenModesBackend mBackend;
+
+ @Before
+ public void setUp() {
+ MockitoAnnotations.initMocks(this);
+ }
+
+ @Test
+ public void fragment_noArguments_finishes() {
+ when(mBackend.getMode(any())).thenReturn(TestModeBuilder.EXAMPLE);
+
+ FragmentScenario<TestableFragment> scenario = createScenario(null);
+
+ scenario.moveToState(State.RESUMED).onFragment(fragment -> {
+ assertThat(fragment.requireActivity().isFinishing()).isTrue();
+ });
+
+ scenario.close();
+ }
+
+ @Test
+ public void fragment_modeDoesNotExist_finishes() {
+ when(mBackend.getMode(any())).thenReturn(null);
+
+ FragmentScenario<TestableFragment> scenario = createScenario("mode_id");
+
+ scenario.moveToState(State.RESUMED).onFragment(fragment -> {
+ assertThat(fragment.requireActivity().isFinishing()).isTrue();
+ });
+
+ scenario.close();
+ }
+
+ @Test
+ public void fragment_validMode_updatesControllersOnce() {
+ ZenMode mode = new TestModeBuilder().setId("mode_id").build();
+ when(mBackend.getMode("mode_id")).thenReturn(mode);
+
+ FragmentScenario<TestableFragment> scenario = createScenario("mode_id");
+
+ scenario.moveToState(State.CREATED).onFragment(fragment -> {
+ assertThat(fragment.mShowsId.getZenMode()).isEqualTo(mode);
+ assertThat(fragment.mShowsId.isAvailable()).isTrue();
+ assertThat(fragment.mAvailableIfEnabled.getZenMode()).isEqualTo(mode);
+ assertThat(fragment.mAvailableIfEnabled.isAvailable()).isTrue();
+
+ verify(fragment.mShowsId, never()).updateState(any(), any());
+ verify(fragment.mAvailableIfEnabled, never()).updateState(any(), any());
+ });
+
+ scenario.moveToState(State.RESUMED).onFragment(fragment -> {
+ Preference preferenceOne = fragment.requirePreference("pref_id");
+ assertThat(preferenceOne.getSummary()).isEqualTo("Id is mode_id");
+
+ verify(fragment.mShowsId).updateState(any(), eq(mode));
+ verify(fragment.mAvailableIfEnabled).updateState(any(), eq(mode));
+ });
+
+ scenario.close();
+ }
+
+ @Test
+ public void fragment_onStartToOnStop_hasRegisteredContentObserver() {
+ when(mBackend.getMode(any())).thenReturn(TestModeBuilder.EXAMPLE);
+ FragmentScenario<TestableFragment> scenario = createScenario("id");
+
+ scenario.moveToState(State.CREATED).onFragment(fragment ->
+ assertThat(getSettingsContentObservers(fragment)).isEmpty());
+
+ scenario.moveToState(State.STARTED).onFragment(fragment ->
+ assertThat(getSettingsContentObservers(fragment)).hasSize(1));
+
+ scenario.moveToState(State.RESUMED).onFragment(fragment ->
+ assertThat(getSettingsContentObservers(fragment)).hasSize(1));
+
+ scenario.moveToState(State.STARTED).onFragment(fragment ->
+ assertThat(getSettingsContentObservers(fragment)).hasSize(1));
+
+ scenario.moveToState(State.CREATED).onFragment(fragment ->
+ assertThat(getSettingsContentObservers(fragment)).isEmpty());
+
+ scenario.close();
+ }
+
+ @Test
+ public void fragment_onModeUpdatedWithDifferences_updatesControllers() {
+ ZenMode originalMode = new TestModeBuilder().setId("id").setName("Original").build();
+ when(mBackend.getMode("id")).thenReturn(originalMode);
+
+ FragmentScenario<TestableFragment> scenario = createScenario("id");
+ scenario.moveToState(State.RESUMED).onFragment(fragment -> {
+ Preference preference = fragment.requirePreference("pref_name");
+ assertThat(preference.getSummary()).isEqualTo("Original");
+ verify(fragment.mShowsName, times(1)).updateState(any(), eq(originalMode));
+
+ // Now, we get a message saying something changed.
+ ZenMode updatedMode = new TestModeBuilder().setId("id").setName("Updated").build();
+ when(mBackend.getMode("id")).thenReturn(updatedMode);
+ getSettingsContentObservers(fragment).stream().findFirst().get()
+ .dispatchChange(false, SETTINGS_URI);
+ ShadowLooper.idleMainLooper();
+
+ // The screen was updated, and only updated once.
+ assertThat(preference.getSummary()).isEqualTo("Updated");
+ verify(fragment.mShowsName, times(1)).updateState(any(), eq(updatedMode));
+ });
+
+ scenario.close();
+ }
+
+ @Test
+ public void fragment_onModeUpdatedWithoutDifferences_setsModeInControllersButNothingElse() {
+ ZenMode originalMode = new TestModeBuilder().setId("id").setName("Original").build();
+ when(mBackend.getMode("id")).thenReturn(originalMode);
+
+ FragmentScenario<TestableFragment> scenario = createScenario("id");
+ scenario.moveToState(State.RESUMED).onFragment(fragment -> {
+ Preference preference = fragment.requirePreference("pref_name");
+ assertThat(preference.getSummary()).isEqualTo("Original");
+ verify(fragment.mShowsName, times(1)).updateState(any(), eq(originalMode));
+
+ // Now, we get a message saying something changed, but it was for a different mode.
+ ZenMode notUpdatedMode = new TestModeBuilder(originalMode).build();
+ when(mBackend.getMode("id")).thenReturn(notUpdatedMode);
+ getSettingsContentObservers(fragment).stream().findFirst().get()
+ .dispatchChange(false, SETTINGS_URI);
+ ShadowLooper.idleMainLooper();
+
+ // The mode instance was updated, but updateState() was not called.
+ assertThat(preference.getSummary()).isEqualTo("Original");
+ assertThat(fragment.mShowsName.getZenMode()).isSameInstanceAs(notUpdatedMode);
+ verify(fragment.mShowsName, never()).updateState(any(), same(notUpdatedMode));
+ });
+
+ scenario.close();
+ }
+
+ @Test
+ public void fragment_onFragmentRestart_reloadsMode() {
+ ZenMode originalMode = new TestModeBuilder().setId("id").setName("Original").build();
+ when(mBackend.getMode("id")).thenReturn(originalMode);
+
+ FragmentScenario<TestableFragment> scenario = createScenario("id");
+ scenario.moveToState(State.RESUMED).onFragment(fragment -> {
+ Preference preference = fragment.requirePreference("pref_name");
+ assertThat(preference.getSummary()).isEqualTo("Original");
+ verify(fragment.mShowsName, times(1)).updateState(any(), eq(originalMode));
+ });
+
+ ZenMode updatedMode = new TestModeBuilder().setId("id").setName("Updated").build();
+ when(mBackend.getMode("id")).thenReturn(updatedMode);
+
+ scenario.moveToState(State.CREATED).moveToState(State.RESUMED).onFragment(fragment -> {
+ Preference preference = fragment.requirePreference("pref_name");
+ assertThat(preference.getSummary()).isEqualTo("Updated");
+ assertThat(fragment.mShowsName.getZenMode()).isSameInstanceAs(updatedMode);
+ });
+
+ scenario.close();
+ }
+
+ @Test
+ public void fragment_onModeDeleted_finishes() {
+ ZenMode originalMode = new TestModeBuilder().setId("mode_id").build();
+ when(mBackend.getMode("mode_id")).thenReturn(originalMode);
+
+ FragmentScenario<TestableFragment> scenario = createScenario("mode_id");
+ scenario.moveToState(State.RESUMED).onFragment(fragment -> {
+ assertThat(fragment.requireActivity().isFinishing()).isFalse();
+
+ // Now it's no longer there...
+ when(mBackend.getMode(any())).thenReturn(null);
+ getSettingsContentObservers(fragment).stream().findFirst().get()
+ .dispatchChange(false, SETTINGS_URI);
+ ShadowLooper.idleMainLooper();
+
+ assertThat(fragment.requireActivity().isFinishing()).isTrue();
+ });
+
+ scenario.close();
+ }
+
+ private FragmentScenario<TestableFragment> createScenario(@Nullable String modeId) {
+ Bundle fragmentArgs = null;
+ if (modeId != null) {
+ fragmentArgs = new Bundle();
+ fragmentArgs.putString(EXTRA_AUTOMATIC_ZEN_RULE_ID, modeId);
+ }
+
+ FragmentScenario<TestableFragment> scenario = FragmentScenario.launch(
+ TestableFragment.class, fragmentArgs, 0, State.INITIALIZED);
+
+ scenario.onFragment(fragment -> {
+ fragment.setBackend(mBackend); // Before onCreate().
+ });
+
+ return scenario;
+ }
+
+ public static class TestableFragment extends ZenModeFragmentBase {
+
+ private ShowsIdPreferenceController mShowsId;
+ private ShowsNamePreferenceController mShowsName;
+ private AvailableIfEnabledPreferenceController mAvailableIfEnabled;
+
+ @Override
+ protected List<AbstractPreferenceController> createPreferenceControllers(Context context) {
+ mShowsId = spy(new ShowsIdPreferenceController(context, "pref_id"));
+ mShowsName = spy(new ShowsNamePreferenceController(context, "pref_name"));
+ mAvailableIfEnabled = spy(
+ new AvailableIfEnabledPreferenceController(context, "pref_enabled"));
+ return ImmutableList.of(mShowsId, mShowsName, mAvailableIfEnabled);
+ }
+
+ @NonNull
+ Preference requirePreference(String key) {
+ Preference preference = getPreferenceScreen().findPreference(key);
+ checkNotNull(preference, "Didn't find preference with key " + key);
+ return preference;
+ }
+
+ ShadowContentResolver getShadowContentResolver() {
+ return shadowOf(requireActivity().getContentResolver());
+ }
+
+ @Override
+ protected int getPreferenceScreenResId() {
+ return R.xml.modes_fake_settings;
+ }
+
+ @Override
+ public int getMetricsCategory() {
+ return 0;
+ }
+ }
+
+ private static class ShowsIdPreferenceController extends AbstractZenModePreferenceController {
+
+ ShowsIdPreferenceController(@NonNull Context context, @NonNull String key) {
+ super(context, key);
+ }
+
+ @Override
+ void updateState(Preference preference, @NonNull ZenMode zenMode) {
+ preference.setSummary("Id is " + zenMode.getId());
+ }
+ }
+
+ private static class ShowsNamePreferenceController extends AbstractZenModePreferenceController {
+
+ ShowsNamePreferenceController(@NonNull Context context, @NonNull String key) {
+ super(context, key);
+ }
+
+ @Override
+ void updateState(Preference preference, @NonNull ZenMode zenMode) {
+ preference.setSummary(zenMode.getName());
+ }
+ }
+
+ private static class AvailableIfEnabledPreferenceController extends
+ AbstractZenModePreferenceController {
+
+ AvailableIfEnabledPreferenceController(@NonNull Context context, @NonNull String key) {
+ super(context, key);
+ }
+
+ @Override
+ public boolean isAvailable(@NonNull ZenMode zenMode) {
+ return zenMode.isEnabled();
+ }
+
+ @Override
+ void updateState(Preference preference, @NonNull ZenMode zenMode) {
+ preference.setSummary("Enabled is " + zenMode.isEnabled());
+ }
+ }
+
+ private ImmutableList<ContentObserver> getSettingsContentObservers(Fragment fragment) {
+ return ImmutableList.copyOf(
+ shadowOf(fragment.requireActivity().getContentResolver())
+ .getContentObservers(SETTINGS_URI));
+ }
+}
diff --git a/tests/robotests/src/com/android/settings/notification/modes/ZenModeFragmentTest.java b/tests/robotests/src/com/android/settings/notification/modes/ZenModeFragmentTest.java
new file mode 100644
index 0000000..576e32a
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/notification/modes/ZenModeFragmentTest.java
@@ -0,0 +1,125 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.settings.notification.modes;
+
+import static android.provider.Settings.EXTRA_AUTOMATIC_ZEN_RULE_ID;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.mockito.Mockito.when;
+import static org.robolectric.Shadows.shadowOf;
+
+import android.content.Intent;
+import android.os.Bundle;
+
+import androidx.fragment.app.testing.FragmentScenario;
+import androidx.lifecycle.Lifecycle;
+
+import com.android.settingslib.notification.modes.TestModeBuilder;
+import com.android.settingslib.notification.modes.ZenMode;
+import com.android.settingslib.notification.modes.ZenModesBackend;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+import org.robolectric.RobolectricTestRunner;
+
+@RunWith(RobolectricTestRunner.class)
+public class ZenModeFragmentTest {
+ private static final String MODE_ID = "modeId";
+
+ @Mock
+ private ZenModesBackend mBackend;
+
+ @Before
+ public void setUp() {
+ MockitoAnnotations.initMocks(this);
+
+ // set up static instance so that the fragment will get a mock version of the backend
+ ZenModesBackend.setInstance(mBackend);
+ }
+
+ // Sets up the scenario's fragment by passing in arguments setting the provided mode ID.
+ // After running this method, users can then use scenario.onFragment(fragment -> {...}) on the
+ // returned scenario to test fragment behavior.
+ private FragmentScenario<ZenModeFragment> setUpScenarioForModeId(String modeId) {
+ Bundle args = new Bundle();
+ args.putString(EXTRA_AUTOMATIC_ZEN_RULE_ID, modeId);
+ return FragmentScenario.launch(
+ ZenModeFragment.class, /* bundle= */ args, 0, Lifecycle.State.INITIALIZED);
+ }
+
+ @Test
+ public void disabledMode_redirectsToInterstitial() {
+ // Mode is disabled, and not by the user
+ ZenMode mode = new TestModeBuilder().setId(MODE_ID).setEnabled(false, false)
+ .build();
+
+ when(mBackend.getMode(MODE_ID)).thenReturn(mode);
+
+ // actually set up fragment for testing
+ FragmentScenario scenario = setUpScenarioForModeId(MODE_ID);
+ scenario.moveToState(Lifecycle.State.STARTED);
+
+ scenario.onFragment(fragment -> {
+ // since the mode is disabled & not by the user, we should go to the next activity
+ Intent nextIntent = shadowOf(fragment.getActivity()).getNextStartedActivity();
+ assertThat(nextIntent).isNotNull();
+ assertThat(nextIntent.getComponent().getClassName()).isEqualTo(
+ SetupInterstitialActivity.class.getCanonicalName());
+ assertThat(nextIntent.getStringExtra(EXTRA_AUTOMATIC_ZEN_RULE_ID)).isEqualTo(MODE_ID);
+ });
+ scenario.close();
+ }
+
+ @Test
+ public void disabledMode_byUser_noRedirect() {
+ // Mode is disabled by the user
+ ZenMode mode = new TestModeBuilder().setId(MODE_ID).setEnabled(false, true)
+ .build();
+
+ when(mBackend.getMode(MODE_ID)).thenReturn(mode);
+ FragmentScenario scenario = setUpScenarioForModeId(MODE_ID);
+ scenario.moveToState(Lifecycle.State.STARTED);
+
+ scenario.onFragment(fragment -> {
+ // there shouldn't be a next started activity, because we don't redirect
+ Intent nextIntent = shadowOf(fragment.getActivity()).getNextStartedActivity();
+ assertThat(nextIntent).isNull();
+ });
+ scenario.close();
+ }
+
+ @Test
+ public void enabledMode_noRedirect() {
+ // enabled rule
+ ZenMode mode = new TestModeBuilder().setId(MODE_ID).setEnabled(true)
+ .build();
+
+ when(mBackend.getMode(MODE_ID)).thenReturn(mode);
+ FragmentScenario scenario = setUpScenarioForModeId(MODE_ID);
+ scenario.moveToState(Lifecycle.State.STARTED);
+
+ scenario.onFragment(fragment -> {
+ // there shouldn't be a next started activity, because we don't redirect
+ Intent nextIntent = shadowOf(fragment.getActivity()).getNextStartedActivity();
+ assertThat(nextIntent).isNull();
+ });
+ scenario.close();
+ }
+}
diff --git a/tests/robotests/src/com/android/settings/notification/modes/ZenModeIconPickerListPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/modes/ZenModeIconPickerListPreferenceControllerTest.java
index 1904734..eae606b 100644
--- a/tests/robotests/src/com/android/settings/notification/modes/ZenModeIconPickerListPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/modes/ZenModeIconPickerListPreferenceControllerTest.java
@@ -22,7 +22,10 @@
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
+import android.app.Flags;
import android.content.Context;
+import android.platform.test.annotations.EnableFlags;
+import android.platform.test.flag.junit.SetFlagsRule;
import android.view.View;
import android.view.ViewGroup;
import android.widget.FrameLayout;
@@ -39,6 +42,7 @@
import com.google.common.collect.ImmutableList;
import org.junit.Before;
+import org.junit.Rule;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
@@ -47,7 +51,10 @@
import org.robolectric.RuntimeEnvironment;
@RunWith(RobolectricTestRunner.class)
+@EnableFlags(Flags.FLAG_MODES_UI)
public class ZenModeIconPickerListPreferenceControllerTest {
+ @Rule
+ public final SetFlagsRule mSetFlagsRule = new SetFlagsRule();
private Context mContext;
private ZenModeIconPickerListPreferenceController mController;
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 100ff43..fad4f2a 100644
--- a/tests/robotests/src/com/android/settings/notification/modes/ZenModeMessagesLinkPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/modes/ZenModeMessagesLinkPreferenceControllerTest.java
@@ -39,6 +39,7 @@
import org.robolectric.RuntimeEnvironment;
@RunWith(RobolectricTestRunner.class)
+@EnableFlags(Flags.FLAG_MODES_UI)
public final class ZenModeMessagesLinkPreferenceControllerTest {
private ZenModeMessagesLinkPreferenceController mController;
@@ -60,7 +61,6 @@
}
@Test
- @EnableFlags(Flags.FLAG_MODES_UI)
public void testHasSummary() {
Preference pref = mock(Preference.class);
mController.updateZenMode(pref, TestModeBuilder.EXAMPLE);
diff --git a/tests/robotests/src/com/android/settings/notification/modes/ZenModeNewCustomFragmentTest.java b/tests/robotests/src/com/android/settings/notification/modes/ZenModeNewCustomFragmentTest.java
index dd2b49b..9aa42ea 100644
--- a/tests/robotests/src/com/android/settings/notification/modes/ZenModeNewCustomFragmentTest.java
+++ b/tests/robotests/src/com/android/settings/notification/modes/ZenModeNewCustomFragmentTest.java
@@ -30,8 +30,11 @@
import static org.robolectric.Shadows.shadowOf;
import android.app.Activity;
+import android.app.Flags;
import android.content.Intent;
import android.os.Bundle;
+import android.platform.test.annotations.EnableFlags;
+import android.platform.test.flag.junit.SetFlagsRule;
import androidx.fragment.app.testing.EmptyFragmentActivity;
import androidx.fragment.app.testing.FragmentScenario;
@@ -53,9 +56,13 @@
import org.robolectric.RobolectricTestRunner;
@RunWith(RobolectricTestRunner.class)
+@EnableFlags(Flags.FLAG_MODES_UI)
public class ZenModeNewCustomFragmentTest {
@Rule
+ public final SetFlagsRule mSetFlagsRule = new SetFlagsRule();
+
+ @Rule
public ActivityScenarioRule<EmptyFragmentActivity> mActivityScenario =
new ActivityScenarioRule<>(EmptyFragmentActivity.class);
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 772bd1d..8aa87e6 100644
--- a/tests/robotests/src/com/android/settings/notification/modes/ZenModeOtherLinkPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/modes/ZenModeOtherLinkPreferenceControllerTest.java
@@ -17,6 +17,7 @@
package com.android.settings.notification.modes;
import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.argThat;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.verify;
@@ -24,10 +25,10 @@
import android.content.Context;
import android.platform.test.annotations.EnableFlags;
import android.platform.test.flag.junit.SetFlagsRule;
-
-import androidx.preference.Preference;
+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;
@@ -61,10 +62,52 @@
}
@Test
- @EnableFlags(Flags.FLAG_MODES_UI)
- public void testHasSummary() {
- Preference pref = mock(Preference.class);
+ public void updateState_disabled() {
+ CircularIconsPreference pref = mock(CircularIconsPreference.class);
+ ZenMode zenMode = new TestModeBuilder()
+ .setEnabled(false)
+ .build();
+
+ mController.updateZenMode(pref, zenMode);
+
+ verify(pref).setEnabled(false);
+ }
+
+ @Test
+ public void updateState_loadsSummary() {
+ CircularIconsPreference pref = mock(CircularIconsPreference.class);
mController.updateZenMode(pref, TestModeBuilder.EXAMPLE);
+
verify(pref).setSummary(any());
}
+
+ @Test
+ public void updateState_loadsIcons() {
+ CircularIconsPreference pref = mock(CircularIconsPreference.class);
+ ZenMode mode = new TestModeBuilder()
+ .setZenPolicy(new ZenPolicy.Builder()
+ .disallowAllSounds()
+ .allowMedia(true)
+ .allowSystem(true)
+ .allowReminders(true)
+ .build())
+ .build();
+
+ mController.updateState(pref, mode);
+
+ verify(pref).displayIcons(argThat(iconSet -> iconSet.size() == 3));
+ }
+
+ @Test
+ public void updateState_loadsAllIcons() {
+ CircularIconsPreference pref = mock(CircularIconsPreference.class);
+ ZenMode mode = new TestModeBuilder()
+ .setZenPolicy(new ZenPolicy.Builder().allowAllSounds().build())
+ .build();
+
+ mController.updateState(pref, mode);
+
+ verify(pref).displayIcons(argThat(iconSet ->
+ iconSet.size() == ZenModeSummaryHelper.OTHER_SOUND_CATEGORIES.size()));
+ }
}
\ No newline at end of file
diff --git a/tests/robotests/src/com/android/settings/notification/modes/ZenModePeopleLinkPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/modes/ZenModePeopleLinkPreferenceControllerTest.java
index dd97d6e..a4d141e 100644
--- a/tests/robotests/src/com/android/settings/notification/modes/ZenModePeopleLinkPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/modes/ZenModePeopleLinkPreferenceControllerTest.java
@@ -16,18 +16,47 @@
package com.android.settings.notification.modes;
+import static android.service.notification.ZenPolicy.CONVERSATION_SENDERS_IMPORTANT;
+import static android.service.notification.ZenPolicy.PEOPLE_TYPE_ANYONE;
+import static android.service.notification.ZenPolicy.PEOPLE_TYPE_CONTACTS;
+import static android.service.notification.ZenPolicy.PEOPLE_TYPE_NONE;
+import static android.service.notification.ZenPolicy.PEOPLE_TYPE_STARRED;
+
+import static com.google.common.truth.Truth.assertThat;
+
import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.Mockito.mock;
+import static org.mockito.ArgumentMatchers.anyBoolean;
+import static org.mockito.ArgumentMatchers.anyInt;
+import static org.mockito.Mockito.never;
+import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
import android.app.Flags;
+import android.app.NotificationChannel;
+import android.app.NotificationManager;
import android.content.Context;
+import android.content.pm.ShortcutInfo;
+import android.graphics.Color;
+import android.graphics.drawable.ColorDrawable;
+import android.graphics.drawable.Drawable;
+import android.net.Uri;
import android.platform.test.annotations.EnableFlags;
import android.platform.test.flag.junit.SetFlagsRule;
+import android.service.notification.ConversationChannelWrapper;
+import android.service.notification.ZenPolicy;
+import android.view.LayoutInflater;
+import android.view.View;
-import androidx.preference.Preference;
+import androidx.preference.PreferenceViewHolder;
+import com.android.settings.notification.modes.ZenHelperBackend.Contact;
+import com.android.settingslib.notification.ConversationIconFactory;
import com.android.settingslib.notification.modes.TestModeBuilder;
+import com.android.settingslib.notification.modes.ZenMode;
+
+import com.google.common.collect.ImmutableList;
+import com.google.common.util.concurrent.MoreExecutors;
import org.junit.Before;
import org.junit.Rule;
@@ -35,36 +64,175 @@
import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
+import org.mockito.stubbing.Answer;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.RuntimeEnvironment;
+import java.util.Collection;
+
+@EnableFlags(Flags.FLAG_MODES_UI)
@RunWith(RobolectricTestRunner.class)
public final class ZenModePeopleLinkPreferenceControllerTest {
private ZenModePeopleLinkPreferenceController mController;
+ private CircularIconsPreference mPreference;
@Rule
public final SetFlagsRule mSetFlagsRule = new SetFlagsRule();
private Context mContext;
- @Mock
- private ZenHelperBackend mHelperBackend;
+ @Mock private ZenHelperBackend mHelperBackend;
+ @Mock private ConversationIconFactory mConversationIconFactory;
@Before
public void setup() {
MockitoAnnotations.initMocks(this);
-
mContext = RuntimeEnvironment.application;
+ CircularIconSet.sExecutorService = MoreExecutors.newDirectExecutorService();
+ mPreference = new TestableCircularIconsPreference(mContext);
+
+ // Ensure the preference view is bound & measured (needed to add icons).
+ View preferenceView = LayoutInflater.from(mContext).inflate(mPreference.getLayoutResource(),
+ null);
+ preferenceView.measure(View.MeasureSpec.makeMeasureSpec(1000, View.MeasureSpec.EXACTLY),
+ View.MeasureSpec.makeMeasureSpec(1000, View.MeasureSpec.EXACTLY));
+ PreferenceViewHolder holder = PreferenceViewHolder.createInstanceForTests(preferenceView);
+ mPreference.onBindViewHolder(holder);
mController = new ZenModePeopleLinkPreferenceController(
- mContext, "something", mHelperBackend);
+ mContext, "something", mHelperBackend, mConversationIconFactory);
+
+ setUpContacts(ImmutableList.of(), ImmutableList.of());
+ setUpImportantConversations(ImmutableList.of());
+
+ when(mHelperBackend.getContactPhoto(any())).then(
+ (Answer<Drawable>) invocationOnMock -> photoOf(invocationOnMock.getArgument(0)));
+ when(mConversationIconFactory.getConversationDrawable((ShortcutInfo) any(), any(), anyInt(),
+ anyBoolean())).thenReturn(new ColorDrawable(Color.BLACK));
}
@Test
- @EnableFlags(Flags.FLAG_MODES_UI)
- public void testHasSummary() {
- Preference pref = mock(Preference.class);
- mController.updateZenMode(pref, TestModeBuilder.EXAMPLE);
- verify(pref).setSummary(any());
+ public void updateState_disabled() {
+ ZenMode zenMode = new TestModeBuilder()
+ .setEnabled(false)
+ .build();
+
+ mController.updateState(mPreference, zenMode);
+
+ assertThat(mPreference.isEnabled()).isFalse();
+ }
+
+ @Test
+ public void updateState_setsSummary() {
+ mController.updateState(mPreference, TestModeBuilder.EXAMPLE);
+
+ assertThat(mPreference.getSummary()).isNotNull();
+ assertThat(mPreference.getSummary().toString()).isNotEmpty();
+ }
+
+ @Test
+ public void updateState_starredCallsNoMessages_displaysStarredContacts() {
+ setUpContacts(ImmutableList.of(1, 2, 3, 4), ImmutableList.of(2, 3));
+ ZenMode mode = new TestModeBuilder()
+ .setZenPolicy(new ZenPolicy.Builder()
+ .allowCalls(PEOPLE_TYPE_STARRED)
+ .allowMessages(PEOPLE_TYPE_NONE)
+ .build())
+ .build();
+
+ mController.updateState(mPreference, mode);
+
+ assertThat(mPreference.getLoadedIcons()).isNotNull();
+ assertThat(mPreference.getLoadedIcons().icons()).hasSize(2);
+ assertThat(mPreference.getLoadedIcons().icons().stream()
+ .map(ColorDrawable.class::cast)
+ .map(d -> d.getColor()).toList())
+ .containsExactly(2, 3).inOrder();
+ }
+
+ @Test
+ public void updateState_starredCallsContactMessages_displaysAllContacts() {
+ setUpContacts(ImmutableList.of(1, 2, 3, 4), ImmutableList.of(2, 3));
+ ZenMode mode = new TestModeBuilder()
+ .setZenPolicy(new ZenPolicy.Builder()
+ .allowCalls(PEOPLE_TYPE_STARRED)
+ .allowMessages(PEOPLE_TYPE_CONTACTS)
+ .build())
+ .build();
+
+ mController.updateState(mPreference, mode);
+
+ assertThat(mPreference.getLoadedIcons()).isNotNull();
+ assertThat(mPreference.getLoadedIcons().icons()).hasSize(4);
+ assertThat(mPreference.getLoadedIcons().icons().stream()
+ .map(ColorDrawable.class::cast)
+ .map(d -> d.getColor()).toList())
+ .containsExactly(1, 2, 3, 4).inOrder();
+ }
+
+ @Test
+ public void updateState_anyoneCallsContactMessages_displaysAnyonePlaceholder() {
+ setUpContacts(ImmutableList.of(1, 2, 3, 4), ImmutableList.of(2, 3));
+ ZenMode mode = new TestModeBuilder()
+ .setZenPolicy(new ZenPolicy.Builder()
+ .allowCalls(PEOPLE_TYPE_ANYONE)
+ .allowMessages(PEOPLE_TYPE_CONTACTS)
+ .build())
+ .build();
+
+ mController.updateState(mPreference, mode);
+
+ assertThat(mPreference.getLoadedIcons()).isNotNull();
+ assertThat(mPreference.getLoadedIcons().icons()).hasSize(1);
+ verify(mHelperBackend, never()).getContactPhoto(any());
+ }
+
+ @Test
+ public void updateState_noContactsButImportantConversations_displaysConversations() {
+ setUpContacts(ImmutableList.of(), ImmutableList.of());
+ setUpImportantConversations(ImmutableList.of(1, 2, 3));
+ ZenMode mode = new TestModeBuilder()
+ .setZenPolicy(new ZenPolicy.Builder()
+ .allowCalls(PEOPLE_TYPE_CONTACTS)
+ .allowMessages(PEOPLE_TYPE_CONTACTS)
+ .allowConversations(CONVERSATION_SENDERS_IMPORTANT)
+ .build())
+ .build();
+
+ mController.updateState(mPreference, mode);
+
+ assertThat(mPreference.getLoadedIcons()).isNotNull();
+ assertThat(mPreference.getLoadedIcons().icons()).hasSize(3);
+ verify(mConversationIconFactory, times(3)).getConversationDrawable((ShortcutInfo) any(),
+ any(), anyInt(), anyBoolean());
+ }
+
+ private void setUpContacts(Collection<Integer> allIds, Collection<Integer> starredIds) {
+ when(mHelperBackend.getAllContacts()).thenReturn(ImmutableList.copyOf(
+ allIds.stream()
+ .map(id -> new Contact(id, "#" + id, Uri.parse("photo://" + id)))
+ .toList()));
+
+ when(mHelperBackend.getStarredContacts()).thenReturn(ImmutableList.copyOf(
+ starredIds.stream()
+ .map(id -> new Contact(id, "#" + id, Uri.parse("photo://" + id)))
+ .toList()));
+ }
+
+ private void setUpImportantConversations(Collection<Integer> ids) {
+ when(mHelperBackend.getImportantConversations()).thenReturn(ImmutableList.copyOf(
+ ids.stream()
+ .map(id -> {
+ ConversationChannelWrapper channel = new ConversationChannelWrapper();
+ channel.setNotificationChannel(
+ new NotificationChannel(id.toString(), id.toString(),
+ NotificationManager.IMPORTANCE_DEFAULT));
+ return channel;
+ })
+ .toList()));
+ }
+
+ private static ColorDrawable photoOf(Contact contact) {
+ return new ColorDrawable((int) contact.id());
}
}
\ No newline at end of file
diff --git a/tests/robotests/src/com/android/settings/notification/modes/ZenModePrioritySendersPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/modes/ZenModePrioritySendersPreferenceControllerTest.java
index 944d432..eb57094 100644
--- a/tests/robotests/src/com/android/settings/notification/modes/ZenModePrioritySendersPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/modes/ZenModePrioritySendersPreferenceControllerTest.java
@@ -19,43 +19,48 @@
import static android.service.notification.ZenPolicy.CONVERSATION_SENDERS_ANYONE;
import static android.service.notification.ZenPolicy.CONVERSATION_SENDERS_IMPORTANT;
import static android.service.notification.ZenPolicy.CONVERSATION_SENDERS_NONE;
-import static android.service.notification.ZenPolicy.CONVERSATION_SENDERS_UNSET;
import static android.service.notification.ZenPolicy.PEOPLE_TYPE_ANYONE;
import static android.service.notification.ZenPolicy.PEOPLE_TYPE_CONTACTS;
import static android.service.notification.ZenPolicy.PEOPLE_TYPE_NONE;
import static android.service.notification.ZenPolicy.PEOPLE_TYPE_STARRED;
-import static android.service.notification.ZenPolicy.PEOPLE_TYPE_UNSET;
-import static android.service.notification.ZenPolicy.STATE_UNSET;
+import static android.service.notification.ZenPolicy.conversationTypeToString;
+import static android.service.notification.ZenPolicy.peopleTypeToString;
import static com.android.settings.notification.modes.ZenModePrioritySendersPreferenceController.KEY_ANY;
+import static com.android.settings.notification.modes.ZenModePrioritySendersPreferenceController.KEY_ANY_CONVERSATIONS;
import static com.android.settings.notification.modes.ZenModePrioritySendersPreferenceController.KEY_CONTACTS;
-import static com.android.settings.notification.modes.ZenModePrioritySendersPreferenceController.KEY_IMPORTANT;
+import static com.android.settings.notification.modes.ZenModePrioritySendersPreferenceController.KEY_IMPORTANT_CONVERSATIONS;
import static com.android.settings.notification.modes.ZenModePrioritySendersPreferenceController.KEY_NONE;
import static com.android.settings.notification.modes.ZenModePrioritySendersPreferenceController.KEY_STARRED;
+import static com.google.common.base.Preconditions.checkNotNull;
import static com.google.common.truth.Truth.assertThat;
+import static com.google.common.truth.Truth.assertWithMessage;
-import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
import android.app.Flags;
import android.content.Context;
-import android.database.Cursor;
import android.platform.test.annotations.EnableFlags;
import android.platform.test.flag.junit.SetFlagsRule;
import android.service.notification.ZenPolicy;
+import android.service.notification.ZenPolicy.ConversationSenders;
+import android.service.notification.ZenPolicy.PeopleType;
import androidx.preference.Preference;
import androidx.preference.PreferenceCategory;
import androidx.preference.PreferenceManager;
import androidx.preference.PreferenceScreen;
+import androidx.preference.TwoStatePreference;
import com.android.settingslib.notification.modes.TestModeBuilder;
import com.android.settingslib.notification.modes.ZenMode;
import com.android.settingslib.notification.modes.ZenModesBackend;
import com.android.settingslib.widget.SelectorWithWidgetPreference;
+import com.google.common.collect.ImmutableList;
+
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
@@ -66,6 +71,9 @@
import org.robolectric.RobolectricTestRunner;
import org.robolectric.RuntimeEnvironment;
+import java.util.function.Consumer;
+import java.util.function.Predicate;
+
@RunWith(RobolectricTestRunner.class)
@EnableFlags(Flags.FLAG_MODES_UI)
public final class ZenModePrioritySendersPreferenceControllerTest {
@@ -105,39 +113,34 @@
mPreferenceScreen.addPreference(mCallsPrefCategory);
mPreferenceScreen.addPreference(mMessagesPrefCategory);
- Cursor cursor = mock(Cursor.class);
- when(cursor.getCount()).thenReturn(1);
- when(mHelperBackend.queryAllContactsData()).thenReturn(cursor);
- }
+ when(mHelperBackend.getStarredContacts()).thenReturn(ImmutableList.of());
+ when(mHelperBackend.getAllContacts()).thenReturn(
+ ImmutableList.of(new ZenHelperBackend.Contact(1, "The only contact", null)));
+ when(mHelperBackend.getAllContactsCount()).thenReturn(1);
- // Makes a preference with the provided key and whether it's a checkbox with
- // mSelectorClickListener as the onClickListener set.
- private SelectorWithWidgetPreference makePreference(
- String key, boolean isCheckbox, boolean isMessages) {
- final SelectorWithWidgetPreference pref =
- new SelectorWithWidgetPreference(mContext, isCheckbox);
- pref.setKey(key);
- pref.setOnClickListener(
- isMessages ? mMessagesController.mSelectorClickListener
- : mCallsController.mSelectorClickListener);
- return pref;
+ when(mHelperBackend.getImportantConversations()).thenReturn(ImmutableList.of());
+ when(mHelperBackend.getAllConversations()).thenReturn(ImmutableList.of());
}
@Test
public void testDisplayPreferences_makeMessagesPrefs() {
mMessagesController.displayPreference(mPreferenceScreen);
- // Starred contacts, Contacts, Priority Conversations, Any, None
- assertThat(mMessagesPrefCategory.getPreferenceCount()).isEqualTo(5);
+ // "Any Conversations" is invisible by default.
+ assertThat(getAllOptions(mMessagesPrefCategory)).containsExactly(KEY_STARRED, KEY_CONTACTS,
+ KEY_ANY_CONVERSATIONS, KEY_IMPORTANT_CONVERSATIONS, KEY_ANY, KEY_NONE).inOrder();
+ assertThat(getVisibleOptions(mMessagesPrefCategory)).containsExactly(KEY_STARRED,
+ KEY_CONTACTS, KEY_IMPORTANT_CONVERSATIONS, KEY_ANY, KEY_NONE).inOrder();
}
@Test
public void testDisplayPreferences_makeCallsPrefs() {
mCallsController.displayPreference(mPreferenceScreen);
- assertThat(mCallsPrefCategory.getPreferenceCount()).isEqualTo(4);
- assertThat((Comparable<?>) mCallsPrefCategory.findPreference(KEY_IMPORTANT)).isNull();
-
+ assertThat(getAllOptions(mCallsPrefCategory)).containsExactly(KEY_STARRED, KEY_CONTACTS,
+ KEY_ANY, KEY_NONE).inOrder();
+ assertThat(getVisibleOptions(mCallsPrefCategory)).containsExactly(KEY_STARRED, KEY_CONTACTS,
+ KEY_ANY, KEY_NONE).inOrder();
}
@Test
@@ -154,287 +157,1198 @@
}
@Test
- public void testKeyToSettingEndState_messagesCheck() {
- int[] endState;
+ public void updateState_callsAny() {
+ ZenMode zenMode = newModeWithPolicy(p -> p.allowCalls(PEOPLE_TYPE_ANYONE));
+ mCallsController.displayPreference(mPreferenceScreen);
- // For KEY_NONE everything should be none.
- endState = mMessagesController.keyToSettingEndState(KEY_NONE, true);
- assertThat(endState[0]).isEqualTo(PEOPLE_TYPE_NONE);
- assertThat(endState[1]).isEqualTo(CONVERSATION_SENDERS_NONE);
+ mCallsController.updateZenMode(mCallsPrefCategory, zenMode);
- // For KEY_ANY everything should be allowed.
- endState = mMessagesController.keyToSettingEndState(KEY_ANY, true);
- assertThat(endState[0]).isEqualTo(PEOPLE_TYPE_ANYONE);
- assertThat(endState[1]).isEqualTo(CONVERSATION_SENDERS_ANYONE);
-
- // For [starred] contacts, we should set the priority senders, but not the conversations
- endState = mMessagesController.keyToSettingEndState(KEY_STARRED, true);
- assertThat(endState[0]).isEqualTo(PEOPLE_TYPE_STARRED);
- assertThat(endState[1]).isEqualTo(CONVERSATION_SENDERS_UNSET);
-
- endState = mMessagesController.keyToSettingEndState(KEY_CONTACTS, true);
- assertThat(endState[0]).isEqualTo(PEOPLE_TYPE_CONTACTS);
- assertThat(endState[1]).isEqualTo(CONVERSATION_SENDERS_UNSET);
-
- // For priority conversations, we should set the conversations but not priority senders
- endState = mMessagesController.keyToSettingEndState(KEY_IMPORTANT, true);
- assertThat(endState[0]).isEqualTo(PEOPLE_TYPE_UNSET);
- assertThat(endState[1]).isEqualTo(CONVERSATION_SENDERS_IMPORTANT);
+ assertThat(getCheckedOptions(mCallsPrefCategory)).containsExactly(KEY_ANY);
}
@Test
- public void testKeyToSettingEndState_messagesUncheck() {
- int[] endState;
+ public void updateState_callsContacts() {
+ ZenMode zenMode = newModeWithPolicy(p -> p.allowCalls(PEOPLE_TYPE_CONTACTS));
+ mCallsController.displayPreference(mPreferenceScreen);
- // For KEY_NONE, "unchecking" still means "none".
- endState = mMessagesController.keyToSettingEndState(KEY_NONE, false);
- assertThat(endState[0]).isEqualTo(PEOPLE_TYPE_NONE);
- assertThat(endState[1]).isEqualTo(CONVERSATION_SENDERS_NONE);
+ mCallsController.updateZenMode(mCallsPrefCategory, zenMode);
- // For KEY_ANY unchecking resets the state to "none".
- endState = mMessagesController.keyToSettingEndState(KEY_ANY, false);
- assertThat(endState[0]).isEqualTo(PEOPLE_TYPE_NONE);
- assertThat(endState[1]).isEqualTo(CONVERSATION_SENDERS_NONE);
-
- // For [starred] contacts, we should unset the priority senders, but not the conversations
- endState = mMessagesController.keyToSettingEndState(KEY_STARRED, false);
- assertThat(endState[0]).isEqualTo(PEOPLE_TYPE_NONE);
- assertThat(endState[1]).isEqualTo(CONVERSATION_SENDERS_UNSET);
-
- endState = mMessagesController.keyToSettingEndState(KEY_CONTACTS, false);
- assertThat(endState[0]).isEqualTo(PEOPLE_TYPE_NONE);
- assertThat(endState[1]).isEqualTo(CONVERSATION_SENDERS_UNSET);
-
- // For priority conversations, we should set the conversations but not priority senders
- endState = mMessagesController.keyToSettingEndState(KEY_IMPORTANT, false);
- assertThat(endState[0]).isEqualTo(PEOPLE_TYPE_UNSET);
- assertThat(endState[1]).isEqualTo(CONVERSATION_SENDERS_NONE);
+ assertThat(getCheckedOptions(mCallsPrefCategory)).containsExactly(KEY_CONTACTS);
}
@Test
- public void testKeyToSettingEndState_callsCheck() {
- int[] endState;
+ public void updateState_callsStarredContacts() {
+ ZenMode zenMode = newModeWithPolicy(p -> p.allowCalls(PEOPLE_TYPE_STARRED));
+ mCallsController.displayPreference(mPreferenceScreen);
- // For calls: we should never set conversations, as this is unrelated to calls.
- // For KEY_NONE senders should be none.
- endState = mCallsController.keyToSettingEndState(KEY_NONE, true);
- assertThat(endState[0]).isEqualTo(PEOPLE_TYPE_NONE);
- assertThat(endState[1]).isEqualTo(CONVERSATION_SENDERS_UNSET);
+ mCallsController.updateZenMode(mCallsPrefCategory, zenMode);
- // For KEY_ANY senders should be ANY.
- endState = mCallsController.keyToSettingEndState(KEY_ANY, true);
- assertThat(endState[0]).isEqualTo(PEOPLE_TYPE_ANYONE);
- assertThat(endState[1]).isEqualTo(CONVERSATION_SENDERS_UNSET);
-
- // For [starred] contacts, we should set the priority senders accordingly
- endState = mCallsController.keyToSettingEndState(KEY_STARRED, true);
- assertThat(endState[0]).isEqualTo(PEOPLE_TYPE_STARRED);
- assertThat(endState[1]).isEqualTo(CONVERSATION_SENDERS_UNSET);
-
- endState = mCallsController.keyToSettingEndState(KEY_CONTACTS, true);
- assertThat(endState[0]).isEqualTo(PEOPLE_TYPE_CONTACTS);
- assertThat(endState[1]).isEqualTo(CONVERSATION_SENDERS_UNSET);
+ assertThat(getCheckedOptions(mCallsPrefCategory)).containsExactly(KEY_STARRED);
}
@Test
- public void testKeyToSettingEndState_callsUncheck() {
- int[] endState;
+ public void updateState_callsNone() {
+ ZenMode zenMode = newModeWithPolicy(p -> p.allowCalls(PEOPLE_TYPE_NONE));
+ mCallsController.displayPreference(mPreferenceScreen);
- // A calls setup should never set conversations settings.
- // For KEY_NONE, "unchecking" still means "none".
- endState = mCallsController.keyToSettingEndState(KEY_NONE, false);
- assertThat(endState[0]).isEqualTo(PEOPLE_TYPE_NONE);
- assertThat(endState[1]).isEqualTo(CONVERSATION_SENDERS_UNSET);
+ mCallsController.updateZenMode(mCallsPrefCategory, zenMode);
- // For KEY_ANY unchecking resets the state to "none".
- endState = mCallsController.keyToSettingEndState(KEY_ANY, false);
- assertThat(endState[0]).isEqualTo(PEOPLE_TYPE_NONE);
- assertThat(endState[1]).isEqualTo(CONVERSATION_SENDERS_UNSET);
-
- // For [starred] contacts, we should unset the priority senders, but not the conversations
- endState = mCallsController.keyToSettingEndState(KEY_STARRED, false);
- assertThat(endState[0]).isEqualTo(PEOPLE_TYPE_NONE);
- assertThat(endState[1]).isEqualTo(CONVERSATION_SENDERS_UNSET);
-
- endState = mCallsController.keyToSettingEndState(KEY_CONTACTS, false);
- assertThat(endState[0]).isEqualTo(PEOPLE_TYPE_NONE);
- assertThat(endState[1]).isEqualTo(CONVERSATION_SENDERS_UNSET);
+ assertThat(getCheckedOptions(mCallsPrefCategory)).containsExactly(KEY_NONE);
}
@Test
- public void testSettingsToSaveOnClick_messagesCheck() {
- int[] endState;
+ public void updateState_msgAnyConvAny() {
+ ZenMode zenMode = newModeWithPolicy(p ->
+ p.allowMessages(PEOPLE_TYPE_ANYONE)
+ .allowConversations(CONVERSATION_SENDERS_ANYONE));
- // For KEY_NONE everything should be none.
- endState = mMessagesController.settingsToSaveOnClick(
- KEY_NONE, true, PEOPLE_TYPE_ANYONE, CONVERSATION_SENDERS_ANYONE);
- assertThat(endState[0]).isEqualTo(PEOPLE_TYPE_NONE);
- assertThat(endState[1]).isEqualTo(CONVERSATION_SENDERS_NONE);
+ mMessagesController.displayPreference(mPreferenceScreen);
+ mMessagesController.updateZenMode(mMessagesPrefCategory, zenMode);
- // For KEY_ANY everything should be allowed.
- endState = mMessagesController.settingsToSaveOnClick(
- KEY_ANY, true, PEOPLE_TYPE_NONE, CONVERSATION_SENDERS_NONE);
- assertThat(endState[0]).isEqualTo(PEOPLE_TYPE_ANYONE);
- assertThat(endState[1]).isEqualTo(CONVERSATION_SENDERS_ANYONE);
-
- // For [starred] contacts, we should set the priority senders, but not the conversations
- endState = mMessagesController.settingsToSaveOnClick(
- KEY_STARRED, true, PEOPLE_TYPE_NONE, CONVERSATION_SENDERS_NONE);
- assertThat(endState[0]).isEqualTo(PEOPLE_TYPE_STARRED);
- assertThat(endState[1]).isEqualTo(CONVERSATION_SENDERS_UNSET);
-
- endState = mMessagesController.settingsToSaveOnClick(
- KEY_CONTACTS, true, PEOPLE_TYPE_NONE, CONVERSATION_SENDERS_NONE);
- assertThat(endState[0]).isEqualTo(PEOPLE_TYPE_CONTACTS);
- assertThat(endState[1]).isEqualTo(CONVERSATION_SENDERS_UNSET);
-
- // For priority conversations, we should set the conversations but not priority senders
- endState = mMessagesController.settingsToSaveOnClick(
- KEY_IMPORTANT, true, PEOPLE_TYPE_NONE, CONVERSATION_SENDERS_NONE);
- assertThat(endState[0]).isEqualTo(PEOPLE_TYPE_UNSET);
- assertThat(endState[1]).isEqualTo(CONVERSATION_SENDERS_IMPORTANT);
+ // Messages=ANY shows ANY checked, regardless of conversations value (all conversations are
+ // messages and will get through).
+ assertThat(getVisibleOptions(mMessagesPrefCategory)).containsExactly(
+ KEY_ANY, KEY_STARRED, KEY_CONTACTS, KEY_IMPORTANT_CONVERSATIONS, KEY_NONE);
+ assertThat(getCheckedOptions(mMessagesPrefCategory)).containsExactly(KEY_ANY);
}
@Test
- public void testSettingsToSaveOnClick_messagesUncheck() {
- int[] endState;
+ public void updateState_msgAnyConvImportant() {
+ ZenMode zenMode = newModeWithPolicy(p ->
+ p.allowMessages(PEOPLE_TYPE_ANYONE)
+ .allowConversations(CONVERSATION_SENDERS_IMPORTANT));
- // For KEY_NONE, "unchecking" still means "none".
- endState = mMessagesController.settingsToSaveOnClick(
- KEY_NONE, false, PEOPLE_TYPE_NONE, CONVERSATION_SENDERS_NONE);
- assertThat(endState[0]).isEqualTo(PEOPLE_TYPE_UNSET);
- assertThat(endState[1]).isEqualTo(CONVERSATION_SENDERS_UNSET);
+ mMessagesController.displayPreference(mPreferenceScreen);
+ mMessagesController.updateZenMode(mMessagesPrefCategory, zenMode);
- // For KEY_ANY unchecking resets the state to "none".
- endState = mMessagesController.settingsToSaveOnClick(
- KEY_ANY, false, PEOPLE_TYPE_ANYONE, CONVERSATION_SENDERS_ANYONE);
- assertThat(endState[0]).isEqualTo(PEOPLE_TYPE_NONE);
- assertThat(endState[1]).isEqualTo(CONVERSATION_SENDERS_NONE);
-
- // For [starred] contacts, we should unset the priority senders, but not the conversations
- endState = mMessagesController.settingsToSaveOnClick(
- KEY_STARRED, false, PEOPLE_TYPE_STARRED, CONVERSATION_SENDERS_IMPORTANT);
- assertThat(endState[0]).isEqualTo(PEOPLE_TYPE_NONE);
- assertThat(endState[1]).isEqualTo(CONVERSATION_SENDERS_UNSET);
-
- endState = mMessagesController.settingsToSaveOnClick(
- KEY_CONTACTS, false, PEOPLE_TYPE_CONTACTS, CONVERSATION_SENDERS_IMPORTANT);
- assertThat(endState[0]).isEqualTo(PEOPLE_TYPE_NONE);
- assertThat(endState[1]).isEqualTo(CONVERSATION_SENDERS_UNSET);
-
- // For priority conversations, we should set the conversations but not priority senders
- endState = mMessagesController.settingsToSaveOnClick(
- KEY_IMPORTANT, false, PEOPLE_TYPE_CONTACTS, CONVERSATION_SENDERS_IMPORTANT);
- assertThat(endState[0]).isEqualTo(PEOPLE_TYPE_UNSET);
- assertThat(endState[1]).isEqualTo(CONVERSATION_SENDERS_NONE);
+ // Messages=ANY shows ANY checked, regardless of conversations value (all conversations are
+ // messages and will get through).
+ assertThat(getVisibleOptions(mMessagesPrefCategory)).containsExactly(
+ KEY_ANY, KEY_STARRED, KEY_CONTACTS, KEY_IMPORTANT_CONVERSATIONS, KEY_NONE);
+ assertThat(getCheckedOptions(mMessagesPrefCategory)).containsExactly(KEY_ANY);
}
@Test
- public void testSettingsToSaveOnClick_callsCheck() {
- int[] endState;
+ public void updateState_msgAnyConvNone() {
+ ZenMode zenMode = newModeWithPolicy(p ->
+ p.allowMessages(PEOPLE_TYPE_ANYONE)
+ .allowConversations(CONVERSATION_SENDERS_NONE));
- // For calls: we should never set conversations, as this is unrelated to calls.
- // For KEY_NONE senders should be none.
- endState = mCallsController.settingsToSaveOnClick(
- KEY_NONE, true, PEOPLE_TYPE_CONTACTS, CONVERSATION_SENDERS_IMPORTANT);
- assertThat(endState[0]).isEqualTo(PEOPLE_TYPE_NONE);
- assertThat(endState[1]).isEqualTo(CONVERSATION_SENDERS_UNSET);
+ mMessagesController.displayPreference(mPreferenceScreen);
+ mMessagesController.updateZenMode(mMessagesPrefCategory, zenMode);
- // For KEY_ANY senders should be ANY.
- endState = mCallsController.settingsToSaveOnClick(
- KEY_ANY, true, PEOPLE_TYPE_CONTACTS, CONVERSATION_SENDERS_IMPORTANT);
- assertThat(endState[0]).isEqualTo(PEOPLE_TYPE_ANYONE);
- assertThat(endState[1]).isEqualTo(CONVERSATION_SENDERS_UNSET);
-
- // For [starred] contacts, we should set the priority senders accordingly
- endState = mCallsController.settingsToSaveOnClick(
- KEY_STARRED, true, PEOPLE_TYPE_CONTACTS, CONVERSATION_SENDERS_IMPORTANT);
- assertThat(endState[0]).isEqualTo(PEOPLE_TYPE_STARRED);
- assertThat(endState[1]).isEqualTo(CONVERSATION_SENDERS_UNSET);
-
- endState = mCallsController.settingsToSaveOnClick(
- KEY_CONTACTS, true, PEOPLE_TYPE_STARRED, CONVERSATION_SENDERS_IMPORTANT);
- assertThat(endState[0]).isEqualTo(PEOPLE_TYPE_CONTACTS);
- assertThat(endState[1]).isEqualTo(CONVERSATION_SENDERS_UNSET);
+ // Messages=ANY shows ANY checked, regardless of conversations value (all conversations are
+ // messages and will get through).
+ assertThat(getVisibleOptions(mMessagesPrefCategory)).containsExactly(
+ KEY_ANY, KEY_STARRED, KEY_CONTACTS, KEY_IMPORTANT_CONVERSATIONS, KEY_NONE);
+ assertThat(getCheckedOptions(mMessagesPrefCategory)).containsExactly(KEY_ANY);
}
@Test
- public void testSettingsToSaveOnClick_callsUncheck() {
- int[] endState;
+ public void updateState_msgContactsConvAny() {
+ ZenMode zenMode = newModeWithPolicy(p ->
+ p.allowMessages(PEOPLE_TYPE_CONTACTS)
+ .allowConversations(CONVERSATION_SENDERS_ANYONE));
- // A calls setup should never set conversations settings.
- // For KEY_NONE, "unchecking" still means "none".
- endState = mCallsController.settingsToSaveOnClick(
- KEY_NONE, false, PEOPLE_TYPE_NONE, CONVERSATION_SENDERS_NONE);
- assertThat(endState[0]).isEqualTo(STATE_UNSET);
- assertThat(endState[1]).isEqualTo(CONVERSATION_SENDERS_UNSET);
+ mMessagesController.displayPreference(mPreferenceScreen);
+ mMessagesController.updateZenMode(mMessagesPrefCategory, zenMode);
- // For KEY_ANY unchecking resets the state to "none".
- endState = mCallsController.settingsToSaveOnClick(
- KEY_ANY, false, PEOPLE_TYPE_ANYONE, CONVERSATION_SENDERS_ANYONE);
- assertThat(endState[0]).isEqualTo(PEOPLE_TYPE_NONE);
- assertThat(endState[1]).isEqualTo(CONVERSATION_SENDERS_UNSET);
-
- // For [starred] contacts, we should unset the priority senders, but not the conversations
- endState = mCallsController.settingsToSaveOnClick(
- KEY_STARRED, false, PEOPLE_TYPE_STARRED, CONVERSATION_SENDERS_IMPORTANT);
- assertThat(endState[0]).isEqualTo(PEOPLE_TYPE_NONE);
- assertThat(endState[1]).isEqualTo(CONVERSATION_SENDERS_UNSET);
-
- endState = mCallsController.settingsToSaveOnClick(
- KEY_CONTACTS, false, PEOPLE_TYPE_CONTACTS, CONVERSATION_SENDERS_IMPORTANT);
- assertThat(endState[0]).isEqualTo(PEOPLE_TYPE_NONE);
- assertThat(endState[1]).isEqualTo(CONVERSATION_SENDERS_UNSET);
+ // Shows a checked option for conversations=ANY which is normally unavailable.
+ assertThat(getVisibleOptions(mMessagesPrefCategory)).containsExactly(KEY_ANY,
+ KEY_STARRED, KEY_CONTACTS, KEY_ANY_CONVERSATIONS, KEY_IMPORTANT_CONVERSATIONS,
+ KEY_NONE);
+ assertThat(getCheckedOptions(mMessagesPrefCategory)).containsExactly(KEY_CONTACTS,
+ KEY_ANY_CONVERSATIONS);
}
@Test
- public void testSettingsToSave_messages_noChange() {
- int[] savedSettings;
+ public void updateState_msgContactsConvImportant() {
+ ZenMode zenMode = newModeWithPolicy(p ->
+ p.allowMessages(PEOPLE_TYPE_CONTACTS)
+ .allowConversations(CONVERSATION_SENDERS_IMPORTANT));
- savedSettings = mMessagesController.settingsToSaveOnClick(
- KEY_NONE, true, PEOPLE_TYPE_NONE, CONVERSATION_SENDERS_NONE);
- assertThat(savedSettings[0]).isEqualTo(STATE_UNSET);
- assertThat(savedSettings[1]).isEqualTo(STATE_UNSET);
+ mMessagesController.displayPreference(mPreferenceScreen);
+ mMessagesController.updateZenMode(mMessagesPrefCategory, zenMode);
- savedSettings = mMessagesController.settingsToSaveOnClick(
- KEY_ANY, true, PEOPLE_TYPE_ANYONE, CONVERSATION_SENDERS_ANYONE);
- assertThat(savedSettings[0]).isEqualTo(STATE_UNSET);
- assertThat(savedSettings[1]).isEqualTo(STATE_UNSET);
-
- savedSettings = mMessagesController.settingsToSaveOnClick(
- KEY_STARRED, true, PEOPLE_TYPE_STARRED, CONVERSATION_SENDERS_ANYONE);
- assertThat(savedSettings[0]).isEqualTo(STATE_UNSET);
-
- savedSettings = mMessagesController.settingsToSaveOnClick(
- KEY_CONTACTS, true, PEOPLE_TYPE_CONTACTS, CONVERSATION_SENDERS_ANYONE);
- assertThat(savedSettings[0]).isEqualTo(STATE_UNSET);
-
- savedSettings = mMessagesController.settingsToSaveOnClick(
- KEY_IMPORTANT, true, PEOPLE_TYPE_CONTACTS, CONVERSATION_SENDERS_IMPORTANT);
- assertThat(savedSettings[1]).isEqualTo(STATE_UNSET);
+ // Contacts and important conversations.
+ assertThat(getVisibleOptions(mMessagesPrefCategory)).containsExactly(
+ KEY_ANY, KEY_STARRED, KEY_CONTACTS, KEY_IMPORTANT_CONVERSATIONS, KEY_NONE);
+ assertThat(getCheckedOptions(mMessagesPrefCategory)).containsExactly(KEY_CONTACTS,
+ KEY_IMPORTANT_CONVERSATIONS);
}
@Test
- public void testSettingsToSave_calls_noChange() {
- int[] savedSettings;
+ public void updateState_msgContactsConvNone() {
+ ZenMode zenMode = newModeWithPolicy(p ->
+ p.allowMessages(PEOPLE_TYPE_CONTACTS)
+ .allowConversations(CONVERSATION_SENDERS_NONE));
- savedSettings = mMessagesController.settingsToSaveOnClick(
- KEY_NONE, true, PEOPLE_TYPE_NONE, CONVERSATION_SENDERS_NONE);
- assertThat(savedSettings[0]).isEqualTo(STATE_UNSET);
- assertThat(savedSettings[1]).isEqualTo(STATE_UNSET);
+ mMessagesController.displayPreference(mPreferenceScreen);
+ mMessagesController.updateZenMode(mMessagesPrefCategory, zenMode);
- savedSettings = mMessagesController.settingsToSaveOnClick(
- KEY_ANY, true, PEOPLE_TYPE_ANYONE, CONVERSATION_SENDERS_ANYONE);
- assertThat(savedSettings[0]).isEqualTo(STATE_UNSET);
- assertThat(savedSettings[1]).isEqualTo(STATE_UNSET);
+ // Just contacts (will include conversations with those contacts but not explicitly chosen).
+ assertThat(getVisibleOptions(mMessagesPrefCategory)).containsExactly(
+ KEY_ANY, KEY_STARRED, KEY_CONTACTS, KEY_IMPORTANT_CONVERSATIONS, KEY_NONE);
+ assertThat(getCheckedOptions(mMessagesPrefCategory)).containsExactly(KEY_CONTACTS);
+ }
- savedSettings = mMessagesController.settingsToSaveOnClick(
- KEY_STARRED, true, PEOPLE_TYPE_STARRED, CONVERSATION_SENDERS_ANYONE);
- assertThat(savedSettings[0]).isEqualTo(STATE_UNSET);
+ @Test
+ public void updateState_msgStarredConvAny() {
+ ZenMode zenMode = newModeWithPolicy(p ->
+ p.allowMessages(PEOPLE_TYPE_STARRED)
+ .allowConversations(CONVERSATION_SENDERS_ANYONE));
- savedSettings = mMessagesController.settingsToSaveOnClick(
- KEY_CONTACTS, true, PEOPLE_TYPE_CONTACTS, CONVERSATION_SENDERS_ANYONE);
- assertThat(savedSettings[0]).isEqualTo(STATE_UNSET);
+ mMessagesController.displayPreference(mPreferenceScreen);
+ mMessagesController.updateZenMode(mMessagesPrefCategory, zenMode);
+
+ // Shows a checked option for conversations=ANY which is normally unavailable.
+ assertThat(getVisibleOptions(mMessagesPrefCategory)).containsExactly(KEY_ANY,
+ KEY_STARRED, KEY_CONTACTS, KEY_ANY_CONVERSATIONS, KEY_IMPORTANT_CONVERSATIONS,
+ KEY_NONE);
+ assertThat(getCheckedOptions(mMessagesPrefCategory)).containsExactly(KEY_STARRED,
+ KEY_ANY_CONVERSATIONS);
+ }
+
+ @Test
+ public void updateState_msgStarredConvImportant() {
+ ZenMode zenMode = newModeWithPolicy(p ->
+ p.allowMessages(PEOPLE_TYPE_STARRED)
+ .allowConversations(CONVERSATION_SENDERS_IMPORTANT));
+
+ mMessagesController.displayPreference(mPreferenceScreen);
+ mMessagesController.updateZenMode(mMessagesPrefCategory, zenMode);
+
+ // Starred contacts and important conversations.
+ assertThat(getVisibleOptions(mMessagesPrefCategory)).containsExactly(
+ KEY_ANY, KEY_STARRED, KEY_CONTACTS, KEY_IMPORTANT_CONVERSATIONS, KEY_NONE);
+ assertThat(getCheckedOptions(mMessagesPrefCategory)).containsExactly(KEY_STARRED,
+ KEY_IMPORTANT_CONVERSATIONS);
+ }
+
+ @Test
+ public void updateState_msgStarredConvNone() {
+ ZenMode zenMode = newModeWithPolicy(p ->
+ p.allowMessages(PEOPLE_TYPE_STARRED)
+ .allowConversations(CONVERSATION_SENDERS_NONE));
+
+ mMessagesController.displayPreference(mPreferenceScreen);
+ mMessagesController.updateZenMode(mMessagesPrefCategory, zenMode);
+
+ // Just starred contacts (will include conversations with those contacts but not
+ // explicitly chosen).
+ assertThat(getVisibleOptions(mMessagesPrefCategory)).containsExactly(
+ KEY_ANY, KEY_STARRED, KEY_CONTACTS, KEY_IMPORTANT_CONVERSATIONS, KEY_NONE);
+ assertThat(getCheckedOptions(mMessagesPrefCategory)).containsExactly(KEY_STARRED);
+ }
+
+ @Test
+ public void updateState_msgNoneConvAny() {
+ ZenMode zenMode = newModeWithPolicy(p ->
+ p.allowMessages(PEOPLE_TYPE_NONE)
+ .allowConversations(CONVERSATION_SENDERS_ANYONE));
+
+ mMessagesController.displayPreference(mPreferenceScreen);
+ mMessagesController.updateZenMode(mMessagesPrefCategory, zenMode);
+
+ // Shows a checked option for conversations=ANY which is normally unavailable.
+ // Only option checked (messages=NONE is reserved for none at all).
+ assertThat(getVisibleOptions(mMessagesPrefCategory)).containsExactly(KEY_ANY,
+ KEY_STARRED, KEY_CONTACTS, KEY_ANY_CONVERSATIONS, KEY_IMPORTANT_CONVERSATIONS,
+ KEY_NONE);
+ assertThat(getCheckedOptions(mMessagesPrefCategory)).containsExactly(
+ KEY_ANY_CONVERSATIONS);
+ }
+
+ @Test
+ public void updateState_msgNoneConvImportant() {
+ ZenMode zenMode = newModeWithPolicy(p ->
+ p.allowMessages(PEOPLE_TYPE_NONE)
+ .allowConversations(CONVERSATION_SENDERS_IMPORTANT));
+
+ mMessagesController.displayPreference(mPreferenceScreen);
+ mMessagesController.updateZenMode(mMessagesPrefCategory, zenMode);
+
+ // Only important conversations (messages=NONE is reserved for none at all).
+ assertThat(getVisibleOptions(mMessagesPrefCategory)).containsExactly(
+ KEY_ANY, KEY_STARRED, KEY_CONTACTS, KEY_IMPORTANT_CONVERSATIONS, KEY_NONE);
+ assertThat(getCheckedOptions(mMessagesPrefCategory)).containsExactly(
+ KEY_IMPORTANT_CONVERSATIONS);
+ }
+
+ @Test
+ public void updateState_msgNoneConvNone() {
+ ZenMode zenMode = newModeWithPolicy(p ->
+ p.allowMessages(PEOPLE_TYPE_NONE)
+ .allowConversations(CONVERSATION_SENDERS_NONE));
+
+ mMessagesController.displayPreference(mPreferenceScreen);
+ mMessagesController.updateZenMode(mMessagesPrefCategory, zenMode);
+
+ // Just starred contacts (will include conversations with those contacts but not
+ // explicitly chosen).
+ assertThat(getVisibleOptions(mMessagesPrefCategory)).containsExactly(
+ KEY_ANY, KEY_STARRED, KEY_CONTACTS, KEY_IMPORTANT_CONVERSATIONS, KEY_NONE);
+ assertThat(getCheckedOptions(mMessagesPrefCategory)).containsExactly(KEY_NONE);
+ }
+
+ // --------------------------------------------------------------------------
+ // Message checkbox tests, starting with Msg=Any, Conv=Any
+
+ @Test
+ public void checkContacts_fromMsgAnyConvAny_toMsgContactsConvNone() {
+ checkSomeContacts_fromMsgAnyConvAny_toMsgSomeContactsConvNone(KEY_CONTACTS,
+ PEOPLE_TYPE_CONTACTS);
+ }
+
+ @Test
+ public void checkStarred_fromMsgAnyConvAny_toMsgStarredConvNone() {
+ checkSomeContacts_fromMsgAnyConvAny_toMsgSomeContactsConvNone(KEY_STARRED,
+ PEOPLE_TYPE_STARRED);
+ }
+
+ private void checkSomeContacts_fromMsgAnyConvAny_toMsgSomeContactsConvNone(
+ String contactsOptionKey, @PeopleType int toMessageSenders) {
+ setUpMessagesController(p ->
+ p.allowMessages(PEOPLE_TYPE_ANYONE)
+ .allowConversations(CONVERSATION_SENDERS_ANYONE));
+
+ // Choosing CONTACTS/STARRED will also internally switch conversations to NONE (which is
+ // fine because the user didn't see the old conv=Any, just messages=Anyone).
+ setMessagesOptionChecked(contactsOptionKey, true);
+ ZenPolicy savedPolicy = getSavedPolicy();
+
+ assertThat(savedPolicy.getPriorityMessageSenders()).isEqualTo(toMessageSenders);
+ assertThat(savedPolicy.getPriorityConversationSenders()).isEqualTo(
+ CONVERSATION_SENDERS_NONE);
+ }
+
+ @Test
+ public void checkImportantConv_fromMsgAnyConvAny_toMsgNoneConvImportant() {
+ setUpMessagesController(p ->
+ p.allowMessages(PEOPLE_TYPE_ANYONE)
+ .allowConversations(CONVERSATION_SENDERS_ANYONE));
+
+ setMessagesOptionChecked(KEY_IMPORTANT_CONVERSATIONS, true);
+ ZenPolicy savedPolicy = getSavedPolicy();
+
+ assertThat(savedPolicy.getPriorityMessageSenders()).isEqualTo(PEOPLE_TYPE_NONE);
+ assertThat(savedPolicy.getPriorityConversationSenders()).isEqualTo(
+ CONVERSATION_SENDERS_IMPORTANT);
+ }
+
+ @Test
+ public void checkAnyConv_fromMsgAnyConvAny_toMsgNoneConvAny() {
+ setUpMessagesController(p ->
+ p.allowMessages(PEOPLE_TYPE_ANYONE)
+ .allowConversations(CONVERSATION_SENDERS_ANYONE));
+
+ // Normally this option won't be visible, but it could be if the page was launched with
+ // conv=Any previously.
+ setMessagesOptionChecked(KEY_ANY_CONVERSATIONS, true);
+ ZenPolicy savedPolicy = getSavedPolicy();
+
+ assertThat(savedPolicy.getPriorityMessageSenders()).isEqualTo(PEOPLE_TYPE_NONE);
+ assertThat(savedPolicy.getPriorityConversationSenders()).isEqualTo(
+ CONVERSATION_SENDERS_ANYONE);
+ }
+
+ @Test
+ public void uncheckAnyone_fromMsgAnyConvAny_toMsgNoneConvNone() {
+ uncheckAnyone_fromState_toMsgNoneConvNone(PEOPLE_TYPE_ANYONE,
+ CONVERSATION_SENDERS_ANYONE);
+ }
+
+ @Test
+ public void checkNone_fromMsgAnyConvAny_toMsgNoneConvNone() {
+ checkNone_fromState_toMsgNoneConvNone(PEOPLE_TYPE_ANYONE, CONVERSATION_SENDERS_ANYONE);
+ }
+
+ // --------------------------------------------------------------------------
+ // Message checkbox tests, starting with Msg=Any, Conv=Important
+
+ @Test
+ public void checkContacts_fromMsgAnyConvImportant_toMsgContactsConvNone() {
+ checkSomeContacts_fromMsgAnyConvImportant_toMsgSomeContactsConvNone(KEY_CONTACTS,
+ PEOPLE_TYPE_CONTACTS);
+ }
+
+ @Test
+ public void checkStarred_fromMsgAnyConvImportant_toMsgStarredConvNone() {
+ checkSomeContacts_fromMsgAnyConvImportant_toMsgSomeContactsConvNone(KEY_STARRED,
+ PEOPLE_TYPE_STARRED);
+ }
+
+ private void checkSomeContacts_fromMsgAnyConvImportant_toMsgSomeContactsConvNone(
+ String contactsOptionKey, @PeopleType int toMessageSenders) {
+ setUpMessagesController(p ->
+ p.allowMessages(PEOPLE_TYPE_ANYONE)
+ .allowConversations(CONVERSATION_SENDERS_IMPORTANT));
+
+ // Choosing CONTACTS/STARRED will also internally switch conversations to NONE (which is
+ // fine because the user didn't see the old setting, just messages=Anyone).
+ setMessagesOptionChecked(contactsOptionKey, true);
+ ZenPolicy savedPolicy = getSavedPolicy();
+
+ assertThat(savedPolicy.getPriorityMessageSenders()).isEqualTo(toMessageSenders);
+ assertThat(savedPolicy.getPriorityConversationSenders()).isEqualTo(
+ CONVERSATION_SENDERS_NONE);
+ }
+
+ @Test
+ public void checkImportantConv_fromMsgAnyConvImportant_toMsgNoneConvImportant() {
+ setUpMessagesController(p ->
+ p.allowMessages(PEOPLE_TYPE_ANYONE)
+ .allowConversations(CONVERSATION_SENDERS_IMPORTANT));
+
+ // Although conv=IMPORTANT previously, we show it as Anyone, so selecting important
+ // conversations should switch to important conversations only.
+ setMessagesOptionChecked(KEY_IMPORTANT_CONVERSATIONS, true);
+ ZenPolicy savedPolicy = getSavedPolicy();
+
+ assertThat(savedPolicy.getPriorityMessageSenders()).isEqualTo(PEOPLE_TYPE_NONE);
+ assertThat(savedPolicy.getPriorityConversationSenders()).isEqualTo(
+ CONVERSATION_SENDERS_IMPORTANT);
+ }
+
+ @Test
+ public void checkAnyConv_fromMsgAnyConvImportant_toMsgNoneConvAny() {
+ setUpMessagesController(p ->
+ p.allowMessages(PEOPLE_TYPE_ANYONE)
+ .allowConversations(CONVERSATION_SENDERS_ANYONE));
+
+ // Normally this option won't be visible, but it could be if the page was launched with
+ // conv=Any previously.
+ setMessagesOptionChecked(KEY_ANY_CONVERSATIONS, true);
+ ZenPolicy savedPolicy = getSavedPolicy();
+
+ assertThat(savedPolicy.getPriorityMessageSenders()).isEqualTo(PEOPLE_TYPE_NONE);
+ assertThat(savedPolicy.getPriorityConversationSenders()).isEqualTo(
+ CONVERSATION_SENDERS_ANYONE);
+ }
+
+ @Test
+ public void uncheckAnyone_fromMsgAnyConvImportant_toMsgNoneConvNone() {
+ uncheckAnyone_fromState_toMsgNoneConvNone(PEOPLE_TYPE_ANYONE,
+ CONVERSATION_SENDERS_IMPORTANT);
+ }
+
+ @Test
+ public void checkNone_fromMsgAnyConvImportant_toMsgNoneConvNone() {
+ checkNone_fromState_toMsgNoneConvNone(PEOPLE_TYPE_ANYONE,
+ CONVERSATION_SENDERS_IMPORTANT);
+ }
+
+ // --------------------------------------------------------------------------
+ // Message checkbox tests, starting with Msg=Any, Conv=None
+
+ @Test
+ public void checkContacts_fromMsgAnyConvNone_toMsgContactsConvNone() {
+ checkSomeContacts_fromMsgAnyConvNone_toMsgSomeContactsConvNone(KEY_CONTACTS,
+ PEOPLE_TYPE_CONTACTS);
+ }
+
+ @Test
+ public void checkStarred_fromMsgAnyConvNone_toMsgStarredConvNone() {
+ checkSomeContacts_fromMsgAnyConvNone_toMsgSomeContactsConvNone(KEY_STARRED,
+ PEOPLE_TYPE_STARRED);
+ }
+
+ private void checkSomeContacts_fromMsgAnyConvNone_toMsgSomeContactsConvNone(
+ String contactsOptionKey, @PeopleType int toMessageSenders) {
+ setUpMessagesController(p ->
+ p.allowMessages(PEOPLE_TYPE_ANYONE)
+ .allowConversations(CONVERSATION_SENDERS_NONE));
+
+ // Choosing CONTACTS/STARRED will also internally switch conversations to NONE (which is
+ // fine because the user didn't see the old setting, just messages=Anyone).
+ setMessagesOptionChecked(contactsOptionKey, true);
+ ZenPolicy savedPolicy = getSavedPolicy();
+
+ assertThat(savedPolicy.getPriorityMessageSenders()).isEqualTo(toMessageSenders);
+ assertThat(savedPolicy.getPriorityConversationSenders()).isEqualTo(
+ CONVERSATION_SENDERS_NONE);
+ }
+
+ @Test
+ public void checkImportantConv_fromMsgAnyConvNone_toMsgNoneConvImportant() {
+ setUpMessagesController(p ->
+ p.allowMessages(PEOPLE_TYPE_ANYONE)
+ .allowConversations(CONVERSATION_SENDERS_NONE));
+
+ setMessagesOptionChecked(KEY_IMPORTANT_CONVERSATIONS, true);
+ ZenPolicy savedPolicy = getSavedPolicy();
+
+ assertThat(savedPolicy.getPriorityMessageSenders()).isEqualTo(PEOPLE_TYPE_NONE);
+ assertThat(savedPolicy.getPriorityConversationSenders()).isEqualTo(
+ CONVERSATION_SENDERS_IMPORTANT);
+ }
+
+ @Test
+ public void checkAnyConv_fromMsgAnyConvNone_toMsgNoneConvAny() {
+ setUpMessagesController(p ->
+ p.allowMessages(PEOPLE_TYPE_ANYONE)
+ .allowConversations(CONVERSATION_SENDERS_NONE));
+
+ // Normally this option won't be visible, but it could be if the page was launched with
+ // conv=Any previously.
+ setMessagesOptionChecked(KEY_ANY_CONVERSATIONS, true);
+ ZenPolicy savedPolicy = getSavedPolicy();
+
+ assertThat(savedPolicy.getPriorityMessageSenders()).isEqualTo(PEOPLE_TYPE_NONE);
+ assertThat(savedPolicy.getPriorityConversationSenders()).isEqualTo(
+ CONVERSATION_SENDERS_ANYONE);
+ }
+
+ @Test
+ public void uncheckAnyone_fromMsgAnyConvNone_toMsgNoneConvNone() {
+ uncheckAnyone_fromState_toMsgNoneConvNone(PEOPLE_TYPE_ANYONE,
+ CONVERSATION_SENDERS_NONE);
+ }
+
+ @Test
+ public void checkNone_fromMsgAnyConvNone_toMsgNoneConvNone() {
+ checkNone_fromState_toMsgNoneConvNone(PEOPLE_TYPE_ANYONE,
+ CONVERSATION_SENDERS_NONE);
+ }
+
+ // --------------------------------------------------------------------------
+ // Message checkbox tests, starting with Msg=Contacts OR Starred, Conv=Any
+
+ @Test
+ public void switchContacts_fromMsgStarredConvAny_toMsgContactsConvAny() {
+ switchContacts_fromMsgSomeContactsConvAny_toMsgOtherContactsConvAny(PEOPLE_TYPE_STARRED,
+ KEY_CONTACTS, PEOPLE_TYPE_CONTACTS);
+ }
+
+ @Test
+ public void switchContacts_fromMsgContactsConvAny_toMsgStarredConvAny() {
+ switchContacts_fromMsgSomeContactsConvAny_toMsgOtherContactsConvAny(PEOPLE_TYPE_CONTACTS,
+ KEY_STARRED, PEOPLE_TYPE_STARRED);
+ }
+
+ private void switchContacts_fromMsgSomeContactsConvAny_toMsgOtherContactsConvAny(
+ @PeopleType int fromMessageSenders, String checkingContactsOptionKey,
+ @PeopleType int toMessageSenders) {
+ setUpMessagesController(p ->
+ p.allowMessages(fromMessageSenders)
+ .allowConversations(CONVERSATION_SENDERS_ANYONE));
+
+ // Switching CONTACTS/STARRED or vice-versa will leave conversations untouched.
+ setMessagesOptionChecked(checkingContactsOptionKey, true);
+ ZenPolicy savedPolicy = getSavedPolicy();
+
+ assertThat(savedPolicy.getPriorityMessageSenders()).isEqualTo(toMessageSenders);
+ assertThat(savedPolicy.getPriorityConversationSenders()).isEqualTo(
+ CONVERSATION_SENDERS_ANYONE);
+ }
+
+ @Test
+ public void uncheckStarred_fromMsgStarredConvAny_toMsgNoneConvAny() {
+ uncheckSomeContacts_fromMsgSomeContactsConvAny_toMsgNoneConvAny(PEOPLE_TYPE_STARRED,
+ KEY_STARRED);
+ }
+
+ @Test
+ public void uncheckContacts_fromMsgContactsConvAny_toMsgNoneConvAny() {
+ uncheckSomeContacts_fromMsgSomeContactsConvAny_toMsgNoneConvAny(
+ PEOPLE_TYPE_CONTACTS, KEY_CONTACTS);
+ }
+
+ private void uncheckSomeContacts_fromMsgSomeContactsConvAny_toMsgNoneConvAny(
+ @PeopleType int fromMessageSenders, String checkingContactsOptionKey) {
+ setUpMessagesController(p ->
+ p.allowMessages(fromMessageSenders)
+ .allowConversations(CONVERSATION_SENDERS_ANYONE));
+
+ // Unchecking CONTACTS or STARRED will leave conversations untouched.
+ setMessagesOptionChecked(checkingContactsOptionKey, false);
+ ZenPolicy savedPolicy = getSavedPolicy();
+
+ assertThat(savedPolicy.getPriorityMessageSenders()).isEqualTo(PEOPLE_TYPE_NONE);
+ assertThat(savedPolicy.getPriorityConversationSenders()).isEqualTo(
+ CONVERSATION_SENDERS_ANYONE);
+ }
+
+ @Test
+ public void checkImportantConv_fromMsgStarredConvAny_toMsgStarredConvImportant() {
+ checkImportantConv_fromMsgSomeContactsConvAny_toMsgSomeContactsConvImportant(
+ PEOPLE_TYPE_STARRED);
+ }
+
+ @Test
+ public void checkImportantConv_fromMsgContactsConvAny_toMsgContactsConvImportant() {
+ checkImportantConv_fromMsgSomeContactsConvAny_toMsgSomeContactsConvImportant(
+ PEOPLE_TYPE_CONTACTS);
+ }
+
+ private void checkImportantConv_fromMsgSomeContactsConvAny_toMsgSomeContactsConvImportant(
+ @PeopleType int fromMessageSenders) {
+ setUpMessagesController(p ->
+ p.allowMessages(fromMessageSenders)
+ .allowConversations(CONVERSATION_SENDERS_ANYONE));
+
+ // Choosing important conversations leaves contacts untouched.
+ setMessagesOptionChecked(KEY_IMPORTANT_CONVERSATIONS, true);
+ ZenPolicy savedPolicy = getSavedPolicy();
+
+ assertThat(savedPolicy.getPriorityMessageSenders()).isEqualTo(fromMessageSenders);
+ assertThat(savedPolicy.getPriorityConversationSenders()).isEqualTo(
+ CONVERSATION_SENDERS_IMPORTANT);
+ }
+
+ @Test
+ public void uncheckAnyConv_fromMsgStarredConvAny_toMsgStarredConvNone() {
+ uncheckAnyConv_fromMsgSomeContactsConvAny_toMsgSomeContactsConvNone(
+ PEOPLE_TYPE_STARRED);
+ }
+
+ @Test
+ public void uncheckAnyConv_fromMsgContactsConvAny_toMsgContactsConvNone() {
+ uncheckAnyConv_fromMsgSomeContactsConvAny_toMsgSomeContactsConvNone(
+ PEOPLE_TYPE_CONTACTS);
+ }
+
+ private void uncheckAnyConv_fromMsgSomeContactsConvAny_toMsgSomeContactsConvNone(
+ @PeopleType int fromMessageSenders) {
+ setUpMessagesController(p ->
+ p.allowMessages(fromMessageSenders)
+ .allowConversations(CONVERSATION_SENDERS_ANYONE));
+
+ // Unmarking any conversation leaves contacts untouched.
+ setMessagesOptionChecked(KEY_ANY_CONVERSATIONS, false);
+ ZenPolicy savedPolicy = getSavedPolicy();
+
+ assertThat(savedPolicy.getPriorityMessageSenders()).isEqualTo(fromMessageSenders);
+ assertThat(savedPolicy.getPriorityConversationSenders()).isEqualTo(
+ CONVERSATION_SENDERS_NONE);
+ }
+
+ @Test
+ public void checkAnyone_fromMsgStarredConvAny_toMsgAnyConvNone() {
+ checkAnyone_fromState_toMsgAnyConvAny(PEOPLE_TYPE_STARRED,
+ CONVERSATION_SENDERS_ANYONE);
+ }
+
+ @Test
+ public void checkAnyone_fromMsgContactsConvAny_toMsgAnyConvNone() {
+ checkAnyone_fromState_toMsgAnyConvAny(PEOPLE_TYPE_CONTACTS,
+ CONVERSATION_SENDERS_ANYONE);
+ }
+
+ @Test
+ public void checkNone_fromMsgStarredConvAny_toMsgNoneConvNone() {
+ checkNone_fromState_toMsgNoneConvNone(PEOPLE_TYPE_STARRED, CONVERSATION_SENDERS_ANYONE);
+ }
+
+ @Test
+ public void checkNone_fromMsgContactsConvAny_toMsgNoneConvNone() {
+ checkNone_fromState_toMsgNoneConvNone(PEOPLE_TYPE_CONTACTS, CONVERSATION_SENDERS_ANYONE);
+ }
+
+ // --------------------------------------------------------------------------
+ // Message checkbox tests, starting with Msg=Contacts OR Starred, Conv=Important
+
+ @Test
+ public void switchContacts_fromMsgStarredConvImportant_toMsgContactsConvImportant() {
+ switchContacts_fromMsgSomeContactsConvImportant_toMsgOtherContactsConvImportant(
+ PEOPLE_TYPE_CONTACTS, KEY_STARRED, PEOPLE_TYPE_STARRED);
+ }
+
+ @Test
+ public void switchContacts_fromMsgContactsConvImportant_toMsgStarredConvImportant() {
+ switchContacts_fromMsgSomeContactsConvImportant_toMsgOtherContactsConvImportant(
+ PEOPLE_TYPE_STARRED, KEY_CONTACTS, PEOPLE_TYPE_CONTACTS);
+ }
+
+ private void switchContacts_fromMsgSomeContactsConvImportant_toMsgOtherContactsConvImportant(
+ @PeopleType int fromMessageSenders, String checkingContactsOptionKey,
+ @PeopleType int toMessageSenders) {
+ setUpMessagesController(p ->
+ p.allowMessages(fromMessageSenders)
+ .allowConversations(CONVERSATION_SENDERS_IMPORTANT));
+
+ // Switching CONTACTS/STARRED or vice-versa will leave conversations untouched.
+ setMessagesOptionChecked(checkingContactsOptionKey, true);
+ ZenPolicy savedPolicy = getSavedPolicy();
+
+ assertThat(savedPolicy.getPriorityMessageSenders()).isEqualTo(toMessageSenders);
+ assertThat(savedPolicy.getPriorityConversationSenders()).isEqualTo(
+ CONVERSATION_SENDERS_IMPORTANT);
+ }
+
+ @Test
+ public void uncheckStarred_fromMsgStarredConvImportant_toMsgNoneConvImportant() {
+ uncheckSomeContacts_fromMsgSomeContactsConvImportant_toMsgNoneConvImportant(
+ PEOPLE_TYPE_STARRED, KEY_STARRED);
+ }
+
+ @Test
+ public void uncheckContacts_fromMsgContactsConvImportant_toMsgNoneConvImportant() {
+ uncheckSomeContacts_fromMsgSomeContactsConvImportant_toMsgNoneConvImportant(
+ PEOPLE_TYPE_CONTACTS, KEY_CONTACTS);
+ }
+
+ private void uncheckSomeContacts_fromMsgSomeContactsConvImportant_toMsgNoneConvImportant(
+ @PeopleType int fromMessageSenders, String checkingContactsOptionKey) {
+ setUpMessagesController(p ->
+ p.allowMessages(fromMessageSenders)
+ .allowConversations(CONVERSATION_SENDERS_IMPORTANT));
+
+ // Unchecking CONTACTS or STARRED will leave conversations untouched.
+ setMessagesOptionChecked(checkingContactsOptionKey, false);
+ ZenPolicy savedPolicy = getSavedPolicy();
+
+ assertThat(savedPolicy.getPriorityMessageSenders()).isEqualTo(PEOPLE_TYPE_NONE);
+ assertThat(savedPolicy.getPriorityConversationSenders()).isEqualTo(
+ CONVERSATION_SENDERS_IMPORTANT);
+ }
+
+ @Test
+ public void uncheckImportantConv_fromMsgStarredConvImportant_toMsgStarredConvNone() {
+ uncheckImportantConv_fromMsgSomeContactsConvImportant_toMsgSomeContactsConvNone(
+ PEOPLE_TYPE_STARRED);
+ }
+
+ @Test
+ public void uncheckImportantConv_fromMsgContactsConvImportant_toMsgContactsConvNone() {
+ uncheckImportantConv_fromMsgSomeContactsConvImportant_toMsgSomeContactsConvNone(
+ PEOPLE_TYPE_CONTACTS);
+ }
+
+ private void uncheckImportantConv_fromMsgSomeContactsConvImportant_toMsgSomeContactsConvNone(
+ @PeopleType int fromMessageSenders) {
+ setUpMessagesController(p ->
+ p.allowMessages(fromMessageSenders)
+ .allowConversations(CONVERSATION_SENDERS_IMPORTANT));
+
+ // Deselecting important conversations leaves contacts untouched.
+ setMessagesOptionChecked(KEY_IMPORTANT_CONVERSATIONS, false);
+ ZenPolicy savedPolicy = getSavedPolicy();
+
+ assertThat(savedPolicy.getPriorityMessageSenders()).isEqualTo(fromMessageSenders);
+ assertThat(savedPolicy.getPriorityConversationSenders()).isEqualTo(
+ CONVERSATION_SENDERS_NONE);
+ }
+
+ @Test
+ public void checkAnyConv_fromMsgStarredConvImportant_toMsgStarredConvAny() {
+ checkAnyConv_fromMsgSomeContactsConvImportant_toMsgSomeContactsConvAny(
+ PEOPLE_TYPE_STARRED);
+ }
+
+ @Test
+ public void checkAnyConv_fromMsgContactsConvImportant_toMsgContactsConvAny() {
+ checkAnyConv_fromMsgSomeContactsConvImportant_toMsgSomeContactsConvAny(
+ PEOPLE_TYPE_CONTACTS);
+ }
+
+ private void checkAnyConv_fromMsgSomeContactsConvImportant_toMsgSomeContactsConvAny(
+ @PeopleType int fromMessageSenders) {
+ setUpMessagesController(p ->
+ p.allowMessages(fromMessageSenders)
+ .allowConversations(CONVERSATION_SENDERS_IMPORTANT));
+
+ // Selecting any conversations leaves contacts untouched.
+ setMessagesOptionChecked(KEY_ANY_CONVERSATIONS, true);
+ ZenPolicy savedPolicy = getSavedPolicy();
+
+ assertThat(savedPolicy.getPriorityMessageSenders()).isEqualTo(fromMessageSenders);
+ assertThat(savedPolicy.getPriorityConversationSenders()).isEqualTo(
+ CONVERSATION_SENDERS_ANYONE);
+ }
+
+ @Test
+ public void checkAnyone_fromMsgStarredConvImportant_toMsgAnyConvNone() {
+ checkAnyone_fromState_toMsgAnyConvAny(PEOPLE_TYPE_STARRED,
+ CONVERSATION_SENDERS_IMPORTANT);
+ }
+
+ @Test
+ public void checkAnyone_fromMsgContactsConvImportant_toMsgAnyConvNone() {
+ checkAnyone_fromState_toMsgAnyConvAny(PEOPLE_TYPE_CONTACTS,
+ CONVERSATION_SENDERS_IMPORTANT);
+ }
+
+ @Test
+ public void checkNone_fromMsgStarredConvImportant_toMsgNoneConvNone() {
+ checkNone_fromState_toMsgNoneConvNone(PEOPLE_TYPE_STARRED,
+ CONVERSATION_SENDERS_IMPORTANT);
+ }
+
+ @Test
+ public void checkNone_fromMsgContactsConvImportant_toMsgNoneConvNone() {
+ checkNone_fromState_toMsgNoneConvNone(PEOPLE_TYPE_CONTACTS,
+ CONVERSATION_SENDERS_IMPORTANT);
+ }
+
+ // --------------------------------------------------------------------------
+ // Message checkbox tests, starting with Msg=Contacts OR Starred, Conv=None
+
+ @Test
+ public void switchContacts_fromMsgStarredConvNone_toMsgContactsConvNone() {
+ switchContacts_fromMsgSomeContactsConvNone_toMsgSomeContactsConvNone(PEOPLE_TYPE_CONTACTS,
+ KEY_STARRED, PEOPLE_TYPE_STARRED);
+ }
+
+ @Test
+ public void switchContacts_fromMsgContactsConvNone_toMsgStarredConvNone() {
+ switchContacts_fromMsgSomeContactsConvNone_toMsgSomeContactsConvNone(PEOPLE_TYPE_STARRED,
+ KEY_CONTACTS, PEOPLE_TYPE_CONTACTS);
+ }
+
+ private void switchContacts_fromMsgSomeContactsConvNone_toMsgSomeContactsConvNone(
+ @PeopleType int fromMessageSenders, String checkingContactsOptionKey,
+ @PeopleType int toMessageSenders) {
+ setUpMessagesController(p ->
+ p.allowMessages(fromMessageSenders)
+ .allowConversations(CONVERSATION_SENDERS_NONE));
+
+ // Switching CONTACTS/STARRED or vice-versa will leave conversations untouched.
+ setMessagesOptionChecked(checkingContactsOptionKey, true);
+ ZenPolicy savedPolicy = getSavedPolicy();
+
+ assertThat(savedPolicy.getPriorityMessageSenders()).isEqualTo(toMessageSenders);
+ assertThat(savedPolicy.getPriorityConversationSenders()).isEqualTo(
+ CONVERSATION_SENDERS_NONE);
+ }
+
+ @Test
+ public void uncheckStarred_fromMsgStarredConvNone_toMsgNoneConvNone() {
+ uncheckSomeContacts_fromMsgSomeContactsConvNone_toMsgNoneConvNone(
+ PEOPLE_TYPE_STARRED, KEY_STARRED);
+ }
+
+ @Test
+ public void uncheckContacts_fromMsgContactsConvNone_toMsgNoneConvNone() {
+ uncheckSomeContacts_fromMsgSomeContactsConvNone_toMsgNoneConvNone(
+ PEOPLE_TYPE_CONTACTS, KEY_CONTACTS);
+ }
+
+ private void uncheckSomeContacts_fromMsgSomeContactsConvNone_toMsgNoneConvNone(
+ @PeopleType int fromMessageSenders, String checkingContactsOptionKey) {
+ setUpMessagesController(p ->
+ p.allowMessages(fromMessageSenders)
+ .allowConversations(CONVERSATION_SENDERS_NONE));
+
+ // Unchecking CONTACTS or STARRED will leave conversations untouched.
+ setMessagesOptionChecked(checkingContactsOptionKey, false);
+ ZenPolicy savedPolicy = getSavedPolicy();
+
+ assertThat(savedPolicy.getPriorityMessageSenders()).isEqualTo(PEOPLE_TYPE_NONE);
+ assertThat(savedPolicy.getPriorityConversationSenders()).isEqualTo(
+ CONVERSATION_SENDERS_NONE);
+ }
+
+ @Test
+ public void checkImportantConv_fromMsgStarredConvNone_toMsgSomeContactsConvImportant() {
+ checkImportantConv_fromMsgSomeContactsConvNone_toMsgSomeContactsConvImportant(
+ PEOPLE_TYPE_STARRED);
+ }
+
+ @Test
+ public void checkImportantConv_fromMsgContactsConvNone_toMsgSomeContactsConvImportant() {
+ checkImportantConv_fromMsgSomeContactsConvNone_toMsgSomeContactsConvImportant(
+ PEOPLE_TYPE_CONTACTS);
+ }
+
+ private void checkImportantConv_fromMsgSomeContactsConvNone_toMsgSomeContactsConvImportant(
+ @PeopleType int fromMessageSenders) {
+ setUpMessagesController(p ->
+ p.allowMessages(fromMessageSenders)
+ .allowConversations(CONVERSATION_SENDERS_NONE));
+
+ // Deselecting important conversations leaves contacts untouched.
+ setMessagesOptionChecked(KEY_IMPORTANT_CONVERSATIONS, true);
+ ZenPolicy savedPolicy = getSavedPolicy();
+
+ assertThat(savedPolicy.getPriorityMessageSenders()).isEqualTo(fromMessageSenders);
+ assertThat(savedPolicy.getPriorityConversationSenders()).isEqualTo(
+ CONVERSATION_SENDERS_IMPORTANT);
+ }
+
+ @Test
+ public void checkAnyConv_fromMsgStarredConvNone_toMsgStarredConvAny() {
+ checkAnyConv_fromMsgSomeContactsConvNone_toMsgSomeContactsConvAny(PEOPLE_TYPE_STARRED);
+ }
+
+ @Test
+ public void checkAnyConv_fromMsgContactsConvNone_toMsgContactsConvAny() {
+ checkAnyConv_fromMsgSomeContactsConvNone_toMsgSomeContactsConvAny(PEOPLE_TYPE_CONTACTS);
+ }
+
+ private void checkAnyConv_fromMsgSomeContactsConvNone_toMsgSomeContactsConvAny(
+ @PeopleType int fromMessageSenders) {
+ setUpMessagesController(p ->
+ p.allowMessages(fromMessageSenders)
+ .allowConversations(CONVERSATION_SENDERS_IMPORTANT));
+
+ // Selecting any conversations leaves contacts untouched.
+ setMessagesOptionChecked(KEY_ANY_CONVERSATIONS, true);
+ ZenPolicy savedPolicy = getSavedPolicy();
+
+ assertThat(savedPolicy.getPriorityMessageSenders()).isEqualTo(fromMessageSenders);
+ assertThat(savedPolicy.getPriorityConversationSenders()).isEqualTo(
+ CONVERSATION_SENDERS_ANYONE);
+ }
+
+ @Test
+ public void checkAnyone_fromMsgStarredConvNone_toMsgAnyConvNone() {
+ checkAnyone_fromState_toMsgAnyConvAny(PEOPLE_TYPE_STARRED,
+ CONVERSATION_SENDERS_IMPORTANT);
+ }
+
+ @Test
+ public void checkAnyone_fromMsgContactsConvNone_toMsgAnyConvNone() {
+ checkAnyone_fromState_toMsgAnyConvAny(PEOPLE_TYPE_CONTACTS,
+ CONVERSATION_SENDERS_IMPORTANT);
+ }
+
+ @Test
+ public void checkNone_fromMsgStarredConvNone_toMsgNoneConvNone() {
+ checkNone_fromState_toMsgNoneConvNone(PEOPLE_TYPE_STARRED,
+ CONVERSATION_SENDERS_NONE);
+ }
+
+ @Test
+ public void checkNone_fromMsgContactsConvNone_toMsgNoneConvNone() {
+ checkNone_fromState_toMsgNoneConvNone(PEOPLE_TYPE_CONTACTS,
+ CONVERSATION_SENDERS_NONE);
+ }
+
+ // --------------------------------------------------------------------------
+ // Message checkbox tests, starting with Msg=None, Conv=Any
+
+ @Test
+ public void checkContacts_fromMsgNoneConvAny_toMsgContactsConvAny() {
+ checkSomeContacts_fromMsgNoneConvAny_toMsgSomeContactsConvAny(KEY_CONTACTS,
+ PEOPLE_TYPE_CONTACTS);
+ }
+
+ @Test
+ public void checkStarred_fromMsgNoneConvAny_toMsgStarredConvAny() {
+ checkSomeContacts_fromMsgNoneConvAny_toMsgSomeContactsConvAny(KEY_STARRED,
+ PEOPLE_TYPE_STARRED);
+ }
+
+ private void checkSomeContacts_fromMsgNoneConvAny_toMsgSomeContactsConvAny(
+ String contactsOptionKey, @PeopleType int toMessageSenders) {
+ setUpMessagesController(p ->
+ p.allowMessages(PEOPLE_TYPE_NONE)
+ .allowConversations(CONVERSATION_SENDERS_ANYONE));
+
+ // Adding CONTACTS/STARRED will leave conversations untouched.
+ setMessagesOptionChecked(contactsOptionKey, true);
+ ZenPolicy savedPolicy = getSavedPolicy();
+
+ assertThat(savedPolicy.getPriorityMessageSenders()).isEqualTo(toMessageSenders);
+ assertThat(savedPolicy.getPriorityConversationSenders()).isEqualTo(
+ CONVERSATION_SENDERS_ANYONE);
+ }
+
+ @Test
+ public void checkImportantConv_fromMsgNoneConvAny_toMsgNoneConvImportant() {
+ setUpMessagesController(p ->
+ p.allowMessages(PEOPLE_TYPE_NONE)
+ .allowConversations(CONVERSATION_SENDERS_ANYONE));
+
+ setMessagesOptionChecked(KEY_IMPORTANT_CONVERSATIONS, true);
+ ZenPolicy savedPolicy = getSavedPolicy();
+
+ assertThat(savedPolicy.getPriorityMessageSenders()).isEqualTo(PEOPLE_TYPE_NONE);
+ assertThat(savedPolicy.getPriorityConversationSenders()).isEqualTo(
+ CONVERSATION_SENDERS_IMPORTANT);
+ }
+
+ @Test
+ public void uncheckAnyConv_fromMsgNoneConvAny_toMsgNoneConvNone() {
+ setUpMessagesController(p ->
+ p.allowMessages(PEOPLE_TYPE_NONE)
+ .allowConversations(CONVERSATION_SENDERS_ANYONE));
+
+ setMessagesOptionChecked(KEY_ANY_CONVERSATIONS, false);
+ ZenPolicy savedPolicy = getSavedPolicy();
+
+ assertThat(savedPolicy.getPriorityMessageSenders()).isEqualTo(PEOPLE_TYPE_NONE);
+ assertThat(savedPolicy.getPriorityConversationSenders()).isEqualTo(
+ CONVERSATION_SENDERS_NONE);
+ }
+
+ @Test
+ public void checkAnyone_fromMsgNoneConvAny_toMsgAnyConvNone() {
+ checkAnyone_fromState_toMsgAnyConvAny(PEOPLE_TYPE_NONE,
+ CONVERSATION_SENDERS_ANYONE);
+ }
+
+ @Test
+ public void checkNone_fromMsgNoneConvAny_toMsgNoneConvNone() {
+ checkNone_fromState_toMsgNoneConvNone(PEOPLE_TYPE_NONE,
+ CONVERSATION_SENDERS_ANYONE);
+ }
+
+ // --------------------------------------------------------------------------
+ // Message checkbox tests, starting with Msg=None, Conv=Important
+
+ @Test
+ public void checkContacts_fromMsgNoneConvImportant_toMsgContactsConvImportant() {
+ checkSomeContacts_fromMsgNoneConvImportant_toMsgSomeContactsConvImportant(KEY_CONTACTS,
+ PEOPLE_TYPE_CONTACTS);
+ }
+
+ @Test
+ public void checkStarred_fromMsgNoneConvImportant_toMsgStarredConvImportant() {
+ checkSomeContacts_fromMsgNoneConvImportant_toMsgSomeContactsConvImportant(KEY_STARRED,
+ PEOPLE_TYPE_STARRED);
+ }
+
+ private void checkSomeContacts_fromMsgNoneConvImportant_toMsgSomeContactsConvImportant(
+ String contactsOptionKey, @PeopleType int toMessageSenders) {
+ setUpMessagesController(p ->
+ p.allowMessages(PEOPLE_TYPE_NONE)
+ .allowConversations(CONVERSATION_SENDERS_IMPORTANT));
+
+ // Adding CONTACTS/STARRED will leave conversations untouched.
+ setMessagesOptionChecked(contactsOptionKey, true);
+ ZenPolicy savedPolicy = getSavedPolicy();
+
+ assertThat(savedPolicy.getPriorityMessageSenders()).isEqualTo(toMessageSenders);
+ assertThat(savedPolicy.getPriorityConversationSenders()).isEqualTo(
+ CONVERSATION_SENDERS_IMPORTANT);
+ }
+
+ @Test
+ public void uncheckImportantConv_fromMsgNoneConvImportant_toMsgNoneConvNone() {
+ setUpMessagesController(p ->
+ p.allowMessages(PEOPLE_TYPE_NONE)
+ .allowConversations(CONVERSATION_SENDERS_IMPORTANT));
+
+ setMessagesOptionChecked(KEY_IMPORTANT_CONVERSATIONS, false);
+ ZenPolicy savedPolicy = getSavedPolicy();
+
+ assertThat(savedPolicy.getPriorityMessageSenders()).isEqualTo(PEOPLE_TYPE_NONE);
+ assertThat(savedPolicy.getPriorityConversationSenders()).isEqualTo(
+ CONVERSATION_SENDERS_NONE);
+ }
+
+ @Test
+ public void checkAnyConv_fromMsgNoneConvImportant_toMsgNoneConvAny() {
+ setUpMessagesController(p ->
+ p.allowMessages(PEOPLE_TYPE_NONE)
+ .allowConversations(CONVERSATION_SENDERS_IMPORTANT));
+
+ // Normally this option won't be visible, but it could be if the page was launched with
+ // conv=Any previously.
+ setMessagesOptionChecked(KEY_ANY_CONVERSATIONS, true);
+ ZenPolicy savedPolicy = getSavedPolicy();
+
+ assertThat(savedPolicy.getPriorityMessageSenders()).isEqualTo(PEOPLE_TYPE_NONE);
+ assertThat(savedPolicy.getPriorityConversationSenders()).isEqualTo(
+ CONVERSATION_SENDERS_ANYONE);
+ }
+
+ @Test
+ public void checkAnyone_fromMsgNoneConvImportant_toMsgAnyConvNone() {
+ checkAnyone_fromState_toMsgAnyConvAny(PEOPLE_TYPE_NONE,
+ CONVERSATION_SENDERS_IMPORTANT);
+ }
+
+ @Test
+ public void checkNone_fromMsgNoneConvImportant_toMsgNoneConvNone() {
+ checkNone_fromState_toMsgNoneConvNone(PEOPLE_TYPE_NONE,
+ CONVERSATION_SENDERS_IMPORTANT);
+ }
+
+ // --------------------------------------------------------------------------
+ // Message checkbox tests, starting with Msg=None, Conv=None
+
+ @Test
+ public void checkContacts_fromMsgNoneConvNone_toMsgContactsConvNone() {
+ checkSomeContacts_fromMsgNoneConvNone_toMsgSomeContactsConvNone(KEY_CONTACTS,
+ PEOPLE_TYPE_CONTACTS);
+ }
+
+ @Test
+ public void checkStarred_fromMsgNoneConvNone_toMsgStarredConvNone() {
+ checkSomeContacts_fromMsgNoneConvNone_toMsgSomeContactsConvNone(KEY_STARRED,
+ PEOPLE_TYPE_STARRED);
+ }
+
+ private void checkSomeContacts_fromMsgNoneConvNone_toMsgSomeContactsConvNone(
+ String contactsOptionKey, @PeopleType int toMessageSenders) {
+ setUpMessagesController(p ->
+ p.allowMessages(PEOPLE_TYPE_NONE)
+ .allowConversations(CONVERSATION_SENDERS_NONE));
+
+ // Choosing CONTACTS/STARRED will leave conversations untouched.
+ setMessagesOptionChecked(contactsOptionKey, true);
+ ZenPolicy savedPolicy = getSavedPolicy();
+
+ assertThat(savedPolicy.getPriorityMessageSenders()).isEqualTo(toMessageSenders);
+ assertThat(savedPolicy.getPriorityConversationSenders()).isEqualTo(
+ CONVERSATION_SENDERS_NONE);
+ }
+
+ @Test
+ public void checkImportantConv_fromMsgNoneConvNone_toMsgNoneConvImportant() {
+ setUpMessagesController(p ->
+ p.allowMessages(PEOPLE_TYPE_NONE)
+ .allowConversations(CONVERSATION_SENDERS_NONE));
+
+ setMessagesOptionChecked(KEY_IMPORTANT_CONVERSATIONS, true);
+ ZenPolicy savedPolicy = getSavedPolicy();
+
+ assertThat(savedPolicy.getPriorityMessageSenders()).isEqualTo(PEOPLE_TYPE_NONE);
+ assertThat(savedPolicy.getPriorityConversationSenders()).isEqualTo(
+ CONVERSATION_SENDERS_IMPORTANT);
+ }
+
+ @Test
+ public void checkAnyConv_fromMsgNoneConvNone_toMsgNoneConvAny() {
+ setUpMessagesController(p ->
+ p.allowMessages(PEOPLE_TYPE_NONE)
+ .allowConversations(CONVERSATION_SENDERS_NONE));
+
+ // Normally this option won't be visible, but it could be if the page was launched with
+ // conv=Any previously.
+ setMessagesOptionChecked(KEY_ANY_CONVERSATIONS, true);
+ ZenPolicy savedPolicy = getSavedPolicy();
+
+ assertThat(savedPolicy.getPriorityMessageSenders()).isEqualTo(PEOPLE_TYPE_NONE);
+ assertThat(savedPolicy.getPriorityConversationSenders()).isEqualTo(
+ CONVERSATION_SENDERS_ANYONE);
+ }
+
+ @Test
+ public void checkAnyone_fromMsgNoneConvNone_toMsgAnyConvNone() {
+ checkAnyone_fromState_toMsgAnyConvAny(PEOPLE_TYPE_NONE,
+ CONVERSATION_SENDERS_NONE);
+ }
+
+ @Test
+ public void uncheckNone_fromMsgNoneConvNone_noChanges() {
+ setUpMessagesController(p ->
+ p.allowMessages(PEOPLE_TYPE_NONE)
+ .allowConversations(CONVERSATION_SENDERS_NONE));
+
+ setMessagesOptionChecked(KEY_NONE, false);
+ ZenPolicy savedPolicy = getSavedPolicy();
+
+ assertThat(savedPolicy.getPriorityMessageSenders()).isEqualTo(PEOPLE_TYPE_NONE);
+ assertThat(savedPolicy.getPriorityConversationSenders()).isEqualTo(
+ CONVERSATION_SENDERS_NONE);
+ }
+
+ // --------------------------------------------------------------------------
+ // Message checkbox tests, common cases.
+
+ private void checkAnyone_fromState_toMsgAnyConvAny(@PeopleType int fromMsg,
+ @ConversationSenders int fromConv) {
+ setUpMessagesController(p ->
+ p.allowMessages(fromMsg).allowConversations(fromConv));
+ String context = "Trying to check Anyone; starting with Msg=" + peopleTypeToString(fromMsg)
+ + ", Conv=" + conversationTypeToString(fromConv);
+
+ // Checking ANY will always unselect everything else in the UI, no matter the initial state,
+ // but will save PEOPLE_ANY and CONVERSATIONS_ANY (which is redundant but equivalent).
+ setMessagesOptionChecked(KEY_ANY, true);
+ ZenPolicy savedPolicy = getSavedPolicy();
+
+ assertWithMessage(context).that(savedPolicy.getPriorityMessageSenders()).isEqualTo(
+ PEOPLE_TYPE_ANYONE);
+ assertWithMessage(context).that(savedPolicy.getPriorityConversationSenders()).isEqualTo(
+ CONVERSATION_SENDERS_ANYONE);
+ }
+
+ private void uncheckAnyone_fromState_toMsgNoneConvNone(@PeopleType int fromMsg,
+ @ConversationSenders int fromConv) {
+ setUpMessagesController(p ->
+ p.allowMessages(fromMsg).allowConversations(fromConv));
+ String context = "Trying to uncheck Anyone; starting with Msg=" + peopleTypeToString(
+ fromMsg) + ", Conv=" + conversationTypeToString(fromConv);
+
+ // Unchecking ANYONE means NONE to both, even if Anyone was previously Msg=Any&Conv=Any or
+ // Msg=Any&Conv=Important.
+ setMessagesOptionChecked(KEY_ANY, false);
+ ZenPolicy savedPolicy = getSavedPolicy();
+
+ assertWithMessage(context).that(savedPolicy.getPriorityMessageSenders()).isEqualTo(
+ PEOPLE_TYPE_NONE);
+ assertWithMessage(context).that(savedPolicy.getPriorityConversationSenders()).isEqualTo(
+ CONVERSATION_SENDERS_NONE);
+ }
+
+ private void checkNone_fromState_toMsgNoneConvNone(@PeopleType int fromMsg,
+ @ConversationSenders int fromConv) {
+ setUpMessagesController(p ->
+ p.allowMessages(fromMsg).allowConversations(fromConv));
+ String context = "Trying to check None; starting with Msg=" + peopleTypeToString(fromMsg)
+ + ", Conv=" + conversationTypeToString(fromConv);
+
+ // Checking NONE will always unselect everything else, no matter the initial state.
+ setMessagesOptionChecked(KEY_NONE, true);
+ ZenPolicy savedPolicy = getSavedPolicy();
+
+ assertWithMessage(context).that(savedPolicy.getPriorityMessageSenders()).isEqualTo(
+ PEOPLE_TYPE_NONE);
+ assertWithMessage(context).that(savedPolicy.getPriorityConversationSenders()).isEqualTo(
+ CONVERSATION_SENDERS_NONE);
+ }
+
+ private void setUpMessagesController(Consumer<ZenPolicy.Builder> policyMaker) {
+ ZenMode zenMode = newModeWithPolicy(policyMaker);
+ mMessagesController.displayPreference(mPreferenceScreen);
+ mMessagesController.updateZenMode(mMessagesPrefCategory, zenMode);
+ }
+
+ private static ZenMode newModeWithPolicy(Consumer<ZenPolicy.Builder> policyMaker) {
+ ZenPolicy.Builder policyBuilder = new ZenPolicy.Builder();
+ policyMaker.accept(policyBuilder);
+ return new TestModeBuilder().setZenPolicy(policyBuilder.build()).build();
+ }
+
+ private static ImmutableList<String> getAllOptions(PreferenceCategory category) {
+ return getOptions(category, o -> true);
+ }
+
+ private static ImmutableList<String> getVisibleOptions(PreferenceCategory category) {
+ return getOptions(category, Preference::isVisible);
+ }
+
+ private static ImmutableList<String> getCheckedOptions(PreferenceCategory category) {
+ return getOptions(category, TwoStatePreference::isChecked);
+ }
+
+ private static ImmutableList<String> getOptions(PreferenceCategory category,
+ Predicate<SelectorWithWidgetPreference> filter) {
+ ImmutableList.Builder<String> keys = new ImmutableList.Builder<>();
+ for (int i = 0; i < category.getPreferenceCount(); i++) {
+ SelectorWithWidgetPreference option =
+ (SelectorWithWidgetPreference) category.getPreference(i);
+ if (filter.test(option)) {
+ keys.add(category.getPreference(i).getKey());
+ }
+ }
+ return keys.build();
+ }
+
+
+ private static void setOptionChecked(PreferenceCategory category, String key, boolean checked) {
+ SelectorWithWidgetPreference preference = checkNotNull(category.findPreference(key));
+ if (preference.isChecked() == checked) {
+ throw new IllegalArgumentException(
+ "This test is trying to " + (checked ? "check" : "uncheck") + " " + key
+ + ", but it's already " + (checked ? "checked" : "unchecked") + "!");
+ }
+ preference.performClick();
+ }
+
+ private void setMessagesOptionChecked(String key, boolean checked) {
+ setOptionChecked(mMessagesPrefCategory, key, checked);
+ }
+
+ private ZenPolicy getSavedPolicy() {
+ ArgumentCaptor<ZenMode> captor = ArgumentCaptor.forClass(ZenMode.class);
+ verify(mBackend).updateMode(captor.capture());
+ return captor.getValue().getPolicy();
}
@Test
diff --git a/tests/robotests/src/com/android/settings/notification/modes/ZenModeSetTriggerLinkPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/modes/ZenModeSetTriggerLinkPreferenceControllerTest.java
deleted file mode 100644
index fc3cef1..0000000
--- a/tests/robotests/src/com/android/settings/notification/modes/ZenModeSetTriggerLinkPreferenceControllerTest.java
+++ /dev/null
@@ -1,287 +0,0 @@
-/*
- * Copyright (C) 2024 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.notification.modes;
-
-import static android.app.AutomaticZenRule.TYPE_OTHER;
-import static android.app.AutomaticZenRule.TYPE_SCHEDULE_CALENDAR;
-import static android.app.AutomaticZenRule.TYPE_SCHEDULE_TIME;
-import static android.app.NotificationManager.INTERRUPTION_FILTER_PRIORITY;
-import static android.platform.test.flag.junit.SetFlagsRule.DefaultInitValueType.DEVICE_DEFAULT;
-
-import static com.android.settings.notification.modes.ZenModeSetTriggerLinkPreferenceController.AUTOMATIC_TRIGGER_PREF_KEY;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.when;
-
-import android.app.AutomaticZenRule;
-import android.app.Flags;
-import android.content.Context;
-import android.content.Intent;
-import android.content.pm.PackageManager;
-import android.net.Uri;
-import android.platform.test.annotations.EnableFlags;
-import android.platform.test.flag.junit.SetFlagsRule;
-import android.service.notification.SystemZenRules;
-import android.service.notification.ZenModeConfig;
-
-import androidx.preference.PreferenceCategory;
-import androidx.test.core.app.ApplicationProvider;
-
-import com.android.settings.R;
-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;
-
-import org.junit.Before;
-import org.junit.Rule;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.ArgumentCaptor;
-import org.mockito.Mock;
-import org.mockito.MockitoAnnotations;
-import org.robolectric.RobolectricTestRunner;
-
-import java.util.Calendar;
-
-@RunWith(RobolectricTestRunner.class)
-@EnableFlags(Flags.FLAG_MODES_UI)
-public class ZenModeSetTriggerLinkPreferenceControllerTest {
- @Rule
- public final SetFlagsRule mSetFlagsRule = new SetFlagsRule(DEVICE_DEFAULT);
-
- @Mock
- private ZenModesBackend mBackend;
- private Context mContext;
-
- private PrimarySwitchPreference mPreference;
-
- @Mock
- private PackageManager mPm;
- @Mock
- private ConfigurationActivityHelper mConfigurationActivityHelper;
-
- @Mock
- private PreferenceCategory mPrefCategory;
- @Mock
- private DashboardFragment mFragment;
-
- private ZenModeSetTriggerLinkPreferenceController mPrefController;
-
- @Before
- public void setUp() {
- MockitoAnnotations.initMocks(this);
- mContext = ApplicationProvider.getApplicationContext();
-
- mPrefController = new ZenModeSetTriggerLinkPreferenceController(mContext,
- "zen_automatic_trigger_category", mFragment, mBackend,
- mConfigurationActivityHelper,
- mock(ZenServiceListing.class));
- mPreference = new PrimarySwitchPreference(mContext);
-
- when(mPrefCategory.findPreference(AUTOMATIC_TRIGGER_PREF_KEY)).thenReturn(mPreference);
- }
-
- @Test
- public void testIsAvailable() {
- // should not be available for manual DND
- ZenMode manualMode = ZenMode.manualDndMode(new AutomaticZenRule.Builder("Do Not Disturb",
- Uri.parse("manual"))
- .setInterruptionFilter(INTERRUPTION_FILTER_PRIORITY)
- .build(), true);
-
- mPrefController.updateZenMode(mPrefCategory, manualMode);
- assertThat(mPrefController.isAvailable()).isFalse();
-
- // should be available for other modes
- mPrefController.updateZenMode(mPrefCategory, TestModeBuilder.EXAMPLE);
- assertThat(mPrefController.isAvailable()).isTrue();
- }
-
- @Test
- public void testUpdateState() {
- ZenMode zenMode = new TestModeBuilder().setEnabled(false).build();
-
- // Update preference controller with a zen mode that is not enabled
- mPrefController.updateZenMode(mPrefCategory, zenMode);
- assertThat(mPreference.getCheckedState()).isFalse();
-
- // Now with the rule enabled
- zenMode.getRule().setEnabled(true);
- mPrefController.updateZenMode(mPrefCategory, zenMode);
- assertThat(mPreference.getCheckedState()).isTrue();
- }
-
- @Test
- public void testOnPreferenceChange() {
- ZenMode zenMode = new TestModeBuilder().setEnabled(false).build();
-
- // start with disabled rule
- mPrefController.updateZenMode(mPrefCategory, zenMode);
-
- // then update the preference to be checked
- mPrefController.mSwitchChangeListener.onPreferenceChange(mPreference, true);
-
- // verify the backend got asked to update the mode to be enabled
- ArgumentCaptor<ZenMode> captor = ArgumentCaptor.forClass(ZenMode.class);
- verify(mBackend).updateMode(captor.capture());
- assertThat(captor.getValue().getRule().isEnabled()).isTrue();
- }
-
- @Test
- public void testRuleLink_calendar() {
- ZenModeConfig.EventInfo eventInfo = new ZenModeConfig.EventInfo();
- eventInfo.calendarId = 1L;
- eventInfo.calName = "My events";
- ZenMode mode = new TestModeBuilder()
- .setPackage(SystemZenRules.PACKAGE_ANDROID)
- .setConditionId(ZenModeConfig.toEventConditionId(eventInfo))
- .setType(TYPE_SCHEDULE_CALENDAR)
- .setTriggerDescription("My events")
- .build();
- mPrefController.updateZenMode(mPrefCategory, mode);
-
- assertThat(mPreference.getTitle()).isNotNull();
- assertThat(mPreference.getTitle().toString()).isEqualTo(
- mContext.getString(R.string.zen_mode_set_calendar_link));
- assertThat(mPreference.getSummary()).isNotNull();
- assertThat(mPreference.getSummary().toString()).isEqualTo(
- mode.getRule().getTriggerDescription());
- assertThat(mPreference.getIcon()).isNull();
-
- // Destination as written into the intent by SubSettingLauncher
- assertThat(mPreference.getIntent().getStringExtra(SettingsActivity.EXTRA_SHOW_FRAGMENT))
- .isEqualTo(ZenModeSetCalendarFragment.class.getName());
- }
-
- @Test
- public void testRuleLink_schedule() {
- ZenModeConfig.ScheduleInfo scheduleInfo = new ZenModeConfig.ScheduleInfo();
- scheduleInfo.days = new int[]{Calendar.MONDAY, Calendar.TUESDAY, Calendar.THURSDAY};
- scheduleInfo.startHour = 1;
- scheduleInfo.endHour = 15;
- ZenMode mode = new TestModeBuilder()
- .setConditionId(ZenModeConfig.toScheduleConditionId(scheduleInfo))
- .setPackage(SystemZenRules.PACKAGE_ANDROID)
- .setType(TYPE_SCHEDULE_TIME)
- .setTriggerDescription("some schedule")
- .build();
- mPrefController.updateZenMode(mPrefCategory, mode);
-
- assertThat(mPreference.getTitle()).isNotNull();
- assertThat(mPreference.getTitle().toString()).isEqualTo(
- mContext.getString(R.string.zen_mode_set_schedule_link));
- assertThat(mPreference.getSummary()).isNotNull();
- assertThat(mPreference.getSummary().toString()).isEqualTo(
- mode.getRule().getTriggerDescription());
- assertThat(mPreference.getIcon()).isNull();
-
- // Destination as written into the intent by SubSettingLauncher
- assertThat(mPreference.getIntent().getStringExtra(SettingsActivity.EXTRA_SHOW_FRAGMENT))
- .isEqualTo(ZenModeSetScheduleFragment.class.getName());
- }
-
- @Test
- public void testRuleLink_manual() {
- ZenMode mode = new TestModeBuilder()
- .setConditionId(ZenModeConfig.toCustomManualConditionId())
- .setPackage(SystemZenRules.PACKAGE_ANDROID)
- .setType(TYPE_OTHER)
- .setTriggerDescription("Will not be shown")
- .build();
- mPrefController.updateZenMode(mPrefCategory, mode);
-
- assertThat(mPreference.getTitle()).isNotNull();
- assertThat(mPreference.getTitle().toString()).isEqualTo(
- mContext.getString(R.string.zen_mode_select_schedule));
- assertThat(mPreference.getIcon()).isNotNull();
- assertThat(mPreference.getSummary()).isNotNull();
- assertThat(mPreference.getSummary().toString()).isEqualTo("");
-
- // Set up a click listener to open the dialog.
- assertThat(mPreference.getOnPreferenceClickListener()).isNotNull();
- }
-
- @Test
- public void testRuleLink_appWithConfigActivity_linksToConfigActivity() {
- ZenMode mode = new TestModeBuilder()
- .setPackage("some.package")
- .setTriggerDescription("When The Music's Over")
- .build();
- Intent configurationIntent = new Intent("configure the mode");
- when(mConfigurationActivityHelper.getConfigurationActivityIntentForMode(any(), any()))
- .thenReturn(configurationIntent);
-
- mPrefController.updateZenMode(mPrefCategory, mode);
-
- assertThat(mPreference.getTitle()).isNotNull();
- assertThat(mPreference.getTitle().toString()).isEqualTo(
- mContext.getString(R.string.zen_mode_configuration_link_title));
- assertThat(mPreference.getSummary()).isNotNull();
- assertThat(mPreference.getSummary().toString()).isEqualTo("When The Music's Over");
- assertThat(mPreference.getIntent()).isEqualTo(configurationIntent);
- }
-
- @Test
- public void testRuleLink_appWithoutConfigActivity_hidden() {
- ZenMode mode = new TestModeBuilder()
- .setPackage("some.package")
- .setTriggerDescription("Will not be shown :(")
- .build();
- when(mConfigurationActivityHelper.getConfigurationActivityIntentForMode(any(), any()))
- .thenReturn(null);
-
- mPrefController.updateZenMode(mPrefCategory, mode);
-
- assertThat(mPrefCategory.isVisible()).isFalse();
- }
-
- @Test
- public void onScheduleChosen_updatesMode() {
- ZenMode originalMode = new TestModeBuilder()
- .setConditionId(ZenModeConfig.toCustomManualConditionId())
- .setPackage(SystemZenRules.PACKAGE_ANDROID)
- .setType(TYPE_OTHER)
- .setTriggerDescription("")
- .build();
- mPrefController.updateZenMode(mPrefCategory, originalMode);
-
- ZenModeConfig.ScheduleInfo scheduleInfo = new ZenModeConfig.ScheduleInfo();
- scheduleInfo.days = new int[] { Calendar.MONDAY };
- scheduleInfo.startHour = 12;
- scheduleInfo.endHour = 15;
- Uri scheduleUri = ZenModeConfig.toScheduleConditionId(scheduleInfo);
-
- mPrefController.mOnScheduleOptionListener.onScheduleSelected(scheduleUri);
-
- // verify the backend got asked to update the mode to be schedule-based.
- ArgumentCaptor<ZenMode> captor = ArgumentCaptor.forClass(ZenMode.class);
- verify(mBackend).updateMode(captor.capture());
- ZenMode updatedMode = captor.getValue();
- assertThat(updatedMode.getType()).isEqualTo(TYPE_SCHEDULE_TIME);
- assertThat(updatedMode.getRule().getConditionId()).isEqualTo(scheduleUri);
- assertThat(updatedMode.getRule().getTriggerDescription()).isNotEmpty();
- assertThat(updatedMode.getRule().getOwner()).isEqualTo(
- ZenModeConfig.getScheduleConditionProvider());
- }
-}
diff --git a/tests/robotests/src/com/android/settings/notification/modes/ZenModesSummaryHelperTest.java b/tests/robotests/src/com/android/settings/notification/modes/ZenModeSummaryHelperTest.java
similarity index 66%
rename from tests/robotests/src/com/android/settings/notification/modes/ZenModesSummaryHelperTest.java
rename to tests/robotests/src/com/android/settings/notification/modes/ZenModeSummaryHelperTest.java
index 672a0d7..a0e1d38 100644
--- a/tests/robotests/src/com/android/settings/notification/modes/ZenModesSummaryHelperTest.java
+++ b/tests/robotests/src/com/android/settings/notification/modes/ZenModeSummaryHelperTest.java
@@ -16,13 +16,12 @@
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.CONVERSATION_SENDERS_IMPORTANT;
import static android.service.notification.ZenPolicy.PEOPLE_TYPE_ANYONE;
import static android.service.notification.ZenPolicy.PEOPLE_TYPE_CONTACTS;
+import static android.service.notification.ZenPolicy.PEOPLE_TYPE_NONE;
+import static android.service.notification.ZenPolicy.PEOPLE_TYPE_STARRED;
import static android.service.notification.ZenPolicy.VISUAL_EFFECT_AMBIENT;
import static android.service.notification.ZenPolicy.VISUAL_EFFECT_LIGHTS;
@@ -30,17 +29,16 @@
import static org.robolectric.Shadows.shadowOf;
+import android.app.AutomaticZenRule;
import android.app.Flags;
-import android.content.ComponentName;
import android.content.Context;
import android.content.pm.ApplicationInfo;
import android.content.pm.UserInfo;
-import android.net.Uri;
import android.os.UserHandle;
import android.os.UserManager;
import android.platform.test.annotations.EnableFlags;
import android.platform.test.flag.junit.SetFlagsRule;
-import android.service.notification.Condition;
+import android.service.notification.SystemZenRules;
import android.service.notification.ZenDeviceEffects;
import android.service.notification.ZenModeConfig;
import android.service.notification.ZenPolicy;
@@ -62,7 +60,8 @@
import java.util.Random;
@RunWith(RobolectricTestRunner.class)
-public class ZenModesSummaryHelperTest {
+@EnableFlags(Flags.FLAG_MODES_UI)
+public class ZenModeSummaryHelperTest {
private static final int WORK_PROFILE_ID = 3;
private Context mContext;
@@ -89,31 +88,91 @@
@Test
public void getPeopleSummary_noOne() {
- ZenMode zenMode = new TestModeBuilder()
- .setZenPolicy(new ZenPolicy.Builder().disallowAllSounds().build())
- .build();
+ ZenPolicy policy = new ZenPolicy.Builder().disallowAllSounds().build();
- assertThat(mSummaryHelper.getPeopleSummary(zenMode)).isEqualTo("No one can interrupt");
+ assertThat(mSummaryHelper.getPeopleSummary(policy)).isEqualTo("No one can interrupt");
}
@Test
public void getPeopleSummary_some() {
- ZenMode zenMode = new TestModeBuilder()
- .setZenPolicy(new ZenPolicy.Builder().allowCalls(PEOPLE_TYPE_CONTACTS).build())
+ ZenPolicy policy = new ZenPolicy.Builder().allowCalls(PEOPLE_TYPE_CONTACTS).build();
+
+ assertThat(mSummaryHelper.getPeopleSummary(policy)).isEqualTo("Some people can interrupt");
+ }
+
+ @Test
+ public void getPeopleSummary_onlyRepeatCallers() {
+ ZenPolicy policy = new ZenPolicy.Builder()
+ .disallowAllSounds()
+ .allowRepeatCallers(true)
.build();
- assertThat(mSummaryHelper.getPeopleSummary(zenMode)).isEqualTo("Some people can interrupt");
+ assertThat(mSummaryHelper.getPeopleSummary(policy)).isEqualTo(
+ "Repeat callers can interrupt");
}
@Test
public void getPeopleSummary_all() {
- ZenMode zenMode = new TestModeBuilder()
- .setZenPolicy(new ZenPolicy.Builder().allowCalls(PEOPLE_TYPE_ANYONE).
- allowConversations(CONVERSATION_SENDERS_ANYONE)
- .allowMessages(PEOPLE_TYPE_ANYONE).build())
+ ZenPolicy policy = new ZenPolicy.Builder()
+ .allowCalls(PEOPLE_TYPE_ANYONE)
+ .allowConversations(CONVERSATION_SENDERS_ANYONE)
+ .allowMessages(PEOPLE_TYPE_ANYONE)
.build();
- assertThat(mSummaryHelper.getPeopleSummary(zenMode)).isEqualTo("All people can interrupt");
+ assertThat(mSummaryHelper.getPeopleSummary(policy)).isEqualTo("All people can interrupt");
+ }
+
+ @Test
+ public void getMessagesSettingSummary_allMessages() {
+ ZenPolicy policy1 = new ZenPolicy.Builder()
+ .allowMessages(PEOPLE_TYPE_ANYONE)
+ .build();
+ ZenPolicy policy2 = new ZenPolicy.Builder()
+ .allowMessages(PEOPLE_TYPE_ANYONE)
+ .allowConversations(CONVERSATION_SENDERS_IMPORTANT)
+ .build();
+ ZenPolicy policy3 = new ZenPolicy.Builder()
+ .allowMessages(PEOPLE_TYPE_ANYONE)
+ .allowConversations(CONVERSATION_SENDERS_ANYONE)
+ .build();
+
+ assertThat(mSummaryHelper.getMessagesSettingSummary(policy1)).isEqualTo("Anyone");
+ assertThat(mSummaryHelper.getMessagesSettingSummary(policy2)).isEqualTo("Anyone");
+ assertThat(mSummaryHelper.getMessagesSettingSummary(policy3)).isEqualTo("Anyone");
+ }
+
+ @Test
+ public void getMessagesSettingSummary_noMessagesButSomeConversations() {
+ ZenPolicy policy1 = new ZenPolicy.Builder()
+ .allowMessages(PEOPLE_TYPE_NONE)
+ .allowConversations(CONVERSATION_SENDERS_IMPORTANT)
+ .build();
+ ZenPolicy policy2 = new ZenPolicy.Builder()
+ .allowMessages(PEOPLE_TYPE_NONE)
+ .allowConversations(CONVERSATION_SENDERS_ANYONE)
+ .build();
+
+ assertThat(mSummaryHelper.getMessagesSettingSummary(policy1)).isEqualTo(
+ "Priority conversations");
+ assertThat(mSummaryHelper.getMessagesSettingSummary(policy2)).isEqualTo(
+ "All conversations");
+ }
+
+ @Test
+ public void getMessagesSettingSummary_contactsAndConversations() {
+ ZenPolicy policy1 = new ZenPolicy.Builder()
+ .allowMessages(PEOPLE_TYPE_STARRED)
+ .allowConversations(CONVERSATION_SENDERS_IMPORTANT)
+ .build();
+ ZenPolicy policy2 = new ZenPolicy.Builder()
+ .allowMessages(PEOPLE_TYPE_STARRED)
+ .allowConversations(CONVERSATION_SENDERS_ANYONE)
+ .build();
+
+ assertThat(mSummaryHelper.getMessagesSettingSummary(policy1)).isEqualTo(
+ "Starred contacts and priority conversations");
+ assertThat(mSummaryHelper.getMessagesSettingSummary(policy2)).isEqualTo(
+ "Starred contacts and all conversations");
}
@Test
@@ -417,85 +476,90 @@
}
@Test
- @EnableFlags(Flags.FLAG_MODES_UI)
- public void getSoundSummary_off_noRules() {
- ZenModeConfig config = new ZenModeConfig();
-
- assertThat(mSummaryHelper.getSoundSummary(ZEN_MODE_OFF, config)).isEqualTo("Off");
+ public void getModesSummary_noRules_noSummary() {
+ String summary = mSummaryHelper.getModesSummary(ImmutableList.of());
+ assertThat(summary).isEmpty();
}
@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");
+ public void getModesSummary_onlyDndAndNotActive_noSummary() {
+ ImmutableList<ZenMode> modes = ImmutableList.of(TestModeBuilder.MANUAL_DND_INACTIVE);
+ String summary = mSummaryHelper.getModesSummary(modes);
+ assertThat(summary).isEmpty();
}
@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);
+ public void getModesSummary_noRulesActive_countsOnlyEnabledAutomaticModes() {
+ ImmutableList<ZenMode> modes = ImmutableList.of(
+ TestModeBuilder.MANUAL_DND_INACTIVE, // Not automatic
+ new TestModeBuilder().setName("Auto 1").build(), // App provided automatic
+ new TestModeBuilder()
+ .setName("Custom manual 1")
+ .setPackage(SystemZenRules.PACKAGE_ANDROID)
+ .setType(AutomaticZenRule.TYPE_OTHER)
+ .setConditionId(ZenModeConfig.toCustomManualConditionId())
+ .build(), // Custom manual, not automatic
+ new TestModeBuilder()
+ .setName("Disabled 1")
+ .setEnabled(false)
+ .build(), // Would be automatic, but it's disabled.
+ new TestModeBuilder()
+ .setName("Sleep")
+ .setPackage(SystemZenRules.PACKAGE_ANDROID)
+ .setType(AutomaticZenRule.TYPE_SCHEDULE_TIME)
+ .build() // Time based, automatic.
+ );
- assertThat(mSummaryHelper.getSoundSummary(ZEN_MODE_OFF, config))
- .isEqualTo("Off / 2 modes can turn on automatically");
+ String summary = mSummaryHelper.getModesSummary(modes);
+ assertThat(summary).isEqualTo("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");
+ public void getModesSummary_oneModeActive_listsMode() {
+ ImmutableList<ZenMode> modes = ImmutableList.of(
+ TestModeBuilder.MANUAL_DND_ACTIVE,
+ new TestModeBuilder().setName("Inactive").setActive(false).build());
+
+ String summary = mSummaryHelper.getModesSummary(modes);
+ assertThat(summary).isEqualTo("Do Not Disturb is active");
}
@Test
- @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 /");
+ public void getModesSummary_twoModesActive_listsModes() {
+ ImmutableList<ZenMode> modes = ImmutableList.of(
+ TestModeBuilder.MANUAL_DND_ACTIVE,
+ new TestModeBuilder().setName("Inactive").setActive(false).build(),
+ new TestModeBuilder().setName("Active #1").setActive(true).build());
+
+ String summary = mSummaryHelper.getModesSummary(modes);
+ assertThat(summary).isEqualTo("Do Not Disturb and Active #1 are active");
}
@Test
- @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);
+ public void getModesSummary_threeModesActive_listsModes() {
+ ImmutableList<ZenMode> modes = ImmutableList.of(
+ TestModeBuilder.MANUAL_DND_INACTIVE,
+ new TestModeBuilder().setName("Inactive #1").setActive(false).build(),
+ new TestModeBuilder().setName("Active #1").setActive(true).build(),
+ new TestModeBuilder().setName("Active #2").setActive(true).build(),
+ new TestModeBuilder().setName("Inactive #2").setActive(false).build(),
+ new TestModeBuilder().setName("Active #3").setActive(true).build());
- assertThat(mSummaryHelper.getSoundSummary(ZEN_MODE_IMPORTANT_INTERRUPTIONS, config))
- .startsWith("On /");
+ String summary = mSummaryHelper.getModesSummary(modes);
+ assertThat(summary).isEqualTo("Active #1, Active #2, and Active #3 are active");
+ }
+
+ @Test
+ public void getModesSummary_manyModesActive_listsACouple() {
+ ImmutableList<ZenMode> modes = ImmutableList.of(
+ TestModeBuilder.MANUAL_DND_ACTIVE,
+ new TestModeBuilder().setName("Inactive #1").setActive(false).build(),
+ new TestModeBuilder().setName("Active #1").setActive(true).build(),
+ new TestModeBuilder().setName("Active #2").setActive(true).build(),
+ new TestModeBuilder().setName("Inactive #2").setActive(false).build(),
+ new TestModeBuilder().setName("Active #3").setActive(true).build());
+
+ String summary = mSummaryHelper.getModesSummary(modes);
+ assertThat(summary).isEqualTo("Do Not Disturb, Active #1, and 2 more are active");
}
}
diff --git a/tests/robotests/src/com/android/settings/notification/modes/ZenModeTriggerAddPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/modes/ZenModeTriggerAddPreferenceControllerTest.java
new file mode 100644
index 0000000..a56e723
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/notification/modes/ZenModeTriggerAddPreferenceControllerTest.java
@@ -0,0 +1,183 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.notification.modes;
+
+import static android.app.AutomaticZenRule.TYPE_OTHER;
+import static android.app.AutomaticZenRule.TYPE_SCHEDULE_CALENDAR;
+import static android.app.AutomaticZenRule.TYPE_SCHEDULE_TIME;
+import static android.app.NotificationManager.INTERRUPTION_FILTER_PRIORITY;
+import static android.platform.test.flag.junit.SetFlagsRule.DefaultInitValueType.DEVICE_DEFAULT;
+
+import static com.android.settings.notification.modes.CharSequenceTruth.assertThat;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.mockito.Mockito.verify;
+
+import android.app.AutomaticZenRule;
+import android.app.Flags;
+import android.content.Context;
+import android.net.Uri;
+import android.platform.test.annotations.EnableFlags;
+import android.platform.test.flag.junit.SetFlagsRule;
+import android.service.notification.SystemZenRules;
+import android.service.notification.ZenModeConfig;
+
+import androidx.preference.Preference;
+import androidx.preference.PreferenceManager;
+import androidx.preference.PreferenceScreen;
+import androidx.test.core.app.ApplicationProvider;
+
+import com.android.settings.R;
+import com.android.settings.dashboard.DashboardFragment;
+import com.android.settingslib.notification.modes.TestModeBuilder;
+import com.android.settingslib.notification.modes.ZenMode;
+import com.android.settingslib.notification.modes.ZenModesBackend;
+
+import org.junit.Before;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.ArgumentCaptor;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+import org.robolectric.RobolectricTestRunner;
+
+import java.util.Calendar;
+
+@RunWith(RobolectricTestRunner.class)
+@EnableFlags(Flags.FLAG_MODES_UI)
+public class ZenModeTriggerAddPreferenceControllerTest {
+
+ private static final ZenMode CUSTOM_MANUAL_MODE = new TestModeBuilder()
+ .setConditionId(ZenModeConfig.toCustomManualConditionId())
+ .setPackage(SystemZenRules.PACKAGE_ANDROID)
+ .setType(TYPE_OTHER)
+ .setTriggerDescription("Will not be shown")
+ .build();
+
+ @Rule
+ public final SetFlagsRule mSetFlagsRule = new SetFlagsRule(DEVICE_DEFAULT);
+
+ private ZenModeTriggerAddPreferenceController mController;
+
+ private Context mContext;
+ private Preference mPreference;
+ @Mock private ZenModesBackend mBackend;
+ @Mock private DashboardFragment mFragment;
+
+ @Before
+ public void setUp() throws Exception {
+ MockitoAnnotations.initMocks(this);
+ mContext = ApplicationProvider.getApplicationContext();
+
+ PreferenceManager preferenceManager = new PreferenceManager(mContext);
+ PreferenceScreen preferenceScreen = preferenceManager.inflateFromResource(mContext,
+ R.xml.modes_rule_settings, null);
+
+ mController = new ZenModeTriggerAddPreferenceController(mContext,
+ "zen_add_automatic_trigger", mFragment, mBackend);
+ mPreference = preferenceScreen.findPreference("zen_add_automatic_trigger");
+ }
+
+ @Test
+ public void isAvailable_customManualMode_true() {
+ mController.setZenMode(CUSTOM_MANUAL_MODE);
+
+ assertThat(mController.isAvailable()).isTrue();
+ }
+
+ @Test
+ public void isAvailable_systemMode_false() {
+ ZenMode mode = new TestModeBuilder()
+ .setPackage(SystemZenRules.PACKAGE_ANDROID)
+ .setType(TYPE_SCHEDULE_CALENDAR)
+ .build();
+ mController.setZenMode(mode);
+
+ assertThat(mController.isAvailable()).isFalse();
+ }
+
+ @Test
+ public void isAvailable_appProvidedMode_false() {
+ ZenMode mode = new TestModeBuilder()
+ .setPackage("com.some.package")
+ .setType(TYPE_OTHER)
+ .build();
+ mController.setZenMode(mode);
+
+ assertThat(mController.isAvailable()).isFalse();
+ }
+
+ @Test
+ public void isAvailable_manualDND_false() {
+ ZenMode manualMode = ZenMode.manualDndMode(new AutomaticZenRule.Builder("Do Not Disturb",
+ Uri.parse("manual"))
+ .setInterruptionFilter(INTERRUPTION_FILTER_PRIORITY)
+ .build(), /* isActive= */ false);
+
+ mController.setZenMode(manualMode);
+ assertThat(mController.isAvailable()).isFalse();
+ }
+
+ @Test
+ public void updateState_customManualRule() {
+ ZenMode mode = new TestModeBuilder()
+ .setConditionId(ZenModeConfig.toCustomManualConditionId())
+ .setPackage(SystemZenRules.PACKAGE_ANDROID)
+ .setType(TYPE_OTHER)
+ .setTriggerDescription("Will not be shown")
+ .build();
+
+ mController.updateState(mPreference, mode);
+
+ assertThat(mPreference.getTitle()).isEqualTo(
+ mContext.getString(R.string.zen_mode_select_schedule));
+ assertThat(mPreference.getSummary()).isNull();
+ // Sets up a click listener to open the dialog.
+ assertThat(mPreference.getOnPreferenceClickListener()).isNotNull();
+ }
+
+ @Test
+ public void onScheduleChosen_updatesMode() {
+ ZenMode originalMode = new TestModeBuilder()
+ .setConditionId(ZenModeConfig.toCustomManualConditionId())
+ .setPackage(SystemZenRules.PACKAGE_ANDROID)
+ .setType(TYPE_OTHER)
+ .setTriggerDescription("")
+ .build();
+ mController.updateZenMode(mPreference, originalMode);
+
+ ZenModeConfig.ScheduleInfo scheduleInfo = new ZenModeConfig.ScheduleInfo();
+ scheduleInfo.days = new int[] { Calendar.MONDAY };
+ scheduleInfo.startHour = 12;
+ scheduleInfo.endHour = 15;
+ Uri scheduleUri = ZenModeConfig.toScheduleConditionId(scheduleInfo);
+
+ mController.mOnScheduleOptionListener.onScheduleSelected(scheduleUri);
+
+ // verify the backend got asked to update the mode to be schedule-based.
+ ArgumentCaptor<ZenMode> captor = ArgumentCaptor.forClass(ZenMode.class);
+ verify(mBackend).updateMode(captor.capture());
+ ZenMode updatedMode = captor.getValue();
+ assertThat(updatedMode.getType()).isEqualTo(TYPE_SCHEDULE_TIME);
+ assertThat(updatedMode.getRule().getConditionId()).isEqualTo(scheduleUri);
+ assertThat(updatedMode.getRule().getTriggerDescription()).isNotEmpty();
+ assertThat(updatedMode.getRule().getOwner()).isEqualTo(
+ ZenModeConfig.getScheduleConditionProvider());
+ }
+}
diff --git a/tests/robotests/src/com/android/settings/notification/modes/ZenModeTriggerCategoryPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/modes/ZenModeTriggerCategoryPreferenceControllerTest.java
new file mode 100644
index 0000000..4510e20
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/notification/modes/ZenModeTriggerCategoryPreferenceControllerTest.java
@@ -0,0 +1,127 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.notification.modes;
+
+import static android.app.AutomaticZenRule.TYPE_OTHER;
+import static android.app.AutomaticZenRule.TYPE_SCHEDULE_CALENDAR;
+import static android.app.NotificationManager.INTERRUPTION_FILTER_PRIORITY;
+import static android.platform.test.flag.junit.SetFlagsRule.DefaultInitValueType.DEVICE_DEFAULT;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import android.app.AutomaticZenRule;
+import android.app.Flags;
+import android.content.Context;
+import android.net.Uri;
+import android.platform.test.annotations.EnableFlags;
+import android.platform.test.flag.junit.SetFlagsRule;
+import android.service.notification.SystemZenRules;
+import android.service.notification.ZenModeConfig;
+
+import androidx.preference.Preference;
+import androidx.preference.PreferenceManager;
+import androidx.preference.PreferenceScreen;
+import androidx.test.core.app.ApplicationProvider;
+
+import com.android.settings.R;
+import com.android.settings.dashboard.DashboardFragment;
+import com.android.settingslib.notification.modes.TestModeBuilder;
+import com.android.settingslib.notification.modes.ZenMode;
+import com.android.settingslib.notification.modes.ZenModesBackend;
+
+import org.junit.Before;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+import org.robolectric.RobolectricTestRunner;
+
+@RunWith(RobolectricTestRunner.class)
+@EnableFlags(Flags.FLAG_MODES_UI)
+public class ZenModeTriggerCategoryPreferenceControllerTest {
+
+ @Rule
+ public final SetFlagsRule mSetFlagsRule = new SetFlagsRule(DEVICE_DEFAULT);
+
+ private ZenModeTriggerCategoryPreferenceController mController;
+
+ private Context mContext;
+ private Preference mPreference;
+ @Mock private ZenModesBackend mBackend;
+ @Mock private DashboardFragment mFragment;
+
+ @Before
+ public void setUp() throws Exception {
+ MockitoAnnotations.initMocks(this);
+ mContext = ApplicationProvider.getApplicationContext();
+
+ PreferenceManager preferenceManager = new PreferenceManager(mContext);
+ PreferenceScreen preferenceScreen = preferenceManager.inflateFromResource(mContext,
+ R.xml.modes_rule_settings, null);
+
+ mController = new ZenModeTriggerCategoryPreferenceController(mContext,
+ "zen_automatic_trigger_category");
+ mPreference = preferenceScreen.findPreference("zen_automatic_trigger_category");
+ }
+
+ @Test
+ public void isAvailable_customManualMode_true() {
+ ZenMode mode = new TestModeBuilder()
+ .setConditionId(ZenModeConfig.toCustomManualConditionId())
+ .setPackage(SystemZenRules.PACKAGE_ANDROID)
+ .setType(TYPE_OTHER)
+ .setTriggerDescription("Will not be shown")
+ .build();
+ mController.setZenMode(mode);
+
+ assertThat(mController.isAvailable()).isTrue();
+ }
+
+ @Test
+ public void isAvailable_systemMode_true() {
+ ZenMode mode = new TestModeBuilder()
+ .setPackage(SystemZenRules.PACKAGE_ANDROID)
+ .setType(TYPE_SCHEDULE_CALENDAR)
+ .build();
+ mController.setZenMode(mode);
+
+ assertThat(mController.isAvailable()).isTrue();
+ }
+
+ @Test
+ public void isAvailable_appProvidedMode_true() {
+ ZenMode mode = new TestModeBuilder()
+ .setPackage("com.some.package")
+ .setType(TYPE_OTHER)
+ .build();
+ mController.setZenMode(mode);
+
+ assertThat(mController.isAvailable()).isTrue();
+ }
+
+ @Test
+ public void isAvailable_manualDND_false() {
+ ZenMode manualMode = ZenMode.manualDndMode(new AutomaticZenRule.Builder("Do Not Disturb",
+ Uri.parse("manual"))
+ .setInterruptionFilter(INTERRUPTION_FILTER_PRIORITY)
+ .build(), /* isActive= */ false);
+
+ mController.setZenMode(manualMode);
+ assertThat(mController.isAvailable()).isFalse();
+ }
+}
diff --git a/tests/robotests/src/com/android/settings/notification/modes/ZenModeTriggerUpdatePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/modes/ZenModeTriggerUpdatePreferenceControllerTest.java
new file mode 100644
index 0000000..80d314c
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/notification/modes/ZenModeTriggerUpdatePreferenceControllerTest.java
@@ -0,0 +1,378 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.notification.modes;
+
+import static android.app.AutomaticZenRule.TYPE_OTHER;
+import static android.app.AutomaticZenRule.TYPE_SCHEDULE_CALENDAR;
+import static android.app.AutomaticZenRule.TYPE_SCHEDULE_TIME;
+import static android.app.NotificationManager.INTERRUPTION_FILTER_PRIORITY;
+import static android.platform.test.flag.junit.SetFlagsRule.DefaultInitValueType.DEVICE_DEFAULT;
+
+import static com.android.settings.notification.modes.CharSequenceTruth.assertThat;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.anyInt;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.never;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+import static org.robolectric.Shadows.shadowOf;
+
+import android.app.AlertDialog;
+import android.app.AutomaticZenRule;
+import android.app.Flags;
+import android.content.Context;
+import android.content.Intent;
+import android.content.pm.ApplicationInfo;
+import android.content.pm.PackageManager;
+import android.net.Uri;
+import android.os.Looper;
+import android.platform.test.annotations.EnableFlags;
+import android.platform.test.flag.junit.SetFlagsRule;
+import android.service.notification.SystemZenRules;
+import android.service.notification.ZenModeConfig;
+import android.widget.TextView;
+
+import androidx.preference.PreferenceManager;
+import androidx.preference.PreferenceScreen;
+import androidx.test.core.app.ApplicationProvider;
+
+import com.android.settings.R;
+import com.android.settings.SettingsActivity;
+import com.android.settingslib.PrimarySwitchPreference;
+import com.android.settingslib.notification.modes.TestModeBuilder;
+import com.android.settingslib.notification.modes.ZenMode;
+import com.android.settingslib.notification.modes.ZenModesBackend;
+
+import org.junit.Before;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.ArgumentCaptor;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+import org.mockito.stubbing.Answer;
+import org.robolectric.RobolectricTestRunner;
+import org.robolectric.shadows.ShadowAlertDialog;
+
+import java.util.Calendar;
+
+@RunWith(RobolectricTestRunner.class)
+@EnableFlags(Flags.FLAG_MODES_UI)
+public class ZenModeTriggerUpdatePreferenceControllerTest {
+ @Rule
+ public final SetFlagsRule mSetFlagsRule = new SetFlagsRule(DEVICE_DEFAULT);
+
+ private ZenModeTriggerUpdatePreferenceController mController;
+
+ private PrimarySwitchPreference mPreference;
+ @Mock private ZenModesBackend mBackend;
+ @Mock private PackageManager mPm;
+ @Mock private ConfigurationActivityHelper mConfigurationActivityHelper;
+
+ @Before
+ public void setUp() throws Exception {
+ MockitoAnnotations.initMocks(this);
+ Context context = ApplicationProvider.getApplicationContext();
+
+ PreferenceManager preferenceManager = new PreferenceManager(context);
+ PreferenceScreen preferenceScreen = preferenceManager.inflateFromResource(context,
+ R.xml.modes_rule_settings, null);
+
+ mController = new ZenModeTriggerUpdatePreferenceController(context,
+ "zen_automatic_trigger_settings", mBackend, mPm,
+ mConfigurationActivityHelper, mock(ZenServiceListing.class));
+
+ mPreference = preferenceScreen.findPreference("zen_automatic_trigger_settings");
+
+ when(mPm.getApplicationInfo(any(), anyInt())).then(
+ (Answer<ApplicationInfo>) invocationOnMock -> {
+ ApplicationInfo appInfo = new ApplicationInfo();
+ appInfo.packageName = invocationOnMock.getArgument(0);
+ appInfo.labelRes = 1; // Whatever, but != 0 so that loadLabel calls PM.getText()
+ return appInfo;
+ });
+ when(mPm.getText(any(), anyInt(), any())).then(
+ (Answer<CharSequence>) invocationOnMock ->
+ "App named " + invocationOnMock.getArgument(0));
+ }
+
+ @Test
+ public void isAvailable_systemModeNotCustomManual_true() {
+ ZenMode mode = new TestModeBuilder()
+ .setPackage(SystemZenRules.PACKAGE_ANDROID)
+ .setType(TYPE_SCHEDULE_CALENDAR)
+ .build();
+ mController.setZenMode(mode);
+
+ assertThat(mController.isAvailable()).isTrue();
+ }
+
+ @Test
+ public void isAvailable_appProvidedMode_true() {
+ ZenMode mode = new TestModeBuilder()
+ .setPackage("com.some.package")
+ .setType(TYPE_OTHER)
+ .build();
+ mController.setZenMode(mode);
+
+ assertThat(mController.isAvailable()).isTrue();
+ }
+
+ @Test
+ public void isAvailable_customManualMode_false() {
+ ZenMode mode = new TestModeBuilder()
+ .setConditionId(ZenModeConfig.toCustomManualConditionId())
+ .setPackage(SystemZenRules.PACKAGE_ANDROID)
+ .setType(TYPE_OTHER)
+ .build();
+ mController.setZenMode(mode);
+
+ assertThat(mController.isAvailable()).isFalse();
+ }
+
+ @Test
+ public void isAvailable_manualDND_false() {
+ ZenMode manualMode = ZenMode.manualDndMode(new AutomaticZenRule.Builder("Do Not Disturb",
+ Uri.parse("manual"))
+ .setInterruptionFilter(INTERRUPTION_FILTER_PRIORITY)
+ .build(), /* isActive= */ false);
+
+ mController.setZenMode(manualMode);
+ assertThat(mController.isAvailable()).isFalse();
+ }
+
+ @Test
+ public void updateState_switchCheckedIfRuleEnabled() {
+ ZenMode zenMode = new TestModeBuilder().setEnabled(false).build();
+
+ // Update preference controller with a zen mode that is not enabled
+ mController.updateZenMode(mPreference, zenMode);
+ assertThat(mPreference.getCheckedState()).isFalse();
+
+ // Now with the rule enabled
+ zenMode.getRule().setEnabled(true);
+ mController.updateZenMode(mPreference, zenMode);
+ assertThat(mPreference.getCheckedState()).isTrue();
+ }
+
+ @Test
+ public void onPreferenceChange_toggleOn_enablesModeAfterConfirmation() {
+ // Start with a disabled mode
+ ZenMode zenMode = new TestModeBuilder().setName("The mode").setEnabled(false).build();
+ mController.updateZenMode(mPreference, zenMode);
+
+ // Flip the switch
+ mPreference.callChangeListener(true);
+ verify(mBackend, never()).updateMode(any());
+
+ AlertDialog confirmDialog = ShadowAlertDialog.getLatestAlertDialog();
+ assertThat(confirmDialog).isNotNull();
+ assertThat(confirmDialog.isShowing()).isTrue();
+ assertThat(((TextView) confirmDialog.findViewById(com.android.internal.R.id.alertTitle))
+ .getText()).isEqualTo("Enable The mode?");
+
+ // Oh wait, I forgot to confirm! Let's do that
+ confirmDialog.getButton(AlertDialog.BUTTON_POSITIVE).performClick();
+ shadowOf(Looper.getMainLooper()).idle();
+
+ // Verify the backend got asked to update the mode to be enabled
+ ArgumentCaptor<ZenMode> captor = ArgumentCaptor.forClass(ZenMode.class);
+ verify(mBackend).updateMode(captor.capture());
+ assertThat(captor.getValue().getRule().isEnabled()).isTrue();
+ assertThat(ShadowAlertDialog.getLatestAlertDialog().isShowing()).isFalse();
+ }
+
+ @Test
+ public void onPreferenceChange_toggleOff_disablesModeAfterConfirmation() {
+ // Start with an enabled mode
+ ZenMode zenMode = new TestModeBuilder().setName("The mode").setEnabled(true).build();
+ mController.updateZenMode(mPreference, zenMode);
+
+ // Flip the switch
+ mPreference.callChangeListener(false);
+ verify(mBackend, never()).updateMode(any());
+
+ AlertDialog confirmDialog = ShadowAlertDialog.getLatestAlertDialog();
+ assertThat(confirmDialog).isNotNull();
+ assertThat(confirmDialog.isShowing()).isTrue();
+ assertThat(((TextView) confirmDialog.findViewById(com.android.internal.R.id.alertTitle))
+ .getText()).isEqualTo("Disable The mode?");
+
+ // Oh wait, I forgot to confirm! Let's do that
+ confirmDialog.getButton(AlertDialog.BUTTON_POSITIVE).performClick();
+ shadowOf(Looper.getMainLooper()).idle();
+
+ // Verify the backend got asked to update the mode to be disabled
+ ArgumentCaptor<ZenMode> captor = ArgumentCaptor.forClass(ZenMode.class);
+ verify(mBackend).updateMode(captor.capture());
+ assertThat(captor.getValue().getRule().isEnabled()).isFalse();
+ assertThat(ShadowAlertDialog.getLatestAlertDialog().isShowing()).isFalse();
+ }
+
+ @Test
+ public void onPreferenceChange_ifPressCancelButton_doesNotUpdateMode() {
+ // Start with a disabled mode
+ ZenMode zenMode = new TestModeBuilder().setEnabled(false).build();
+ mController.updateZenMode(mPreference, zenMode);
+
+ // Flip the switch, then have second thoughts about it
+ mPreference.callChangeListener(true);
+ ShadowAlertDialog.getLatestAlertDialog()
+ .getButton(AlertDialog.BUTTON_NEGATIVE).performClick();
+ shadowOf(Looper.getMainLooper()).idle();
+
+ // Verify nothing changed, and the switch shows the correct (pre-change) value.
+ verify(mBackend, never()).updateMode(any());
+ assertThat(mPreference.isChecked()).isFalse();
+ assertThat(ShadowAlertDialog.getLatestAlertDialog().isShowing()).isFalse();
+ }
+
+ @Test
+ public void onPreferenceChange_ifExitingDialog_doesNotUpdateMode() {
+ // Start with a disabled mode
+ ZenMode zenMode = new TestModeBuilder().setEnabled(false).build();
+ mController.updateZenMode(mPreference, zenMode);
+
+ // Flip the switch, but close the dialog without selecting either button.
+ mPreference.callChangeListener(true);
+ ShadowAlertDialog.getLatestAlertDialog().dismiss();
+ shadowOf(Looper.getMainLooper()).idle();
+
+ // Verify nothing changed, and the switch shows the correct (pre-change) value.
+ verify(mBackend, never()).updateMode(any());
+ assertThat(mPreference.isChecked()).isFalse();
+ assertThat(ShadowAlertDialog.getLatestAlertDialog().isShowing()).isFalse();
+ }
+
+ @Test
+ public void updateState_scheduleCalendarRule() {
+ ZenModeConfig.EventInfo eventInfo = new ZenModeConfig.EventInfo();
+ eventInfo.calendarId = 1L;
+ eventInfo.calName = "My events";
+ ZenMode mode = new TestModeBuilder()
+ .setPackage(SystemZenRules.PACKAGE_ANDROID)
+ .setConditionId(ZenModeConfig.toEventConditionId(eventInfo))
+ .setType(TYPE_SCHEDULE_CALENDAR)
+ .setTriggerDescription("My events")
+ .build();
+
+ mController.updateState(mPreference, mode);
+
+ assertThat(mPreference.isVisible()).isTrue();
+ assertThat(mPreference.getTitle()).isEqualTo("Calendar events");
+ assertThat(mPreference.getSummary()).isEqualTo("My events");
+ // Destination as written into the intent by SubSettingLauncher
+ assertThat(
+ mPreference.getIntent().getStringExtra(SettingsActivity.EXTRA_SHOW_FRAGMENT))
+ .isEqualTo(ZenModeSetCalendarFragment.class.getName());
+ }
+
+ @Test
+ public void updateState_scheduleTimeRule() {
+ ZenModeConfig.ScheduleInfo scheduleInfo = new ZenModeConfig.ScheduleInfo();
+ scheduleInfo.days = new int[]{Calendar.MONDAY, Calendar.TUESDAY, Calendar.THURSDAY};
+ scheduleInfo.startHour = 1;
+ scheduleInfo.endHour = 15;
+ ZenMode mode = new TestModeBuilder()
+ .setConditionId(ZenModeConfig.toScheduleConditionId(scheduleInfo))
+ .setPackage(SystemZenRules.PACKAGE_ANDROID)
+ .setType(TYPE_SCHEDULE_TIME)
+ .setTriggerDescription("some schedule")
+ .build();
+
+ mController.updateState(mPreference, mode);
+
+ assertThat(mPreference.isVisible()).isTrue();
+ assertThat(mPreference.getTitle()).isEqualTo("1:00 AM - 3:00 PM");
+ assertThat(mPreference.getSummary()).isEqualTo("Mon - Tue, Thu");
+ // Destination as written into the intent by SubSettingLauncher
+ assertThat(
+ mPreference.getIntent().getStringExtra(SettingsActivity.EXTRA_SHOW_FRAGMENT))
+ .isEqualTo(ZenModeSetScheduleFragment.class.getName());
+ }
+
+ @Test
+ public void updateState_appWithConfigActivity_showsLinkToConfigActivity() {
+ ZenMode mode = new TestModeBuilder()
+ .setPackage("some.package")
+ .setTriggerDescription("When The Music's Over")
+ .build();
+ Intent configurationIntent = new Intent("configure the mode");
+ when(mConfigurationActivityHelper.getConfigurationActivityIntentForMode(any(), any()))
+ .thenReturn(configurationIntent);
+
+ mController.updateState(mPreference, mode);
+
+ assertThat(mPreference.isVisible()).isTrue();
+ assertThat(mPreference.getTitle()).isEqualTo("App settings");
+ assertThat(mPreference.getSummary()).isEqualTo("When The Music's Over");
+ assertThat(mPreference.getIntent()).isEqualTo(configurationIntent);
+ }
+
+ @Test
+ public void updateState_appWithoutConfigActivity_showsWithoutLinkToConfigActivity() {
+ ZenMode mode = new TestModeBuilder()
+ .setPackage("some.package")
+ .setTriggerDescription("When the saints go marching in")
+ .build();
+ when(mConfigurationActivityHelper.getConfigurationActivityIntentForMode(any(), any()))
+ .thenReturn(null);
+
+ mController.updateState(mPreference, mode);
+
+ assertThat(mPreference.isVisible()).isTrue();
+ assertThat(mPreference.getTitle()).isEqualTo("App settings");
+ assertThat(mPreference.getSummary()).isEqualTo("When the saints go marching in");
+ assertThat(mPreference.getIntent()).isNull();
+ }
+
+ @Test
+ public void updateState_appWithoutTriggerDescriptionWithConfigActivity_showsAppNameInSummary() {
+ ZenMode mode = new TestModeBuilder()
+ .setPackage("some.package")
+ .build();
+ Intent configurationIntent = new Intent("configure the mode");
+ when(mConfigurationActivityHelper.getConfigurationActivityIntentForMode(any(), any()))
+ .thenReturn(configurationIntent);
+ when(mPm.getText(any(), anyInt(), any())).thenReturn("The App Name");
+
+ mController.updateState(mPreference, mode);
+
+ assertThat(mPreference.isVisible()).isTrue();
+ assertThat(mPreference.getTitle()).isEqualTo("App settings");
+ assertThat(mPreference.getSummary()).isEqualTo("Info and settings in The App Name");
+ }
+
+ @Test
+ public void updateState_appWithoutTriggerDescriptionNorConfigActivity_showsAppNameInSummary() {
+ ZenMode mode = new TestModeBuilder()
+ .setPackage("some.package")
+ .build();
+ when(mConfigurationActivityHelper.getConfigurationActivityIntentForMode(any(), any()))
+ .thenReturn(null);
+ when(mPm.getText(any(), anyInt(), any())).thenReturn("The App Name");
+
+ mController.updateState(mPreference, mode);
+
+ assertThat(mPreference.isVisible()).isTrue();
+ assertThat(mPreference.getTitle()).isEqualTo("App settings");
+ assertThat(mPreference.getSummary()).isEqualTo("Managed by The App Name");
+ }
+}
diff --git a/tests/robotests/src/com/android/settings/notification/modes/ZenModesListAddModePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/modes/ZenModesListAddModePreferenceControllerTest.java
index fe530c1..2db9171 100644
--- a/tests/robotests/src/com/android/settings/notification/modes/ZenModesListAddModePreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/modes/ZenModesListAddModePreferenceControllerTest.java
@@ -27,6 +27,7 @@
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
+import android.app.Flags;
import android.app.NotificationManager;
import android.content.ComponentName;
import android.content.Context;
@@ -37,6 +38,8 @@
import android.graphics.drawable.ColorDrawable;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
+import android.platform.test.annotations.EnableFlags;
+import android.platform.test.flag.junit.SetFlagsRule;
import com.android.settings.notification.modes.ZenModesListAddModePreferenceController.ModeType;
@@ -44,6 +47,7 @@
import com.google.common.util.concurrent.MoreExecutors;
import org.junit.Before;
+import org.junit.Rule;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.ArgumentCaptor;
@@ -58,8 +62,12 @@
import java.util.function.Function;
@RunWith(RobolectricTestRunner.class)
+@EnableFlags(Flags.FLAG_MODES_UI)
public class ZenModesListAddModePreferenceControllerTest {
+ @Rule
+ public final SetFlagsRule mSetFlagsRule = new SetFlagsRule();
+
private Context mContext;
private ZenModesListAddModePreferenceController mController;
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 e105641..5bf7f05 100644
--- a/tests/robotests/src/com/android/settings/notification/modes/ZenModesListFragmentTest.java
+++ b/tests/robotests/src/com/android/settings/notification/modes/ZenModesListFragmentTest.java
@@ -27,10 +27,13 @@
import static org.mockito.Mockito.when;
import static org.robolectric.Shadows.shadowOf;
+import android.app.Flags;
import android.content.ComponentName;
import android.content.Intent;
import android.graphics.drawable.ColorDrawable;
import android.os.Bundle;
+import android.platform.test.annotations.EnableFlags;
+import android.platform.test.flag.junit.SetFlagsRule;
import androidx.fragment.app.FragmentActivity;
import androidx.fragment.app.testing.EmptyFragmentActivity;
@@ -53,8 +56,12 @@
import org.robolectric.shadows.ShadowActivity.IntentForResult;
@RunWith(RobolectricTestRunner.class)
+@EnableFlags(Flags.FLAG_MODES_UI)
public class ZenModesListFragmentTest {
+ @Rule
+ public final SetFlagsRule mSetFlagsRule = new SetFlagsRule();
+
private static final ModeType APP_PROVIDED_MODE_TYPE = new ModeType("Mode", new ColorDrawable(),
"Details", new Intent().setComponent(new ComponentName("pkg", "configActivity")));
@@ -77,14 +84,14 @@
@Before
public void setUp() {
MockitoAnnotations.initMocks(this);
+ ZenModesBackend.setInstance(mBackend);
+
mFragment = new ZenModesListFragment();
mActivityScenario.getScenario().onActivity(activity -> {
activity.getSupportFragmentManager().beginTransaction()
.add(mFragment, "tag").commitNow();
mActivity = activity;
});
-
- mFragment.setBackend(mBackend); // after onAttach()
}
@Test
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 dafcee7..1c8e96e 100644
--- a/tests/robotests/src/com/android/settings/notification/modes/ZenModesListItemPreferenceTest.java
+++ b/tests/robotests/src/com/android/settings/notification/modes/ZenModesListItemPreferenceTest.java
@@ -18,13 +18,16 @@
import static com.google.common.truth.Truth.assertThat;
+import android.app.Flags;
import android.content.Context;
-import android.service.notification.ZenModeConfig;
+import android.platform.test.annotations.EnableFlags;
+import android.platform.test.flag.junit.SetFlagsRule;
import com.android.settingslib.notification.modes.TestModeBuilder;
import com.android.settingslib.notification.modes.ZenMode;
import org.junit.Before;
+import org.junit.Rule;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.MockitoAnnotations;
@@ -33,7 +36,10 @@
import org.robolectric.shadows.ShadowLooper;
@RunWith(RobolectricTestRunner.class)
+@EnableFlags(Flags.FLAG_MODES_UI)
public class ZenModesListItemPreferenceTest {
+ @Rule
+ public final SetFlagsRule mSetFlagsRule = new SetFlagsRule();
private Context mContext;
@@ -87,14 +93,10 @@
@Test
public void setZenMode_modeDisabledByApp() {
- ZenModeConfig.ZenRule configRule = new ZenModeConfig.ZenRule();
- configRule.enabled = false;
- configRule.disabledOrigin = ZenModeConfig.UPDATE_ORIGIN_APP;
ZenMode mode = new TestModeBuilder()
.setName("Mode disabled by app")
.setTriggerDescription("When the cat's away")
- .setEnabled(false)
- .setConfigZenRule(configRule)
+ .setEnabled(false, /* byUser= */ false)
.build();
ZenModesListItemPreference preference = new ZenModesListItemPreference(mContext, mode);
@@ -107,14 +109,10 @@
@Test
public void setZenMode_modeDisabledByUser() {
- ZenModeConfig.ZenRule configRule = new ZenModeConfig.ZenRule();
- configRule.enabled = false;
- configRule.disabledOrigin = ZenModeConfig.UPDATE_ORIGIN_USER;
ZenMode mode = new TestModeBuilder()
.setName("Mode disabled by user")
.setTriggerDescription("When the Levee Breaks")
- .setEnabled(false)
- .setConfigZenRule(configRule)
+ .setEnabled(false, /* byUser= */ true)
.build();
ZenModesListItemPreference preference = new ZenModesListItemPreference(mContext, mode);
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 8d551e5..e7d42d8 100644
--- a/tests/robotests/src/com/android/settings/notification/zen/ZenModePreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/zen/ZenModePreferenceControllerTest.java
@@ -19,10 +19,10 @@
import static android.platform.test.flag.junit.SetFlagsRule.DefaultInitValueType.DEVICE_DEFAULT;
import static com.android.settings.core.BasePreferenceController.AVAILABLE_UNSEARCHABLE;
+import static com.android.settings.core.BasePreferenceController.UNSUPPORTED_ON_DEVICE;
import static com.google.common.truth.Truth.assertThat;
-import static org.mockito.ArgumentMatchers.anyInt;
import static org.mockito.ArgumentMatchers.anyString;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.never;
@@ -40,8 +40,6 @@
import androidx.preference.Preference;
-import com.android.settings.notification.modes.ZenModesListFragment;
-
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
@@ -85,7 +83,14 @@
}
@Test
- public void isAvailable_unsearchable() {
+ @EnableFlags(Flags.FLAG_MODES_UI)
+ public void isAvailable_modesUi_unavailable() {
+ assertThat(mController.getAvailabilityStatus()).isEqualTo(UNSUPPORTED_ON_DEVICE);
+ }
+
+ @Test
+ @DisableFlags(Flags.FLAG_MODES_UI)
+ public void isAvailable_notModesUi_unsearchable() {
assertThat(mController.getAvailabilityStatus()).isEqualTo(AVAILABLE_UNSEARCHABLE);
}
diff --git a/tests/robotests/src/com/android/settings/password/ChooseLockGenericTest.java b/tests/robotests/src/com/android/settings/password/ChooseLockGenericTest.java
index e7e0b92..204bfe5 100644
--- a/tests/robotests/src/com/android/settings/password/ChooseLockGenericTest.java
+++ b/tests/robotests/src/com/android/settings/password/ChooseLockGenericTest.java
@@ -50,9 +50,13 @@
import android.app.admin.PasswordPolicy;
import android.content.Context;
import android.content.Intent;
+import android.hardware.biometrics.BiometricManager;
+import android.hardware.biometrics.Flags;
import android.hardware.face.FaceManager;
import android.hardware.fingerprint.FingerprintManager;
import android.os.Bundle;
+import android.platform.test.annotations.EnableFlags;
+import android.platform.test.flag.junit.SetFlagsRule;
import android.provider.Settings.Global;
import android.widget.TextView;
@@ -86,9 +90,13 @@
import org.mockito.junit.MockitoRule;
import org.robolectric.Robolectric;
import org.robolectric.RobolectricTestRunner;
+import org.robolectric.Shadows;
import org.robolectric.android.controller.ActivityController;
import org.robolectric.annotation.Config;
+import org.robolectric.shadow.api.Shadow;
+import org.robolectric.shadows.ShadowActivity;
import org.robolectric.shadows.ShadowApplication;
+import org.robolectric.shadows.ShadowBiometricManager;
@RunWith(RobolectricTestRunner.class)
@Config(
@@ -98,18 +106,23 @@
ShadowStorageManager.class,
ShadowUserManager.class,
ShadowUtils.class,
- ShadowInteractionJankMonitor.class
+ ShadowInteractionJankMonitor.class,
+ ShadowBiometricManager.class
})
@Ignore("b/179136903: Tests failed with collapsing toolbar, plan to figure out root cause later.")
public class ChooseLockGenericTest {
@Rule
public final MockitoRule mMockitoRule = MockitoJUnit.rule();
+ @Rule
+ public final SetFlagsRule mSetFlagsRule = new SetFlagsRule();
private ActivityController<ChooseLockGeneric> mActivityController;
private FakeFeatureFactory mFakeFeatureFactory;
private ChooseLockGenericFragment mFragment;
private ChooseLockGeneric mActivity;
+ private ShadowBiometricManager mShadowBiometricManager;
+ private ShadowActivity mShadowActivity;
@Mock
private FingerprintManager mFingerprintManager;
@Mock
@@ -125,6 +138,7 @@
.postCreate(null)
.resume()
.get();
+ mShadowActivity = Shadows.shadowOf(mActivity);
Global.putInt(application.getContentResolver(), Global.DEVICE_PROVISIONED, 1);
mFragment = new ChooseLockGenericFragment();
@@ -295,6 +309,21 @@
}
@Test
+ @EnableFlags(Flags.FLAG_MANDATORY_BIOMETRICS)
+ public void onActivityResult_requestcode100_shouldLaunchBiometricPrompt() {
+ initActivity(null);
+ mShadowBiometricManager.setCanAuthenticate(true);
+
+ mFragment.onActivityResult(
+ ChooseLockGenericFragment.CONFIRM_EXISTING_REQUEST,
+ Activity.RESULT_OK, null /* data */);
+
+ assertThat(mActivity.isFinishing()).isFalse();
+ assertThat(mShadowActivity.getNextStartedActivity().getComponent().getClassName())
+ .isEqualTo(ConfirmDeviceCredentialActivity.class.getName());
+ }
+
+ @Test
public void onActivityResult_requestcode102_shouldFinish() {
initActivity(null);
@@ -337,6 +366,17 @@
}
@Test
+ public void onActivityResult_requestcode105_shouldNotFinish() {
+ initActivity(null);
+
+ mFragment.onActivityResult(
+ ChooseLockGenericFragment.BIOMETRIC_AUTH_REQUEST, Activity.RESULT_OK,
+ null /* data */);
+
+ assertThat(mActivity.isFinishing()).isFalse();
+ }
+
+ @Test
public void securedScreenLock_notChangingConfig_notWaitForConfirmation_onStopFinishSelf() {
Intent intent = new Intent().putExtra(
LockPatternUtils.PASSWORD_TYPE_KEY, DevicePolicyManager.PASSWORD_QUALITY_NUMERIC);
@@ -676,6 +716,13 @@
mActivity = Robolectric.buildActivity(ChooseLockGeneric.InternalActivity.class, intent)
.create().start().postCreate(null).resume().get();
mActivity.getSupportFragmentManager().beginTransaction().add(mFragment, null).commitNow();
+ mShadowBiometricManager = Shadow.extract(mFragment.getContext().getSystemService(
+ BiometricManager.class));
+ //TODO(b/352603684): Should be Authenticators.MANDATORY_BIOMETRICS,
+ // but it is not supported by ShadowBiometricManager
+ mShadowBiometricManager.setAuthenticatorType(
+ BiometricManager.Authenticators.BIOMETRIC_STRONG);
+ mShadowBiometricManager.setCanAuthenticate(false);
}
private static String capitalize(final String input) {
diff --git a/tests/robotests/src/com/android/settings/password/ChooseLockPasswordTest.java b/tests/robotests/src/com/android/settings/password/ChooseLockPasswordTest.java
index dea936d..1e81ec0 100644
--- a/tests/robotests/src/com/android/settings/password/ChooseLockPasswordTest.java
+++ b/tests/robotests/src/com/android/settings/password/ChooseLockPasswordTest.java
@@ -36,19 +36,25 @@
import static com.google.common.truth.Truth.assertWithMessage;
import static org.robolectric.RuntimeEnvironment.application;
+import static org.robolectric.Shadows.shadowOf;
+import android.annotation.ColorInt;
import android.app.admin.DevicePolicyManager;
import android.app.admin.DevicePolicyManager.PasswordComplexity;
import android.app.admin.PasswordMetrics;
import android.app.admin.PasswordPolicy;
import android.content.Intent;
+import android.os.Looper;
import android.os.UserHandle;
import android.view.View;
import android.widget.CheckBox;
import android.widget.TextView;
+import androidx.recyclerview.widget.RecyclerView;
+
import com.android.internal.widget.LockscreenCredential;
import com.android.settings.R;
+import com.android.settings.Utils;
import com.android.settings.password.ChooseLockPassword.ChooseLockPasswordFragment;
import com.android.settings.password.ChooseLockPassword.IntentBuilder;
import com.android.settings.testutils.shadow.SettingsShadowResources;
@@ -515,6 +521,52 @@
assertThat(pinAutoConfirmOption.isChecked()).isFalse();
}
+ @Test
+ public void defaultMessage_shouldBeInTextColorPrimary() {
+ final ChooseLockPassword passwordActivity = setupActivityWithPinTypeAndDefaultPolicy();
+
+ final ChooseLockPasswordFragment fragment = getChooseLockPasswordFragment(passwordActivity);
+ final ScrollToParentEditText passwordEntry = passwordActivity.findViewById(R.id.password_entry);
+ final RecyclerView view = (RecyclerView) fragment.getPasswordRequirementsView();
+ @ColorInt final int textColorPrimary = Utils.getColorAttrDefaultColor(passwordActivity,
+ android.R.attr.textColorPrimary);
+
+ passwordEntry.setText("");
+ fragment.updateUi();
+ shadowOf(Looper.getMainLooper()).idle();
+ TextView textView = (TextView)view.getLayoutManager().findViewByPosition(0);
+
+ assertThat(textView.getCurrentTextColor()).isEqualTo(textColorPrimary);
+ }
+
+ @Test
+ public void errorMessage_shouldBeColorError() {
+ final ChooseLockPassword passwordActivity = setupActivityWithPinTypeAndDefaultPolicy();
+
+ final ChooseLockPasswordFragment fragment = getChooseLockPasswordFragment(passwordActivity);
+ final ScrollToParentEditText passwordEntry = passwordActivity.findViewById(R.id.password_entry);
+ final RecyclerView view = (RecyclerView) fragment.getPasswordRequirementsView();
+ @ColorInt final int textColorPrimary = Utils.getColorAttrDefaultColor(passwordActivity,
+ android.R.attr.textColorPrimary);
+ @ColorInt final int colorError = Utils.getColorAttrDefaultColor(passwordActivity,
+ android.R.attr.colorError);
+
+ passwordEntry.setText("");
+ fragment.updateUi();
+ shadowOf(Looper.getMainLooper()).idle();
+ TextView textView = (TextView)view.getLayoutManager().findViewByPosition(0);
+
+ assertThat(textView.getCurrentTextColor()).isEqualTo(textColorPrimary);
+
+ // Password must be fewer than 17 digits, so this should give an error.
+ passwordEntry.setText("a".repeat(17));
+ fragment.updateUi();
+ shadowOf(Looper.getMainLooper()).idle();
+ textView = (TextView)view.getLayoutManager().findViewByPosition(0);
+
+ assertThat(textView.getCurrentTextColor()).isEqualTo(colorError);
+ }
+
private ChooseLockPassword setupActivityWithPinTypeAndDefaultPolicy() {
PasswordPolicy policy = new PasswordPolicy();
policy.quality = PASSWORD_QUALITY_UNSPECIFIED;
@@ -543,7 +595,7 @@
.setForFingerprint(addFingerprintExtra)
.build());
ChooseLockPasswordFragment fragment = getChooseLockPasswordFragment(passwordActivity);
- return Shadows.shadowOf(((GlifLayout) fragment.getView()).getIcon());
+ return shadowOf(((GlifLayout) fragment.getView()).getIcon());
}
private void assertPasswordValidationResult(PasswordMetrics minMetrics,
diff --git a/tests/robotests/src/com/android/settings/password/ConfirmLockPasswordTest.java b/tests/robotests/src/com/android/settings/password/ConfirmLockPasswordTest.java
index 4ac375f..9e8535a 100644
--- a/tests/robotests/src/com/android/settings/password/ConfirmLockPasswordTest.java
+++ b/tests/robotests/src/com/android/settings/password/ConfirmLockPasswordTest.java
@@ -16,6 +16,8 @@
package com.android.settings.password;
+import static android.content.pm.PackageManager.COMPONENT_ENABLED_STATE_ENABLED;
+
import static com.android.settings.password.ConfirmLockPassword.ConfirmLockPasswordFragment;
import static com.android.settings.password.TestUtils.GUESS_INVALID_RESULT;
import static com.android.settings.password.TestUtils.GUESS_VALID_RESULT;
@@ -42,6 +44,7 @@
import android.Manifest;
import android.app.KeyguardManager;
import android.app.admin.ManagedSubscriptionsPolicy;
+import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.os.UserHandle;
@@ -55,6 +58,7 @@
import com.android.internal.widget.LockPatternUtils;
import com.android.settings.R;
+import com.android.settings.SetupRedactionInterstitial;
import com.android.settings.testutils.shadow.ShadowDevicePolicyManager;
import com.android.settings.testutils.shadow.ShadowLockPatternUtils;
import com.android.settings.testutils.shadow.ShadowUserManager;
@@ -305,6 +309,32 @@
assertThat(mLockPatternUtils.isSecure(fragment.mEffectiveUserId)).isFalse();
}
+ @Test
+ public void onChosenLockSaveFinished_setsRedactionInterstitial() throws Exception {
+ // This test verifies that the RedactionInterstitial is available. This is the screen
+ // responsible for allowing the user to show sensitive lockscreen content. This
+ // also allows the Settings tile for RedactionInterstitial to appear in the "anything else"
+ // page during SUW.
+ final ConfirmDeviceCredentialBaseActivity activity =
+ buildConfirmDeviceCredentialBaseActivity(
+ ConfirmLockPassword.class,
+ createRemoteLockscreenValidationIntent(
+ KeyguardManager.PASSWORD, VALID_REMAINING_ATTEMPTS));
+ final ConfirmLockPasswordFragment fragment =
+ (ConfirmLockPasswordFragment) getConfirmDeviceCredentialBaseFragment(activity);
+ final Intent intent = new Intent();
+ intent.putExtra(ChooseLockSettingsHelper.EXTRA_KEY_GK_PW_HANDLE, 1L);
+
+ fragment.onChosenLockSaveFinished(true, intent);
+
+ final ComponentName componentName =
+ new ComponentName(mContext, SetupRedactionInterstitial.class);
+ final int isEnabled = mContext.getPackageManager()
+ .getComponentEnabledSetting(componentName);
+
+ assertThat(isEnabled).isEqualTo(COMPONENT_ENABLED_STATE_ENABLED);
+ }
+
private void triggerHandleNext(
ConfirmLockPasswordFragment fragment, ImeAwareEditText passwordEntry) {
passwordEntry.setText("Password");
diff --git a/tests/robotests/src/com/android/settings/password/ConfirmLockPatternTest.java b/tests/robotests/src/com/android/settings/password/ConfirmLockPatternTest.java
index 04a76b8..9e7ec06 100644
--- a/tests/robotests/src/com/android/settings/password/ConfirmLockPatternTest.java
+++ b/tests/robotests/src/com/android/settings/password/ConfirmLockPatternTest.java
@@ -16,6 +16,9 @@
package com.android.settings.password;
+import static android.content.pm.PackageManager.COMPONENT_ENABLED_STATE_ENABLED;
+
+import static com.android.settings.password.ConfirmLockPattern.ConfirmLockPatternFragment;
import static com.android.settings.password.TestUtils.GUESS_INVALID_RESULT;
import static com.android.settings.password.TestUtils.GUESS_VALID_RESULT;
import static com.android.settings.password.TestUtils.LOCKOUT_RESULT;
@@ -39,6 +42,7 @@
import android.Manifest;
import android.app.KeyguardManager;
import android.app.admin.ManagedSubscriptionsPolicy;
+import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.os.UserHandle;
@@ -51,6 +55,7 @@
import com.android.internal.widget.LockPatternUtils;
import com.android.internal.widget.LockPatternView;
import com.android.settings.R;
+import com.android.settings.SetupRedactionInterstitial;
import com.android.settings.testutils.shadow.ShadowDevicePolicyManager;
import com.android.settings.testutils.shadow.ShadowLockPatternUtils;
import com.android.settings.testutils.shadow.ShadowUserManager;
@@ -284,6 +289,32 @@
assertThat(mLockPatternUtils.isSecure(fragment.mEffectiveUserId)).isFalse();
}
+ @Test
+ public void onChosenLockSaveFinished_setsRedactionInterstitial() throws Exception {
+ // This test verifies that the RedactionInterstitial is available. This is the screen
+ // responsible for allowing the user to show sensitive lockscreen content. This
+ // also allows the Settings tile for RedactionInterstitial to appear in the "anything else"
+ // page during SUW.
+ final ConfirmDeviceCredentialBaseActivity activity =
+ buildConfirmDeviceCredentialBaseActivity(
+ ConfirmLockPattern.class,
+ createRemoteLockscreenValidationIntent(
+ KeyguardManager.PATTERN, VALID_REMAINING_ATTEMPTS));
+ final ConfirmLockPatternFragment fragment = (ConfirmLockPatternFragment)
+ getConfirmDeviceCredentialBaseFragment(activity);
+ final Intent intent = new Intent();
+ intent.putExtra(ChooseLockSettingsHelper.EXTRA_KEY_GK_PW_HANDLE, 1L);
+
+ fragment.onChosenLockSaveFinished(true, intent);
+
+ final ComponentName componentName =
+ new ComponentName(mContext, SetupRedactionInterstitial.class);
+ final int isEnabled = mContext.getPackageManager()
+ .getComponentEnabledSetting(componentName);
+
+ assertThat(isEnabled).isEqualTo(COMPONENT_ENABLED_STATE_ENABLED);
+ }
+
private void triggerOnPatternDetected(LockPatternView lockPatternView) {
List<LockPatternView.Cell> pattern = List.of(LockPatternView.Cell.of(0, 0));
lockPatternView.setPattern(LockPatternView.DisplayMode.Correct, pattern);
diff --git a/tests/robotests/src/com/android/settings/slices/SettingsSliceProviderTest.java b/tests/robotests/src/com/android/settings/slices/SettingsSliceProviderTest.java
index 84c8586..edb310e 100644
--- a/tests/robotests/src/com/android/settings/slices/SettingsSliceProviderTest.java
+++ b/tests/robotests/src/com/android/settings/slices/SettingsSliceProviderTest.java
@@ -30,7 +30,6 @@
import static org.mockito.ArgumentMatchers.anyString;
import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Mockito.doReturn;
-import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.never;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.verify;
@@ -131,12 +130,18 @@
CustomSliceRegistry.LOCATION_SLICE_URI
);
- private static final List<Uri> SPECIAL_CASE_OEM_URIS = Arrays.asList(
- CustomSliceRegistry.ZEN_MODE_SLICE_URI,
- CustomSliceRegistry.FLASHLIGHT_SLICE_URI,
- CustomSliceRegistry.MOBILE_DATA_SLICE_URI,
- CustomSliceRegistry.WIFI_CALLING_URI
- );
+ private static final List<Uri> SPECIAL_CASE_OEM_URIS = android.app.Flags.modesUi()
+ ? Arrays.asList(
+ CustomSliceRegistry.FLASHLIGHT_SLICE_URI,
+ CustomSliceRegistry.MOBILE_DATA_SLICE_URI,
+ CustomSliceRegistry.WIFI_CALLING_URI
+ ) :
+ Arrays.asList(
+ CustomSliceRegistry.ZEN_MODE_SLICE_URI,
+ CustomSliceRegistry.FLASHLIGHT_SLICE_URI,
+ CustomSliceRegistry.MOBILE_DATA_SLICE_URI,
+ CustomSliceRegistry.WIFI_CALLING_URI
+ );
@Before
public void setUp() {
diff --git a/tests/robotests/src/com/android/settings/testutils/AccessibilityTestUtils.java b/tests/robotests/src/com/android/settings/testutils/AccessibilityTestUtils.java
index 5d895d9..4d69821 100644
--- a/tests/robotests/src/com/android/settings/testutils/AccessibilityTestUtils.java
+++ b/tests/robotests/src/com/android/settings/testutils/AccessibilityTestUtils.java
@@ -20,6 +20,8 @@
import static android.view.WindowManagerPolicyConstants.NAV_BAR_MODE_3BUTTON;
import static android.view.WindowManagerPolicyConstants.NAV_BAR_MODE_GESTURAL;
+import static com.google.common.truth.Truth.assertThat;
+
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
@@ -46,20 +48,15 @@
public static void setSoftwareShortcutMode(
Context context, boolean gestureNavEnabled, boolean floatingButtonEnabled) {
- int mode = floatingButtonEnabled ? ACCESSIBILITY_BUTTON_MODE_FLOATING_MENU : -1;
+ int buttonMode = floatingButtonEnabled ? ACCESSIBILITY_BUTTON_MODE_FLOATING_MENU : -1;
+ int navMode = gestureNavEnabled ? NAV_BAR_MODE_GESTURAL : NAV_BAR_MODE_3BUTTON;
Settings.Secure.putInt(context.getContentResolver(),
- Settings.Secure.ACCESSIBILITY_BUTTON_MODE, mode);
-
- if (gestureNavEnabled) {
- SettingsShadowResources.overrideResource(
- com.android.internal.R.integer.config_navBarInteractionMode,
- NAV_BAR_MODE_GESTURAL);
- } else {
- SettingsShadowResources.overrideResource(
- com.android.internal.R.integer.config_navBarInteractionMode,
- NAV_BAR_MODE_3BUTTON);
- }
+ Settings.Secure.ACCESSIBILITY_BUTTON_MODE, buttonMode);
+ SettingsShadowResources.overrideResource(
+ com.android.internal.R.integer.config_navBarInteractionMode, navMode);
+ assertThat(context.getResources().getInteger(
+ com.android.internal.R.integer.config_navBarInteractionMode)).isEqualTo(navMode);
}
/**
diff --git a/tests/robotests/src/com/android/settings/testutils/BatteryTestUtils.java b/tests/robotests/src/com/android/settings/testutils/BatteryTestUtils.java
index 915231f..951f2f0 100644
--- a/tests/robotests/src/com/android/settings/testutils/BatteryTestUtils.java
+++ b/tests/robotests/src/com/android/settings/testutils/BatteryTestUtils.java
@@ -43,6 +43,8 @@
import com.android.settings.fuelgauge.batteryusage.WarningItemInfo;
import com.android.settings.fuelgauge.batteryusage.db.AppUsageEventDao;
import com.android.settings.fuelgauge.batteryusage.db.AppUsageEventEntity;
+import com.android.settings.fuelgauge.batteryusage.db.BatteryEventDao;
+import com.android.settings.fuelgauge.batteryusage.db.BatteryEventEntity;
import com.android.settings.fuelgauge.batteryusage.db.BatteryState;
import com.android.settings.fuelgauge.batteryusage.db.BatteryStateDao;
import com.android.settings.fuelgauge.batteryusage.db.BatteryStateDatabase;
@@ -184,6 +186,15 @@
}
}
+ /** Inserts a fake data into the database for testing. */
+ public static void insertDataToBatteryEventTable(
+ Context context, long timestamp, int batteryEventType, int batteryLevel) {
+ final BatteryEventEntity entity =
+ new BatteryEventEntity(timestamp, batteryEventType, batteryLevel);
+ BatteryEventDao dao = BatteryStateDatabase.getInstance(context).batteryEventDao();
+ dao.insert(entity);
+ }
+
/** Gets customized battery changed intent. */
public static Intent getCustomBatteryIntent(int plugged, int level, int scale, int status) {
Intent intent = new Intent();
@@ -253,18 +264,28 @@
/** Create a power anomaly event proto of screen timeout. */
public static PowerAnomalyEvent createScreenTimeoutAnomalyEvent() {
+ return createScreenTimeoutAnomalyEvent(false);
+ }
+
+ /** Create a power anomaly event proto of screen timeout. */
+ public static PowerAnomalyEvent createScreenTimeoutAnomalyEvent(boolean changeSettings) {
+ WarningBannerInfo.Builder warningBannerInfoBuilder =
+ WarningBannerInfo.newBuilder()
+ .setMainButtonDestination(ScreenTimeoutSettings.class.getName())
+ .setMainButtonSourceMetricsCategory(SettingsEnums.SCREEN_TIMEOUT)
+ .setMainButtonSourceHighlightKey("60000");
+ if (changeSettings) {
+ warningBannerInfoBuilder
+ .setMainButtonConfigSettingsName(Settings.System.SCREEN_OFF_TIMEOUT)
+ .setMainButtonConfigSettingsValue(60000);
+ }
return PowerAnomalyEvent.newBuilder()
.setEventId("ScreenTimeoutAnomaly")
.setType(PowerAnomalyType.TYPE_SETTINGS_BANNER)
.setKey(PowerAnomalyKey.KEY_SCREEN_TIMEOUT)
.setDismissRecordKey(PowerAnomalyKey.KEY_SCREEN_TIMEOUT.name())
.setScore(1.1f)
- .setWarningBannerInfo(
- WarningBannerInfo.newBuilder()
- .setMainButtonDestination(ScreenTimeoutSettings.class.getName())
- .setMainButtonSourceMetricsCategory(SettingsEnums.SCREEN_TIMEOUT)
- .setMainButtonSourceHighlightKey("60000")
- .build())
+ .setWarningBannerInfo(warningBannerInfoBuilder.build())
.build();
}
diff --git a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowCrossProfileApps.java b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowCrossProfileApps.java
index 64a5f11..c52fe2f 100644
--- a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowCrossProfileApps.java
+++ b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowCrossProfileApps.java
@@ -19,9 +19,8 @@
import android.Manifest;
import android.content.Context;
import android.content.pm.CrossProfileApps;
-import android.content.pm.ICrossProfileApps;
-import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
+import android.content.pm.PackageInfo;
import androidx.annotation.NonNull;
@@ -35,15 +34,7 @@
@Implements(CrossProfileApps.class)
public class ShadowCrossProfileApps extends org.robolectric.shadows.ShadowCrossProfileApps {
private static final Set<String> configurableInteractAcrossProfilePackages = new HashSet<>();
- private Context mContext;
- private PackageManager mPackageManager;
- @Implementation
- protected void __constructor__(Context context, ICrossProfileApps service) {
- super.__constructor__(context, service);
- this.mContext = context;
- this.mPackageManager = context.getPackageManager();
- }
public void addCrossProfilePackage(String packageName) {
configurableInteractAcrossProfilePackages.add(packageName);
}
@@ -57,7 +48,9 @@
protected boolean canUserAttemptToConfigureInteractAcrossProfiles(@NonNull String packageName) {
PackageInfo packageInfo;
try {
- packageInfo = mPackageManager.getPackageInfo(packageName, /* flags= */ 0);
+ packageInfo = getContext().getPackageManager().getPackageInfo(
+ packageName,
+ /* flags= */ 0);
} catch (PackageManager.NameNotFoundException e) {
return false;
}
diff --git a/tests/robotests/src/com/android/settings/users/MultiUserSwitchBarControllerTest.java b/tests/robotests/src/com/android/settings/users/MultiUserSwitchBarControllerTest.java
index bfab257..58288a5 100644
--- a/tests/robotests/src/com/android/settings/users/MultiUserSwitchBarControllerTest.java
+++ b/tests/robotests/src/com/android/settings/users/MultiUserSwitchBarControllerTest.java
@@ -23,28 +23,40 @@
import android.content.Context;
import android.content.pm.UserInfo;
+import android.multiuser.Flags;
import android.os.UserHandle;
import android.os.UserManager;
+import android.platform.test.annotations.RequiresFlagsDisabled;
+import android.platform.test.annotations.RequiresFlagsEnabled;
+import android.platform.test.flag.junit.CheckFlagsRule;
+import android.platform.test.flag.junit.DeviceFlagsValueProvider;
+import com.android.settings.testutils.shadow.ShadowDevicePolicyManager;
import com.android.settings.testutils.shadow.ShadowUserManager;
import com.android.settings.widget.SwitchWidgetController;
import org.junit.After;
import org.junit.Before;
+import org.junit.Rule;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.RuntimeEnvironment;
import org.robolectric.annotation.Config;
+import java.util.ArrayList;
+import java.util.List;
+
@RunWith(RobolectricTestRunner.class)
-@Config(shadows = {ShadowUserManager.class})
+@Config(shadows = {ShadowUserManager.class, ShadowDevicePolicyManager.class})
public class MultiUserSwitchBarControllerTest {
private Context mContext;
private ShadowUserManager mUserManager;
private SwitchWidgetController mSwitchWidgetController;
+ @Rule
+ public final CheckFlagsRule mCheckFlagsRule = DeviceFlagsValueProvider.createCheckFlagsRule();
@Before
public void setUp() {
@@ -60,6 +72,7 @@
}
@Test
+ @RequiresFlagsDisabled({Flags.FLAG_FIX_DISABLING_OF_MU_TOGGLE_WHEN_RESTRICTION_APPLIED})
public void onStart_disallowUserSwitch_shouldSetDisabledByAdmin() {
mUserManager.setUserRestriction(UserHandle.of(UserHandle.myUserId()),
UserManager.DISALLOW_USER_SWITCH, true);
@@ -71,6 +84,48 @@
}
@Test
+ @RequiresFlagsEnabled({Flags.FLAG_FIX_DISABLING_OF_MU_TOGGLE_WHEN_RESTRICTION_APPLIED})
+ public void onStart_disallowUserSwitchEnforcedByAdmin_shouldSetDisabledByAdminUnchecked() {
+ int userId = UserHandle.myUserId();
+ List<UserManager.EnforcingUser> enforcingUsers = new ArrayList<>();
+ enforcingUsers.add(new UserManager.EnforcingUser(userId,
+ UserManager.RESTRICTION_SOURCE_DEVICE_OWNER));
+ // Ensure that RestrictedLockUtils.checkIfRestrictionEnforced doesn't return null.
+ ShadowUserManager.getShadow().setUserRestrictionSources(
+ UserManager.DISALLOW_USER_SWITCH,
+ UserHandle.of(userId),
+ enforcingUsers);
+
+ new MultiUserSwitchBarController(mContext, mSwitchWidgetController, null);
+ verify(mSwitchWidgetController).setChecked(false);
+ verify(mSwitchWidgetController).setDisabledByAdmin(any());
+ }
+
+ @Test
+ @RequiresFlagsEnabled({Flags.FLAG_FIX_DISABLING_OF_MU_TOGGLE_WHEN_RESTRICTION_APPLIED})
+ public void onStart_disallowUserSwitch_userNotMain_shouldSetDisabledUnchecked() {
+ mUserManager.setUserRestriction(UserHandle.of(UserHandle.myUserId()),
+ UserManager.DISALLOW_USER_SWITCH, true);
+ new MultiUserSwitchBarController(mContext, mSwitchWidgetController, null);
+
+ verify(mSwitchWidgetController).setChecked(false);
+ verify(mSwitchWidgetController).setEnabled(false);
+ verify(mSwitchWidgetController, never()).setDisabledByAdmin(any());
+ }
+
+ @Test
+ @RequiresFlagsEnabled({Flags.FLAG_FIX_DISABLING_OF_MU_TOGGLE_WHEN_RESTRICTION_APPLIED})
+ public void onStart_allowUserSwitch_notMainUser_shouldSetDisabled() {
+ mUserManager.setUserRestriction(UserHandle.of(UserHandle.myUserId()),
+ UserManager.DISALLOW_USER_SWITCH, false);
+ mUserManager.addUser(10, "Test", UserInfo.FLAG_ADMIN);
+ mUserManager.switchUser(10);
+ new MultiUserSwitchBarController(mContext, mSwitchWidgetController, null);
+
+ verify(mSwitchWidgetController).setEnabled(false);
+ }
+
+ @Test
public void onStart_allowUserSwitch_shouldNotSetDisabledByAdmin() {
mUserManager.setUserRestriction(UserHandle.of(UserHandle.myUserId()),
UserManager.DISALLOW_USER_SWITCH, false);
diff --git a/tests/robotests/src/com/android/settings/users/UserDetailsSettingsTest.java b/tests/robotests/src/com/android/settings/users/UserDetailsSettingsTest.java
index e035274..482aa5d 100644
--- a/tests/robotests/src/com/android/settings/users/UserDetailsSettingsTest.java
+++ b/tests/robotests/src/com/android/settings/users/UserDetailsSettingsTest.java
@@ -729,6 +729,7 @@
public void initialize_restrictUserSelected_shouldNotShowGrantAdminPref_MultipleAdminEnabled() {
setupSelectedUser();
ShadowUserManager.setIsMultipleAdminEnabled(true);
+ // target user has DISALLOW_GRANT_ADMIN restriction
mUserManager.setUserRestriction(mUserInfo.getUserHandle(),
UserManager.DISALLOW_GRANT_ADMIN, true);
mFragment.initialize(mActivity, mArguments);
@@ -736,6 +737,18 @@
}
@Test
+ @RequiresFlagsEnabled(Flags.FLAG_UNICORN_MODE_REFACTORING_FOR_HSUM_READ_ONLY)
+ public void initialize_currentUserRestrict_shouldNotShowGrantAdminPref_MultipleAdminEnabled() {
+ setupSelectedUser();
+ ShadowUserManager.setIsMultipleAdminEnabled(true);
+ // current user has DISALLOW_GRANT_ADMIN restriction
+ mUserManager.setUserRestriction(mContext.getUser(),
+ UserManager.DISALLOW_GRANT_ADMIN, true);
+ mFragment.initialize(mActivity, mArguments);
+ verify(mFragment).removePreference(KEY_GRANT_ADMIN);
+ }
+
+ @Test
public void initialize_mainUserSelected_shouldShowGrantAdminPref_MultipleAdminEnabled() {
setupSelectedMainUser();
ShadowUserManager.setIsMultipleAdminEnabled(true);
diff --git a/tests/robotests/src/com/android/settings/wifi/WifiConfigController2Test.java b/tests/robotests/src/com/android/settings/wifi/WifiConfigController2Test.java
index 7d96496..d985ee5 100644
--- a/tests/robotests/src/com/android/settings/wifi/WifiConfigController2Test.java
+++ b/tests/robotests/src/com/android/settings/wifi/WifiConfigController2Test.java
@@ -459,46 +459,45 @@
public void loadMacRandomizedValue_shouldPersistentAsDefault() {
final Spinner privacySetting = mView.findViewById(R.id.privacy_settings);
final int prefPersist =
- WifiPrivacyPreferenceController2.translateMacRandomizedValueToPrefValue(
- WifiConfiguration.RANDOMIZATION_PERSISTENT);
+ WifiPrivacyPreferenceController2.translateWifiEntryPrivacyToPrefValue(
+ WifiEntry.PRIVACY_RANDOMIZED_MAC);
assertThat(privacySetting.getVisibility()).isEqualTo(View.VISIBLE);
assertThat(privacySetting.getSelectedItemPosition()).isEqualTo(prefPersist);
}
@Test
- public void loadSavedMacRandomizedPersistentValue_shouldCorrectMacValue() {
- checkSavedMacRandomizedValue(WifiConfiguration.RANDOMIZATION_PERSISTENT);
+ public void loadSavedPrivacyRandomizedMacValue_shouldCorrectMacValue() {
+ checkSavedMacRandomizedValue(WifiEntry.PRIVACY_RANDOMIZED_MAC);
}
@Test
- public void loadSavedMacRandomizedNoneValue_shouldCorrectMacValue() {
- checkSavedMacRandomizedValue(WifiConfiguration.RANDOMIZATION_NONE);
+ public void loadSavedPrivacyDeviceMacValue_shouldCorrectMacValue() {
+ checkSavedMacRandomizedValue(WifiEntry.PRIVACY_DEVICE_MAC);
}
- private void checkSavedMacRandomizedValue(int macRandomizedValue) {
+ private void checkSavedMacRandomizedValue(@WifiEntry.Privacy int privacy) {
when(mWifiEntry.isSaved()).thenReturn(true);
final WifiConfiguration mockWifiConfig = spy(new WifiConfiguration());
when(mockWifiConfig.getIpConfiguration()).thenReturn(mock(IpConfiguration.class));
when(mWifiEntry.getWifiConfiguration()).thenReturn(mockWifiConfig);
- mockWifiConfig.macRandomizationSetting = macRandomizedValue;
+ when(mWifiEntry.getPrivacy()).thenReturn(privacy);
createController(mWifiEntry, WifiConfigUiBase2.MODE_CONNECT, false);
final Spinner privacySetting = mView.findViewById(R.id.privacy_settings);
final int expectedPrefValue =
- WifiPrivacyPreferenceController2.translateMacRandomizedValueToPrefValue(
- macRandomizedValue);
+ WifiPrivacyPreferenceController2.translateWifiEntryPrivacyToPrefValue(privacy);
assertThat(privacySetting.getVisibility()).isEqualTo(View.VISIBLE);
assertThat(privacySetting.getSelectedItemPosition()).isEqualTo(expectedPrefValue);
}
@Test
- public void saveMacRandomizedValue_noChanged_shouldPersistentAsDefault() {
+ public void saveMacRandomizedValue_noChanged_shouldAutoAsDefault() {
createController(mWifiEntry, WifiConfigUiBase2.MODE_CONNECT, false);
WifiConfiguration config = mController.getConfig();
assertThat(config.macRandomizationSetting).isEqualTo(
- WifiConfiguration.RANDOMIZATION_PERSISTENT);
+ WifiConfiguration.RANDOMIZATION_AUTO);
}
@Test
@@ -506,7 +505,7 @@
createController(mWifiEntry, WifiConfigUiBase2.MODE_CONNECT, false);
final Spinner privacySetting = mView.findViewById(R.id.privacy_settings);
final int prefMacNone =
- WifiPrivacyPreferenceController2.translateMacRandomizedValueToPrefValue(
+ WifiPrivacyPreferenceController2.translateWifiEntryPrivacyToPrefValue(
WifiConfiguration.RANDOMIZATION_NONE);
privacySetting.setSelection(prefMacNone);
diff --git a/tests/robotests/src/com/android/settings/wifi/WifiPrimarySwitchPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/wifi/WifiPrimarySwitchPreferenceControllerTest.java
deleted file mode 100644
index 9204d43..0000000
--- a/tests/robotests/src/com/android/settings/wifi/WifiPrimarySwitchPreferenceControllerTest.java
+++ /dev/null
@@ -1,153 +0,0 @@
-/*
- * Copyright (C) 2017 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.wifi;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.ArgumentMatchers.anyInt;
-import static org.mockito.Mockito.doNothing;
-import static org.mockito.Mockito.doReturn;
-import static org.mockito.Mockito.spy;
-import static org.mockito.Mockito.times;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.when;
-
-import android.content.BroadcastReceiver;
-import android.content.Context;
-import android.content.Intent;
-import android.content.IntentFilter;
-import android.net.ConnectivityManager;
-import android.net.NetworkRequest;
-import android.net.NetworkScoreManager;
-import android.net.wifi.WifiManager;
-import android.os.Handler;
-
-import androidx.preference.Preference.OnPreferenceChangeListener;
-import androidx.preference.PreferenceScreen;
-
-import com.android.settings.testutils.FakeFeatureFactory;
-import com.android.settings.testutils.shadow.ShadowRestrictedLockUtilsInternal;
-import com.android.settingslib.PrimarySwitchPreference;
-import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
-
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.Mock;
-import org.mockito.MockitoAnnotations;
-import org.robolectric.RobolectricTestRunner;
-import org.robolectric.RuntimeEnvironment;
-import org.robolectric.annotation.Config;
-
-@RunWith(RobolectricTestRunner.class)
-@Config(shadows = ShadowRestrictedLockUtilsInternal.class)
-public class WifiPrimarySwitchPreferenceControllerTest {
-
- @Mock
- private Intent mIntentReceiver;
- @Mock
- private WifiManager mWifiManager;
- @Mock
- private PreferenceScreen mScreen;
- @Mock
- private PrimarySwitchPreference mPreference;
- @Mock
- private ConnectivityManager mConnectivityManager;
- @Mock
- private NetworkScoreManager mNetworkScoreManager;
-
- private Context mContext;
- private WifiPrimarySwitchPreferenceController mController;
- private MetricsFeatureProvider mMetricsFeatureProvider;
-
- @Before
- public void setUp() {
- MockitoAnnotations.initMocks(this);
- mMetricsFeatureProvider = FakeFeatureFactory.setupForTest().getMetricsFeatureProvider();
- mContext = spy(RuntimeEnvironment.application.getApplicationContext());
- doReturn(mIntentReceiver).when(mContext)
- .registerReceiver(any(BroadcastReceiver.class), any(IntentFilter.class), anyInt());
- doNothing().when(mContext).unregisterReceiver(any(BroadcastReceiver.class));
- when(mContext.getSystemService(ConnectivityManager.class)).thenReturn(mConnectivityManager);
- when(mContext.getSystemService(NetworkScoreManager.class)).thenReturn(mNetworkScoreManager);
- mController = new WifiPrimarySwitchPreferenceController(mContext, mMetricsFeatureProvider);
- when(mScreen.findPreference(mController.getPreferenceKey())).thenReturn(mPreference);
- when(mContext.getSystemService(Context.WIFI_SERVICE)).thenReturn(mWifiManager);
- when(mWifiManager.getWifiState()).thenReturn(WifiManager.WIFI_STATE_DISABLED);
- }
-
- @Test
- public void testWifiPrimarySwitch_byDefault_shouldBeShown() {
- assertThat(mController.isAvailable()).isTrue();
- }
-
- @Test
- @Config(qualifiers = "mcc999")
- public void testWifiPrimarySwitch_ifDisabled_shouldNotBeShown() {
- assertThat(mController.isAvailable()).isFalse();
- }
-
- @Test
- public void onResume_shouldRegisterCallback() {
- mController.onResume();
-
- verify(mContext).registerReceiver(
- any(BroadcastReceiver.class), any(IntentFilter.class), anyInt());
- verify(mConnectivityManager).registerNetworkCallback(
- any(NetworkRequest.class),
- any(ConnectivityManager.NetworkCallback.class),
- any(Handler.class));
- }
-
- @Test
- public void onPause_shouldUnregisterCallback() {
- mController.onResume();
- mController.onPause();
-
- verify(mContext).unregisterReceiver(any(BroadcastReceiver.class));
- verify(mConnectivityManager, times(2)).unregisterNetworkCallback(
- any(ConnectivityManager.NetworkCallback.class));
- }
-
- @Test
- public void onStart_shouldRegisterPreferenceChangeListener() {
- mController.displayPreference(mScreen);
- mController.onStart();
-
- verify(mPreference).setOnPreferenceChangeListener(any(OnPreferenceChangeListener.class));
- }
-
- @Test
- public void onStop_shouldRegisterPreferenceChangeListener() {
- mController.displayPreference(mScreen);
- mController.onStart();
-
- mController.onStop();
-
- verify(mPreference).setOnPreferenceChangeListener(null);
- }
-
- @Test
- public void onSummaryChanged_shouldUpdatePreferenceSummary() {
- mController.displayPreference(mScreen);
-
- mController.onSummaryChanged("test summary");
-
- verify(mPreference).setSummary("test summary");
- }
-}
diff --git a/tests/spa_unit/src/com/android/settings/datausage/lib/AppDataUsageRepositoryTest.kt b/tests/spa_unit/src/com/android/settings/datausage/lib/AppDataUsageRepositoryTest.kt
index 3f517a9..5026b08 100644
--- a/tests/spa_unit/src/com/android/settings/datausage/lib/AppDataUsageRepositoryTest.kt
+++ b/tests/spa_unit/src/com/android/settings/datausage/lib/AppDataUsageRepositoryTest.kt
@@ -38,48 +38,55 @@
import org.mockito.kotlin.doReturn
import org.mockito.kotlin.mock
import org.mockito.kotlin.spy
+import org.mockito.kotlin.stub
@RunWith(AndroidJUnit4::class)
class AppDataUsageRepositoryTest {
- @get:Rule
- val mockito: MockitoRule = MockitoJUnit.rule()
+ @get:Rule val mockito: MockitoRule = MockitoJUnit.rule()
- private val mockUserManager = mock<UserManager> {
- on { userProfiles } doReturn listOf(UserHandle.of(USER_ID))
- on { getUserInfo(USER_ID) } doReturn UserInfo(USER_ID, "", 0)
- }
+ private val mockUserManager =
+ mock<UserManager> {
+ on { userProfiles } doReturn listOf(UserHandle.of(USER_ID))
+ on { getUserInfo(USER_ID) } doReturn UserInfo(USER_ID, "", 0)
+ }
- private val mockNetworkPolicyManager = mock<NetworkPolicyManager> {
- on { getUidsWithPolicy(NetworkPolicyManager.POLICY_REJECT_METERED_BACKGROUND) } doReturn
- intArrayOf()
- }
+ private val mockNetworkPolicyManager =
+ mock<NetworkPolicyManager> {
+ on { getUidsWithPolicy(NetworkPolicyManager.POLICY_REJECT_METERED_BACKGROUND) } doReturn
+ intArrayOf()
+ }
- private val mockResources = mock<Resources> {
- on { getIntArray(R.array.datausage_hiding_carrier_service_carrier_id) } doReturn
- intArrayOf(HIDING_CARRIER_ID)
+ private val mockResources =
+ mock<Resources> {
+ on { getIntArray(R.array.datausage_hiding_carrier_service_carrier_id) } doReturn
+ intArrayOf(HIDING_CARRIER_ID)
- on { getStringArray(R.array.datausage_hiding_carrier_service_package_names) } doReturn
- arrayOf(HIDING_PACKAGE_NAME)
- }
+ on { getStringArray(R.array.datausage_hiding_carrier_service_package_names) } doReturn
+ arrayOf(HIDING_PACKAGE_NAME)
+ }
- private val context: Context = spy(ApplicationProvider.getApplicationContext()) {
- on { userManager } doReturn mockUserManager
- on { getSystemService(NetworkPolicyManager::class.java) } doReturn mockNetworkPolicyManager
- on { resources } doReturn mockResources
- }
+ private val context: Context =
+ spy(ApplicationProvider.getApplicationContext()) {
+ on { userManager } doReturn mockUserManager
+ on { getSystemService(NetworkPolicyManager::class.java) } doReturn
+ mockNetworkPolicyManager
+ on { resources } doReturn mockResources
+ }
@Test
fun getAppPercent_noAppToHide() {
- val repository = AppDataUsageRepository(
- context = context,
- currentUserId = USER_ID,
- template = Template,
- getPackageName = { null },
- )
- val buckets = listOf(
- Bucket(uid = APP_ID_1, bytes = 1, startTimeStamp = 0, endTimeStamp = 0),
- Bucket(uid = APP_ID_2, bytes = 2, startTimeStamp = 0, endTimeStamp = 0),
- )
+ val repository =
+ AppDataUsageRepository(
+ context = context,
+ currentUserId = USER_ID,
+ template = Template,
+ getPackageName = { null },
+ )
+ val buckets =
+ listOf(
+ Bucket(uid = APP_ID_1, bytes = 1, startTimeStamp = 0, endTimeStamp = 0),
+ Bucket(uid = APP_ID_2, bytes = 2, startTimeStamp = 0, endTimeStamp = 0),
+ )
val appPercentList = repository.getAppPercent(null, buckets)
@@ -100,16 +107,18 @@
@Test
fun getAppPercent_hasAppToHide() {
- val repository = AppDataUsageRepository(
- context = context,
- currentUserId = USER_ID,
- template = Template,
- getPackageName = { if (it.key == APP_ID_1) HIDING_PACKAGE_NAME else null },
- )
- val buckets = listOf(
- Bucket(uid = APP_ID_1, bytes = 1, startTimeStamp = 0, endTimeStamp = 0),
- Bucket(uid = APP_ID_2, bytes = 2, startTimeStamp = 0, endTimeStamp = 0),
- )
+ val repository =
+ AppDataUsageRepository(
+ context = context,
+ currentUserId = USER_ID,
+ template = Template,
+ getPackageName = { if (it.key == APP_ID_1) HIDING_PACKAGE_NAME else null },
+ )
+ val buckets =
+ listOf(
+ Bucket(uid = APP_ID_1, bytes = 1, startTimeStamp = 0, endTimeStamp = 0),
+ Bucket(uid = APP_ID_2, bytes = 2, startTimeStamp = 0, endTimeStamp = 0),
+ )
val appPercentList = repository.getAppPercent(HIDING_CARRIER_ID, buckets)
@@ -122,6 +131,43 @@
assertThat(appPercentList[0].second).isEqualTo(100)
}
+ @Test
+ fun getAppPercent_restricted() {
+ mockNetworkPolicyManager.stub {
+ on { getUidsWithPolicy(NetworkPolicyManager.POLICY_REJECT_METERED_BACKGROUND) } doReturn
+ intArrayOf(APP_ID_1)
+ }
+ val repository =
+ AppDataUsageRepository(
+ context = context,
+ currentUserId = USER_ID,
+ template = Template,
+ getPackageName = { null },
+ )
+ val buckets =
+ listOf(
+ Bucket(uid = APP_ID_2, bytes = 2, startTimeStamp = 0, endTimeStamp = 0),
+ )
+
+ val appPercentList = repository.getAppPercent(null, buckets)
+
+ assertThat(appPercentList).hasSize(2)
+ appPercentList[0].first.apply {
+ assertThat(key).isEqualTo(APP_ID_2)
+ assertThat(category).isEqualTo(AppItem.CATEGORY_APP)
+ assertThat(total).isEqualTo(2)
+ assertThat(restricted).isFalse()
+ }
+ assertThat(appPercentList[0].second).isEqualTo(100)
+ appPercentList[1].first.apply {
+ assertThat(key).isEqualTo(APP_ID_1)
+ assertThat(category).isEqualTo(AppItem.CATEGORY_APP)
+ assertThat(total).isEqualTo(0)
+ assertThat(restricted).isTrue()
+ }
+ assertThat(appPercentList[1].second).isEqualTo(0)
+ }
+
private companion object {
const val USER_ID = 1
const val APP_ID_1 = 110001
diff --git a/tests/spa_unit/src/com/android/settings/network/SimOnboardingServiceTest.kt b/tests/spa_unit/src/com/android/settings/network/SimOnboardingServiceTest.kt
new file mode 100644
index 0000000..6f9029e
--- /dev/null
+++ b/tests/spa_unit/src/com/android/settings/network/SimOnboardingServiceTest.kt
@@ -0,0 +1,70 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.network
+
+import android.telephony.SubscriptionInfo
+import androidx.test.ext.junit.runners.AndroidJUnit4
+import com.google.common.truth.Truth.assertThat
+import org.junit.Rule
+import org.junit.Test
+import org.junit.runner.RunWith
+
+@RunWith(AndroidJUnit4::class)
+class SimOnboardingServiceTest {
+
+ @Test
+ fun addItemForRenaming_addItemWithNewName_findItem() {
+ val simOnboardingService = SimOnboardingService()
+ val newName = "NewName"
+
+ simOnboardingService.addItemForRenaming(SUB_INFO_1, newName)
+
+ assertThat(simOnboardingService.renameMutableMap)
+ .containsEntry(SUB_INFO_1.subscriptionId, newName)
+ }
+
+ @Test
+ fun addItemForRenaming_sameNameAndItemNotInList_removeItem() {
+ val simOnboardingService = SimOnboardingService()
+
+ simOnboardingService.addItemForRenaming(SUB_INFO_1, DISPLAY_NAME_1)
+
+ assertThat(simOnboardingService.renameMutableMap)
+ .doesNotContainKey(SUB_INFO_1.subscriptionId)
+ }
+
+ @Test
+ fun addItemForRenaming_sameNameAndItemInList_removeItem() {
+ val simOnboardingService = SimOnboardingService()
+ simOnboardingService.renameMutableMap[SUB_INFO_1.subscriptionId] = "NewName"
+
+ simOnboardingService.addItemForRenaming(SUB_INFO_1, DISPLAY_NAME_1)
+
+ assertThat(simOnboardingService.renameMutableMap)
+ .doesNotContainKey(SUB_INFO_1.subscriptionId)
+ }
+
+ private companion object {
+ const val SUB_ID_1 = 1
+ const val DISPLAY_NAME_1 = "Sub 1"
+
+ val SUB_INFO_1: SubscriptionInfo = SubscriptionInfo.Builder().apply {
+ setId(SUB_ID_1)
+ setDisplayName(DISPLAY_NAME_1)
+ }.build()
+ }
+}
\ No newline at end of file
diff --git a/tests/spa_unit/src/com/android/settings/network/telephony/EnabledNetworkModePreferenceControllerHelperTest.kt b/tests/spa_unit/src/com/android/settings/network/telephony/EnabledNetworkModePreferenceControllerHelperTest.kt
new file mode 100644
index 0000000..8edc90f
--- /dev/null
+++ b/tests/spa_unit/src/com/android/settings/network/telephony/EnabledNetworkModePreferenceControllerHelperTest.kt
@@ -0,0 +1,96 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.network.telephony
+
+import android.content.Context
+import android.telephony.CarrierConfigManager
+import androidx.test.core.app.ApplicationProvider
+import androidx.test.ext.junit.runners.AndroidJUnit4
+import com.google.common.truth.Truth.assertThat
+import org.junit.Before
+import org.junit.Test
+import org.junit.runner.RunWith
+import org.mockito.kotlin.spy
+
+@RunWith(AndroidJUnit4::class)
+class EnabledNetworkModePreferenceControllerHelperTest {
+
+ private var context: Context = spy(ApplicationProvider.getApplicationContext()) {}
+
+ @Before
+ fun setUp() {
+ CarrierConfigRepository.resetForTest()
+ CarrierConfigRepository.setBooleanForTest(
+ SUB_ID, CarrierConfigManager.KEY_CARRIER_CONFIG_APPLIED_BOOL, true)
+ }
+
+ @Test
+ fun getNetworkModePreferenceType_hideCarrierNetworkSettings_returnNone() {
+ CarrierConfigRepository.setBooleanForTest(
+ SUB_ID, CarrierConfigManager.KEY_HIDE_CARRIER_NETWORK_SETTINGS_BOOL, true)
+
+ val networkModePreferenceType = getNetworkModePreferenceType(context, SUB_ID)
+
+ assertThat(networkModePreferenceType).isEqualTo(NetworkModePreferenceType.None)
+ }
+
+ @Test
+ fun getNetworkModePreferenceType_hidePreferredNetworkType_returnNone() {
+ CarrierConfigRepository.setBooleanForTest(
+ SUB_ID, CarrierConfigManager.KEY_HIDE_PREFERRED_NETWORK_TYPE_BOOL, true)
+
+ val networkModePreferenceType = getNetworkModePreferenceType(context, SUB_ID)
+
+ assertThat(networkModePreferenceType).isEqualTo(NetworkModePreferenceType.None)
+ }
+
+ @Test
+ fun getNetworkModePreferenceType_carrierConfigNotReady_returnNone() {
+ CarrierConfigRepository.setBooleanForTest(
+ SUB_ID, CarrierConfigManager.KEY_CARRIER_CONFIG_APPLIED_BOOL, false)
+
+ val networkModePreferenceType = getNetworkModePreferenceType(context, SUB_ID)
+
+ assertThat(networkModePreferenceType).isEqualTo(NetworkModePreferenceType.None)
+ }
+
+ @Test
+ fun getNetworkModePreferenceType_isWorldPhone_returnPreferredNetworkMode() {
+ CarrierConfigRepository.setBooleanForTest(
+ SUB_ID, CarrierConfigManager.KEY_WORLD_PHONE_BOOL, true)
+
+ val networkModePreferenceType = getNetworkModePreferenceType(context, SUB_ID)
+
+ assertThat(networkModePreferenceType)
+ .isEqualTo(NetworkModePreferenceType.PreferredNetworkMode)
+ }
+
+ @Test
+ fun getNetworkModePreferenceType_notWorldPhone_returnEnabledNetworkMode() {
+ CarrierConfigRepository.setBooleanForTest(
+ SUB_ID, CarrierConfigManager.KEY_WORLD_PHONE_BOOL, false)
+
+ val networkModePreferenceType = getNetworkModePreferenceType(context, SUB_ID)
+
+ assertThat(networkModePreferenceType)
+ .isEqualTo(NetworkModePreferenceType.EnabledNetworkMode)
+ }
+
+ private companion object {
+ const val SUB_ID = 10
+ }
+}
diff --git a/tests/spa_unit/src/com/android/settings/network/telephony/MmsMessagePreferenceControllerTest.kt b/tests/spa_unit/src/com/android/settings/network/telephony/MmsMessagePreferenceControllerTest.kt
index a2f635d..4d53260 100644
--- a/tests/spa_unit/src/com/android/settings/network/telephony/MmsMessagePreferenceControllerTest.kt
+++ b/tests/spa_unit/src/com/android/settings/network/telephony/MmsMessagePreferenceControllerTest.kt
@@ -24,6 +24,7 @@
import androidx.test.ext.junit.runners.AndroidJUnit4
import com.android.settings.core.BasePreferenceController.AVAILABLE
import com.android.settings.core.BasePreferenceController.CONDITIONALLY_UNAVAILABLE
+import com.android.settings.network.telephony.MmsMessagePreferenceController.Companion.MmsMessageSearchItem
import com.google.common.truth.Truth.assertThat
import org.junit.Test
import org.junit.runner.RunWith
@@ -60,13 +61,13 @@
context = context,
key = KEY,
getDefaultDataSubId = { defaultDataSubId },
- ).apply { init(SUB_2_ID) }
+ )
@Test
fun getAvailabilityStatus_invalidSubscription_unavailable() {
controller.init(INVALID_SUBSCRIPTION_ID)
- val availabilityStatus = controller.getAvailabilityStatus(INVALID_SUBSCRIPTION_ID)
+ val availabilityStatus = controller.getAvailabilityStatus()
assertThat(availabilityStatus).isEqualTo(CONDITIONALLY_UNAVAILABLE)
}
@@ -76,8 +77,9 @@
mockTelephonyManager2.stub {
on { isDataEnabled } doReturn true
}
+ controller.init(SUB_2_ID)
- val availabilityStatus = controller.getAvailabilityStatus(SUB_2_ID)
+ val availabilityStatus = controller.getAvailabilityStatus()
assertThat(availabilityStatus).isEqualTo(CONDITIONALLY_UNAVAILABLE)
}
@@ -87,8 +89,9 @@
mockTelephonyManager2.stub {
on { isApnMetered(ApnSetting.TYPE_MMS) } doReturn false
}
+ controller.init(SUB_2_ID)
- val availabilityStatus = controller.getAvailabilityStatus(SUB_2_ID)
+ val availabilityStatus = controller.getAvailabilityStatus()
assertThat(availabilityStatus).isEqualTo(CONDITIONALLY_UNAVAILABLE)
}
@@ -102,8 +105,9 @@
isMobileDataPolicyEnabled(TelephonyManager.MOBILE_DATA_POLICY_AUTO_DATA_SWITCH)
} doReturn true
}
+ controller.init(SUB_2_ID)
- val availabilityStatus = controller.getAvailabilityStatus(SUB_2_ID)
+ val availabilityStatus = controller.getAvailabilityStatus()
assertThat(availabilityStatus).isEqualTo(CONDITIONALLY_UNAVAILABLE)
}
@@ -117,14 +121,16 @@
isMobileDataPolicyEnabled(TelephonyManager.MOBILE_DATA_POLICY_AUTO_DATA_SWITCH)
} doReturn true
}
+ controller.init(SUB_2_ID)
- val availabilityStatus = controller.getAvailabilityStatus(SUB_2_ID)
+ val availabilityStatus = controller.getAvailabilityStatus()
assertThat(availabilityStatus).isEqualTo(AVAILABLE)
}
@Test
- fun getAvailabilityStatus_defaultDataOnAndAutoDataSwitchOn_unavailable() {
+ fun getAvailabilityStatus_notDefaultDataAndDataOnAndAutoDataSwitchOn_unavailable() {
+ defaultDataSubId = SUB_1_ID
mockTelephonyManager1.stub {
on { isDataEnabled } doReturn true
}
@@ -133,14 +139,16 @@
isMobileDataPolicyEnabled(TelephonyManager.MOBILE_DATA_POLICY_AUTO_DATA_SWITCH)
} doReturn true
}
+ controller.init(SUB_2_ID)
- val availabilityStatus = controller.getAvailabilityStatus(SUB_2_ID)
+ val availabilityStatus = controller.getAvailabilityStatus()
assertThat(availabilityStatus).isEqualTo(CONDITIONALLY_UNAVAILABLE)
}
@Test
- fun getAvailabilityStatus_defaultDataOffAndAutoDataSwitchOn_available() {
+ fun getAvailabilityStatus_notDefaultDataAndDataOffAndAutoDataSwitchOn_available() {
+ defaultDataSubId = SUB_1_ID
mockTelephonyManager1.stub {
on { isDataEnabled } doReturn false
}
@@ -149,19 +157,57 @@
isMobileDataPolicyEnabled(TelephonyManager.MOBILE_DATA_POLICY_AUTO_DATA_SWITCH)
} doReturn true
}
+ controller.init(SUB_2_ID)
- val availabilityStatus = controller.getAvailabilityStatus(SUB_2_ID)
+ val availabilityStatus = controller.getAvailabilityStatus()
assertThat(availabilityStatus).isEqualTo(AVAILABLE)
}
@Test
+ fun searchIsAvailable_notDefaultDataAndDataOnAndAutoDataSwitchOn_unavailable() {
+ mockTelephonyManager1.stub {
+ on { isDataEnabled } doReturn true
+ }
+ mockTelephonyManager2.stub {
+ on { isApnMetered(ApnSetting.TYPE_MMS) } doReturn true
+ on {
+ isMobileDataPolicyEnabled(TelephonyManager.MOBILE_DATA_POLICY_AUTO_DATA_SWITCH)
+ } doReturn true
+ }
+ val mmsMessageSearchItem = MmsMessageSearchItem(context) { SUB_1_ID }
+
+ val isAvailable = mmsMessageSearchItem.isAvailable(SUB_2_ID)
+
+ assertThat(isAvailable).isFalse()
+ }
+
+ @Test
+ fun searchIsAvailable_notDefaultDataAndDataOffAndAutoDataSwitchOn_available() {
+ mockTelephonyManager1.stub {
+ on { isDataEnabled } doReturn false
+ }
+ mockTelephonyManager2.stub {
+ on { isApnMetered(ApnSetting.TYPE_MMS) } doReturn true
+ on {
+ isMobileDataPolicyEnabled(TelephonyManager.MOBILE_DATA_POLICY_AUTO_DATA_SWITCH)
+ } doReturn true
+ }
+ val mmsMessageSearchItem = MmsMessageSearchItem(context) { SUB_1_ID }
+
+ val isAvailable = mmsMessageSearchItem.isAvailable(SUB_2_ID)
+
+ assertThat(isAvailable).isTrue()
+ }
+
+ @Test
fun isChecked_whenMmsNotAlwaysAllowed_returnFalse() {
mockTelephonyManager2.stub {
on {
isMobileDataPolicyEnabled(TelephonyManager.MOBILE_DATA_POLICY_MMS_ALWAYS_ALLOWED)
} doReturn false
}
+ controller.init(SUB_2_ID)
val isChecked = controller.isChecked()
@@ -175,6 +221,7 @@
isMobileDataPolicyEnabled(TelephonyManager.MOBILE_DATA_POLICY_MMS_ALWAYS_ALLOWED)
} doReturn true
}
+ controller.init(SUB_2_ID)
val isChecked = controller.isChecked()
@@ -183,6 +230,8 @@
@Test
fun setChecked_setTrue_setDataIntoSubscriptionManager() {
+ controller.init(SUB_2_ID)
+
controller.setChecked(true)
verify(mockTelephonyManager2).setMobileDataPolicyEnabled(
@@ -192,6 +241,8 @@
@Test
fun setChecked_setFalse_setDataIntoSubscriptionManager() {
+ controller.init(SUB_2_ID)
+
controller.setChecked(false)
verify(mockTelephonyManager2).setMobileDataPolicyEnabled(
diff --git a/tests/spa_unit/src/com/android/settings/network/telephony/MobileNetworkPhoneNumberPreferenceControllerTest.kt b/tests/spa_unit/src/com/android/settings/network/telephony/MobileNetworkPhoneNumberPreferenceControllerTest.kt
index 38c47c2..f56c0c4 100644
--- a/tests/spa_unit/src/com/android/settings/network/telephony/MobileNetworkPhoneNumberPreferenceControllerTest.kt
+++ b/tests/spa_unit/src/com/android/settings/network/telephony/MobileNetworkPhoneNumberPreferenceControllerTest.kt
@@ -17,8 +17,7 @@
package com.android.settings.network.telephony
import android.content.Context
-import android.telephony.SubscriptionInfo
-import androidx.fragment.app.Fragment
+import androidx.lifecycle.testing.TestLifecycleOwner
import androidx.preference.Preference
import androidx.preference.PreferenceManager
import androidx.test.core.app.ApplicationProvider
@@ -26,17 +25,19 @@
import com.android.dx.mockito.inline.extended.ExtendedMockito
import com.android.settings.R
import com.android.settings.core.BasePreferenceController
-import com.android.settings.network.SubscriptionInfoListViewModel
import com.android.settings.network.SubscriptionUtil
import com.google.common.truth.Truth.assertThat
+import kotlinx.coroutines.delay
+import kotlinx.coroutines.flow.flowOf
import kotlinx.coroutines.runBlocking
import org.junit.After
import org.junit.Before
import org.junit.Test
import org.junit.runner.RunWith
import org.mockito.MockitoSession
-import org.mockito.kotlin.any
+import org.mockito.kotlin.doReturn
import org.mockito.kotlin.mock
+import org.mockito.kotlin.stub
import org.mockito.kotlin.whenever
import org.mockito.quality.Strictness
@@ -44,29 +45,25 @@
class MobileNetworkPhoneNumberPreferenceControllerTest {
private lateinit var mockSession: MockitoSession
- private val mockViewModels = mock<Lazy<SubscriptionInfoListViewModel>>()
- private val mockFragment = mock<Fragment>{
- val viewmodel = mockViewModels
- }
-
- private var mockPhoneNumber = String()
private val context: Context = ApplicationProvider.getApplicationContext()
- private val controller = MobileNetworkPhoneNumberPreferenceController(context, TEST_KEY)
+ private val mockSubscriptionRepository = mock<SubscriptionRepository>()
+
+ private val controller =
+ MobileNetworkPhoneNumberPreferenceController(context, TEST_KEY, mockSubscriptionRepository)
private val preference = Preference(context).apply { key = TEST_KEY }
private val preferenceScreen = PreferenceManager(context).createPreferenceScreen(context)
@Before
fun setUp() {
- mockSession = ExtendedMockito.mockitoSession()
- .initMocks(this)
- .mockStatic(SubscriptionUtil::class.java)
- .strictness(Strictness.LENIENT)
- .startMocking()
+ mockSession =
+ ExtendedMockito.mockitoSession()
+ .mockStatic(SubscriptionUtil::class.java)
+ .strictness(Strictness.LENIENT)
+ .startMocking()
preferenceScreen.addPreference(preference)
+ controller.init(SUB_ID)
controller.displayPreference(preferenceScreen)
-
- whenever(SubscriptionUtil.getBidiFormattedPhoneNumber(any(),any())).thenReturn(mockPhoneNumber)
}
@After
@@ -75,41 +72,29 @@
}
@Test
- fun refreshData_getEmptyPhoneNumber_preferenceIsNotVisible() = runBlocking {
+ fun onViewCreated_cannotGetPhoneNumber_displayUnknown() = runBlocking {
whenever(SubscriptionUtil.isSimHardwareVisible(context)).thenReturn(true)
- whenever(SubscriptionUtil.getActiveSubscriptions(any())).thenReturn(
- listOf(
- SUB_INFO_1,
- SUB_INFO_2
- )
- )
- var mockSubId = 2
- controller.init(mockFragment, mockSubId)
- mockPhoneNumber = String()
+ mockSubscriptionRepository.stub {
+ on { phoneNumberFlow(SUB_ID) } doReturn flowOf(null)
+ }
- controller.refreshData(SUB_INFO_2)
+ controller.onViewCreated(TestLifecycleOwner())
+ delay(100)
- assertThat(preference.summary).isEqualTo(
- context.getString(R.string.device_info_default))
+ assertThat(preference.summary).isEqualTo(context.getString(R.string.device_info_default))
}
@Test
- fun refreshData_getPhoneNumber_preferenceSummaryIsExpected() = runBlocking {
+ fun onViewCreated_canGetPhoneNumber_displayPhoneNumber() = runBlocking {
whenever(SubscriptionUtil.isSimHardwareVisible(context)).thenReturn(true)
- whenever(SubscriptionUtil.getActiveSubscriptions(any())).thenReturn(
- listOf(
- SUB_INFO_1,
- SUB_INFO_2
- )
- )
- var mockSubId = 2
- controller.init(mockFragment, mockSubId)
- mockPhoneNumber = "test phone number"
- whenever(SubscriptionUtil.getBidiFormattedPhoneNumber(any(),any())).thenReturn(mockPhoneNumber)
+ mockSubscriptionRepository.stub {
+ on { phoneNumberFlow(SUB_ID) } doReturn flowOf(PHONE_NUMBER)
+ }
- controller.refreshData(SUB_INFO_2)
+ controller.onViewCreated(TestLifecycleOwner())
+ delay(100)
- assertThat(preference.summary).isEqualTo(mockPhoneNumber)
+ assertThat(preference.summary).isEqualTo(PHONE_NUMBER)
}
@Test
@@ -123,18 +108,7 @@
private companion object {
const val TEST_KEY = "test_key"
- const val DISPLAY_NAME_1 = "Sub 1"
- const val DISPLAY_NAME_2 = "Sub 2"
-
- val SUB_INFO_1: SubscriptionInfo = SubscriptionInfo.Builder().apply {
- setId(1)
- setDisplayName(DISPLAY_NAME_1)
- }.build()
-
- val SUB_INFO_2: SubscriptionInfo = SubscriptionInfo.Builder().apply {
- setId(2)
- setDisplayName(DISPLAY_NAME_2)
- }.build()
-
+ const val SUB_ID = 10
+ const val PHONE_NUMBER = "1234567890"
}
}
diff --git a/tests/spa_unit/src/com/android/settings/network/telephony/MobileNetworkSettingsSearchIndexTest.kt b/tests/spa_unit/src/com/android/settings/network/telephony/MobileNetworkSettingsSearchIndexTest.kt
new file mode 100644
index 0000000..bf51208
--- /dev/null
+++ b/tests/spa_unit/src/com/android/settings/network/telephony/MobileNetworkSettingsSearchIndexTest.kt
@@ -0,0 +1,151 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.network.telephony
+
+import android.content.Context
+import android.os.UserManager
+import android.provider.Settings
+import android.telephony.SubscriptionInfo
+import android.telephony.SubscriptionManager
+import androidx.test.core.app.ApplicationProvider
+import androidx.test.ext.junit.runners.AndroidJUnit4
+import com.android.settings.R
+import com.android.settings.network.telephony.MobileNetworkSettingsSearchIndex.Companion.isMobileNetworkSettingsSearchable
+import com.android.settings.network.telephony.MobileNetworkSettingsSearchIndex.MobileNetworkSettingsSearchResult
+import com.android.settings.spa.SpaSearchLanding.BundleValue
+import com.android.settings.spa.SpaSearchLanding.SpaSearchLandingFragment
+import com.android.settings.spa.SpaSearchLanding.SpaSearchLandingKey
+import com.android.settings.spa.search.SpaSearchLandingActivity
+import com.google.common.truth.Truth.assertThat
+import com.google.protobuf.ByteString
+import org.junit.Before
+import org.junit.Test
+import org.junit.runner.RunWith
+import org.mockito.kotlin.doReturn
+import org.mockito.kotlin.mock
+import org.mockito.kotlin.spy
+import org.mockito.kotlin.stub
+
+@RunWith(AndroidJUnit4::class)
+class MobileNetworkSettingsSearchIndexTest {
+
+ private val mockUserManager = mock<UserManager> { on { isAdminUser } doReturn true }
+
+ private val mockSubscriptionManager =
+ mock<SubscriptionManager> {
+ on { activeSubscriptionInfoList } doReturn listOf(SUB_INFO_1, SUB_INFO_2)
+ }
+
+ private val context: Context =
+ spy(ApplicationProvider.getApplicationContext()) {
+ on { getSystemService(UserManager::class.java) } doReturn mockUserManager
+ on { getSystemService(SubscriptionManager::class.java) } doReturn
+ mockSubscriptionManager
+ }
+
+ private val resources =
+ spy(context.resources) { on { getBoolean(R.bool.config_show_sim_info) } doReturn true }
+
+ private val mobileNetworkSettingsSearchIndex = MobileNetworkSettingsSearchIndex {
+ listOf(
+ object : MobileNetworkSettingsSearchIndex.MobileNetworkSettingsSearchItem {
+ override fun getSearchResult(subId: Int): MobileNetworkSettingsSearchResult? =
+ if (subId == SUB_ID_1) {
+ MobileNetworkSettingsSearchResult(key = KEY, title = TITLE)
+ } else {
+ null
+ }
+ })
+ }
+
+ @Before
+ fun setUp() {
+ context.stub { on { resources } doReturn resources }
+ }
+
+ @Test
+ fun isMobileNetworkSettingsSearchable_adminUser_returnTrue() {
+ mockUserManager.stub { on { isAdminUser } doReturn true }
+
+ val isSearchable = isMobileNetworkSettingsSearchable(context)
+
+ assertThat(isSearchable).isTrue()
+ }
+
+ @Test
+ fun isMobileNetworkSettingsSearchable_nonAdminUser_returnFalse() {
+ mockUserManager.stub { on { isAdminUser } doReturn false }
+
+ val isSearchable = isMobileNetworkSettingsSearchable(context)
+
+ assertThat(isSearchable).isFalse()
+ }
+
+ @Test
+ fun createSearchIndexableData() {
+ val searchIndexableData = mobileNetworkSettingsSearchIndex.createSearchIndexableData()
+
+ assertThat(searchIndexableData.targetClass).isEqualTo(MobileNetworkSettings::class.java)
+ val dynamicRawDataToIndex =
+ searchIndexableData.searchIndexProvider.getDynamicRawDataToIndex(context, true)
+ assertThat(dynamicRawDataToIndex).hasSize(1)
+ val rawData = dynamicRawDataToIndex[0]
+ val key = SpaSearchLandingKey.parseFrom(ByteString.copyFromUtf8(rawData.key))
+ assertThat(key)
+ .isEqualTo(
+ SpaSearchLandingKey.newBuilder()
+ .setFragment(
+ SpaSearchLandingFragment.newBuilder()
+ .setFragmentName(MobileNetworkSettings::class.java.name)
+ .setPreferenceKey(KEY)
+ .putArguments(
+ Settings.EXTRA_SUB_ID,
+ BundleValue.newBuilder().setIntValue(SUB_ID_1).build()))
+ .build())
+ assertThat(rawData.title).isEqualTo(TITLE)
+ assertThat(rawData.intentAction).isEqualTo("android.settings.SPA_SEARCH_LANDING")
+ assertThat(rawData.intentTargetClass)
+ .isEqualTo(SpaSearchLandingActivity::class.qualifiedName)
+ assertThat(rawData.className).isEqualTo(MobileNetworkSettings::class.java.name)
+ assertThat(rawData.screenTitle).isEqualTo("SIMs > $SUB_DISPLAY_NAME_1")
+ }
+
+ private companion object {
+ const val KEY = "key"
+ const val TITLE = "Title"
+ const val SUB_ID_1 = 1
+ const val SUB_ID_2 = 2
+ const val SUB_DISPLAY_NAME_1 = "Sub 1"
+ const val SUB_DISPLAY_NAME_2 = "Sub 2"
+
+ val SUB_INFO_1: SubscriptionInfo =
+ SubscriptionInfo.Builder()
+ .apply {
+ setId(SUB_ID_1)
+ setDisplayName(SUB_DISPLAY_NAME_1)
+ }
+ .build()
+
+ val SUB_INFO_2: SubscriptionInfo =
+ SubscriptionInfo.Builder()
+ .apply {
+ setId(SUB_ID_2)
+ setDisplayName(SUB_DISPLAY_NAME_2)
+ }
+ .build()
+ }
+}
diff --git a/tests/spa_unit/src/com/android/settings/network/telephony/SubscriptionRepositoryTest.kt b/tests/spa_unit/src/com/android/settings/network/telephony/SubscriptionRepositoryTest.kt
index 75c9aa1..f75c14a 100644
--- a/tests/spa_unit/src/com/android/settings/network/telephony/SubscriptionRepositoryTest.kt
+++ b/tests/spa_unit/src/com/android/settings/network/telephony/SubscriptionRepositoryTest.kt
@@ -204,6 +204,22 @@
assertThat(phoneNumber).isEqualTo(NUMBER_1)
}
+ @Test
+ fun phoneNumberFlow_withSubId() = runBlocking {
+ val subInfo = SubscriptionInfo.Builder().apply {
+ setId(SUB_ID_IN_SLOT_1)
+ setMcc(MCC)
+ }.build()
+ mockSubscriptionManager.stub {
+ on { getActiveSubscriptionInfo(SUB_ID_IN_SLOT_1) } doReturn subInfo
+ on { getPhoneNumber(SUB_ID_IN_SLOT_1) } doReturn NUMBER_1
+ }
+
+ val phoneNumber = repository.phoneNumberFlow(SUB_ID_IN_SLOT_1).firstWithTimeoutOrNull()
+
+ assertThat(phoneNumber).isEqualTo(NUMBER_1)
+ }
+
private companion object {
const val SIM_SLOT_INDEX_0 = 0
const val SUB_ID_IN_SLOT_0 = 2
diff --git a/tests/spa_unit/src/com/android/settings/spa/app/appinfo/AppInstallerInfoPreferenceTest.kt b/tests/spa_unit/src/com/android/settings/spa/app/appinfo/AppInstallerInfoPreferenceTest.kt
index 96e4707..6297c62 100644
--- a/tests/spa_unit/src/com/android/settings/spa/app/appinfo/AppInstallerInfoPreferenceTest.kt
+++ b/tests/spa_unit/src/com/android/settings/spa/app/appinfo/AppInstallerInfoPreferenceTest.kt
@@ -68,7 +68,6 @@
@Before
fun setUp() {
mockSession = mockitoSession()
- .initMocks(this)
.mockStatic(AppStoreUtil::class.java)
.mockStatic(Utils::class.java)
.mockStatic(AppUtils::class.java)
@@ -77,8 +76,7 @@
whenever(AppStoreUtil.getInstallerPackageName(any(), eq(PACKAGE_NAME)))
.thenReturn(INSTALLER_PACKAGE_NAME)
whenever(AppStoreUtil.getInstallerPackageNameAndInstallSourceInfo(any(), eq(PACKAGE_NAME)))
- .thenReturn(
- Pair<String, InstallSourceInfo>(INSTALLER_PACKAGE_NAME, INSTALL_SOURCE_INFO))
+ .thenReturn(Pair(INSTALLER_PACKAGE_NAME, INSTALL_SOURCE_INFO))
whenever(AppStoreUtil.getAppStoreLink(context, INSTALLER_PACKAGE_NAME, PACKAGE_NAME))
.thenReturn(STORE_LINK)
whenever(AppStoreUtil.isInitiatedFromDifferentPackage(eq(INSTALL_SOURCE_INFO)))
@@ -97,7 +95,8 @@
@Test
fun whenNoInstaller_notDisplayed() {
- whenever(AppStoreUtil.getInstallerPackageName(any(), eq(PACKAGE_NAME))).thenReturn(null)
+ whenever(AppStoreUtil.getInstallerPackageNameAndInstallSourceInfo(any(), eq(PACKAGE_NAME)))
+ .thenReturn(Pair(null, INSTALL_SOURCE_INFO))
setContent()
diff --git a/tests/spa_unit/src/com/android/settings/spa/app/appinfo/AppNotificationPreferenceTest.kt b/tests/spa_unit/src/com/android/settings/spa/app/appinfo/AppNotificationPreferenceTest.kt
index 37f3a11..7a0ec8c 100644
--- a/tests/spa_unit/src/com/android/settings/spa/app/appinfo/AppNotificationPreferenceTest.kt
+++ b/tests/spa_unit/src/com/android/settings/spa/app/appinfo/AppNotificationPreferenceTest.kt
@@ -20,8 +20,8 @@
import android.content.pm.ApplicationInfo
import androidx.compose.runtime.CompositionLocalProvider
import androidx.compose.ui.platform.LocalContext
-import androidx.compose.ui.test.assertIsDisplayed
import androidx.compose.ui.test.assertIsNotEnabled
+import androidx.compose.ui.test.hasText
import androidx.compose.ui.test.junit4.createComposeRule
import androidx.compose.ui.test.onNodeWithText
import androidx.compose.ui.test.onRoot
@@ -34,36 +34,35 @@
import com.android.settings.notification.app.AppNotificationSettings
import com.android.settings.spa.notification.IAppNotificationRepository
import com.android.settingslib.spa.testutils.delay
+import com.android.settingslib.spa.testutils.waitUntilExists
import org.junit.After
import org.junit.Before
import org.junit.Rule
import org.junit.Test
import org.junit.runner.RunWith
import org.mockito.MockitoSession
-import org.mockito.Spy
import org.mockito.quality.Strictness
@RunWith(AndroidJUnit4::class)
class AppNotificationPreferenceTest {
- @get:Rule
- val composeTestRule = createComposeRule()
+ @get:Rule val composeTestRule = createComposeRule()
private lateinit var mockSession: MockitoSession
- @Spy
private val context: Context = ApplicationProvider.getApplicationContext()
- private val repository = object : IAppNotificationRepository {
- override fun getNotificationSummary(app: ApplicationInfo) = SUMMARY
- }
+ private val repository =
+ object : IAppNotificationRepository {
+ override fun getNotificationSummary(app: ApplicationInfo) = SUMMARY
+ }
@Before
fun setUp() {
- mockSession = ExtendedMockito.mockitoSession()
- .initMocks(this)
- .mockStatic(AppInfoDashboardFragment::class.java)
- .strictness(Strictness.LENIENT)
- .startMocking()
+ mockSession =
+ ExtendedMockito.mockitoSession()
+ .mockStatic(AppInfoDashboardFragment::class.java)
+ .strictness(Strictness.LENIENT)
+ .startMocking()
}
@After
@@ -75,25 +74,26 @@
fun title_displayed() {
setContent(APP)
- composeTestRule.onNodeWithText(context.getString(R.string.notifications_label))
- .assertIsDisplayed()
+ composeTestRule.waitUntilExists(hasText(context.getString(R.string.notifications_label)))
}
@Test
fun summary_displayed() {
setContent(APP)
- composeTestRule.onNodeWithText(SUMMARY).assertIsDisplayed()
+ composeTestRule.waitUntilExists(hasText(SUMMARY))
}
@Test
fun whenNotInstalled_disable() {
- setContent(ApplicationInfo().apply {
- packageName = PACKAGE_NAME
- uid = UID
- })
+ setContent(
+ ApplicationInfo().apply {
+ packageName = PACKAGE_NAME
+ uid = UID
+ })
- composeTestRule.onNodeWithText(context.getString(R.string.notifications_label))
+ composeTestRule
+ .onNodeWithText(context.getString(R.string.notifications_label))
.assertIsNotEnabled()
}
@@ -125,11 +125,12 @@
private companion object {
const val PACKAGE_NAME = "package.name"
const val UID = 123
- val APP = ApplicationInfo().apply {
- packageName = PACKAGE_NAME
- uid = UID
- flags = ApplicationInfo.FLAG_INSTALLED
- }
+ val APP =
+ ApplicationInfo().apply {
+ packageName = PACKAGE_NAME
+ uid = UID
+ flags = ApplicationInfo.FLAG_INSTALLED
+ }
const val SUMMARY = "Summary"
}
-}
\ No newline at end of file
+}
diff --git a/tests/spa_unit/src/com/android/settings/spa/app/appinfo/InstantAppDomainsPreferenceTest.kt b/tests/spa_unit/src/com/android/settings/spa/app/appinfo/InstantAppDomainsPreferenceTest.kt
index 1a78c49..e5f8fb0 100644
--- a/tests/spa_unit/src/com/android/settings/spa/app/appinfo/InstantAppDomainsPreferenceTest.kt
+++ b/tests/spa_unit/src/com/android/settings/spa/app/appinfo/InstantAppDomainsPreferenceTest.kt
@@ -24,6 +24,7 @@
import androidx.compose.ui.test.assertIsDisplayed
import androidx.compose.ui.test.assertIsEnabled
import androidx.compose.ui.test.assertIsNotDisplayed
+import androidx.compose.ui.test.hasText
import androidx.compose.ui.test.junit4.createComposeRule
import androidx.compose.ui.test.onNodeWithText
import androidx.compose.ui.test.onRoot
@@ -35,42 +36,41 @@
import com.android.settings.Utils
import com.android.settingslib.spa.testutils.delay
import com.android.settingslib.spa.testutils.onDialogText
+import com.android.settingslib.spa.testutils.waitUntilExists
import org.junit.After
import org.junit.Before
import org.junit.Rule
import org.junit.Test
import org.junit.runner.RunWith
-import org.mockito.Mock
-import org.mockito.Mockito
-import org.mockito.Mockito.any
-import org.mockito.Mockito.anyInt
import org.mockito.MockitoSession
-import org.mockito.Spy
+import org.mockito.kotlin.any
+import org.mockito.kotlin.doReturn
+import org.mockito.kotlin.mock
+import org.mockito.kotlin.spy
+import org.mockito.kotlin.whenever
import org.mockito.quality.Strictness
-import org.mockito.Mockito.`when` as whenever
@RunWith(AndroidJUnit4::class)
class InstantAppDomainsPreferenceTest {
- @get:Rule
- val composeTestRule = createComposeRule()
+ @get:Rule val composeTestRule = createComposeRule()
private lateinit var mockSession: MockitoSession
- @Spy
- private val context: Context = ApplicationProvider.getApplicationContext()
+ private val packageManager = mock<PackageManager>()
- @Mock
- private lateinit var packageManager: PackageManager
+ private val context: Context = spy(ApplicationProvider.getApplicationContext()) {
+ on { packageManager } doReturn packageManager
+ doReturn(mock).whenever(mock).createContextAsUser(any(), any())
+ }
@Before
fun setUp() {
- mockSession = ExtendedMockito.mockitoSession()
- .initMocks(this)
- .mockStatic(Utils::class.java)
- .strictness(Strictness.LENIENT)
- .startMocking()
- whenever(context.packageManager).thenReturn(packageManager)
- Mockito.doReturn(context).`when`(context).createContextAsUser(any(), anyInt())
+ mockSession =
+ ExtendedMockito.mockitoSession()
+ .mockStatic(Utils::class.java)
+ .strictness(Strictness.LENIENT)
+ .startMocking()
+
mockDomains(emptySet())
}
@@ -108,8 +108,8 @@
setContent()
- composeTestRule.onNodeWithText(context.getString(R.string.domain_urls_summary_none))
- .assertIsDisplayed()
+ composeTestRule.waitUntilExists(
+ hasText(context.getString(R.string.domain_urls_summary_none)))
}
@Test
@@ -138,9 +138,9 @@
composeTestRule.onRoot().performClick()
composeTestRule.delay()
- composeTestRule.onDialogText(
- context.getString(R.string.app_launch_supported_domain_urls_title)
- ).assertIsDisplayed()
+ composeTestRule
+ .onDialogText(context.getString(R.string.app_launch_supported_domain_urls_title))
+ .assertIsDisplayed()
composeTestRule.onDialogText("abc").assertIsDisplayed()
composeTestRule.onDialogText("def").assertIsDisplayed()
}
@@ -157,10 +157,11 @@
const val PACKAGE_NAME = "package.name"
const val UID = 123
- val INSTANT_APP = ApplicationInfo().apply {
- packageName = PACKAGE_NAME
- uid = UID
- privateFlags = ApplicationInfo.PRIVATE_FLAG_INSTANT
- }
+ val INSTANT_APP =
+ ApplicationInfo().apply {
+ packageName = PACKAGE_NAME
+ uid = UID
+ privateFlags = ApplicationInfo.PRIVATE_FLAG_INSTANT
+ }
}
}
diff --git a/tests/spa_unit/src/com/android/settings/spa/app/backgroundinstall/BackgroundInstalledAppsPageProviderTest.kt b/tests/spa_unit/src/com/android/settings/spa/app/backgroundinstall/BackgroundInstalledAppsPageProviderTest.kt
index 5c65da1..5ced84b 100644
--- a/tests/spa_unit/src/com/android/settings/spa/app/backgroundinstall/BackgroundInstalledAppsPageProviderTest.kt
+++ b/tests/spa_unit/src/com/android/settings/spa/app/backgroundinstall/BackgroundInstalledAppsPageProviderTest.kt
@@ -23,6 +23,7 @@
import android.content.pm.PackageManager
import android.content.pm.ParceledListSlice
import androidx.compose.ui.test.assertIsDisplayed
+import androidx.compose.ui.test.hasText
import androidx.compose.ui.test.junit4.createComposeRule
import androidx.compose.ui.test.onNodeWithText
import androidx.compose.ui.test.performClick
@@ -30,50 +31,38 @@
import androidx.test.ext.junit.runners.AndroidJUnit4
import com.android.settings.R
import com.android.settingslib.spa.testutils.FakeNavControllerWrapper
+import com.android.settingslib.spa.testutils.waitUntilExists
import com.android.settingslib.spaprivileged.template.app.AppListItemModel
import com.google.common.truth.Truth.assertThat
import kotlinx.coroutines.flow.first
import kotlinx.coroutines.flow.flowOf
import kotlinx.coroutines.test.runTest
-import org.junit.Before
import org.junit.Rule
import org.junit.Test
import org.junit.runner.RunWith
-import org.mockito.Mock
-import org.mockito.junit.MockitoJUnit
-import org.mockito.junit.MockitoRule
import org.mockito.kotlin.any
import org.mockito.kotlin.argumentCaptor
+import org.mockito.kotlin.doReturn
import org.mockito.kotlin.eq
+import org.mockito.kotlin.mock
+import org.mockito.kotlin.spy
import org.mockito.kotlin.whenever
@RunWith(AndroidJUnit4::class)
class BackgroundInstalledAppsPageProviderTest {
- @get:Rule
- val composeTestRule = createComposeRule()
+ @get:Rule val composeTestRule = createComposeRule()
- @get:Rule
- val mockito: MockitoRule = MockitoJUnit.rule()
+ private val mockPackageManager = mock<PackageManager>()
- private val context: Context = ApplicationProvider.getApplicationContext()
+ private val context: Context =
+ spy(ApplicationProvider.getApplicationContext()) {
+ on { packageManager } doReturn mockPackageManager
+ }
- @Mock
- private lateinit var mockContext: Context
-
- @Mock
- private lateinit var mockPackageManager: PackageManager
-
- @Mock
- private lateinit var mockBackgroundInstallControlService: IBackgroundInstallControlService
-
- private var packageInfoFlagsCaptor = argumentCaptor<PackageManager.PackageInfoFlags>()
+ private val mockBackgroundInstallControlService = mock<IBackgroundInstallControlService>()
private val fakeNavControllerWrapper = FakeNavControllerWrapper()
- @Before
- fun setup() {
- whenever(mockContext.packageManager).thenReturn(mockPackageManager)
- }
@Test
fun allAppListPageProvider_name() {
assertThat(BackgroundInstalledAppsPageProvider.name)
@@ -106,7 +95,7 @@
setInjectEntry(false)
- composeTestRule.onNodeWithText("0 apps").assertIsDisplayed()
+ composeTestRule.waitUntilExists(hasText("0 apps"))
}
@Test
@@ -146,8 +135,9 @@
BackgroundInstalledAppList()
}
- composeTestRule.onNodeWithText(
- context.getString(R.string.background_install_title)).assertIsDisplayed()
+ composeTestRule.waitUntilExists(
+ hasText(context.getString(R.string.background_install_title))
+ )
}
@Test
@@ -197,7 +187,8 @@
@Test
fun backgroundInstalledAppsWithGroupingListModel_transform() = runTest {
- val listModel = BackgroundInstalledAppsWithGroupingListModel(mockContext)
+ val packageInfoFlagsCaptor = argumentCaptor<PackageManager.PackageInfoFlags>()
+ val listModel = BackgroundInstalledAppsWithGroupingListModel(context)
whenever(mockPackageManager.getPackageInfoAsUser(
eq(TEST_PACKAGE_NAME),
packageInfoFlagsCaptor.capture(),
@@ -215,7 +206,7 @@
@Test
fun backgroundInstalledAppsWithGroupingListModel_filter() = runTest {
- val listModel = BackgroundInstalledAppsWithGroupingListModel(mockContext)
+ val listModel = BackgroundInstalledAppsWithGroupingListModel(context)
listModel.setBackgroundInstallControlService(mockBackgroundInstallControlService)
whenever(mockBackgroundInstallControlService.getBackgroundInstalledPackages(
PackageManager.MATCH_ALL.toLong(),
diff --git a/tests/spa_unit/src/com/android/settings/spa/search/SpaSearchLandingActivityTest.kt b/tests/spa_unit/src/com/android/settings/spa/search/SpaSearchLandingActivityTest.kt
new file mode 100644
index 0000000..7410bb4
--- /dev/null
+++ b/tests/spa_unit/src/com/android/settings/spa/search/SpaSearchLandingActivityTest.kt
@@ -0,0 +1,91 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.spa.search
+
+import android.content.Context
+import android.content.Intent
+import androidx.test.core.app.ApplicationProvider
+import androidx.test.ext.junit.runners.AndroidJUnit4
+import com.android.settings.SettingsActivity
+import com.android.settings.spa.SpaSearchLanding.BundleValue
+import com.android.settings.spa.SpaSearchLanding.SpaSearchLandingFragment
+import com.android.settings.spa.SpaSearchLanding.SpaSearchLandingKey
+import com.android.settings.spa.SpaSearchLanding.SpaSearchLandingSpaPage
+import com.android.settingslib.spa.framework.util.KEY_DESTINATION
+import com.google.common.truth.Truth.assertThat
+import org.junit.Test
+import org.junit.runner.RunWith
+import org.mockito.kotlin.any
+import org.mockito.kotlin.argThat
+import org.mockito.kotlin.argumentCaptor
+import org.mockito.kotlin.doNothing
+import org.mockito.kotlin.spy
+import org.mockito.kotlin.verify
+import org.mockito.kotlin.whenever
+
+@RunWith(AndroidJUnit4::class)
+class SpaSearchLandingActivityTest {
+
+ private val context: Context =
+ spy(ApplicationProvider.getApplicationContext()) {
+ doNothing().whenever(mock).startActivity(any())
+ }
+
+ @Test
+ fun tryLaunch_spaPage() {
+ val key =
+ SpaSearchLandingKey.newBuilder()
+ .setSpaPage(SpaSearchLandingSpaPage.newBuilder().setDestination(DESTINATION))
+ .build()
+
+ SpaSearchLandingActivity.tryLaunch(context, key.toByteString().toStringUtf8())
+
+ verify(context).startActivity(argThat { getStringExtra(KEY_DESTINATION) == DESTINATION })
+ }
+
+ @Test
+ fun tryLaunch_fragment() {
+ val key =
+ SpaSearchLandingKey.newBuilder()
+ .setFragment(
+ SpaSearchLandingFragment.newBuilder()
+ .setFragmentName(DESTINATION)
+ .setPreferenceKey(PREFERENCE_KEY)
+ .putArguments(
+ ARGUMENT_KEY,
+ BundleValue.newBuilder().setIntValue(ARGUMENT_VALUE).build()))
+ .build()
+
+ SpaSearchLandingActivity.tryLaunch(context, key.toByteString().toStringUtf8())
+
+ val intent = argumentCaptor<Intent> { verify(context).startActivity(capture()) }.firstValue
+ assertThat(intent.getStringExtra(SettingsActivity.EXTRA_SHOW_FRAGMENT))
+ .isEqualTo(DESTINATION)
+ val fragmentArguments =
+ intent.getBundleExtra(SettingsActivity.EXTRA_SHOW_FRAGMENT_ARGUMENTS)!!
+ assertThat(fragmentArguments.getString(SettingsActivity.EXTRA_FRAGMENT_ARG_KEY))
+ .isEqualTo(PREFERENCE_KEY)
+ assertThat(fragmentArguments.getInt(ARGUMENT_KEY)).isEqualTo(ARGUMENT_VALUE)
+ }
+
+ private companion object {
+ const val DESTINATION = "Destination"
+ const val PREFERENCE_KEY = "preference_key"
+ const val ARGUMENT_KEY = "argument_key"
+ const val ARGUMENT_VALUE = 123
+ }
+}
diff --git a/tests/spa_unit/src/com/android/settings/spa/search/SpaSearchRepositoryTest.kt b/tests/spa_unit/src/com/android/settings/spa/search/SpaSearchRepositoryTest.kt
index 911dfd2..c38f22f 100644
--- a/tests/spa_unit/src/com/android/settings/spa/search/SpaSearchRepositoryTest.kt
+++ b/tests/spa_unit/src/com/android/settings/spa/search/SpaSearchRepositoryTest.kt
@@ -18,9 +18,12 @@
import android.content.Context
import androidx.test.ext.junit.runners.AndroidJUnit4
+import com.android.settings.spa.SpaSearchLanding.SpaSearchLandingKey
+import com.android.settings.spa.SpaSearchLanding.SpaSearchLandingSpaPage
import com.android.settings.spa.search.SpaSearchRepository.Companion.createSearchIndexableData
import com.android.settingslib.spa.framework.common.SettingsPageProvider
import com.google.common.truth.Truth.assertThat
+import com.google.protobuf.ByteString
import org.junit.Test
import org.junit.runner.RunWith
import org.mockito.kotlin.mock
@@ -35,17 +38,31 @@
override val name = PAGE_NAME
}
- val searchIndexableData = pageProvider.createSearchIndexableData { listOf(TITLE) }
+ val searchIndexableData =
+ pageProvider.createSearchIndexableData({ PAGE_TITLE }) { listOf(ITEM_TITLE) }
val dynamicRawDataToIndex =
searchIndexableData.searchIndexProvider.getDynamicRawDataToIndex(mock<Context>(), true)
assertThat(searchIndexableData.targetClass).isEqualTo(pageProvider::class.java)
assertThat(dynamicRawDataToIndex).hasSize(1)
- assertThat(dynamicRawDataToIndex[0].title).isEqualTo(TITLE)
+ val rawData = dynamicRawDataToIndex[0]
+ val key = SpaSearchLandingKey.parseFrom(ByteString.copyFromUtf8(rawData.key))
+ assertThat(key)
+ .isEqualTo(
+ SpaSearchLandingKey.newBuilder()
+ .setSpaPage(SpaSearchLandingSpaPage.newBuilder().setDestination(PAGE_NAME))
+ .build())
+ assertThat(rawData.title).isEqualTo(ITEM_TITLE)
+ assertThat(rawData.intentAction).isEqualTo("android.settings.SPA_SEARCH_LANDING")
+ assertThat(rawData.intentTargetClass)
+ .isEqualTo(SpaSearchLandingActivity::class.qualifiedName)
+ assertThat(rawData.className).isEqualTo(pageProvider::class.java.name)
+ assertThat(rawData.screenTitle).isEqualTo(PAGE_TITLE)
}
private companion object {
const val PAGE_NAME = "PageName"
- const val TITLE = "Title"
+ const val PAGE_TITLE = "Page Title"
+ const val ITEM_TITLE = "Item Title"
}
}
diff --git a/tests/spa_unit/src/com/android/settings/system/DeveloperOptionsControllerTest.kt b/tests/spa_unit/src/com/android/settings/system/DeveloperOptionsControllerTest.kt
index ad2fbae..4631aa8 100644
--- a/tests/spa_unit/src/com/android/settings/system/DeveloperOptionsControllerTest.kt
+++ b/tests/spa_unit/src/com/android/settings/system/DeveloperOptionsControllerTest.kt
@@ -28,6 +28,7 @@
import com.android.settings.SettingsActivity
import com.android.settings.core.BasePreferenceController
import com.android.settings.development.DevelopmentSettingsDashboardFragment
+import com.android.settingslib.spa.testutils.delay
import com.android.settingslib.spaprivileged.framework.common.userManager
import com.google.common.truth.Truth.assertThat
import org.junit.Rule
@@ -99,6 +100,7 @@
composeTestRule.onNodeWithText(
context.getString(com.android.settingslib.R.string.development_settings_title)
).performClick()
+ composeTestRule.delay()
val intent = argumentCaptor<Intent> {
verify(context).startActivity(capture())
diff --git a/tests/spa_unit/src/com/android/settings/testutils/FakeFeatureFactory.kt b/tests/spa_unit/src/com/android/settings/testutils/FakeFeatureFactory.kt
index dc15f0b..d7241b9 100644
--- a/tests/spa_unit/src/com/android/settings/testutils/FakeFeatureFactory.kt
+++ b/tests/spa_unit/src/com/android/settings/testutils/FakeFeatureFactory.kt
@@ -40,7 +40,6 @@
import com.android.settings.notification.syncacrossdevices.SyncAcrossDevicesFeatureProvider
import com.android.settings.overlay.DockUpdaterFeatureProvider
import com.android.settings.overlay.FeatureFactory
-import com.android.settings.overlay.SurveyFeatureProvider
import com.android.settings.panel.PanelFeatureProvider
import com.android.settings.privatespace.PrivateSpaceLoginFeatureProvider
import com.android.settings.search.SearchFeatureProvider
@@ -98,9 +97,7 @@
override val searchFeatureProvider: SearchFeatureProvider
get() = TODO("Not yet implemented")
- override fun getSurveyFeatureProvider(context: Context): SurveyFeatureProvider? {
- TODO("Not yet implemented")
- }
+ override fun getSurveyFeatureProvider(context: Context) = null
override val securityFeatureProvider: SecurityFeatureProvider
get() = TODO("Not yet implemented")
diff --git a/tests/spa_unit/src/com/android/settings/wifi/WepNetworksPreferenceControllerTest.kt b/tests/spa_unit/src/com/android/settings/wifi/WepNetworksPreferenceControllerTest.kt
index 49e6a17..9183096 100644
--- a/tests/spa_unit/src/com/android/settings/wifi/WepNetworksPreferenceControllerTest.kt
+++ b/tests/spa_unit/src/com/android/settings/wifi/WepNetworksPreferenceControllerTest.kt
@@ -17,6 +17,7 @@
package com.android.settings.wifi
import android.content.Context
+import android.net.wifi.WifiInfo
import android.net.wifi.WifiManager
import androidx.compose.ui.test.assertIsOff
import androidx.compose.ui.test.assertIsOn
@@ -30,7 +31,6 @@
import androidx.test.core.app.ApplicationProvider
import androidx.test.ext.junit.runners.AndroidJUnit4
import com.android.settings.R
-import com.android.settings.dashboard.DashboardFragment
import com.android.settings.spa.preference.ComposePreference
import com.android.settingslib.spa.testutils.onDialogText
import com.android.wifitrackerlib.WifiEntry
@@ -45,29 +45,31 @@
import org.mockito.kotlin.doReturn
import org.mockito.kotlin.mock
import org.mockito.kotlin.spy
+import org.mockito.kotlin.stub
@RunWith(AndroidJUnit4::class)
class WepNetworksPreferenceControllerTest {
- @get:Rule
- val composeTestRule = createComposeRule()
+ @get:Rule val composeTestRule = createComposeRule()
private var wepAllowed = true
- private var mockWifiInfo = mock<android.net.wifi.WifiInfo> {
- on { it.currentSecurityType } doReturn WifiEntry.SECURITY_EAP
- on { it.ssid } doReturn SSID
- }
-
- private var mockWifiManager = mock<WifiManager> {
- on { queryWepAllowed(any(), any()) } doAnswer {
- @Suppress("UNCHECKED_CAST")
- val consumer = it.arguments[1] as Consumer<Boolean>
- consumer.accept(wepAllowed)
+ private var mockWifiInfo =
+ mock<WifiInfo> {
+ on { currentSecurityType } doReturn WifiEntry.SECURITY_EAP
+ on { ssid } doReturn SSID
}
- on { it.isWepSupported } doReturn true
- on { it.connectionInfo } doReturn mockWifiInfo
- }
+
+ private var mockWifiManager =
+ mock<WifiManager> {
+ on { queryWepAllowed(any(), any()) } doAnswer
+ {
+ @Suppress("UNCHECKED_CAST") val consumer = it.arguments[1] as Consumer<Boolean>
+ consumer.accept(wepAllowed)
+ }
+ on { isWepSupported } doReturn true
+ on { connectionInfo } doReturn mockWifiInfo
+ }
private var context: Context =
spy(ApplicationProvider.getApplicationContext()) {
@@ -85,74 +87,101 @@
}
@Test
- fun wepAllowedTrue_turnOn() {
+ fun isChecked_wepSupportedAndAllowed_isOn() {
+ mockWifiManager.stub { on { isWepSupported } doReturn true }
wepAllowed = true
- composeTestRule.setContent {
- controller.Content()
- }
- composeTestRule.onNodeWithText(context.getString(R.string.wifi_allow_wep_networks))
+ composeTestRule.setContent { controller.Content() }
+
+ composeTestRule
+ .onNodeWithText(context.getString(R.string.wifi_allow_wep_networks))
.assertIsOn()
}
@Test
- fun wepAllowedFalse_turnOff() {
+ fun isChecked_wepSupportedAndNotAllowed_isOff() {
+ mockWifiManager.stub { on { isWepSupported } doReturn true }
wepAllowed = false
- composeTestRule.setContent {
- controller.Content()
- }
- composeTestRule.onNodeWithText(context.getString(R.string.wifi_allow_wep_networks))
+ composeTestRule.setContent { controller.Content() }
+
+ composeTestRule
+ .onNodeWithText(context.getString(R.string.wifi_allow_wep_networks))
+ .assertIsOff()
+ }
+
+ @Test
+ fun isChecked_wepNotSupportedAndAllowed_isOff() {
+ mockWifiManager.stub { on { isWepSupported } doReturn false }
+ wepAllowed = true
+
+ composeTestRule.setContent { controller.Content() }
+
+ composeTestRule
+ .onNodeWithText(context.getString(R.string.wifi_allow_wep_networks))
+ .assertIsOff()
+ }
+
+ @Test
+ fun isChecked_wepNotSupportedAndNotAllowed_isOff() {
+ mockWifiManager.stub { on { isWepSupported } doReturn false }
+ wepAllowed = false
+
+ composeTestRule.setContent { controller.Content() }
+
+ composeTestRule
+ .onNodeWithText(context.getString(R.string.wifi_allow_wep_networks))
.assertIsOff()
}
@Test
fun onClick_turnOn() {
wepAllowed = false
- composeTestRule.setContent {
- controller.Content()
- }
+ composeTestRule.setContent { controller.Content() }
composeTestRule.onRoot().performClick()
- composeTestRule.onNodeWithText(context.getString(R.string.wifi_allow_wep_networks))
+ composeTestRule
+ .onNodeWithText(context.getString(R.string.wifi_allow_wep_networks))
.assertIsOn()
}
@Test
fun onClick_turnOff() {
wepAllowed = true
- composeTestRule.setContent {
- controller.Content()
- }
+ composeTestRule.setContent { controller.Content() }
composeTestRule.onRoot().performClick()
- composeTestRule.onNodeWithText(context.getString(R.string.wifi_allow_wep_networks))
+ composeTestRule
+ .onNodeWithText(context.getString(R.string.wifi_allow_wep_networks))
.assertIsOff()
}
@Test
fun whenClick_wepAllowed_openDialog() {
wepAllowed = true
- Mockito.`when`(mockWifiInfo.currentSecurityType).thenReturn(WifiEntry.SECURITY_WEP)
- composeTestRule.setContent {
- controller.Content()
+ mockWifiInfo.stub {
+ on { currentSecurityType } doReturn WifiEntry.SECURITY_WEP
}
+ composeTestRule.setContent { controller.Content() }
composeTestRule.onRoot().performClick()
- composeTestRule.onDialogText(context.getString(R.string.wifi_disconnect_button_text))
+ composeTestRule
+ .onDialogText(context.getString(R.string.wifi_disconnect_button_text))
.isDisplayed()
}
@Test
fun whenClick_wepDisallowed_openDialog() {
wepAllowed = false
- Mockito.`when`(mockWifiInfo.currentSecurityType).thenReturn(WifiEntry.SECURITY_WEP)
- composeTestRule.setContent {
- controller.Content()
+ mockWifiInfo.stub {
+ on { currentSecurityType } doReturn WifiEntry.SECURITY_WEP
}
+ composeTestRule.setContent { controller.Content() }
+
composeTestRule.onRoot().performClick()
- composeTestRule.onDialogText(context.getString(R.string.wifi_disconnect_button_text))
+ composeTestRule
+ .onDialogText(context.getString(R.string.wifi_disconnect_button_text))
.isNotDisplayed()
}
@@ -160,4 +189,4 @@
const val TEST_KEY = "test_key"
const val SSID = "ssid"
}
-}
\ No newline at end of file
+}
diff --git a/tests/spa_unit/src/com/android/settings/wifi/details2/WifiPrivacyPreferenceController2Test.kt b/tests/spa_unit/src/com/android/settings/wifi/details2/WifiPrivacyPreferenceController2Test.kt
index cb1f997..9260409 100644
--- a/tests/spa_unit/src/com/android/settings/wifi/details2/WifiPrivacyPreferenceController2Test.kt
+++ b/tests/spa_unit/src/com/android/settings/wifi/details2/WifiPrivacyPreferenceController2Test.kt
@@ -59,7 +59,7 @@
controller.updateState(preference)
- val prefValue = WifiPrivacyPreferenceController2.translateMacRandomizedValueToPrefValue(
+ val prefValue = WifiPrivacyPreferenceController2.translateWifiEntryPrivacyToPrefValue(
WifiEntry.PRIVACY_DEVICE_MAC
)
assertThat(preference.entry).isEqualTo(preferenceStrings[prefValue])
@@ -73,7 +73,7 @@
controller.updateState(preference)
- val prefValue = WifiPrivacyPreferenceController2.translateMacRandomizedValueToPrefValue(
+ val prefValue = WifiPrivacyPreferenceController2.translateWifiEntryPrivacyToPrefValue(
WifiEntry.PRIVACY_RANDOMIZED_MAC
)
assertThat(preference.entry).isEqualTo(preferenceStrings[prefValue])
diff --git a/tests/unit/src/com/android/settings/connecteddevice/display/ExternalDisplayTestBase.java b/tests/unit/src/com/android/settings/connecteddevice/display/ExternalDisplayTestBase.java
index 60b0342..4cba1ef 100644
--- a/tests/unit/src/com/android/settings/connecteddevice/display/ExternalDisplayTestBase.java
+++ b/tests/unit/src/com/android/settings/connecteddevice/display/ExternalDisplayTestBase.java
@@ -87,6 +87,7 @@
doReturn(mHandler).when(mMockedInjector).getHandler();
doReturn("").when(mMockedInjector).getSystemProperty(
VIRTUAL_DISPLAY_PACKAGE_NAME_SYSTEM_PROPERTY);
+ doReturn(true).when(mMockedInjector).isModeLimitForExternalDisplayEnabled();
doAnswer((arg) -> {
mListener = arg.getArgument(0);
return null;
diff --git a/tests/unit/src/com/android/settings/connecteddevice/display/ResolutionPreferenceFragmentTest.java b/tests/unit/src/com/android/settings/connecteddevice/display/ResolutionPreferenceFragmentTest.java
index ee38a1c..c866362 100644
--- a/tests/unit/src/com/android/settings/connecteddevice/display/ResolutionPreferenceFragmentTest.java
+++ b/tests/unit/src/com/android/settings/connecteddevice/display/ResolutionPreferenceFragmentTest.java
@@ -17,6 +17,7 @@
import static android.view.Display.INVALID_DISPLAY;
+import static com.android.settings.connecteddevice.display.ResolutionPreferenceFragment.DISPLAY_MODE_LIMIT_OVERRIDE_PROP;
import static com.android.settings.connecteddevice.display.ResolutionPreferenceFragment.EXTERNAL_DISPLAY_RESOLUTION_SETTINGS_RESOURCE;
import static com.android.settings.connecteddevice.display.ResolutionPreferenceFragment.MORE_OPTIONS_KEY;
import static com.android.settings.connecteddevice.display.ResolutionPreferenceFragment.TOP_OPTIONS_KEY;
@@ -29,6 +30,7 @@
import android.content.Context;
import android.content.res.Resources;
+import android.util.Pair;
import android.view.View;
import android.widget.TextView;
@@ -83,20 +85,54 @@
@Test
@UiThreadTest
- public void testModePreferences() {
- mDisplayIdArg = 1;
- initFragment();
- mHandler.flush();
- PreferenceCategory topPref = mPreferenceScreen.findPreference(TOP_OPTIONS_KEY);
- assertThat(topPref).isNotNull();
- PreferenceCategory morePref = mPreferenceScreen.findPreference(MORE_OPTIONS_KEY);
- assertThat(morePref).isNotNull();
+ public void testModePreferences_modeLimitFlagIsOn_noOverride() {
+ doReturn(true).when(mMockedInjector).isModeLimitForExternalDisplayEnabled();
+ doReturn(null).when(mMockedInjector).getSystemProperty(
+ DISPLAY_MODE_LIMIT_OVERRIDE_PROP);
+ var topAndMorePref = runTestModePreferences();
+ PreferenceCategory topPref = topAndMorePref.first, morePref = topAndMorePref.second;
assertThat(topPref.getPreferenceCount()).isEqualTo(3);
assertThat(morePref.getPreferenceCount()).isEqualTo(1);
}
@Test
@UiThreadTest
+ public void testModePreferences_noModeLimitFlag_overrideIsTrue() {
+ doReturn(false).when(mMockedInjector).isModeLimitForExternalDisplayEnabled();
+ doReturn("true").when(mMockedInjector).getSystemProperty(
+ DISPLAY_MODE_LIMIT_OVERRIDE_PROP);
+ var topAndMorePref = runTestModePreferences();
+ PreferenceCategory topPref = topAndMorePref.first, morePref = topAndMorePref.second;
+ assertThat(topPref.getPreferenceCount()).isEqualTo(3);
+ assertThat(morePref.getPreferenceCount()).isEqualTo(1);
+ }
+
+ @Test
+ @UiThreadTest
+ public void testModePreferences_noModeLimitFlag_noOverride() {
+ doReturn(false).when(mMockedInjector).isModeLimitForExternalDisplayEnabled();
+ doReturn(null).when(mMockedInjector).getSystemProperty(
+ DISPLAY_MODE_LIMIT_OVERRIDE_PROP);
+ var topAndMorePref = runTestModePreferences();
+ PreferenceCategory topPref = topAndMorePref.first, morePref = topAndMorePref.second;
+ assertThat(topPref.getPreferenceCount()).isEqualTo(3);
+ assertThat(morePref.getPreferenceCount()).isEqualTo(2);
+ }
+
+ @Test
+ @UiThreadTest
+ public void testModePreferences_modeLimitFlagIsOn_butOverrideIsFalse() {
+ doReturn(true).when(mMockedInjector).isModeLimitForExternalDisplayEnabled();
+ doReturn("false").when(mMockedInjector).getSystemProperty(
+ DISPLAY_MODE_LIMIT_OVERRIDE_PROP);
+ var topAndMorePref = runTestModePreferences();
+ PreferenceCategory topPref = topAndMorePref.first, morePref = topAndMorePref.second;
+ assertThat(topPref.getPreferenceCount()).isEqualTo(3);
+ assertThat(morePref.getPreferenceCount()).isEqualTo(2);
+ }
+
+ @Test
+ @UiThreadTest
public void testModeChange() {
mDisplayIdArg = 1;
initFragment();
@@ -109,6 +145,17 @@
verify(mMockedInjector).setUserPreferredDisplayMode(mDisplayIdArg, mode);
}
+ private Pair<PreferenceCategory, PreferenceCategory> runTestModePreferences() {
+ mDisplayIdArg = 1;
+ initFragment();
+ mHandler.flush();
+ PreferenceCategory topPref = mPreferenceScreen.findPreference(TOP_OPTIONS_KEY);
+ assertThat(topPref).isNotNull();
+ PreferenceCategory morePref = mPreferenceScreen.findPreference(MORE_OPTIONS_KEY);
+ assertThat(morePref).isNotNull();
+ return new Pair<>(topPref, morePref);
+ }
+
private void initFragment() {
if (mFragment != null) {
return;
diff --git a/tests/unit/src/com/android/settings/development/bluetooth/BluetoothStackLogPreferenceControllerTest.java b/tests/unit/src/com/android/settings/development/bluetooth/BluetoothStackLogPreferenceControllerTest.java
index ab1f469..2aa10bb 100644
--- a/tests/unit/src/com/android/settings/development/bluetooth/BluetoothStackLogPreferenceControllerTest.java
+++ b/tests/unit/src/com/android/settings/development/bluetooth/BluetoothStackLogPreferenceControllerTest.java
@@ -16,13 +16,9 @@
package com.android.settings.development.bluetooth;
-import static com.android.settings.development.bluetooth.BluetoothStackLogPreferenceController.BLUETOOTH_BTSTACK_LOG_MODE_PROPERTY;
-import static com.android.settings.development.bluetooth.BluetoothStackLogPreferenceController.BLUETOOTH_BTSTACK_LOG_MODE_PROPERTY_PERSIST;
-import static com.android.settings.development.bluetooth.BluetoothStackLogPreferenceController.BTSTACK_LOG_MODE_VERBOSE_INDEX;
-import static com.android.settings.development.bluetooth.BluetoothStackLogPreferenceController.BTSTACK_LOG_MODE_DEBUG_INDEX;
-import static com.android.settings.development.bluetooth.BluetoothStackLogPreferenceController.BTSTACK_LOG_MODE_INFO_INDEX;
-import static com.android.settings.development.bluetooth.BluetoothStackLogPreferenceController.BTSTACK_LOG_MODE_WARN_INDEX;
-import static com.android.settings.development.bluetooth.BluetoothStackLogPreferenceController.BTSTACK_LOG_MODE_ERROR_INDEX;
+import static com.android.settings.development.bluetooth.BluetoothStackLogPreferenceController.BT_LOG_LEVEL_DEFAULT_INDEX;
+import static com.android.settings.development.bluetooth.BluetoothStackLogPreferenceController.BT_LOG_LEVEL_PROP;
+import static com.android.settings.development.bluetooth.BluetoothStackLogPreferenceController.BT_LOG_LEVEL_PROP_PERSIST;
import static com.google.common.truth.Truth.assertThat;
@@ -37,18 +33,21 @@
import androidx.test.ext.junit.runners.AndroidJUnit4;
import org.junit.Before;
-import org.junit.Ignore;
import org.junit.Test;
import org.junit.runner.RunWith;
-import org.mockito.Mock;
-import org.mockito.MockitoAnnotations;
@RunWith(AndroidJUnit4.class)
-@Ignore("b/339148064")
public class BluetoothStackLogPreferenceControllerTest {
- private static final String TAG = "BluetoothStackLogPreferenceControllerTest";
+ private static final String COM_ANDROID_SETTINGS = "com.android.settings";
+ private static final String TYPE_ARRAY = "array";
- @Mock private Context mContext;
+ private static final String XML_DEFINED_PREFERENCE_KEY = "bt_stack_log_level";
+ private static final String XML_DEFINED_ENTRIES_RESOURCE = "bt_stack_log_level_entries";
+ private static final String XML_DEFINED_VALUES_RESOURCE = "bt_stack_log_level_values";
+
+ private static final String PROPERTY_CLEARED = "";
+
+ private Context mContext;
private ListPreference mPreference;
private PreferenceManager mPreferenceManager;
@@ -61,7 +60,6 @@
@Before
public void setup() {
- MockitoAnnotations.initMocks(this);
mContext = ApplicationProvider.getApplicationContext();
if (Looper.myLooper() == null) {
@@ -71,12 +69,11 @@
mPreferenceManager = new PreferenceManager(mContext);
mPreferenceScreen = mPreferenceManager.createPreferenceScreen(mContext);
mPreference = new ListPreference(mContext);
-
mController = new BluetoothStackLogPreferenceController(mContext);
mPreference.setKey(mController.getPreferenceKey());
- mPreference.setEntries(com.android.settings.R.array.bt_stack_log_level_entries);
- mPreference.setEntryValues(com.android.settings.R.array.bt_stack_log_level_values);
+ mPreference.setEntries(getStringArrayResourceId(XML_DEFINED_ENTRIES_RESOURCE));
+ mPreference.setEntryValues(getStringArrayResourceId(XML_DEFINED_VALUES_RESOURCE));
mPreferenceScreen.addPreference(mPreference);
mController.displayPreference(mPreferenceScreen);
@@ -86,134 +83,109 @@
}
/**
- * Test that default log level is set to INFO
+ * Get the resource ID associated with a resource name
+ *
+ * This looks up the resource id by name using our device's context. This way, we can avoid
+ * hardcoding a resource ID or value from the R class which may not match the resource IDs on
+ * the device under test.
+ *
+ * Usage: int valuesResId = getStringArrayResource("bt_stack_log_level_values");
+ * Usage: int entriesResId = getStringArrayResource("bt_stack_log_level_entries");
+ *
+ * @param res - The resource name to look up
+ * @return The integer resource ID corresponding to the given resource name
*/
- @Test
- public void verifyDefaultState_enablesDefaultLogLevelEntriesAndValuesSameSize() {
- mController.onPreferenceChange(mPreference, mController.getDefaultModeIndex());
- assertThat(mPreference.getValue().toString()).isEqualTo(mListValues
- [BTSTACK_LOG_MODE_INFO_INDEX].toString());
- assertThat(mPreference.getSummary().toString()).isEqualTo(mListEntries
- [BTSTACK_LOG_MODE_INFO_INDEX].toString());
+ public int getStringArrayResourceId(String res) {
+ return mContext.getResources().getIdentifier(res, TYPE_ARRAY, COM_ANDROID_SETTINGS);
}
/**
- * Test that log level is changed to VERBOSE when VERBOSE is selected
+ * Test that, for each possible value a user can select, our controller properly handles the
+ * value to update the underlying system property _and_ set the UI entry to the proper value.
*/
@Test
- public void onPreferenceChanged_enableBluetoothStackVerboseLogLevel() {
- mController.onPreferenceChange(mPreference, mListValues[BTSTACK_LOG_MODE_VERBOSE_INDEX]
- .toString());
+ public void onPreferenceChange_withEachValue_uiSetProperlyAndAllValuesWrittenToProperties() {
+ for (int index = 0; index < mListValues.length; index++) {
+ String value = mListValues[index].toString();
+ String entry = mListEntries[index].toString();
- final String persistedLogLevel = SystemProperties.get(
- BLUETOOTH_BTSTACK_LOG_MODE_PROPERTY_PERSIST);
- final String logLevel = SystemProperties.get(BLUETOOTH_BTSTACK_LOG_MODE_PROPERTY);
- assertThat(persistedLogLevel).isEqualTo(mListValues[BTSTACK_LOG_MODE_VERBOSE_INDEX]
- .toString());
- assertThat(logLevel).isEqualTo(mListValues[BTSTACK_LOG_MODE_VERBOSE_INDEX].toString());
+ mController.onPreferenceChange(mPreference, value);
- assertThat(mPreference.getValue().toString()).isEqualTo(mListValues
- [BTSTACK_LOG_MODE_VERBOSE_INDEX].toString());
- assertThat(mPreference.getSummary().toString()).isEqualTo(mListEntries
- [BTSTACK_LOG_MODE_VERBOSE_INDEX].toString());
+ final String persistedLogLevel = SystemProperties.get(BT_LOG_LEVEL_PROP_PERSIST);
+ final String logLevel = SystemProperties.get(BT_LOG_LEVEL_PROP);
+ final String currentValue = mPreference.getValue().toString();
+ final String currentEntry = mPreference.getEntry().toString();
+ final String currentSummary = mPreference.getSummary().toString();
+ final int currentIndex = mPreference.findIndexOfValue(currentValue);
+
+ assertThat(persistedLogLevel).isEqualTo(value);
+ assertThat(logLevel).isEqualTo(value);
+ assertThat(currentIndex).isEqualTo(index);
+ assertThat(currentValue).isEqualTo(value);
+ assertThat(currentEntry).isEqualTo(entry);
+ assertThat(currentSummary).isEqualTo(entry);
+ }
}
/**
- * Test that log level is changed to DEBUG when DEBUG is selected
+ * Test that, for each possible log tag log level value, our controller properly handles the
+ * value to set the UI entry to the proper value.
*/
@Test
- public void onPreferenceChanged_enableBluetoothStackDebugLogLevel() {
- mController.onPreferenceChange(mPreference, mListValues[BTSTACK_LOG_MODE_DEBUG_INDEX]
- .toString());
+ public void updateState_withEachValue_uiSetProperly() {
+ for (int index = 0; index < mListValues.length; index++) {
+ String value = mListValues[index].toString();
+ String entry = mListEntries[index].toString();
- final String persistedLogLevel = SystemProperties.get(
- BLUETOOTH_BTSTACK_LOG_MODE_PROPERTY_PERSIST);
- final String logLevel = SystemProperties.get(BLUETOOTH_BTSTACK_LOG_MODE_PROPERTY);
- assertThat(persistedLogLevel).isEqualTo(mListValues[BTSTACK_LOG_MODE_DEBUG_INDEX]
- .toString());
- assertThat(logLevel).isEqualTo(mListValues[BTSTACK_LOG_MODE_DEBUG_INDEX].toString());
+ SystemProperties.set(BT_LOG_LEVEL_PROP_PERSIST, value);
+ SystemProperties.set(BT_LOG_LEVEL_PROP, value);
- assertThat(mPreference.getValue().toString()).isEqualTo(mListValues
- [BTSTACK_LOG_MODE_DEBUG_INDEX].toString());
- assertThat(mPreference.getSummary().toString()).isEqualTo(mListEntries
- [BTSTACK_LOG_MODE_DEBUG_INDEX].toString());
+ mController.updateState(mPreference);
+
+ final String currentValue = mPreference.getValue().toString();
+ final String currentEntry = mPreference.getEntry().toString();
+ final String currentSummary = mPreference.getSummary().toString();
+ final int currentIndex = mPreference.findIndexOfValue(currentValue);
+
+ assertThat(currentIndex).isEqualTo(index);
+ assertThat(currentValue).isEqualTo(value);
+ assertThat(currentEntry).isEqualTo(entry);
+ assertThat(currentSummary).isEqualTo(entry);
+ }
}
/**
- * Test that log level is changed to INFO when INFO is selected
+ * Test that our controller reverts the log level back to a missing/default value when we're
+ * notified that Developer Options has been disabled.
*/
@Test
- public void onPreferenceChanged_enableBluetoothStackInfoLogLevel() {
- mController.onPreferenceChange(mPreference, mListValues[BTSTACK_LOG_MODE_INFO_INDEX]
- .toString());
+ public void onDeveloperOptionsSwitchDisabled_preferenceSetToDefault() {
+ mController.onDeveloperOptionsSwitchDisabled();
- final String persistedLogLevel = SystemProperties.get(
- BLUETOOTH_BTSTACK_LOG_MODE_PROPERTY_PERSIST);
- final String logLevel = SystemProperties.get(BLUETOOTH_BTSTACK_LOG_MODE_PROPERTY);
- assertThat(persistedLogLevel).isEqualTo(mListValues[BTSTACK_LOG_MODE_INFO_INDEX]
- .toString());
- assertThat(logLevel).isEqualTo(mListValues[BTSTACK_LOG_MODE_INFO_INDEX].toString());
+ final String defaultEntry = mListEntries[BT_LOG_LEVEL_DEFAULT_INDEX].toString();
+ final String defaultValue = mListValues[BT_LOG_LEVEL_DEFAULT_INDEX].toString();
- assertThat(mPreference.getValue().toString()).isEqualTo(mListValues
- [BTSTACK_LOG_MODE_INFO_INDEX].toString());
- assertThat(mPreference.getSummary().toString()).isEqualTo(mListEntries
- [BTSTACK_LOG_MODE_INFO_INDEX].toString());
+ final String persistedLogLevel = SystemProperties.get(BT_LOG_LEVEL_PROP_PERSIST);
+ final String logLevel = SystemProperties.get(BT_LOG_LEVEL_PROP);
+ final String currentValue = mPreference.getValue().toString();
+ final String currentEntry = mPreference.getEntry().toString();
+ final String currentSummary = mPreference.getSummary().toString();
+ final int currentIndex = mPreference.findIndexOfValue(currentValue);
+
+ assertThat(persistedLogLevel).isEqualTo(PROPERTY_CLEARED);
+ assertThat(logLevel).isEqualTo(PROPERTY_CLEARED);
+ assertThat(currentIndex).isEqualTo(BT_LOG_LEVEL_DEFAULT_INDEX);
+ assertThat(currentValue).isEqualTo(defaultValue);
+ assertThat(currentEntry).isEqualTo(defaultEntry);
+ assertThat(currentSummary).isEqualTo(defaultEntry);
}
/**
- * Test that log level is changed to WARN when WARN is selected
+ * Test that our preference key returned by our controller matches the one defined in the XML
+ * definition.
*/
@Test
- public void onPreferenceChanged_enableBluetoothStackWarnLogLevel() {
- mController.onPreferenceChange(mPreference, mListValues[BTSTACK_LOG_MODE_WARN_INDEX]
- .toString());
-
- final String persistedLogLevel = SystemProperties.get(
- BLUETOOTH_BTSTACK_LOG_MODE_PROPERTY_PERSIST);
- final String logLevel = SystemProperties.get(BLUETOOTH_BTSTACK_LOG_MODE_PROPERTY);
- assertThat(persistedLogLevel).isEqualTo(mListValues[BTSTACK_LOG_MODE_WARN_INDEX]
- .toString());
- assertThat(logLevel).isEqualTo(mListValues[BTSTACK_LOG_MODE_WARN_INDEX].toString());
-
- assertThat(mPreference.getValue().toString()).isEqualTo(mListValues
-
- [BTSTACK_LOG_MODE_WARN_INDEX].toString());
- assertThat(mPreference.getSummary().toString()).isEqualTo(mListEntries
- [BTSTACK_LOG_MODE_WARN_INDEX].toString());
- }
-
- /**
- * Test that log level is changed to ERROR when ERROR is selected
- */
- @Test
- public void onPreferenceChanged_enableBluetoothStackErrorLogLevel() {
- mController.onPreferenceChange(mPreference, mListValues[BTSTACK_LOG_MODE_ERROR_INDEX]
- .toString());
-
- final String persistedLogLevel = SystemProperties.get(
- BLUETOOTH_BTSTACK_LOG_MODE_PROPERTY_PERSIST);
- final String logLevel = SystemProperties.get(BLUETOOTH_BTSTACK_LOG_MODE_PROPERTY);
- assertThat(persistedLogLevel).isEqualTo(mListValues[BTSTACK_LOG_MODE_ERROR_INDEX]
- .toString());
- assertThat(logLevel).isEqualTo(mListValues[BTSTACK_LOG_MODE_ERROR_INDEX].toString());
-
- assertThat(mPreference.getValue().toString()).isEqualTo(mListValues
- [BTSTACK_LOG_MODE_ERROR_INDEX].toString());
- assertThat(mPreference.getSummary().toString()).isEqualTo(mListEntries
- [BTSTACK_LOG_MODE_ERROR_INDEX].toString());
- }
-
- /**
- * Test that preference is disabled when developer options is disabled
- * Log level is also reset to default
- */
- @Test
- public void onDeveloperOptionsDisabled_shouldDisablePreference() {
- mController.onDeveloperOptionsDisabled();
- assertThat(mPreference.isEnabled()).isFalse();
- assertThat(mPreference.getValue().toString()).isEqualTo(mListValues[mController
- .getDefaultModeIndex()].toString());
- assertThat(mPreference.getSummary().toString()).isEqualTo(mListEntries[mController
- .getDefaultModeIndex()].toString());
+ public void getPreferenceKey_matchesXmlDefinedPreferenceKey() {
+ assertThat(mController.getPreferenceKey()).isEqualTo(XML_DEFINED_PREFERENCE_KEY);
}
}
diff --git a/tests/unit/src/com/android/settings/deviceinfo/BuildNumberPreferenceControllerTest.java b/tests/unit/src/com/android/settings/deviceinfo/BuildNumberPreferenceControllerTest.java
index 237786b..326627a 100644
--- a/tests/unit/src/com/android/settings/deviceinfo/BuildNumberPreferenceControllerTest.java
+++ b/tests/unit/src/com/android/settings/deviceinfo/BuildNumberPreferenceControllerTest.java
@@ -28,8 +28,13 @@
import android.app.Activity;
import android.content.Context;
+import android.hardware.biometrics.BiometricManager;
+import android.hardware.biometrics.Flags;
import android.os.Looper;
import android.os.UserManager;
+import android.platform.test.annotations.RequiresFlagsEnabled;
+import android.platform.test.flag.junit.CheckFlagsRule;
+import android.platform.test.flag.junit.DeviceFlagsValueProvider;
import android.provider.Settings;
import androidx.lifecycle.LifecycleOwner;
@@ -45,6 +50,7 @@
import com.android.settingslib.development.DevelopmentSettingsEnabler;
import org.junit.Before;
+import org.junit.Rule;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Answers;
@@ -53,6 +59,9 @@
@RunWith(AndroidJUnit4.class)
public class BuildNumberPreferenceControllerTest {
+ @Rule
+ public final CheckFlagsRule mCheckFlagsRule =
+ DeviceFlagsValueProvider.createCheckFlagsRule();
private static final String KEY_BUILD_NUMBER = "build_number";
@Mock(answer = Answers.RETURNS_DEEP_STUBS)
@@ -60,6 +69,7 @@
private Context mContext;
private UserManager mUserManager;
+ private BiometricManager mBiometricManager;
private LifecycleOwner mLifecycleOwner;
private Lifecycle mLifecycle;
private FakeFeatureFactory mFactory;
@@ -76,7 +86,13 @@
mContext = spy(ApplicationProvider.getApplicationContext());
mUserManager = (UserManager) spy(mContext.getSystemService(Context.USER_SERVICE));
+ mBiometricManager = spy(mContext.getSystemService(BiometricManager.class));
+
doReturn(mUserManager).when(mContext).getSystemService(Context.USER_SERVICE);
+ when(mContext.getSystemService(BiometricManager.class)).thenReturn(mBiometricManager);
+ when(mBiometricManager.canAuthenticate(mContext.getUserId(),
+ BiometricManager.Authenticators.MANDATORY_BIOMETRICS))
+ .thenReturn(BiometricManager.BIOMETRIC_ERROR_HW_UNAVAILABLE);
mFactory = FakeFeatureFactory.setupForTest();
mLifecycleOwner = () -> mLifecycle;
@@ -156,7 +172,7 @@
@Test
public void onActivityResult_notConfirmPasswordRequest_doNothing() {
final boolean activityResultHandled = mController.onActivityResult(
- BuildNumberPreferenceController.REQUEST_CONFIRM_PASSWORD_FOR_DEV_PREF + 1,
+ BuildNumberPreferenceController.REQUEST_CONFIRM_PASSWORD_FOR_DEV_PREF + 2,
Activity.RESULT_OK,
null);
@@ -188,4 +204,38 @@
assertThat(activityResultHandled).isTrue();
assertThat(DevelopmentSettingsEnabler.isDevelopmentSettingsEnabled(mContext)).isTrue();
}
+
+ @Test
+ @UiThreadTest
+ @RequiresFlagsEnabled(Flags.FLAG_MANDATORY_BIOMETRICS)
+ public void onActivityResult_confirmPasswordRequestCompleted_launchBiometricPrompt() {
+ when(mUserManager.isAdminUser()).thenReturn(true);
+ when(mBiometricManager.canAuthenticate(mContext.getUserId(),
+ BiometricManager.Authenticators.MANDATORY_BIOMETRICS))
+ .thenReturn(BiometricManager.BIOMETRIC_SUCCESS);
+
+ final boolean activityResultHandled = mController.onActivityResult(
+ BuildNumberPreferenceController.REQUEST_CONFIRM_PASSWORD_FOR_DEV_PREF,
+ Activity.RESULT_OK,
+ null);
+
+ assertThat(activityResultHandled).isTrue();
+ assertThat(DevelopmentSettingsEnabler.isDevelopmentSettingsEnabled(mContext)).isFalse();
+ verify(mFragment).startActivityForResult(any(),
+ eq(BuildNumberPreferenceController.REQUEST_IDENTITY_CHECK_FOR_DEV_PREF));
+ }
+
+ @Test
+ public void onActivityResult_confirmBiometricAuthentication_enableDevPref() {
+ when(mUserManager.isAdminUser()).thenReturn(true);
+
+ Looper.prepare();
+ final boolean activityResultHandled = mController.onActivityResult(
+ BuildNumberPreferenceController.REQUEST_IDENTITY_CHECK_FOR_DEV_PREF,
+ Activity.RESULT_OK,
+ null);
+
+ assertThat(activityResultHandled).isTrue();
+ assertThat(DevelopmentSettingsEnabler.isDevelopmentSettingsEnabled(mContext)).isTrue();
+ }
}
diff --git a/tests/unit/src/com/android/settings/localepicker/TermsOfAddressCategoryControllerTest.java b/tests/unit/src/com/android/settings/localepicker/TermsOfAddressCategoryControllerTest.java
index e316b25..b025abd 100644
--- a/tests/unit/src/com/android/settings/localepicker/TermsOfAddressCategoryControllerTest.java
+++ b/tests/unit/src/com/android/settings/localepicker/TermsOfAddressCategoryControllerTest.java
@@ -17,13 +17,11 @@
package com.android.settings.localepicker;
import static com.android.settings.core.BasePreferenceController.AVAILABLE;
-import static com.android.settings.core.BasePreferenceController.CONDITIONALLY_UNAVAILABLE;
import static com.google.common.truth.Truth.assertThat;
import static org.mockito.Mockito.spy;
-import android.app.settings.SettingsEnums;
import android.content.Context;
import android.os.Looper;
@@ -67,14 +65,6 @@
}
@Test
- public void getAvailabilityStatus_returnUnavailable() {
- Locale.setDefault(Locale.forLanguageTag("fr-CA"));
-
- assertThat(mTermsOfAddressCategoryController.getAvailabilityStatus()).isEqualTo(
- CONDITIONALLY_UNAVAILABLE);
- }
-
- @Test
public void getAvailabilityStatus_returnAvailable() {
Locale.setDefault(Locale.forLanguageTag("fr-FR"));
diff --git a/tests/unit/src/com/android/settings/network/telephony/EnabledNetworkModePreferenceControllerTest.java b/tests/unit/src/com/android/settings/network/telephony/EnabledNetworkModePreferenceControllerTest.java
index b3d095e..adc8dc0 100644
--- a/tests/unit/src/com/android/settings/network/telephony/EnabledNetworkModePreferenceControllerTest.java
+++ b/tests/unit/src/com/android/settings/network/telephony/EnabledNetworkModePreferenceControllerTest.java
@@ -18,9 +18,6 @@
import static androidx.lifecycle.Lifecycle.Event.ON_START;
-import static com.android.settings.core.BasePreferenceController.AVAILABLE;
-import static com.android.settings.core.BasePreferenceController.AVAILABLE_UNSEARCHABLE;
-import static com.android.settings.core.BasePreferenceController.CONDITIONALLY_UNAVAILABLE;
import static com.android.settings.network.telephony.MobileNetworkUtils.getRafFromNetworkType;
import static com.android.settings.network.telephony.TelephonyConstants.RadioAccessFamily.CDMA;
import static com.android.settings.network.telephony.TelephonyConstants.RadioAccessFamily.EVDO;
@@ -33,8 +30,6 @@
import static com.google.common.truth.Truth.assertThat;
import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertTrue;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.when;
@@ -125,79 +120,6 @@
@UiThreadTest
@Test
- public void getAvailabilityStatus_hideCarrierNetworkSettings_returnUnavailable() {
- mPersistableBundle.putBoolean(
- CarrierConfigManager.KEY_HIDE_CARRIER_NETWORK_SETTINGS_BOOL,
- true);
-
- assertThat(mController.getAvailabilityStatus()).isEqualTo(CONDITIONALLY_UNAVAILABLE);
- }
-
- @UiThreadTest
- @Test
- public void getAvailabilityStatus_hidePreferredNetworkType_returnUnavailable() {
- mPersistableBundle.putBoolean(CarrierConfigManager.KEY_HIDE_PREFERRED_NETWORK_TYPE_BOOL,
- true);
-
- when(mServiceState.getState()).thenReturn(ServiceState.STATE_OUT_OF_SERVICE);
- when(mServiceState.getDataRegistrationState()).thenReturn(
- ServiceState.STATE_OUT_OF_SERVICE);
- assertThat(mController.getAvailabilityStatus()).isEqualTo(CONDITIONALLY_UNAVAILABLE);
-
- when(mServiceState.getState()).thenReturn(ServiceState.STATE_IN_SERVICE);
- when(mServiceState.getDataRegistrationState()).thenReturn(ServiceState.STATE_IN_SERVICE);
-
- when(mServiceState.getRoaming()).thenReturn(false);
- assertThat(mController.getAvailabilityStatus()).isEqualTo(CONDITIONALLY_UNAVAILABLE);
-
- when(mServiceState.getRoaming()).thenReturn(true);
- assertThat(mController.getAvailabilityStatus()).isEqualTo(CONDITIONALLY_UNAVAILABLE);
- }
-
- @UiThreadTest
- @Test
- public void getAvailabilityStatus_carrierConfigNotReady_returnUnavailable() {
- mPersistableBundle.putBoolean(CarrierConfigManager.KEY_CARRIER_CONFIG_APPLIED_BOOL, false);
-
- assertThat(mController.getAvailabilityStatus()).isEqualTo(CONDITIONALLY_UNAVAILABLE);
- }
-
- @UiThreadTest
- @Test
- public void getAvailabilityStatus_notWorldPhone_returnAvailable() {
- mPersistableBundle.putBoolean(CarrierConfigManager.KEY_HIDE_CARRIER_NETWORK_SETTINGS_BOOL,
- false);
- mPersistableBundle.putBoolean(CarrierConfigManager.KEY_WORLD_PHONE_BOOL, false);
-
- assertThat(mController.getAvailabilityStatus()).isEqualTo(AVAILABLE);
- }
-
- @UiThreadTest
- @Test
- public void getAvailabilityStatus_callStateIsIdle_returnAvailable() {
- mockEnabledNetworkMode(TelephonyManagerConstants.NETWORK_MODE_NR_LTE_GSM_WCDMA);
- mController.getTelephonyCallback().onCallStateChanged(TelephonyManager.CALL_STATE_IDLE);
-
- mController.updateState(mPreference);
-
- assertThat(mController.getAvailabilityStatus()).isEqualTo(AVAILABLE);
- assertTrue(mPreference.isEnabled());
- }
-
- @UiThreadTest
- @Test
- public void getAvailabilityStatus_duringCalling_returnAvailable() {
- mockEnabledNetworkMode(TelephonyManagerConstants.NETWORK_MODE_NR_LTE_GSM_WCDMA);
- mController.getTelephonyCallback().onCallStateChanged(TelephonyManager.CALL_STATE_OFFHOOK);
-
- mController.updateState(mPreference);
-
- assertThat(mController.getAvailabilityStatus()).isEqualTo(AVAILABLE_UNSEARCHABLE);
- assertFalse(mPreference.isEnabled());
- }
-
- @UiThreadTest
- @Test
public void updateState_LteWorldPhone_GlobalHasLte() {
mPersistableBundle.putBoolean(CarrierConfigManager.KEY_WORLD_MODE_ENABLED_BOOL, true);
diff --git a/tests/unit/src/com/android/settings/network/telephony/PreferredNetworkModePreferenceControllerTest.java b/tests/unit/src/com/android/settings/network/telephony/PreferredNetworkModePreferenceControllerTest.java
index 9dbfdde..f22ad3b 100644
--- a/tests/unit/src/com/android/settings/network/telephony/PreferredNetworkModePreferenceControllerTest.java
+++ b/tests/unit/src/com/android/settings/network/telephony/PreferredNetworkModePreferenceControllerTest.java
@@ -16,8 +16,6 @@
package com.android.settings.network.telephony;
-import static com.android.settings.core.BasePreferenceController.AVAILABLE;
-import static com.android.settings.core.BasePreferenceController.CONDITIONALLY_UNAVAILABLE;
import static com.android.settings.network.telephony.TelephonyConstants.RadioAccessFamily.GSM;
import static com.android.settings.network.telephony.TelephonyConstants.RadioAccessFamily.RAF_TD_SCDMA;
import static com.android.settings.network.telephony.TelephonyConstants.RadioAccessFamily.WCDMA;
@@ -32,7 +30,6 @@
import android.content.Context;
import android.os.PersistableBundle;
-import android.telephony.CarrierConfigManager;
import android.telephony.ServiceState;
import android.telephony.SubscriptionManager;
import android.telephony.TelephonyManager;
@@ -92,43 +89,6 @@
}
@Test
- public void getAvailabilityStatus_hideCarrierNetworkSettings_returnUnavailable() {
- mPersistableBundle.putBoolean(CarrierConfigManager.KEY_HIDE_CARRIER_NETWORK_SETTINGS_BOOL,
- true);
-
- assertThat(mController.getAvailabilityStatus()).isEqualTo(CONDITIONALLY_UNAVAILABLE);
- }
-
- @Test
- public void getAvailabilityStatus_worldPhone_returnAvailable() {
- mPersistableBundle.putBoolean(CarrierConfigManager.KEY_HIDE_CARRIER_NETWORK_SETTINGS_BOOL,
- false);
- mPersistableBundle.putBoolean(CarrierConfigManager.KEY_WORLD_PHONE_BOOL, true);
-
- assertThat(mController.getAvailabilityStatus()).isEqualTo(AVAILABLE);
- }
-
- @Test
- public void getAvailabilityStatus_hidePreferredNetworkType_returnUnavailable() {
- mPersistableBundle.putBoolean(CarrierConfigManager.KEY_HIDE_PREFERRED_NETWORK_TYPE_BOOL,
- true);
-
- when(mServiceState.getState()).thenReturn(ServiceState.STATE_OUT_OF_SERVICE);
- when(mServiceState.getDataRegistrationState()).thenReturn(
- ServiceState.STATE_OUT_OF_SERVICE);
- assertThat(mController.getAvailabilityStatus()).isEqualTo(CONDITIONALLY_UNAVAILABLE);
-
- when(mServiceState.getState()).thenReturn(ServiceState.STATE_IN_SERVICE);
- when(mServiceState.getDataRegistrationState()).thenReturn(ServiceState.STATE_IN_SERVICE);
-
- when(mServiceState.getRoaming()).thenReturn(false);
- assertThat(mController.getAvailabilityStatus()).isEqualTo(CONDITIONALLY_UNAVAILABLE);
-
- when(mServiceState.getRoaming()).thenReturn(true);
- assertThat(mController.getAvailabilityStatus()).isEqualTo(CONDITIONALLY_UNAVAILABLE);
- }
-
- @Test
public void updateState_updateByNetworkMode() {
// NETWORK_MODE_TDSCDMA_GSM_WCDMA = RAF_TD_SCDMA | GSM | WCDMA
when(mTelephonyManager.getAllowedNetworkTypesForReason(
diff --git a/tests/unit/src/com/android/settings/security/SecuritySettingsTest.java b/tests/unit/src/com/android/settings/security/SecuritySettingsTest.java
index dee90b4..61ca6e5 100644
--- a/tests/unit/src/com/android/settings/security/SecuritySettingsTest.java
+++ b/tests/unit/src/com/android/settings/security/SecuritySettingsTest.java
@@ -339,6 +339,30 @@
assertThat(mPreferenceCombined.isVisible()).isFalse();
}
+ @Test
+ public void noFace_isNotIndexable() throws Exception {
+ when(mFaceManager.isHardwareDetected()).thenReturn(false);
+ final BaseSearchIndexProvider indexProvider = SecuritySettings.SEARCH_INDEX_DATA_PROVIDER;
+
+ final List<String> allXmlKeys = TestUtils.getAllXmlKeys(mContext, indexProvider);
+ final List<String> nonIndexableKeys = indexProvider.getNonIndexableKeys(mContext);
+ allXmlKeys.removeAll(nonIndexableKeys);
+
+ assertThat(allXmlKeys).doesNotContain(SecuritySettings.KEY_FACE_SETTINGS);
+ }
+
+ @Test
+ public void noFingerprint_isNotIndexable() throws Exception {
+ when(mFingerprintManager.isHardwareDetected()).thenReturn(false);
+ final BaseSearchIndexProvider indexProvider = SecuritySettings.SEARCH_INDEX_DATA_PROVIDER;
+
+ final List<String> allXmlKeys = TestUtils.getAllXmlKeys(mContext, indexProvider);
+ final List<String> nonIndexableKeys = indexProvider.getNonIndexableKeys(mContext);
+ allXmlKeys.removeAll(nonIndexableKeys);
+
+ assertThat(allXmlKeys).doesNotContain(SecuritySettings.KEY_FINGERPRINT_SETTINGS);
+ }
+
boolean isFacePrefAvailable(List<AbstractPreferenceController> controllers) {
return controllers.stream().filter(
controller -> controller instanceof FaceStatusPreferenceController
diff --git a/tests/unit/src/com/android/settings/wifi/dpp/AdbQrCodeTest.java b/tests/unit/src/com/android/settings/wifi/dpp/AdbQrCodeTest.java
new file mode 100644
index 0000000..44f6c56
--- /dev/null
+++ b/tests/unit/src/com/android/settings/wifi/dpp/AdbQrCodeTest.java
@@ -0,0 +1,65 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.settings.wifi.dpp;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import androidx.test.ext.junit.runners.AndroidJUnit4;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+@RunWith(AndroidJUnit4.class)
+public class AdbQrCodeTest {
+ @Test
+ public void testZxParsing_validCode() {
+ WifiNetworkConfig config = new AdbQrCode(
+ "WIFI:S:reallyLONGone;T:ADB;P:somepasswo#%^**123rd").getWifiNetworkConfig();
+ assertThat(config.getSsid()).isEqualTo("reallyLONGone");
+ assertThat(config.getSecurity()).isEqualTo("ADB");
+ assertThat(config.getPreSharedKey()).isEqualTo("somepasswo#%^**123rd");
+
+ config = new AdbQrCode("WIFI:S:anotherone;T:ADB;P:3#=3j9asicla").getWifiNetworkConfig();
+ assertThat(config.getSsid()).isEqualTo("anotherone");
+ assertThat(config.getSecurity()).isEqualTo("ADB");
+ assertThat(config.getPreSharedKey()).isEqualTo("3#=3j9asicla");
+
+ config = new AdbQrCode("WIFI:S:xx;T:ADB;P:a").getWifiNetworkConfig();
+ assertThat(config.getSsid()).isEqualTo("xx");
+ assertThat(config.getSecurity()).isEqualTo("ADB");
+ assertThat(config.getPreSharedKey()).isEqualTo("a");
+ }
+
+ @Test
+ public void testZxParsing_invalidCodeButShouldWork() {
+ WifiNetworkConfig config = new AdbQrCode(
+ "WIFI:S:reallyLONGone;T:ADB; P:somepassword").getWifiNetworkConfig();
+ assertThat(config.getSsid()).isEqualTo("reallyLONGone");
+ assertThat(config.getSecurity()).isEqualTo("ADB");
+ assertThat(config.getPreSharedKey()).isEqualTo("somepassword");
+
+ config = new AdbQrCode("WIFI: S:anotherone;T:ADB;P:abcdefghihklmn").getWifiNetworkConfig();
+ assertThat(config.getSsid()).isEqualTo("anotherone");
+ assertThat(config.getSecurity()).isEqualTo("ADB");
+ assertThat(config.getPreSharedKey()).isEqualTo("abcdefghihklmn");
+
+ config = new AdbQrCode("WIFI: S:xx; T:ADB; P:a").getWifiNetworkConfig();
+ assertThat(config.getSsid()).isEqualTo("xx");
+ assertThat(config.getSecurity()).isEqualTo("ADB");
+ assertThat(config.getPreSharedKey()).isEqualTo("a");
+ }
+}
+
diff --git a/tests/unit/src/com/android/settings/wifi/dpp/OWNERS b/tests/unit/src/com/android/settings/wifi/dpp/OWNERS
new file mode 100644
index 0000000..84ec8a1
--- /dev/null
+++ b/tests/unit/src/com/android/settings/wifi/dpp/OWNERS
@@ -0,0 +1,2 @@
+per-file AdbQrCodeTest.java=set noparent
+per-file AdbQrCodeTest.java=file:platform/packages/modules/adb:/OWNERS
diff --git a/tests/unit/src/com/android/settings/wifi/dpp/WifiDppConfiguratorActivityTest.java b/tests/unit/src/com/android/settings/wifi/dpp/WifiDppConfiguratorActivityTest.java
index 4d723dc1..34c8602 100644
--- a/tests/unit/src/com/android/settings/wifi/dpp/WifiDppConfiguratorActivityTest.java
+++ b/tests/unit/src/com/android/settings/wifi/dpp/WifiDppConfiguratorActivityTest.java
@@ -20,15 +20,33 @@
import static com.google.common.truth.Truth.assertThat;
+import static org.mockito.Mockito.never;
import static org.mockito.Mockito.when;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.anyString;
+import static org.mockito.Mockito.anyInt;
+import static org.mockito.Mockito.any;
+import static org.mockito.Mockito.mock;
import android.content.Context;
+import android.content.Intent;
import android.os.UserManager;
+import android.platform.test.annotations.DisableFlags;
+import android.platform.test.annotations.EnableFlags;
+import android.platform.test.flag.junit.SetFlagsRule;
+import androidx.fragment.app.Fragment;
+import androidx.fragment.app.FragmentManager;
+import androidx.fragment.app.FragmentTransaction;
import androidx.test.annotation.UiThreadTest;
import androidx.test.core.app.ApplicationProvider;
import androidx.test.ext.junit.runners.AndroidJUnit4;
+import com.android.settings.flags.Flags;
+import com.android.settings.testutils.FakeFeatureFactory;
+import com.android.settings.wifi.factory.WifiFeatureProvider;
+
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
@@ -44,18 +62,36 @@
@Rule
public final MockitoRule mMockitoRule = MockitoJUnit.rule();
+ @Rule
+ public final SetFlagsRule mSetFlagsRule = new SetFlagsRule();
+
@Spy
private final Context mContext = ApplicationProvider.getApplicationContext();
@Mock
private UserManager mUserManager;
+ @Mock
+ private FragmentManager mFragmentManager;
+ // Mock, created by FakeFeatureFactory
+ private WifiFeatureProvider mWifiFeatureProviderMock;
+
+ @Spy
private WifiDppConfiguratorActivity mActivity;
@Before
public void setUp() {
when(mContext.getSystemService(UserManager.class)).thenReturn(mUserManager);
- mActivity = new WifiDppConfiguratorActivity();
+ mActivity.mFragmentManager = mFragmentManager;
+ doReturn(mContext).when(mActivity).getApplicationContext();
+
+ FragmentTransaction mockTransaction = mock(FragmentTransaction.class);
+ when(mFragmentManager.beginTransaction()).thenReturn(mockTransaction);
+ when(mockTransaction.replace(anyInt(), any(Fragment.class), anyString()))
+ .thenReturn(mockTransaction);
+
+ FakeFeatureFactory featureFactory = FakeFeatureFactory.setupForTest();
+ mWifiFeatureProviderMock = featureFactory.mWifiFeatureProvider;
}
@Test
@@ -71,4 +107,37 @@
assertThat(mActivity.isAddWifiConfigAllowed(mContext)).isFalse();
}
+
+
+ @Test
+ @EnableFlags(Flags.FLAG_ENABLE_WIFI_SHARING_RUNTIME_FRAGMENT)
+ public void showQrCodeGeneratorFragment_shouldUseFeatureFactory() {
+ when(mUserManager.isGuestUser()).thenReturn(false);
+ when(mWifiFeatureProviderMock.getWifiDppQrCodeGeneratorFragment())
+ .thenReturn(new WifiDppQrCodeGeneratorFragment());
+
+ mActivity.handleIntent(createQrCodeGeneratorIntent());
+
+ verify(mWifiFeatureProviderMock).getWifiDppQrCodeGeneratorFragment();
+ }
+
+ @Test
+ @DisableFlags(Flags.FLAG_ENABLE_WIFI_SHARING_RUNTIME_FRAGMENT)
+ public void showQrCodeGeneratorFragment_shouldNotUseFeatureFactory() {
+ when(mUserManager.isGuestUser()).thenReturn(false);
+
+ mActivity.handleIntent(createQrCodeGeneratorIntent());
+
+ verify(mWifiFeatureProviderMock, never())
+ .getWifiDppQrCodeGeneratorFragment();
+ }
+
+ private static Intent createQrCodeGeneratorIntent() {
+ Intent intent = new Intent(
+ WifiDppConfiguratorActivity.ACTION_CONFIGURATOR_QR_CODE_GENERATOR);
+ intent.putExtra(WifiDppUtils.EXTRA_WIFI_SSID, "GoogleGuest");
+ intent.putExtra(WifiDppUtils.EXTRA_WIFI_SECURITY, "WPA");
+ intent.putExtra(WifiDppUtils.EXTRA_WIFI_PRE_SHARED_KEY, "\\012345678,");
+ return intent;
+ }
}